CAP 이론
- 분산컴퓨팅 환경은 일관성, 가용성, 분단 내성이라는 3가지 특징을 가지고 있으며, 이중 두가지만 만족할 수 있다는 이론
- 분산시스템에 내재하는 제약사항을 분석한 이론
- 일관성(Consistency): 모든 노드들은 같은 시간에 동일한 항목에 대하여 같은 내용의 데이터를 사용자에게 보여준다
- 가용성(Availability): 모든 사용자들이 읽기 및 쓰기가 가능해야 하며, 몇몇 노드의 장애 시에도 다른 노드에 영향을 미치면 안된다.
- 분단 내성(Partition tolerance): 클러스터가 여러 대 동작하고 있을 때, 해당 클러스터 사이에 접속이 단절되어 서로 통신을 할 수 없는 상황 에서도 시스템이 잘 동작해야 한다.
Pick Two
- C+A
- P를 포기 -> 네트워크 통신장애를 허용하지 않음
- 메시지 손실을 방지하는 강한 신뢰형
- RDBMS, Oracle..
- C+P
- A를 포기 -> 노드의 장애를 혀용하지 않음
- 데이터 보다는 성능이 중요한 퍼모먼스형
- MongoDB, BigTable..
- A+P
- C를 포기 -> 데이터의 일관성을 포기
- 일관성을 크게 요하지 않는 서비스에 적합
- DynamoDB, Cassandra..
SQL / NoSQL
-
관계형 데이터베이스(RDBMS)은 일관성(C)와 가용성(A)를 챙기고, 분단 허용성(P)를 포기하는 형태인 CA시스템이기 때문에 다량의 서버를 운용하는 클러스터링에 적합하지 않는다.
-
대부분의 NoSQL 데이터베이스는 CA가 아닌 CP나 AP시스템이다.