콘텐츠로 바로가기

CAP Theorem

분산 시스템은 Consistency, Availability, Partition Tolerance 세 속성 중 **동시에 둘만** 보장할 수 있다는 정리(Brewer, 2000). 네트워크 분할은 필연적 → P는 포기 불가. **CP vs AP**가 실질적 선택:...

sys.entry
M

Me

hyunyoun's Blog

system-architecture-distributed-systems2 min read

CAP Theorem

분산 시스템은 Consistency, Availability, Partition Tolerance 세 속성 중 동시에 둘만 보장할 수 있다는 정리(Brewer, 2000).

세 속성 정의

C — Consistency: 모든 노드가 동일한 최신 데이터를 반환. 읽기는 최근 쓰기를 반영.

A — Availability: 장애 노드가 있어도 모든 요청에 (오래된 데이터라도) 응답.

P — Partition Tolerance: 네트워크 분할(일부 노드 간 통신 단절) 상황에서도 동작.

실제 선택

네트워크 분할은 필연적 → P는 포기 불가. CP vs AP가 실질적 선택:

유형 예시 특성
CP HBase, Zookeeper 분할 시 가용성 희생, 일관성 보장
AP Cassandra, DynamoDB 분할 시 오래된 데이터 허용, 응답은 유지
CA 단일 노드 RDBMS 분산 아님 (P 포기 = 분산 불가)

PACELC 확장

분할 없는 정상 상태에서도 Latency vs Consistency 트레이드오프 존재:

CODE
분할 시: P → A or C
정상 시: E (Else) → L (Latency) or C (Consistency)

연결 노트