CAP이론과 일관성 모델
CAP이론은 분산 시스템에서 다음 세 가지 속성을 동시에 만족할 수 없음을 설명한다.
- 일관성: 모든 노드가 같은 데이터를 반환함.
- 가용성: 모든 요청이 응답 받을 수 있음.
- 네트워크 분할 허용: 네트워크 장애에도 시스템이 동작함.
분산 시스템 설계자는 이 중 두 가지를 선택해야 하고, 선택에 따라 적합한 일관성 모델을 결정해야한다.
CP(Consistency & Partition Tolerance)
강한 일관성을 유지하지만 일부 요청이 거부될 수 있음 (Zookeeper) 데이터의 정확성과 신뢰성이 중요한 곳에서 적합하다. 특히 금융 시스템에서 쓰인다.
AP(Availability & Partition Tolerance)
높은 가용성을 제공하지만 데이터 불일치 가능성이 존재함 (Cassandra) 네트워크 분할이 발생해도 시스템은 계속 작동하며 요청에 응답한다. 데이터는 즉시 동기화되지 않지만, 최종적으로 일관성이 달성된다. 빠른 응답성과 높은 가용성이 필요한 일반적인 애플리케이션 서비스를 서빙할 때 적용된다.
CA (Consistency & Availability)
네트워크 분할이 없는 상황에서 가능. 모든 노드가 동일한 데이터를 반환하고, 모든 요청에 응답 가능하다.
실질적으로 완벽한 CA는 구현하기 어렵다.
단일 데이터 센터 내의 클러스터 환경처럼 외부 요인이 없이 네트워크 안정성이 높은 경우. 관계형 데이터베이스에서 단일 노드로 운영되는 경우 등.