먼저 짚고 갈 것은 CAP Theorem에 대한 번역입니다. 버클리 대학교의 명예 교수인 에릭 브루어(Eric Allen Brewer)는 1998년 가을에 CAP 원칙을 소개하였습니다. 당시에는 이론으로서 발표되었으나 2002년에 MIT 교수인 낸시 린치(Nancy Ann Lynch)와 세스 길버트(Seth Gilbert)에 의해 공식적으로 증명되었습니다. 이로써 CAP Theorem이라 명명되었습니다. Theorem은 증명된 이론으로 한국어로 번역하자면 '정리'라 할 수 있습니다.
CAP 이론, CAP 정리, CAP 원칙 등 다양한 명칭으로 알려졌지만, 본질을 훼손하는 명칭이 아닌 이상 특정 용어를 강요할 필요는 없습니다. 본 블로그에서는 'CAP 원칙'을 사용하기로 합니다.
CAP 원칙을 이해하기 위해 C - A - P가 의미하는 바를 설명하겠습니다.
· Consistency - 읽기 요청 시 읽은 데이터는 모두 최신이어야 하며 그렇지 않으면 오류로 간주
· Availability - 모든 경우에 응답을 받지만, 최신 데이터가 아닐 수 있음을 가정
· Partition tolerance - 노드 간 응답이 없거나 늦더라도 시스템은 운영을 계속
위의 그림처럼 C - A - P는 어떤 경우에도 세 개의 특성을 모두 충족할 수 없습니다. 그러므로 조합의 경우가 CA, CP, AP만 존재합니다. Cassandra, Oracle 등 모든 DB가 C - A - P 중 일부만을 충족합니다. 예를 들어 AP를 충족하는 DB는 Dynamo, Cassandra, CouchDB가 있으며, CP는 BigTable, HBase, MongoDB, Redis, CA는 기존의 RDBMS가 있습니다. 이렇게 DB마다 C - A - P 중 일부의 특성만을 충족하기 때문에 DB의 선정 시 필요한 특성이 무엇인지 고려해야 합니다.
'NoSQL' 카테고리의 다른 글
No Single Point Of Failure (0) | 2020.08.10 |
---|---|
Scalability (1) | 2020.08.10 |
NoSQL, Column Family (0) | 2020.08.10 |
NoSQL, Document (0) | 2020.08.10 |
NoSQL, Key: Value (0) | 2020.08.10 |