
CAP이론은 분산 데이터 베이스 시스템을 바탕으로 네트워크 분할 허용이 이루어지는 경우에 일관성, 가용성을 동시에 만족하는 것을 불가능하며, 일관성과 가용성 중 하나만 가질 수 있다는 이론이다.
[CAP 요소]
[CAP의 상과관계]
CA : 일관성과 가용성을 충족하지만 분할 허용을 충족하지 못한다. 데이터에 대한 강한 신뢰를 부여할 수 있지만, 네트워크 문제가 시스템의 중단을 야기할 수 있다.
CP : 일관성과 분할 허용을 충족하지만 가용성을 충족하지 못한다. 높은 확장성으로부터 성능을 확보할 수 있지만 일부 데이터가 비가용할 수 있다.
AP : 가용성과 분할 허용을 충족하지만 일관성을 충족하지 못한다. 부정확한 응답을 허용하는 고성능 시스템에 적합하다.
네트워크 분할 허용
: 노드 간의 통신이 실질적으로 어려운 상태에 도달하여 네트워크가 사실상 분할 되었을 떄도 네트워크가 정상적으로 작동할 수 있는 경우를 의미한다. 최종 사용자가 하나의 분산 네트워크가 여러가지 노드로 나뉘었다는 사시을 인지하지 못하도록 해야 한다는 것이다. 분산 네트워크가 단일 네트워크 처럼 보여야 유의미하다.
분산형 네트워크에서는 네트워크 분할 허용은 기본값이다.
일관성
: 모든 요청은 최신 데이터 또는 에러를 응답 받는다. 여기서는 원자성을 일관성의 기준으로 설정한다. 그리고 증명을 위해 읽기와 쓰기 권한만을 싱글 스레드로 순차적으로 처리하는 간단한 서비스로 가정하였다. 한 노드에서 특정 데이터의 처리가 완료되었을 때 다른 노드가 동시다발적으로 업데이트된 정보에 접근할 수 있어야 한다는 것이다.
가용성
: 정상적으로 이루어진 모든 요청은 정상적으로 작동하고 있는 모든 노드로부터 응답을 받을 수 있다.
높은 가용성을 시스템 자체가 모든 요청에 대한 정상적인 응답을 할 수 있다는 것을 전제한다. 따라서 모든 요청은 정상적으로 작동하고 있는 노드 중 일부만 응답받을 수 있어도 충분하다. 하나의 정상 노드만 응답해도 시스템은 가용이 가능하다고 말할 수 있기 떄문이다.
CAP에서 주장하는 가용성은 우선 오류가 없는 노드가 발송한 메시지는 오류가 없는 모든 노드로부터 응답을 받을 수 있어야 하고, 데이터 저장소에 대한 모든 동작이 오류가 없는 모든 노드로부터 성공적으로 리턴을 받아야 한다. 그리고 응답시간에 대해 고려하지 않는다.
CAP 이론의 가용성에 따르면 아무리 늦게 보내도 받기만 하면 충분하다.
CAP이론에 따르면 일관성과 가용성은 완전한 대립 관계에 있지만, 사실 완벽한 CP시스템과 AP 시스템은 쓸모가 없다. 그리고 완벽한 CA 시스템은 가질 수 없다.

실제로는 일관성과 가용성의 절충안에 해당하는 연속적인 중간 영역이 존재한다. 이러한 중간 영역을 고려하고 네트워크의 정상 상황과 분할 상황을 모두 담아낼 수 있는 표현법으로 PACELC 이론이 있다.

