콘텐츠로 바로가기

CAP Theorem

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

목차 보기4

분산 시스템은 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)

연결 노트

  • ZK-cqrs-pattern — AP 선택 시 Read Model의 Eventual Consistency를 명문화
  • ZK-event-sourcing — 이벤트 로그는 CP에 가까운 일관성 보장 설계
  • ZK-consistent-hashing — AP 시스템에서 노드 분할 시 데이터 재분배 최소화
  • ZK-sli-slo-error-budget — 가용성 SLO가 CP/AP 선택의 비즈니스 기준

System Architecture · Distributed Systems

8 / 9

이어서 읽기

전체 →