CAP Theorem
참고 자료
- Jung-Haeng Lee - CAP Theorem, 오해와 진실
- 무조건 읽을 것
『System Design Interview/가상 면접 사례로 배우는 대규모 시스템 설계 기초』
by Alex Xu/ 알렉스 쉬 - yes24
CAP Theorem¶
CAP theorem on wikipedia
In theoretical computer science, the CAP theorem states that any distributed data store can provide only two of the following three quarantees
- Consistency - Every read receives the most recent write or an error
- Availability - Every request receives a (non-error) response, without the guarantee that it contains the most recent write.
- Partition tolerance - The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes.
CAP¶
- 데이터 일관성 : 분산 시스템에 접속하는 모든 클라이언트는 어떤 노드에 접속했느냐에 관계 없이 언제나 같은 데이터를 보게 되어야 한다.
- 가용성: 분산 시스템에 접속하는 클라이언트는 일부 노드에 장애가 발생하더라도 항상 응답을 받을 수 있어야 한다.
- 파티션 감내: 파티션은 두 노드 사이에 통신 장애가 발생하였음을 의미한다. 파티션 감내는 네트워크에 파티션이 생기더라도 시스템은 계속 동작하여야 한다는 것을 뜻한다.
CP, AP, CA 시스템¶
- CP 시스템 : 일관성과 파티션 감내를 지원한다. 가용성을 희생한다.
- AP 시스템 : 가용성과 파티션 감내를 지원한다. 데이터 일관성을 희생한다.
- CA 시스템: 일관성과 가용성을 지원한다. 파티션 감내는 지원하지 않는다. 그러나 통산 네트워크 장애는 피할 수 없는 일로 여겨지므로, 분산 시스템은 반드시 파티션 문제를 감내할 수 있도록 설계되어야 한다. 그러므로 실세계에 CA 시스템은 존재하지 않는다.
- 온라인 뱅킹 시스템은 데이터 일관성을 포기 할 수 없다. 한 서버에 문제가 생긴다면 다른 서버에 대한 쓰기 연산을 중단시킨다. 즉 가용성을 희생한다.
- 반면 가용성이 중요한 시스템은 멀쩡한 서버를 계속 사용한다. 이때 데이터 일관성이 희생 될 수 있다.
Last update:
February 27, 2023
Created: February 9, 2023
Created: February 9, 2023