-
CAP Theorem: CAP 이론TECH/CS 2023. 8. 11. 14:16
컴퓨터 과학 이론에서 CAP Theorem은 모든 분산 데이터 저장소는 아래 세 가지 요구사항 중 두 가지 만을 만족시킬 수 있다는 것을 의미한다.
- Consistency (일관성) : 분산 시스템에 접속하는 모든 클라이언트는 어떤 노드에 접속했느냐에 관계없이 언제나 같은 데이터를 보게 되어야 한다.
- Availability (가용성): 분산 시스템에 접속하는 클라이언트는 일부 노드에 장애가 발생하더라도 항상 응답을 받을 수 있어야 한다.
- Partition tolerance (파티션 감내): 파티션(두 노드 사이의 통신 장애) 감내는 네트워크에 파티션이 생기더라도 시스템은 계속 동작하여야 한다는 것을 뜻한다.
네트워크 파티션이 발생하면, 다음 중 하나를 결정해야 한다.
- 현재 동작을 취소하여 가용성을 낮추지만, 일관성을 높인다.
- 현재 동작을 계속하여 가용성을 제공하지만, 불일치의 위험을 감수한다.
즉, 네트워크 파티션이 발생하면 일관성과 가용성 사이에 선택을 해야 한다.
설명
어떤 분산 시스템도 네트워크 장애로부터 자유롭지 않다. 따라서 일반적으로 네트워크 파티션에 대해서 감내할 수 있어야 한다. 파티션이 발생할 경우 두 가지 중 하나를 선택할 수 있다 -> 일관성 or 가용성
- 일관성을 택할 경우
- 어떤 정보가 네트워크 파티션으로 인해 최신임을 보장할 수 없을 경우 에러나 타임아웃을 응답한다.
- 가용성을 택할 경우
- 네트워크 파티션으로 인해 최신의 데이터임을 보장할 수 없을 때도 시스템은 항상 쿼리를 처리하고 가능한 가장 최신 버전의 정보를 응답하려고 한다.
전통적인 ACID를 보장하는 데이터베이스는 가용성 대신 일관성을 택했고, NoSQL에서 흔히 볼 수 있는 BASE 원칙에 기반한 시스템은 일관성 보단 가용성을 택했다.
출처
https://en.wikipedia.org/wiki/CAP_theorem
가상 면접 사례로 배우는 대규모 시스템 설계 기초 6장