-
CAP Theorem공부방 2023. 8. 6. 19:58
CAP 정리
CAP 정리 (또는 브루어의 정리)는 다음과 같은 세 가지 조건을 모두 만족하는 분산 컴퓨터 시스템은 존재하지 않음을 증명한 정리이다.
- Consistency(일관성) : 모든 노드가 같은 순간에 같은 데이터를 볼 수 있다.
- Availability(가용성) : 모든 요청이 성공 또는 실패 결과를 반환할 수 있다.
- Partition tolerance(분할 내성) : 메시지 전달이 실패하거나 시스템 일부가 망가져도 시스템이 계속 동작할 수 있다.
위는 위키백과 기준으로 CAP 정리에대해 검색했을때의 결과이다. 단순히 CAP 중 2개를 선택하여 분산 시스템을 설계하기에는 다음과 같은 문제가 있다.
Partition tolerance는 분할 내성이라는 표현으로 해석되었다. 하지만 명확한 의미는 The network will be allowed to lose arbitrarily many messages sent from one node to another 라는 의미로 네트워크가 임의의 메시지 손실을 할 수 있다는것을 허용하느냐에대한 얘기이다. 따라서 분할 내성 보다는 분할 용인 이라 번역하는게 더 의미가 맞다.
C,A,P 에서 P는 따지고 보면 분산시스템의 특성이 아닌 네트워크에 대한 특성이다. 세상에 절대로 장애가 나지 않는 네트워크가 존재할수 없는 것처럼, P는 항상 선택될 수 밖에 없다. 따라서 실제로 가능한 구성은 CP 와 AP 이다.
CP
Consistency 와 Partition Tolerance를 선택한 경우이다. 가용성을 희생하고 일관성과 파티션 감내를 지원한다. 매 순간 Read / Write 에 따른 정합성이 일치할 필요가 있을 경우 적합한 형태이다. 어떤 상황에도 모든 서버의 데이터가 동기화 된기때문에 특정 서버가 죽을경우 상황이 해결될 때 까지 서버는 계속 에러를 보낸다.
AP
Availability 와 Partition Tolerance를 선택한 경우이다. 데이터의 일관성을 희생하고 가용성과 파티션 감내를 지원한다. 어떤 상황에서도 시스템은 안정적으로 운영되지만 데이터에대한 정합성은 보장할 수 없다. 결과적으로 일관성이 보장되는 Eventual Consistency를 보장하는 시스템에 알맞는 형태이다.
출처
https://ko.wikipedia.org/wiki/CAP_%EC%A0%95%EB%A6%AC
http://eincs.com/2013/07/misleading-and-truth-of-cap-theorem/
https://azderica.github.io/00-db-cap/
'공부방' 카테고리의 다른 글
HTTPS 통신 과정 (0) 2023.11.15 OSI 7계층과 TCP/IP 4계층 (0) 2023.11.07 Session과 Token (0) 2023.10.20 부동소수점 표현 방식 [IEEE 754] (0) 2023.08.31 스프링과 디자인 패턴 (0) 2023.08.27