2025-08-30 01:00

Tags: SQL

CAP 이론

  • 일관성 (Consistency):

    “모든 사용자는 언제나 같은 데이터를 본다.”

    • 모든 노드가 동시에 같은 데이터를 보여주는 것을 보장
    • 즉, 데이터베이스에 쓰기 작업이 발생하면, 이후의 모든 읽기 작업은 해당 쓰기 작업이 반영된 최신 데이터를 반환해야 한다.
  • 가용성 (Availability):

    “시스템은 언제나 정상적으로 응답한다.”

    • 모든 요청에 대해 시스템이 항상 응답하는 것을 보장
    • 일부 노드에 장애가 발생하더라도 서비스는 중단되지 않아야 한다.
    • 최신 데이터 아니어도 일단 오류 안보여주고 뭐라도 보여주는 거
    • 모든 요청은 시스템의 상태와 관계없이 유효한 응답을 받는다.
  • 분할 용인성 (Partition Tolerance):

    “네트워크가 끊겨도 시스템은 계속 동작한다.”

    • 노드 간 통신에 장애가 발생하여 네트워크가 두 개 이상으로 분리(분할)되더라도 시스템이 계속 동작하는 것을 보.
    • 현대의 분산 시스템에서는 네트워크 장애가 언제든 발생할 수 있으므로, 분할 용인성은 포기할 수 없는 가치.
    • 노드 간 메시지 손실이나 지연이 발생해도 시스템은 동작을 멈추지 않습니다.

CP (일관성 우선) 시스템: 정확성이 생명일 때

“데이터가 틀릴 바에는 차라리 응답하지 않겠다.”

AP (가용성 우선) 시스템: 중단 없는 서비스가 중요할 때

“데이터가 약간 틀려도 괜찮으니, 절대 멈추지 마라.”

시스템 분류우선순위동작 방식대표 사례
CPC > A네트워크 분할 시, 데이터 일관성을 위해 일부 노드의 응답을 중단.MongoDB, Redis, HBase
APA > C네트워크 분할 시, 각 노드가 독립적으로 응답하여 가용성을 유지.Cassandra, DynamoDB, CouchDB
CAC + A(이론상) 네트워크 분할이 없는 단일 노드 시스템.전통적인 RDBMS (Oracle, MySQL)