CAP theorem(정리)는 분산 시스템이 가지는 3가지 특성 중 최대 2가지만 가질 수 있다는 정리이다.
특히 네트웍 단절이 발생하면 일관성과 가용성을 모두 보장하는 것은 불가능하며, 일관성이나 가용성 중에서 한 가지를 선택해야 한다. 그래서 언제든 네트웍 단절이 발생할 수 있는 분산 환경에서는 RDBMS의 대체품으로는 CP면에 위치한 시스템이나 AP면에 위치한 시스템 중의 하나를 선택해야만 한다.
일반적인 RDBMS는 CA면에 위치한 시스템으로서, 일관성과 가용성을 보장하지만, 네트웍이 끊겨 분할되는 경우에 마스터 노드의 지위를 결정할 수 없어서 시스템이 제대로 기능하지 못하게 된다.
CP면에 위치한 시스템으로 HBase가 있는데, 일관성과 분할 내성을 가지고 있지만 가용성이 떨어지게 된다. 대규모 데이터 처리를 하는 도중에는 요청에 대해 응답을 하지 못하는 단점을 가지고 있어서 실시간 서비스에는 적합하지 않다.
AP면에 위치한 시스템으로 Cassandra가 있는데, 가용성과 분할 내성을 위해 일관성을 포기할 수 있도록 되어 있다. 네트웍 단절이 발생하면 각 파티션 내부에서는 데이터를 사용할 수 있지만 그게 최종 값임을 보장할 수는 없다.
RDBMS를 기반으로 하여 확장성(scaliability)을 제공하는 시스템으로 대체적으로 CP면에 위치한다.