Light Blue Pointer
본문 바로가기
Developing/TIL(CS)

NoSQL의 CAP 이론(The CAP theorem)

by Greedy 2024. 5. 28.

CAP 이론

분산 데이터베이스 시스템의 기본 원칙

특히 NoSQL 데이터베이스와 관련이 깊다.

일관성 (Consistency, C)

모든 읽기 요청은 가장 최근의 쓰기 결과 또는 오류를 반환한다

분산 시스템의 모든 노드가 동일한 데이터를 동시에 볼 수 있다.

모든 클라이언트가 일관된 데이터를 보도록 보장한다

가용성 (Availability, A)

모든 요청(읽기 또는 쓰기)은 최신 데이터를 보장하지 않더라도 응답을 받는다

시스템은 항상 운영 상태를 유지하며 응답성을 갖는다.

장애가 발생하더라도 시스템은 요청을 처리한다(비록 반환된 데이터가 최신이 아닐 수 있지만).

분할 허용성 (Partition Tolerance, P)

네트워크 분할로 인해 일부 노드가 통신할 수 없게 되더라도 시스템은 계속 작동한다

시스템은 임의의 네트워크 장애를 처리할 수 있다.

분할 상태에서는 일관성과 가용성 중 하나를 선택해야 한다.

CAP 이론의 Trade-offs

CAP 이론에 따르면, 분산 시스템은 세 가지 보장 중 두 가지만 동시에 제공할 수 있다

CP (일관성 및 분할 허용성)

일관성 O

분할 허용성 O

가용성 X

예시

네트워크 분할 시, 데이터의 일관성을 유지하기 위해 시스템 사용 불가능

일관성이 중요한 은행 시스템으로 일시적인 가용성 저하가 수용 가능한 경우.

AP (가용성 및 분할 허용성)

일관성 X

분할 허용성 O

가용성 O

예시

네트워크 분할 시, 시스템은 계속 작동하고 요청을 처리하지만 일부 데이터는 일관되지 않을 수 있다

가용성이 중요한 온라인 소매 시스템으로 일관성이 시간이 지나면서 보장될 수 있는 경우

CA (일관성 및 가용성)

일관성 O

분할 허용성 X

가용성 O

예시

네트워크 분할이 발생하지 않는 환경에서만 가능하며, 본질적으로 단일 노드 데이터베이스에서 실현 가능

네트워크 분할이 문제되지 않는 단일 데이터 센터 내의 시스템.

NoSQL 데이터베이스와 CAP 이론

NoSQL 데이터베이스는 분산 특성으로 인해 트레이드오프를 선택해야 한다

Cassandra (AP)

가용성과 분할 허용성을 우선시.

데이터는 시간이 지나면서 일관성을 갖추게 된다

MongoDB (CP)

일관성과 분할 허용성을 강조한다.

네트워크 분할 시 일관성을 보장하기 위해 일부 작업이 제한될 수 있다.

HBase (CP)

일관성과 분할 허용성에 중점을 두어 네트워크 분할 시 가용성을 희생하며 강력한 일관성을 보장한다

Redis (단일 노드 - CA)

단일 노드 인스턴스로 배포될 때 일관성과 가용성을 제공하지만 네트워크 분할을 허용할 수 없다

 

'Developing > TIL(CS)' 카테고리의 다른 글

OOP의 SOLID 원칙  (2) 2024.05.28
RDBMS의 ACID 트랜잭션과 NoSQL의 BASE 속성  (0) 2024.05.28
클러스터링과 샤딩의 차이점  (0) 2024.05.28
NoSQL과 RDBMS의 차이  (0) 2024.05.28
Creational patterns  (0) 2024.04.18