CAP 정리와 PACELC
CAP Theorem and PACELC
CAP 정리는 분산 시스템에서 네트워크 분할(P)이 발생하면 일관성(C)과 가용성(A) 중 하나만 보장할 수 있다는 이론이며, PACELC는 이를 확장해 분할이 없는 정상 상황(Else)에서도 지연시간(L)과 일관성(C) 사이의 트레이드오프가 존재함을 설명한다.
핵심 키워드
일관성(Consistency)가용성(Availability)분할 내성(Partition Tolerance)네트워크 분할(Network Partition)지연시간(Latency)CP·AP 시스템최종 일관성(Eventual Consistency)BASE쿼럼(Quorum, R+W>N)
암기: PACELC: "if Partition → A or C, Else → L or C"
구성도
정리
1. 개요
- CAP 정리: Eric Brewer가 2000년 제시한 추측을 Gilbert와 Lynch가 2002년 증명
- 배경
- 대규모 분산 DB·NoSQL 확산으로 복제 데이터의 일관성과 가용성 간 설계 선택 필요
- CAP는 장애(분할) 상황만 다루어, 평상시 성능(지연) 트레이드오프 설명 부족 → Daniel Abadi가 PACELC 제안
2. 구성/원리
① CAP 3요소
| 요소 | 의미 |
|---|---|
| Consistency | 모든 노드가 같은 시점에 최신 쓰기 결과를 반환(선형화 가능성) |
| Availability | 장애 없는 노드에 대한 모든 요청이 응답을 받음 |
| Partition Tolerance | 노드 간 메시지 유실·분할에도 시스템이 동작 |
- 분산 환경에서 네트워크 분할은 회피 불가 → 실질적 선택은 분할 시 C vs A
- CP: 분할 시 일부 요청 거부·대기로 일관성 유지
- AP: 분할 시 응답은 하되 오래된 데이터 가능, 이후 동기화(최종 일관성)
② PACELC
- P(분할 발생) 시 → A(가용성) 또는 C(일관성) 선택
- E(Else, 정상) 시 → L(낮은 지연) 또는 C(일관성) 선택
- 정상 시에도 동기 복제는 일관성↑·지연↑, 비동기 복제는 지연↓·일관성↓
3. 비교
| 분류 | 특징 | 대표 예 |
|---|---|---|
| PA/EL | 분할 시 가용성, 평상시 저지연 우선 | Dynamo, Cassandra |
| PC/EC | 항상 일관성 우선 | HBase, BigTable 계열, 분산 SQL |
| PA/EC | 분할 시 가용성, 평상시 일관성 | MongoDB(기본 설정 기준으로 분류된 사례) |
| 항목 | ACID | BASE |
|---|---|---|
| 지향 | 강한 일관성 | 가용성·확장성 |
| 일관성 | 즉시(Strong) | 최종(Eventual) |
| 주 적용 | RDBMS, 금융 거래 | 대규모 NoSQL, 소셜·로그 |
- 다수 시스템은 설정(일관성 수준, 쿼럼)에 따라 분류가 달라지는 조정 가능한 일관성(Tunable Consistency) 제공
- 예: 복제본 N, 쓰기 W, 읽기 R에서 R + W > N이면 최신 쓰기와 읽기 집합이 겹침
4. 고려사항·최신 동향
- 고려사항
- CAP의 C(선형화)와 ACID의 C(무결성 제약)는 다른 개념임에 유의
- "3개 중 2개 선택"은 단순화된 해석 → 분할은 드물고 일시적이므로 분할 감지·복구 전략 설계가 중요
- 업무별로 일관성 요구를 구분: 결제·재고는 CP 성향, 피드·조회수는 AP 성향
- 최신 동향
- 분산 SQL(NewSQL): 합의 알고리즘(Raft·Paxos) 기반 강한 일관성과 수평 확장 양립 추구
- CRDT 기반 충돌 없는 복제로 AP 시스템의 병합 문제 완화
- 멀티 리전 클라우드 DB에서 리전 간 지연-일관성 선택 옵션 제공
함께 볼 토픽
v1 · 2026. 10. 19. 갱신 · 틀린 내용을 발견하면 알려 주세요.