Dev/database
PACELC Theorem(패슬씨 정리)
Luigi.yoon
2025. 6. 12. 15:19
PACELC 정리는 CAP 정리의 한계를 보완하기 위해 등장한 분산 시스템 설계 프레임워크로, **네트워크 장애 상황(Partition)**과 **정상 상황(Else)**을 구분해 시스템 특성을 분석한다. CAP 정리가 파티션 발생 시 일관성(C)과 가용성(A)의 선택에 초점을 맞췄다면, PACELC는 정상 상황에서 **지연 시간(Latency)**과 **일관성(Consistency)**의 추가적 트레이드오프를 고려한다.
PACELC 이론의 구조
1. 두 가지 시나리오 분리
- P(Partition) 상황: 네트워크 단절 발생 시 CAP과 동일하게 Availability(가용성) vs Consistency(일관성) 선택.
- E(Else) 상황: 정상 운영 시 Latency(낮은 지연 시간) vs Consistency(일관성) 선택.
2. 4가지 조합
조합 | P 상황 선택 | E 상황 선택 | 대표 시스템 예시 |
PA/EL | 가용성 | 낮은 지연 | Cassandra, DynamoDB |
PA/EC | 가용성 | 일관성 | MongoDB (기본 설정) |
PC/EL | 일관성 | 낮은 지연 | PNUTS |
PC/EC | 일관성 | 일관성 | BigTable, HBase |
MongoDB vs HBase 비교 분석
MongoDB (PA/EC: Partition 시 Availability, Else 시 Consistency)
- MongoDB는 기본적으로 primary-secondary(리더-팔로워) 구조를 사용합니다.
- 네트워크 파티션이 발생하면, **가용성(Availability)**을 우선시하여 일부 일관성을 희생할 수 있습니다.
- 예를 들어, primary가 장애로 떨어져도 secondary가 새로운 primary로 선출되어 서비스를 계속 제공합니다. 이 과정에서 일부 데이터가 유실되거나 복제되지 않은 상태에서 읽힐 수 있습니다.
- 하지만 **정상 상황(Else)**에서는 primary에서만 읽기/쓰기가 이뤄지므로 **일관성(Consistency)**이 보장됩니다.
- 즉, MongoDB는 파티션 상황에서는 가용성을, 그 외에는 일관성을 선택하는 PA/EC 구조입니다.
HBase (PC/EC: Partition 시 Consistency, Else 시 Consistency)
- HBase는 Google BigTable을 모델로 한 분산 데이터베이스로, **일관성(Consistency)**을 최우선으로 설계되어 있습니다.
- 네트워크 파티션이 발생할 때도, 그리고 평상시에도 항상 강한 일관성을 보장합니다.
- 즉, 파티션이 발생하면 가용성을 희생해서라도 데이터의 일관성을 지키고, 정상 상황(Else)에서도 낮은 지연보다는 일관성을 우선합니다.
- 이런 시스템은 쓰기/읽기 모두에서 항상 최신 데이터를 보장하지만, 일부 요청이 실패하거나 지연될 수 있습니다.
CAP vs PACELC 비교 분석
구분 | CAP 이론 | PACELC 이론 |
고려 상황 | 파티션 발생 시만 분석 | 파티션 발생 시 + 정상 상황 모두 분석512 |
트레이드오프 축 | C-A (일관성 vs 가용성) | P-A/C + E-L/C (지연 시간 추가)714 |
실용성 | 이론적 한계 존재 | 현실적 운영 시나리오 반영19 |
시스템 설계 | CP/AP 이분법적 접근 | 4가지 세부 조합 지원213 |
주요 차이점
- 정상 상황의 지연 시간 고려:
CAP 이론이 파티션 발생 시의 선택만 강조하는 반면, PACELC는 정상 상황에서도 응답 속도와 일관성의 균형을 요구한다. 예를 들어, Cassandra는 정상 시 낮은 지연 시간(EL)을 선택해 초고속 읽기/쓰기를 제공하지만, HBase는 일관성(EC)을 우선해 데이터 정합성을 보장한다. - 유연한 시스템 설계:
PACELC는 동일 시스템이 서비스 요구사항에 따라 다른 조합으로 운영될 수 있음을 시사한다. MongoDB는 기본적으로 PA/EC로 동작하지만, 다수 복제본 쓰기 설정 시 PC/EC로 전환될 수 있다. - 실제 시스템 분류 명확화:
CAP의 이분법적 분류(CP/AP)로는 설명하기 어려운 시스템들을 PACELC의 4가지 조합으로 정확히 매핑 가능하다. 예를 들어, DynamoDB는 PA/EL로 분류되며, 이는 "파티션 시 가용성 우선, 정상 시 낮은 지연"을 의미한다.
PACELC의 의의와 적용 사례
- 금융 시스템: PC/EC 조합 선택. 파티션 발생 시 일관성 유지를 위해 일시적 서비스 중단 가능성 있지만, 정상 시 모든 거래 내역의 즉시 동기화 보장.
- 실시간 추천 시스템: PA/EL 조합 선택. 파티션 발생 시 일시적 데이터 불일치를 허용하더라도 초저지연 추천 서비스 유지.
- 하이브리드 접근: 일부 시스템은 상황에 따라 조합을 동적으로 변경. 예를 들어, MongoDB는 장애 복구 시 PA/EC → PC/EC로 전환해 데이터 일관성 회복.
결론
PACELC 이론은 CAP의 단순화된 모델을 넘어 현실적인 운영 조건을 반영한 업그레이드 프레임워크다. 분산 시스템 설계 시 파티션 발생 가능성뿐 아니라 정상 상태의 성능 요구사항까지 종합적으로 고려할 수 있게 함으로써, 마이크로서비스·클라우드 환경에서의 데이터베이스 선택과 튜닝에 핵심적인 기준을 제공한다