티스토리 뷰

DataBase

CAP 정리란?

Hero_O 2022. 8. 20. 22:21

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를 구분하지 않기 때문에 어떤 노드가 중지해도 응답을 받을 수 있다. 

카산드라

 

 

몽고 DB

 

 

 

 

파티션 허용 ( 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
댓글