분산 DB의 핵심 선택

파티션은 버릴 수 없고, 결국 CA 사이의 우선순위를 정합니다.

CAP은 세 속성의 목록이 아니라, 네트워크가 끊긴 순간 시스템이 어떤 성질을 지킬지 결정하는 운영상의 선택입니다.

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