CAP 및 일관성 모델
일관성 모델은 복제된 시스템이 반환하는 값에 대해 어떤 보장을 제공하는지 정의하며, CAP 정리는 네트워크 분할 상황에서 이러한 보장 중 어떤 것이 가용성과 공존할 수 있는지에 대한 한계를 설정합니다.
Definition
일관성 모델은 복제된 데이터 저장소와 클라이언트 간의 계약으로, 동시 읽기 및 쓰기의 허용 가능한 결과를 명시합니다. CAP 정리는 네트워크 분할이 있는 경우 분산 데이터 저장소가 선형적 일관성과 가용성을 동시에 제공할 수 없다고 명시합니다.
Scope
이 주제는 공식적인 일관성 모델(선형성, 순차적 일관성, 인과적 일관성, 최종적 일관성)과 강도에 따른 순서, CAP 정리 및 그 정확한 진술과 증명, 그리고 분할이 없는 상황에서 지연 시간-일관성 절충도 고려하는 PACELC와 같은 개선 사항을 다룹니다. 이는 복제된 시스템 보장을 명시하고 비교하기 위한 어휘를 제공합니다.
Core questions
- 선형성, 순차적, 인과적, 최종적 일관성은 강도 면에서 어떻게 다른가요?
- CAP 정리는 정확히 무엇을 금지하고 무엇을 허용하나요?
- 분할이 없는 경우 지연 시간 고려 사항이 일관성 절충을 어떻게 개선하나요?
Key theories
- 선형성 및 순차적 일관성
- 선형성은 각 작업이 호출과 응답 사이의 어느 시점에서 실제 시간에 일치하게 원자적으로 발생하는 것처럼 보여야 한다고 요구합니다. 순차적 일관성은 실시간 요구 사항을 완화하고 각 프로세스의 순서를 존중하는 단일 유효한 인터리빙만 요구합니다.
- CAP 정리
- 길버트와 린치는 복제본 간에 네트워크가 메시지를 드롭할 수 있는 경우, 복제된 데이터 저장소가 선형적 일관성과 가용성을 동시에 보장할 수 없으며, 분할 중에는 선택을 강요한다는 것을 증명했습니다.
- PACELC 개선
- PACELC는 분할이 없는 경우에도 시스템이 지연 시간과 일관성을 절충한다는 점을 지적함으로써 CAP를 확장합니다. 따라서 설계는 분할 중과 정상 작동 중 모두의 동작으로 특징지어집니다.
Clinical relevance
모든 분산 데이터베이스 및 저장 서비스는 일관성 모델을 선언해야 하며, CAP 및 PACELC 절충은 일부 시스템이 가용성을 우선시하고 다른 시스템이 일관성을 우선시하는 이유를 설명합니다. 이를 이해하는 것은 데이터 인프라를 선택하고 운영하는 데 필수적입니다.
History
램포트(Lamport)는 1979년에 순차적 일관성을 정의했고, 헐리히(Herlihy)와 윙(Wing)은 1990년에 선형성을 공식화했습니다. 브루어(Brewer)는 2000년에 CAP 절충을 추측했고, 길버트(Gilbert)와 린치(Lynch)는 2002년에 이를 증명했으며, 아바디(Abadi)의 2012년 PACELC 재구성은 분할뿐만 아니라 지연 시간도 일관성 선택을 좌우한다는 점을 명확히 했습니다.
Debates
- CAP가 종종 오해되는가?
- CAP는 종종 '세 가지 중 두 가지를 선택하라'고 요약되지만, 정확한 결과는 분할 중에만 일관성-가용성 선택을 강요합니다. 비평가들은 이러한 과도한 단순화가 PACELC에 의해 포착된 더 관련성 높은 일상적인 지연 시간-일관성 절충을 가린다고 주장합니다.
Key figures
- Eric Brewer
- Seth Gilbert
- Nancy Lynch
- Maurice Herlihy
- Jeannette Wing
- Leslie Lamport
Related topics
Seminal works
- gilbert2002
- herlihy1990
- lamport1979
Frequently asked questions
- CAP는 시스템이 일관성, 가용성, 분할 허용 오차 중 두 가지만 가질 수 있다는 의미인가요?
- 정확히 그렇지는 않습니다. 분할은 네트워크의 사실이지 설계 선택 사항이 아니므로, 실제 결정은 분할 중에 무엇을 할 것인가입니다. 즉, 가용성을 유지하기 위해 강력한 일관성을 희생할 것인지, 아니면 일관성을 유지하기 위해 가용성을 희생할 것인지입니다. 분할이 없는 경우에는 시스템이 일관성과 가용성을 모두 가질 수 있습니다.