새소식

반응형
DB/etc

CAP 정리(브루어의 정리)

  • -
반응형

Consistency, Availability, Partition tolerance

3가지를 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다는 정리. 

그림에서 가운데 영역에 들어가는 시스템은 존재할 수 없다.

출처:https://www.researchgate.net/figure/Visualization-of-CAP-theorem_fig2_282679529

 

각각의 요소들의 정의를 알아보자

  • consistency 일관성
    • 모든 노드가 같은 순간에 같은 데이터를 볼 수 있다
    • 모든 노드는 동일한 데이터를 동시에 본다. 추가 읽기를 허용하기 전에 여러 노드를 업데이트하여 일관성을 확보한다
    • 분산 시스템에 접속하는 모든 클라이언트는 어떤 노드에 접속했느냐와 관계없이 언제나 같은 데이터를 보게 되어야 한다
  • availability 가용성
    • 모든 요청이 성공 또는 실패 결과를 반환할 수 있다
    • 하나 이상의 노드가 작동 중지되어도 데이터를 요청하는 클라이언트는 반드시 응답을 받아야 한다
    • 분산 시스템의 작업 노드는 일부에 문제가 발생하여도 모든 요청에 대한 유효한 응답을 전해줄 수 있어야 한다
  • partition tolerance 분할 허용성
    • 메시지 전달이 실패하거나 시스템 일부가 망가져도 시스템이 계속 동작할 수 있다
    • 네트워크 분할이 발생하더라도 시스템은 계속 작동해야 한다

 

조합

  • CP (consistency+partition tolerance)
    • 가용성을 희생
    • 일관성, 분할허용 제공
    • 시스템 간 네트워크 분할이 발생한 경우 일관성을 유지하기 위해서 시스템 전체가 응답 불가 
    • 데이터의 일관성이 중요한 은행시스템에서 많이 사용 
  • AP (availability+partition tolerance)
    • 일관성을 희생
    • 가용성, 분할허용 제공
    • 시스템 간 네트워크 분할이 발생한 경우 가용성을 유지하기 위해서 이전의 데이터라도 응답 
    • 네트워크 장애 극복 이후에 데이터 업데이트 진행 
  • CA (consistency+availability)
    • 분할 허용성 희생
    • 절대로 장애가 나지 않는 네트워크 구성은 이 세상에 존재하지 않는다
    • 불가능한 조합 
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.