CAP 이론에서 CAP는 다음과 같이 분산 데이터베이스 시스템의 세 가지 속성인 일관성(Consistency), 가용성(Availability), 파티션 허용성(Partition tolerance)를 나타낸다,

속성 설명
일관성 모든 요청은 최신 데이터 또는 에러를 응답받는다.
가용성 모든 요청은 정상 응답을 받는다.
파티션 허용성 노드간 통신이 실패하는 경우라도 시스템은 정상 동작 한다.

(주의) 여기서 말하는 일관성은 ACID의 일관성과 다르다.

CAP 의 핵심

CAP 이론에 따르면 분산 데이터베이스 시스템은 네트워크 파티션이 발생하였을 때 세 가지 속성 중 두 가지만 만족할 수 있다.

세 가지 속성 중 두가지를 만족하는 시스템

  • CA(Consistency-Availablility)
  • CP(Consistency-Partition tolerance)
  • AP(Availability-Partition tolerance)

CAP 이론은 위와 같이 세 종류의 시스템으로 나뉘지만 CAP이론은 네트워크 파티션 상황을 가정하므로 CA 시스템은 있을 수 없다. CA 시스템이 가능하려면 네트워크 파티션이 없어야 한다. 하지만, 네트워크 파티션이 없으면 CAP이론 자체가 쓸모가 없고, 네트워크 파티션은 어떤 이유에서든지 발생할 수 있다.

분산 시스템에서 노드끼리 데이터를 주고 받을 때 타임아웃이 발생하는 모든 경우를 네트워크 파티션으로 볼 수 있다.
여기서 타임아웃은 하드웨어 문제 뿐만 아니라 Java의 GC등 다양한 이유로 발생할 수 있따.

CAP 이론 논란

Reference

  • http://happinessoncode.com/2017/07/29/cap-theorem-and-pacelc-theorem/
  • https://okky.kr/article/324449