[DataBase] CAP 정리란?

2025. 2. 12. 16:22·Back-end
반응형
매일메일을 통한
하루 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' 카테고리의 다른 글

[Redis] RedisReadOnlyException: READONLY You can't write against a read only replica.  (0) 2025.04.21
[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' 카테고리의 다른 글
  • [Redis] RedisReadOnlyException: READONLY You can't write against a read only replica.
  • [Back-End] 캐시 스탬피드 현상이란?
  • [Back-End] Cache Aside (Lazy Loading)이란?
  • [DataBase] Transaction - ACID란?
류건
류건
개발 일지
  • 류건
    건's Dev
    류건
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • Back-end (55)
        • Spring (30)
        • Nest.js (3)
        • Next.js (2)
        • Node.js (3)
      • Infra & Cloud (20)
        • Cloud Computing (6)
        • Docker (3)
        • AWS (7)
      • Java (2)
      • Computer Science (12)
        • Computer Network (0)
        • Operating System (0)
        • 정보 보호와 시스템 보안 (12)
      • 회고록 (1)
        • 우아한테크코스 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Spring
    node.js
    WebClient
    Webflux
    ssl
    nginx
    Lock
    보안
    티스토리챌린지
    aws
    Spring Boot
    JWT
    CI/CD
    오블완
    Kafka
    어노테이션
    Nest.js
    ddl-auto
    Github Actions
    CD
    정보보호
    db
    https
    JPA
    고가용성
    CORS
    EC2
    public key
    Docker
    express.js
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
류건
[DataBase] CAP 정리란?
상단으로

티스토리툴바