반응형
매일메일을 통한
하루 1개 CS 공부하기
CAP 정리
Distributed DataBase System이 CAP 중 2개의 속성만을 제공할 수 있다는 이론
- Consistency(일관성)
- 모든 Client의 요청은 어느 노드에 연결되어도 같은 데이터를 볼 수 있음
- Availability(가용성)
- 노드 일부에 문제가 발생하여도 시스템은 클라이언트의 모든 요청에 유효한 응답을 전해줄 수 있어야 함
- Partition Tolerance(분할 내성)
- 노드 사이에 통신이 불가능한 상황(파티션)에서도 시스템이 계속 동작
3가지 속성을 모두 만족하는 분산DB 시스템은 존재하지 않는다
💡 각 속성 별 조합 예시
3개의 분산 DB가 존재한다고 가정해보자.
해당 분산 DB System에서는 특정 서버에 Write 작업이 발생하면, 나머지 서버에 데이터가 전파된다.
이때, 만약 A 파티션 (1대의 노드), B 파티션 (2대의 노드)으로 네트워크가 분할되었다면 이때 파티션 간 노드들은 서로 통신할 수 없기 때문에 데이터 전파가 불가능 하다.
- CA 시스템
CA 시스템은 일관성과 가용성만을 지원한다. 통상적으로 네트워크 장애는 피할 수 없기에, 분할 내성을 희생하기가 어렵다.
따라서, CA 시스템은 실상 존재하지 않는다.
- CP 시스템
파티션이 발생한 상황에서 CP 시스템은 파티션이 해결되기 전까지 다른 DB 연산을 중지시켜 Consistency를 지키고 Availability를 희생시킨다.
- AP 시스템
AP 시스템은 파티션 문제가 발생해도 R/W 작업을 중단하지 않는다.
일관성은 희생되지만, 파티션 문제가 해결되는 경우 동기화 작업을 수행하여 최종적인 일관성을 보장할 수 있다.
반응형
'Back-end' 카테고리의 다른 글
[Back-End] 캐시 스탬피드 현상이란? (0) | 2025.02.10 |
---|---|
[Back-End] Cache Aside (Lazy Loading)이란? (0) | 2025.02.03 |
[DataBase] Transaction - ACID란? (0) | 2025.02.03 |
[Back-End] 로드밸런싱 톺아보기 (0) | 2025.01.30 |
[Back-End] DB Replication이란 무엇인가. (0) | 2025.01.24 |