[NoSQL] 데이타베이스 이야기 하면 나오는 CAP 란?


화살표는 신경 쓰지 맙시다..

Consistency : 일관성
  각각의 사용자가 항상 동일한 데이터를 조회한다.

Availability : 가용성
  모든 사용자가 항상 읽고 쓸 수 있다.

Partition Tolerance : 확장 가능성
  물리적 네트워크 분산 환경에서 시스템이 잘 동작한다.


기존의 RDBMS 로 칭해지는 데이타베이스들은 CA 에 취중합니다. 따라서 확장이 용이하지가 않고, 대신 최근 트렌드가 되고 있는 NoSQL 들은 기본적으로 P 의 성능이 좋습니다. 그래서 확장성은 기본입니다. 대신 C A 의 일부분을 희생합니다.

카산드라 (Cassandra) 는 AP 를 추구 하고, HBase 는 CP 를 추구합니다.

카산드라는 페이스북이 채택하고 개발해진 것으로 알려지고 유명해 졌는데요. Consistency 모델이 페이스북의 새로운 메시지 플랫폼을 구현하기에는 어렵다고 판단이 되서 , 새로운 메시지 플랫폼은 HBase 로 구현했다고 합니다. 즉 AP 대신 CP 로 페이스북의 데이타의 중요성에 대한 잣대가 이동한 것이지요.