[분산시스템]CAP 이론이란? PACELC 이론이란? (feat. 블록체인)

두지·2023년 3월 30일
0
post-thumbnail
post-custom-banner

CAP이론

CAP 이론은 분산 컴퓨팅 시스템에 바탕으로, 성능과 안정성 간의 tradeoff를 설명하는 이론이다.

먼저,CAP 이론을 설명하기 전! 각각 CAP 약자를 설명하겠다!

Consistency(일관성) : 모든 클라이언트가 같은 시간에 같은 데이터를 볼 수 있도록 하는 속성이다. 즉, 하나의 클라이언트가 데이터를 변경하면, 변경된 데이터를 다른 모든 클라이언트가 동일하게 볼 수 있어야한다.

Availability(가용성) : 죽지 않은 상태의 모든 노드는 클라이언트에게 항상 정상 처리 응답을 보애주어야 한다는 것을 의미한다. 모든 클라이언트 요청에 대해 언제나 응답할 수 있는 속성이다. 즉, 시스템이 언제든지 사용가능해야하고 작동해야한다. 시스템에 문제가 생겨 올바른 처리 응답을 하지 못한다면 그건 가용성을 보장 하지 못한다는 의미이다.

Partition Tolerance(분할 허용) : 네트워크 분할 또는 일시적인 통신 오류가 발생하더라도 시스템은 계속해서 작동할 수 있는 속성이다. 분할 허용은 시스템의 안정성과 관련있다. 이것은 마치 클러스터가 여러 대 동작하고 있을 때, 해당 클러스터 사이에 접속이 끊어져 서로 통신을 할 수 없는 상황에서도 시스템이 잘 동작해야 한다는 것이다.

CAP 이론은 이런 세가지 속성 중에 두 가지만 동시에 만족시킬 수 있다는 것이다.
즉 분할 허용성은 모든 분산 시스템에 필요한 속성인데, CP 또는 AP만 만족 할수 밖에 없다.

CA : Consistency(일관성) + Availability(가용성)

  • 데이터에 대한 강한 신뢰를 주지만 네트워크 문제가 생길 시 전체 시스템 중단으로 이어진다. 그 이유는 여러대 노드중에 하나라도 연결이 끊기면 모든 노드는 일관성과 가용성을 지키기 위해 노드에 접근을 하지 못하게 할것이다.

장점 : 데이터의 가용성이 높아져서 시스템이 언제나 사용이 가능하다. 데이터 변경이 한 노드에 일어날 경우 모든 노드에 반영되기 때문에, 데이터의 정합성과 신뢰성을 보장할 수 있다.
단점 : 네트워크 지연이 발생할 때 일관성을 유지하기 위해서 모든 노드간의 데이터 동기화 시간이 필요하여 성능에 영향이 미친다. 일부 노드가 장애가 발생할 경우엔 시스템 가용성이 떨어지거나 데이터 일관성에 문제가 발생할 수 있다.

주로 금융 업무, 거래 처리같은 일관성과 정확성이 중요한 서비스에 적합하다.

CP : Consistency(일관성) + Partition Tolerance(분할 허용)

  • 일관성과 분할 허용을 충족하기 때문에 높은 확장성을 가지고 있다. 어떤 노드에서 문제가 발생하면 해당 노드를 제외시켜 일관성을 유지한다.

장점 : 데이터의 일관성을 유지하기 때문에, 데이터 정합성은 높다. 일관성을 유지하기 위해 노드간의 통신이 빈번하게 일어나므로 데이터 손실이 일어날 가능성이 작다.

단점 : 어떤 노드에서 문제가 발생하면, 해당 노드를 제외해야하므로 가용성이 떨어진다.데이터 일관성을 위해 추가적인 리소스가 필요므로 시스템 성능이 저하될 가능성이 크다.

AP : Availiability(가용성) + Partition Tolerance(분할 허용)

  • 시스템이 언제나 가용 가능하며, 네트워크 상황이 불안정하거나 서버 장애가 발생해도 시스템이 계속 작동할 수 있다. 또한 시스템 내부에서 발생한 데이터 변경 요청은 가능한 모든 노드에 반영되지만, 일관성은 보장 못한다.

