CAP Theorem
CAP Theorem
CAP Theorem이란
분산 데이터 시스템이 다음과 같은 세 조건을 한 번에 만족하지 않는다는 정리.
- Consistency
- Availability
- Partition tolerance
Consistency
모든 읽기는 가장 최근에 기록된 내용 혹은 오류를 받음.
Availability
모든 요청은 오류가 없는 응답을 받지만, 가장 최근에 기록된 내용이라는 보장은 없음.
Partition tolerance
네트워크가 한 노드에서 다른 노드로 보낸 임의의 메시지를 잃어버리는 것(단절)을 허용. 단절을 해결하기 위해 network partition 사용.
Network Partition
네트워크의 오류로 인해 네트워크를 독립적인 서브넷으로 분리하는 것.
Explanation
어떤 시스템도 네트워크 장애로부터 안전하지 않으므로 network partition을 허용해야 함. 이 과정에서 consistency와 availability중 하나를 선택해야 함.
- Consistency를 선택하면 network partitioning으로 인한 에러 혹은 time out 발생 가능.
- Availability를 선택하면 query를 항상 처리하지만 network partitioning으로 인해 오래된 데이터 반환 가능.
- Partition을 허용하지 않는 경우 consistency와 availability 둘 다 만족 가능.