분산 DB의 핵심 선택
파티션은 버릴 수 없고, 결국 C와 A 사이의 우선순위를 정합니다.
CAP은 세 속성의 목록이 아니라, 네트워크가 끊긴 순간 시스템이 어떤 성질을 지킬지 결정하는 운영상의 선택입니다.
C · Consistency
모든 노드가 같은 데이터를 보게 한다.
A · Availability
모든 요청에 응답을 돌려준다.
P · Partition Tolerance
네트워크가 분할돼도 시스템이 계속 동작한다.
파티션 발생 시
CP 시스템
AP 시스템
무엇을 지키나
Consistency 우선
같은 값을 보장하기 위해 일부 요청을 멈출 수 있습니다.
Availability 우선
응답을 계속 주기 위해 노드마다 다른 값을 잠시 허용할 수 있습니다.
대가
일부 요청 거부 또는 지연
정확성이 더 중요할 때 선택합니다.
일시적 불일치 가능
짧은 차이를 나중에 맞추는 방향입니다.
잘 맞는 업무
금융, 재고 관리
잘못된 값이 바로 사고로 이어지는 경우
SNS, 센서 데이터, 로그
잠깐 다른 값이어도 서비스 지속이 더 중요한 경우
예시 시스템
HBase, MongoDB
강한 일관성 설정을 택하는 구성
Cassandra, DynamoDB
가용성과 확장을 우선하는 구성