Skip to content

CAP #152

@skarltjr

Description

@skarltjr

CAP

- C : consistency(일관성)
- A : availability(가용성)
- P : partition tolerance(분할 내구성)
  • network로 연결된 분산 데이터 저장 시스템은 C A P 중 2가지 특성만을 충족할 수 있다.
  • 3가지 모두를 충족할 수 없다.

Consistency - 일관성

  • 모든 읽기에 대해 모든 db노드가 항상 동일한 데이터를 반환해야한다.
- DB가 두 개의 A&B instance를 유지하고 있다면 어떤 인스턴스에 읽기 요청을 보내더라도 동일한 값을 반환해야한다.
- 즉 A에서 update가 발생한다면 B는 해당 데이터 read 요청에 대해 A와의 동기화 후 반환해야한다.

Availability - 가용성

  • 클러스터의 일부 노드에서 장애가 발생하더라도 read & write가 정상 수행되어야한다.

Partition Tolerance - 분할 내구성

  • 분할 내구성이랑 DB노드간 통신 장애가 발생하더라도 동작해야한다.
- A & B라는 DB 인스턴스가 존재.
- 이때 A와 B 사이 네트워크 장애가 발생
- 유저가 A db에 쿼리
- A 인스턴스는 B의 상태를 모르더라도 동작해야한다.
  • 그런데 P는 네트워크 장애를 용인하느냐를 다루지만 사실상 네트워크 장애는 무조건 발생한다.
  • 결국 C와 A 사이의 선택이다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions