태그 보관물: cap

NOSQL 정리

발표를 위해서 인터넷과 책등의 자료를 통해서 만든 발표자료입니다.
준비기간이 좀 짧아서 내용은 충실하지 못하지만, 그래도 읽어보실 분은 보세요..ㅋㅋ
대략적으로 아래에 대한 내용으로 구성이 되어 있습니다.
1.정의
2.특징
3.배경
3.1이론적 배경
3.2환경적 배경
3.3기술적 배경
4.Data Model별 분류
5.Q&A

cfile3.uf.18569E1D4C3306E146AA89.pdf

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