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(기본 설정 기준으로 분류된 사례)
항목ACIDBASE
지향강한 일관성가용성·확장성
일관성즉시(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. 갱신 · 틀린 내용을 발견하면 알려 주세요.