CAP 정리(Theorem)

CAP 정리(Theorem)는 분산 시스템(Distributed System)이 가질 수 있는 3가지의 특성(CAP)이다. Wikipedia에 정리된 CAP 정리의 CAP에 대한 정의는 다음과 같다.

Consistency : all nodes see the same data at the same time
Availability : node failures do not prevent survivors from continuing to operate
Partition Tolerance : the system continues to operate despite arbitrary message loss

위 CAP의 정의에서, C, A는 알겠는데, 부분 결함허용(Partition Tolerance)는 생소하다. 부분 결함허용(Partition Tolerance)에 대해서는, http://devblog.streamy.com/tag/partition-tolerance/에서 자세히 설명하고 있고, 내용은 아래와 같다.

Partition tolerance refers to the ability for a system to continue to operate in the presence of a network partitions.  For example, if I have a database running on 80 nodes across 2 racks and the interconnect
between the racks is lost, my database is now partitioned. If the system is tolerant of it, then the database will still be able to perform read and write operations while partitioned. If not, often times the cluster is completely unusable or is read-only.

이 내용은 네트워크의 문제 등으로 인해, 서비스하는 노드가 분리(partition)되서 문제가 생겨도, 잘 동작(tolerance)하는 특성을 말하고 있다. 분산 시스템은 위 CAP 정리의 3가지 특성을 다 만족시킬 수 없으므로, 한가지 특성은 포기해야 한다고 하는 Brewer’s CAP Theorem는 꼭 읽어보면 좋겠다. 이 내용은 분산 시스템에 대한 기본 이론이라서, 개별 특성에 대해서는 알아둘 필요가 있다.

* 레퍼런스
Brewer’s CAP Theorem

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.