분산 시스템에서 데이터 일관성(consistency)과 가용성(availability)을 동시에 고려해야 하는 상황에서, 특정 요구사항에 따라 CAP 이론의 트레이드오프를 어떻게 선택했는지 설명해주세요.

박상준·2024년 11월 27일
0

CAP 이론(Consistency, Availability, Partition tolerance)

  • 분산 시스템 설계시 직면하는 3가지 속성간의 트레이드 오프
  • 네트워크 파티션이 발생하는 상황
    • 네트워크가 여러 부분으로 나뉘어져서 서로 통신할 수 없는 상황을 말한다
    • 하나의 시스템과 다른 시스템을 이어주는 부분의 네트워크에서 문제가 발생하여
    • 문제가 발생한 서버와 다른 시스템간의 정보의 불균형이 발생함.

해당 문제가 발생한 경우 Consistency(일관성) , Availability(가용성) 둘 중에 하나는 포기해야 한다

일관성을 우선하는 경우 (CP 시스템)

  • 상황
    • 데이터의 정확성과 동기화를 중요시하는 시스템이다.
    • 모든 사용자에게 최신의 데이터가 보여야 한다.
  • 트레이드 오프
    • 가용성을 희생
  • ex
    • 은행 거래 시스템
      • 고객이 자신의 계좌 잔액을 확인하거나 송금시
      • 일관된 데이터가 필요함
      • 일부 서비스 중단을 감수하더라도 데이터 정확성이 중요함

가용성을 우선하는 경우 (AP 시스템)

  • 상황
    • 데이터의 정확성보다는 가용성 우선
  • ex
    • 쇼핑몰 앱
      • 네트워크 문제가 발생하더라도 쇼핑은 계속 할 수 있음.
      • 상품 재고 정보가 약간 늦게 업데이트될 순 있음.

실제 시스템에선 어떻게 구성될까?

  • CP 시스템
    • 구현 방법
      • 리더 - 팔로워 구조(Leader-Follower Architecture)
        • 한 노드가 리더가 되어 데이터 관리
        • 다른 노드들은 리더의 데이터 복제
      • 분산 DB
        • HBase, Zookeeper
          • 데이터가 항상 일관성 유지하도록 보장
          • 네트워크 문제 발생시 쓰기 작업을 지연시킴.
  • AP 시스템
    • 구현 방법
      • Eventual Consistenct ( 결과적 일관성 )
        • 데이터를 분산 시스템에 저장시
        • 즉시 동기화 X
        • 시간이 지나면서 점차 동기화수행
        • Cassandra, DynamoDB
          • 네트워크 문제 시 쓰기 작업 허용
          • 나중에 데이터 동기화
profile
이전 블로그 : https://oth3410.tistory.com/

0개의 댓글