CAP

CAP 정리는 분산 시스템에서 아래 세 가지 속성 중 두 가지만 보장할 수 있다는 이론이다.

  • 일관성(Consistency): 분산 시스템에 접속하는 모든 클라이언트가 동일한 데이터를 보는 것

  • 가용성(Availability): 일부 노드에 장애가 발생하더라도 항상 응답을 받을 수 있는 것

  • 파티션 감내(Partition Tolerance): 두 노드 사이에 통신 장애가 발생(=파티션)하더라도 시스템이 계속 동작하는 것

세 가지 중 두 가지를 충족하게 되면 나머지 하나가 반드시 희생되는데, 어느 두 가지를 만족하느냐에 따라 CP, AP 시스템으로 나뉜다. (CA 시스템은 파티션 감내를 지원하지 않는 시스템인데, 네트워크 장애는 피할 수 없는 일이기 때문에 반드시 감내할 수 있도록 설계되어햐므로 실제로 존재하지 않는다.)

분산 시스템에서 데이터는 보통 여러 노드에 복제되어 보관되는데, 이상적인 상황에서는 네트워크 파티션되는 상황이 발생하지 않아 모드 노드에서 동일한 데이터를 보게 된다. 하지만 네트워크 파티션 상황이 발생하면 일관성과 가용성 사이에서 하나를 선택해야 하는데, CP와 AP 시스템은 각각 다음과 같은 특징을 가지게 된다.

  • CP 시스템

    • 서버 사이에 생길 수 있는 데이터 불일치 문제를 피하기 위해 쓰기 연산 중단

    • 연산을 중단해야 하므로 가용성이 떨어짐

  • AP 시스템

    • 다른 데이터를 반환할 위험이 있더라도 읽기 연산 허용

    • 데이터 불일치 문제가 발생할 수 있음

참고자료

Last updated

Was this helpful?