PACELC 정리
PACELC theorem이론 컴퓨터 과학에서, PACELC 정리는 CAP 정리의 확장입니다.분산형 컴퓨터 시스템의 네트워크 분할(P)의 경우 가용성(A)과 일관성(CAP 정리) 중 하나를 선택해야 하지만, 그렇지 않은 경우(E)는 파티션이 없는 상태에서 시스템이 정상적으로 동작하고 있는 경우에도 지연(L)과 일관성(C) 중 하나를 선택해야 한다고 명시되어 있다.
개요
PACELC는 CAP 정리를 기반으로 합니다.두 가지 정리 모두 분산형 데이터베이스가 일관성, 가용성 및 파티션 허용과 관련하여 어떻게 제한과 트레이드오프를 가지고 있는지를 설명합니다.그러나 PACELC는 한 걸음 더 나아가 파티션이 없는 경우에도 지연과 일관성 사이에 추가적인 트레이드오프가 존재하며, 따라서 분산 [1]시스템의 잠재적 일관성 트레이드오프를 보다 완벽하게 묘사할 수 있습니다.
고가용성 요건은 시스템이 데이터를 복제해야 함을 의미합니다.분산 시스템이 데이터를 복제하는 즉시 일관성과 대기 시간 간의 균형이 발생합니다.
PACELC의 정리는 2010년 예일 대학의 Daniel J. Abadi에 의해 블로그 [2]투고에서 처음 기술되었으며,[1] 그는 나중에 2012년 논문에서 이를 명확히 했다.PACELC의 목적은 "복제된 시스템의 일관성/지연 트레이드오프를 무시하는 것은 시스템 운용 중에 항상 존재하기 때문에 [CAP]에서 중대한 감시입니다.반면 CAP는 거의 틀림없이 드문 네트워크 파티션의 경우에만 관련성이 있습니다."라는 그의 논제에 대처하는 것입니다.PACELC 정리는 2018년 SIGACT News [3]기사에서 공식적으로 증명되었다.
[1] 데이터베이스 PACELC 평가
데이터베이스 PACELC 등급은
- 디폴트 버전의 DynamoDB, Cassandra, Riak 및 Cosmos DB는 PA/EL 시스템입니다.파티션이 발생하면 가용성에 대한 일관성이 없어지고 일반 동작에서는 지연 시간이 단축됩니다.
- VoltDB/H-Store, 메가스토어, MySQL 클러스터 및 Postgre와 같은 완전 산성 시스템SQL은 PC/EC입니다.일관성을 포기하지 않고 이를 달성하기 위해 가용성과 레이텐시 비용을 지불합니다.BigTable 및 HBase와 같은 관련 시스템도 PC/EC입니다.
- Couchbase는 파티션 중 다양한 일관성 및 가용성 옵션을 제공하며 파티션 없이 다양한 지연 및 일관성 옵션을 제공합니다.대부분의 다른 데이터베이스와 달리 Couchbase는 단일 API 세트를 가지고 있지 않으며 모든 데이터 서비스를 균질하게 확장/복제하지 않습니다.쓰기의 경우 Couchbase는 정식 CP보다 일관성을 선호하지만 읽기에서는 인덱스 복제, 원하는 일관성 수준 및 접근 유형에 따라 사용자가 제어하는 변동성이 더 큽니다(단일 문서 검색 vs 범위 스캔 vs 전체 텍스트 검색 등).게다가 복수의 CP 클러스터와 비동기 리플리케이션에 접속하는 크로스 데이터 센터 리플리케이션(XDCR)과 임베디드 데이터베이스인 Couchbase Lite에 의해서, 완전한 멀티 마스터(리비전 트래킹 포함) 분산 토폴로지가 작성되는 것에 의해서도 한층 더 다양해집니다.
- Cosmos DB는 P 시 C/A와 E 시 L/C 간의 균형을 가능하게 하는 5가지 조정 가능한 일관성 수준을 지원합니다.Cosmos DB는 지정된 일관성 수준을 위반하지 않으므로 정식 CP입니다.
- MongoDB는 PA/EC 시스템으로 분류할 수 있습니다.베이스라인의 경우, 시스템은 읽기 및 쓰기의 일관성을 보증합니다.
- PNUTS는 PC/EL 시스템입니다.
- 헤이즐캐스트 IMDG 및 실제로 대부분의 인메모리 데이터 그리드는 PA/EC 시스템을 구현한 것입니다. 헤이즐캐스트는 [5]EC가 아닌 EL로 구성할 수 있습니다.동시성 프리미티브(Lock, Atomic Reference, CountDownLatch 등)는 PC/EC 또는 PA/EC [6]중 하나입니다.
- FaunaDB는 Daniel Abadi 박사가 만든 트랜잭션[1] 프로토콜인 Calvin을 구현하고 LC 트레이드오프를 위한 조정 가능한 제어를 사용자에게 제공합니다.엄밀하게 시리얼 가능한 트랜잭션을 위한 PC/EC, 시리얼 가능한 읽기를 위한 EL입니다.
| DDBS | P+A | P+C | E+L | E+C |
|---|---|---|---|---|
| BigTable/HBase | ||||
| 카산드라 | ||||
| 코스모스 DB | ||||
| 카우치 베이스 | ||||
| Dynamo DB | ||||
| FaunaDB[8] | ||||
| 헤이즐캐스트[5][6] IMDG | ||||
| 메가스토어 | ||||
| MongoDB | ||||
| MySQL 클러스터 | ||||
| 동작하지 않다 | ||||
| 포스트그레SQL | ||||
| 리악 | ||||
| 볼트 DB/H 스토어 |
「 」를 참조해 주세요.
메모들
레퍼런스
- ^ a b c d Abadi, Daniel J. "Consistency Tradeoffs in Modern Distributed Database System Design" (PDF). Yale University.
- ^ Abadi, Daniel J. (2010-04-23). "DBMS Musings: Problems with CAP, and Yahoo's little known NoSQL system". Retrieved 2016-09-11.
- ^ Wojciech Golab, "PACELC의 검증", ACM SIGACT 뉴스, 제49권 1호(2018), 73-81. doi:10.1145/3197406.3197420.
- ^ a b 리서치 엔지니어 Arinto Murdopo의 "현대 분산 데이터베이스 시스템 설계의 일관성 트레이드오프" 슬라이드 요약
- ^ a b Abadi, Daniel (2017-10-08). "DBMS Musings: Hazelcast and the Mythical PA/EC System". DBMS Musings. Retrieved 2017-10-20.
- ^ a b "Hazelcast IMDG Reference Manual". docs.hazelcast.org. Retrieved 2020-09-17.
- ^ "Consistency Levels in Azure Cosmos DB". docs.microsoft.com. Retrieved 2021-06-21.
- ^ Abadi, Daniel (2018-09-21). "DBMS Musings: NewSQL database systems are failing to guarantee consistency, and I blame Spanner". DBMS Musings. Retrieved 2019-02-23.
외부 링크
- Daniel J. Abadi의 "현대 분산 데이터베이스 시스템 설계의 일관성 트레이드오프", PACELC를 공식화한 예일 대학교 원본 논문
- 예일대 다니엘 J. 아바디의 "CAP 및 야후의 거의 알려지지 않은 NoSQL 시스템의 문제"PACELC에 대해 최초로 설명한 블로그의 오리지널 투고
- 워털루 대학 Wojciech Golab의 "PACELC 증명" PACELC 정리 공식 증명