티스토리 뷰
CAP 정리
분산 시스템의 유형을 정의하는 특성 3가지를 의미한다.
이 분산 시스템은 이 3가지 특성중 2가지만 제공할 수 있다고 한다.
CAP의 3가지 특성
- 일관성 ( Consistency )
- 가용성 ( Availability )
- 파티션 허용 ( Partition tolerance )
분산 시스템 이란?
동시에 둘 이상의 노드에 데이터를 저장하는 네트워크를 의미한다.
일관성 ( Consistency )
- 어떤 노드에 연결 됐는지와 상관 없이 모든 노드에서 동일한 데이터를 볼 수 있음을 의미한다.
- MongoDB의 경우 일관성을 보장하기 위해 쓰기 작업은 Master Node에만 가능 하도록 하여, 일관성을 유지하고 있다. 반대로 CasandraDB의 경우 Master와 Slave를 구분하지 않아 Node별로 동시간대에 다른 응답을 주는 경우가 생긴다.
가용성 ( Availability )
- 하나 이상의 노드가 중지해도 클라이언트가 응답을 받을 수 있다.
- MongoDB의 경우 Master Node가 죽었을 때, 마스터를 선출하는 작업이 필요하다 보니 장애 복구에 시간이 걸리고 수초간 응답을 받을 수 없는 상태가 된다. 따라서 가용성을 보장하지 않는다고 볼 수 있다. 반대로 Casandra의 경우 Master와 Slave를 구분하지 않기 때문에 어떤 노드가 중지해도 응답을 받을 수 있다.
파티션 허용 ( Partition tolerance )
- 노드간 연결(통신)이 단절되어도 클러스터가 계속 작동해야 한다.
- MongoDB 나 Casandra DB 모두 노드간의 통신이 불안정 해도 정상 작동한다.
CAP 로 표현하는 서비스 유형
CP
가용성을 희생하여 일관성과 파티션 허용을 취하는 방식으로 MongoDB가 대표적이다. MongoDB는 Master DB가 죽게되면, Slave들 중 Master 선정이라는 장애 복구 과정을 거쳐 정상 상태로 돌아온다. 다만 이러한 장애 복구 과정에 수 초가 들어 해당 시간동안 가용한 상태를 유지하지 못한다.
AP
일관성을 희생하여 가용성과 파티션 가능이라는 장점을 취하는데, 카산드라가 대표적이다. 카산드라는 Master Node와 Slave Node를 나누지 않고 쓰기 작업을 하다보니 동시간대 서로 다른 노드를 조회할 때 다른 결과 값을 반환할 수 있다.
참조
https://www.ibm.com/kr-ko/cloud/learn/cap-theorem
https://d2.naver.com/helloworld/1039
'DataBase' 카테고리의 다른 글
인덱스 키의 빈번한 Update로 발생할 수 있는 오버헤드 (0) | 2022.10.13 |
---|---|
MySQL과 Redis (0) | 2022.10.10 |
Nested (Loop) Join 과 Hash Join (0) | 2022.08.23 |
샤딩(Sharding)이란? (0) | 2022.07.27 |
트랜잭션 ( Transaction ) 이란? (0) | 2022.07.23 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 장애 해결기
- 외부 단편화
- 수직 분할
- 동적 타입 언어
- 수평 분할
- 정적 타입 언어
- java
- pass by reference
- Memory Fragmentation
- 클린 아키텍처
- Sticky Session
- pass by value
- ATDD
- 컴포짓 패턴
- RestAssured
- 메모리 파편화
- 뾰족함
- Object Pool
- 육각형 아키텍처
- pool
- 세션 불일치
- 내부 단편화
- 객체 풀
- 동적 디스패치
- OOP
- 메모리 단편화
- SpringBoot 2.2
- Clean Architecture
- Session
- multimap
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함