CAP 정리란? 브루어의 정리란?

CAP 정리란? 브루어의 정리란?

CAP 정리
[그림 1] CAP 정리 ( 출처 : https://medium.com/nerd-for-tech/understand-cap-theorem-751f0672890e )

 

 

CAP 정리 또는 브루어(Brewer)의 정리는 다음과 같은 세 가지 조건을 모두 만족하는 분산 컴퓨터 시스템은 존재하지 않음을 증명한 정리이다.

 

  • 일관성(Consistency) : 모든 노드가 같은 순간에 같은 데이터를 볼 수 있다.
  • 가용성(Availability) : 모든 요청이 성공 또는 실패 등의 결과를 반환활 수 있다.
  • 파티션 허용(Partition tolerance) : 메시지 전달이 실패하거나 시스템 일부가 망가져도 시스템이 계속 동작할 수 있다.

위의 세 가지 조건의 첫 글자를 따서 CAP정리라고 부른다.

 

여기서 분산 시스템은 동시에 둘 이상의 노드(물리적 또는 가상머신)에 데이터를 저장하는 네트워크를 뜻한다.

 

세 가지 조건에 대해 더 자세히 알아보자면 다음과 같다.

 

일관성(Consistency)

일관성이란 어떤 노드에 연결되었는지와 무관하게 모든 클라이언트가 동시에 동일한 데이터를 볼 수 있음을 의미한다. 이 조건을 만족하려면, 데이터가 하나의 노드에 기록될 때마다 이 데이터는 쓰기가 '성공'으로 간주되기 전에 시스템의 다른 모든 노드로 즉시 전달되거나 복제되어야 한다.

 

 

가용성(Availability)

가용성이란 하나 이상의 노드가 작동 중지된 경우에도 데이터를 요청하는 클라이언트가 응답을 받을 수 있음을 의미한다. 다르게 말하자면, 분산 시스템의 모든 작업 중인 노드는 예외 없이 모든 요청에 대해 유효한 응답을 반환한다는 뜻이다. 

 

 

파티션 허용(Partition tolerence)

파티션이란 분산 시스템 내의 통신 단절, 즉 두 노드 간의 연결이 유실되거나 일시적으로 지연된 상태를 뜻한다. 파티션 허용이란 시스템의 노드 간에 다수의 통신 단절에도 불구하고 클러스터가 계속해서 동작해야 함을 의미한다.

 

 

CP, AP, CA 시스템

세 가지 조건을 모두 만족할 수는 없다고 했으므로, 현재 모든 분산 시스템은 셋 중 하나를 어느 정도 포기한 시스템이다.

이를 세 가지 유형으로 나눠볼 수 있다.

 

CP 시스템

CP 시스템은 가용성을 희생하면서 일관성과 파티션 허용을 제공한다. 두 노드 간에 파티션이 발생하면, 시스템은 파티션이 해결될 때까지 일관되지 않은 노드를 사용 불가능하게 해야 한다.

 

AP 시스템

AP 시스템은 일관성을 희생하면서 가용성과 파티션 허용을 제공한다. 파티션이 발생하면 모든 노드를 사용할 수 있지만, 파티션의 잘못된 끝에 있는 노드는 다른 데이터보다 이전 버전의 데이터를 반환활 수 있다. 파티션이 해결되면 AP 시스템은 일반적으로 시스템의 모든 불일치를 복구하기 위해 노드를 재동기화한다.

 

CA 시스템

CA 시스템은 모든 노드에서 일관성과 가용성을 제공한다. 그러나 시스템에 있는 두 노드 사이에 파티션이 있는 경우 이를 수행할 수 없으므로 결함 허용을 제공할 수 없다. 

* 실제 세계에서는 파티션(통신 단절)은 피할 수 없는 문제이다. 따라서 CA 시스템은 이론적으로만 존재한다. 

 

 

이러한 CAP 이론은 사실 모호한 부분이 많다. P에 대한 정의도 일관성이 부족하다. 

이에 대해 다음 글을 참고해 보자.

 

 

CAP Theorem, 오해와 진실

CAP Theorem은 분산시스템에서 일관성(Consistency), 가용성(Availability), 분할 용인(Partition tolerance)이라는 세 가지 조건을 모두 만족할 수 없다는 정리로, 세 가지 중 두 가지를 택하라는 것으로 많이 알

eincs.com

 

 

 


참고

 

1. https://ko.wikipedia.org/wiki/CAP_%EC%A0%95%EB%A6%AC

2. https://www.ibm.com/kr-ko/cloud/learn/cap-theorem

 

반응형

댓글

Designed by JB FACTORY