장점 : 시스템이 언제나 가용하며, 장애 상황이 와도 시스템이 계속 작동이 가능하다. 네트워크 상황이 불안정해도 시스템이 작동 가능하다.

단점 : 데이터의 일관성이 보장되지 않으므로 일부 사용자는 다른 사용자와 다른 데이터를 볼 수 있다. 여러 노드 간의 데이터 동기화 시간이 필요하지 않으므로 빠른 응답 시간을 보장할 수 있지만, 데이터 일관성에는 손실이 발생 할 수 있다.

주로 AP는 SNS, 채팅, 게임 등 빠른 응답이 필요한 서비스에 사용한다.

결론 : CAP이란 "Consistency, Availability, Partition Tolerance"의 약어로, 분산 시스템에서 중요한 세 가지 특성을 나타내는 이론이다. 이 세 가지 특성은 분산 시스템의 설계와 운영에서 상호 배타적인 관계에 있다, 어떤 분산 시스템에서 두 개 이상의 특성을 모두 만족시키는 것은 불가능하다. 따라서 분산 시스템을 설계할 때는 이러한 특성을 적절히 조절하여 시스템의 요구사항에 맞게 선택해야 한다.

PACELC이론

PACELC 이론은 분산 시스템에서 데이터 일관성과 가용성 간의 상충 관계를 설명하는 이론이다. 이 이론에 따르면, 분산 시스템은 다음과 같은 상황에서 선택을 해야 한다.

  • P (Partition tolerance): 분산 시스템 내의 노드들이 서로 통신 불가능한 상황(네트워크 분리 등)이 발생할 경우, 그 상황을 감지하고 적절한 조치를 취하는 능력이다. 즉, 네트워크 분리 상황에서도 시스템은 동작해야 한다.
  • A (Availability): 분산 시스템 내의 노드들 중 일부가 고장나거나 서비스를 중지시키는 상황이 발생해도, 전체 시스템은 계속해서 동작할 수 있는 능력이다. 즉, 언제나 서비스를 제공할 수 있어야 한다.
  • C (Consistency): 분산 시스템 내의 노드들이 서로 다른 버전의 데이터를 가지고 있을 경우, 일관성 있는 데이터를 유지하는 능력이다. 즉, 모든 노드에서 같은 데이터를 보장해야 한다.
  • E (Eventual consistency): 동시성이 보장되지 않는 데이터 변경 작업에 대해, 어느 정도 시간이 지나면 해당 변경 사항이 모든 노드에 반영된다는 것을 보장하는 능력입니다. 즉, 시간이 지나면 모든 노드가 같은 데이터를 가지게 된다.
  • L (Latency): 분산 시스템의 각 노드들 간의 통신 지연 시간입니다. 즉, 모든 노드가 동일한 속도로 동작할 수 있어야 한다.
  • C (Communication cost): 분산 시스템 내의 노드들 간의 통신 비용입니다. 즉, 최소한의 비용으로 통신이 이루어져야 한다.

PACELC 이론은 이러한 상황에서, 분산 시스템이 어느 한 가지에 더 중점을 둬야 하는지를 선택하도록 안내한다. 예를 들어 P와 L에 더 중점을 둔다면, 시스템이 네트워크 분리 상황에서도 동작 가능하면서, 각 노드들 간의 통신 지연 시간을 최소화하는 방향으로 시스템을 설계할 수 있다.

블록체인 시스템에서는?

CAP이론의 관점에서는 블록체인은 가용성과 분할 허용을 충족하는 AP 시스템이다.
PACELC이론의 관점에서는 블록체인은 지연시간과 가용성을 중시한 분산 시스템이다.

profile
인생은 끝이 없는 도전의 연속입니다. 저는 끝 없이 함께 새로운 도전을 합니다.
post-custom-banner

0개의 댓글