본문 바로가기
Back-End/Database

CAP 정리

by 코젼 2025. 5. 8.
728x90
반응형

CAP 정리는 분산 데이터베이스 시스템CAP 중 2개의 속성만을 제공할 수 있다는 이론입니다. CAP 정리에 따르자면, 일관성(Consistency), 가용성(Availability), 분할 내성(Partition Tolerance) 등 3가지 속성을 모두 만족하는 분산 데이터베이스 시스템은 존재하지 않습니다.

속성 설명

  • 일관성(Consistency)은 모든 클라이언트 요청어느 노드에 연결되어도 같은 데이터를 볼 수 있음을 의미합니다.
  • 가용성(Availability) 은 노드 일부에 문제가 발생하여도 시스템은 클라이언트의 모든 요청에 유효한 응답을 전해줄 수 있어야 함을 의미합니다.
  • 분할 내성(Partition Tolerance) 은 노드 사이에 통신이 불가능한 상황(파티션) 에서도 시스템이 계속 동작한다는 것을 의미합니다.

속성의 조합에 대한 예시

3개의 분산된 데이터베이스가 존재한다고 가정해 보겠습니다. 해당 분산 데이터베이스 시스템에서는 특정 서버에 쓰기 작업이 발생하면 나머지 서버에 데이터가 전파됩니다. 이때, 만약 A 파티션(1대의 노드), B 파티션(2대의 노드)으로 네트워크가 분할되었다면 이때 파티션 간 노드들은 서로 통신할 수 없기 때문에 데이터 전파가 불가능합니다.

CA 시스템은 일관성과 가용성을 지원하며 분할 내성을 희생합니다. 하지만, 통상적으로 네트워크 장애는 피할 수 없는 일로 여겨지므로 분산 시스템에서 분할 내성은 희생하기 어렵습니다. 따라서 실세계에 CA 시스템은 존재하지 않습니다.

그러면 CP 혹은 AP 시스템이 현실적인 대안이 될 수 있습니다. CP 시스템은 파티션이 발생한 상황에서 파티션이 해결되기 전까지 다른 데이터베이스의 연산을 중단시켜 일관성을 지키고 가용성을 희생합니다.

반면, AP 시스템은 파티션 문제가 발생해도 읽기 및 쓰기 작업을 중단하지 않습니다. 이 경우 일관성은 희생되지만 파티션 문제가 해결되는 경우 동기화 작업을 수행하여 최종적인 일관성을 보장할 수 있습니다.

추가 학습 자료

728x90
반응형

댓글