Availability vs. Consistency

분산 시스템 설계에서 “Availability(가용성)” 과 “Consistency(일관성)” 는 동시에 완벽히 만족시키기 어려운 특성이다. 이는 CAP 정리에 의해 설명된다. 시스템 설계 시, 네트워크 분할 상황에서 어느 특성을 우선시할지 결정해야 하며, 이는 시스템의 목적과 요구사항에 따라 달라진다. 2025 년 현재 AI 기반 최적화와 서버리스 아키텍처의 발전으로 새로운 패러다임이 형성되고 있다.

핵심 개념

목적 및 필요성

  1. 분산 시스템 설계의 기본 원칙 제공
    가용성과 일관성의 트레이드오프를 이해하는 것은 분산 시스템 설계의 기본 원칙이다. 이를 통해 시스템 설계자는 비즈니스 요구사항에 맞는 적절한 결정을 내릴 수 있다.

  2. 시스템 성능과 신뢰성 최적화
    적절한 가용성과 일관성 균형을 찾음으로써 시스템의 성능과 신뢰성을 최적화할 수 있다. 비즈니스 상황에 따라 필요한 특성을 우선시하여 리소스를 효율적으로 활용할 수 있다.

  3. 확장 가능한 아키텍처 설계
    분산 시스템의 확장성을 고려할 때, 가용성과 일관성의 균형은 핵심적인 결정 요소이다. 이를 이해함으로써 미래 성장에 대비한 확장 가능한 아키텍처를 설계할 수 있다.

  4. 비즈니스 요구사항 충족
    다양한 비즈니스 도메인은 서로 다른 가용성과 일관성 요구사항을 가진다. 예를 들어, 금융 시스템은 일관성이 중요하지만, 소셜 미디어 플랫폼은 가용성이 더 중요할 수 있다.

핵심 개념 비교

구분가용성 (Availability)일관성 (Consistency)
정의모든 요청에 응답 보장모든 노드의 데이터 동일성 보장
우선순위시스템 접근성과 응답성데이터 정확성과 무결성
트레이드오프네트워크 분할 시 일시적 불일치 허용분할 시 일부 서비스 중단 가능성
측정 지표Uptime %, MTTR(Mean Time To Recovery)복제 지연 시간, 데이터 정합성 검증 주기
복제 방식비동기 복제 (성능 향상)동기 복제 (정확성 보장)
장애 대응서비스 유지 (일부 데이터 불일치 허용)부분 서비스 중단 가능 (일관성 보장)
적합한 워크로드읽기 위주 작업, 소셜 미디어, 콘텐츠 제공금융 거래, 재고 관리, 예약 시스템
확장성일반적으로 더 쉽게 수평 확장 가능확장 시 일관성 보장이 더 복잡함

주요 기능 및 역할

구분항목가용성 (Availability)일관성 (Consistency)
기능서비스 연속성일부 장애 발생 시에도 전체 서비스 운영 유지장애 발생 시 트랜잭션 일시 중단 가능
사용자 경험빠른 응답 및 무중단 제공으로 만족도 향상응답 속도보다 데이터 정확성이 우선
비즈니스 연속성시스템 중단 시 손실 최소화일관성 유지 위해 중단 발생 가능
시스템 확장성다중 노드 활용으로 수평 확장 가능확장 시 데이터 동기화의 복잡성 증가

특징

구분항목가용성 (Availability)일관성 (Consistency)
특징데이터 복제비동기 복제 (속도 중시)동기 복제 (일관성 중시)
장애 대응무장애 전환 (Failover) 가능장애 발생 시 일관성 보장 우선으로 응답 지연 가능
처리 방식비동기 처리로 빠른 응답 가능동기 처리로 데이터 정합성 보장
트랜잭션 관리단순 트랜잭션 우선, 속도 우선분산 트랜잭션, 쿼럼 기반 트랜잭션 처리
의사 결정 방식가용성을 위해 다수 노드 응답 무시 가능쿼럼 기반 의사결정으로 정확도 확보
버전 관리일반적으로 단순 복제 구조버전 관리 및 충돌 해결 로직 필요

추가 비교 분석

비교 항목가용성 우선 시스템 (AP)일관성 우선 시스템 (CP)
요청 응답 속도빠름–일부 노드에서 응답을 반환 가능느림–모든 노드의 응답을 기다려야 함
데이터 정확성낮음–일정 시간 후 일관성 확보 (Eventual Consistency)높음–항상 최신 상태의 데이터 제공
데이터 복구 전략단순–충돌 해결 로직만 필요복잡–롤백, 트랜잭션 재처리 필요
개발 복잡도중간–충돌 해결 방식 설계 필요높음–분산 트랜잭션, 정족수 알고리즘 필요
합의 알고리즘 사용 유무선택–일부 NoSQL 은 Eventually Consistent Replication 사용필수–Paxos, Raft 등의 합의 알고리즘 필수
일관성 모델 예시Eventual Consistency, Causal ConsistencyLinearizable, Serializable
적용 예시SNS 피드, 장바구니, IoT 상태 정보 등은행 계좌 이체, 주문 처리 시스템 등
장기 유지보수 용이성상태 충돌/복제 이슈로 디버깅 복잡 가능성 있음상대적으로 안정적, 테스트 예측 용이

핵심 원칙

CAP 정리 (CAP Theorem)

CAP 정리는 분산 시스템에서 일관성 (Consistency), 가용성 (Availability), 분할 내성 (Partition Tolerance) 세 가지를 동시에 만족시킬 수 없다는 원칙이다.

네트워크 분할이 발생할 때, 시스템은 다음 중 하나를 선택해야 한다:

  1. CP(일관성 + 분할 내성): 일관성을 유지하기 위해 일부 노드의 가용성 포기
  2. AP(가용성 + 분할 내성): 가용성을 유지하기 위해 일시적으로 일관성 약화
  3. CA(일관성 + 가용성): 실제 분산 환경에서는 네트워크 분할이 불가피하므로 이론적으로만 가능

CAP 정리 적용 예시

PACELC 이론

PACELC 이론은 CAP 정리를 확장한 개념으로, 네트워크 분할 상황과 정상 상황을 모두 고려한다:

이 이론은 분할이 발생하지 않는 일반적인, 정상 상황에서도 트레이드오프가 존재함을 명시한다.

구성 요소설명
P (Partition)네트워크 분할이 발생할 경우
A (Availability)분할 시 가용성을 선택하는 시스템
C (Consistency)분할 시 일관성을 선택하는 시스템
E (Else)네트워크 분할이 없을 경우
L (Latency)평상시 지연 시간을 최소화하는 시스템
C (Consistency)평상시에도 일관성을 유지하는 시스템

즉, PACELC 는 다음과 같은 의미를 가짐:

“If a partition occurs (P), then the system must choose between Availability (A) and Consistency (C); Else (E), when the system is running normally, it must choose between Latency (L) and Consistency (C).”

PACELC 기반 비교 분석

비교 항목PA/EL 시스템PC/EC 시스템
분할 시 처리가용성 유지, 일부 데이터 불일치 감수응답 거부하고도 일관성 유지
평상시 처리 방식응답 속도 (지연 시간) 최소화항상 강한 일관성 보장
데이터 일관성 모델Eventually Consistent 또는 Tunable Consistency 사용Strong 또는 Serializability 일관성 유지
읽기/쓰기 정족수조정 가능 (예: W + R > N 규칙)읽기/쓰기 시 모두 합의 필요
적합한 사용 시나리오SNS 피드, IoT 데이터 수집, 대용량 로깅금융 거래, 결제 시스템, 병렬 트랜잭션이 많은 시스템
주요 트레이드오프데이터 정확성 ↔ 빠른 응답성성능 ↔ 정확성
대표 기술Cassandra, DynamoDB, CouchbaseSpanner, HBase, FaunaDB

데이터 일관성 모델

  1. 강한 일관성 (Strong Consistency):
    • 모든 읽기 작업은 가장 최신의 쓰기 작업을 반영
    • 예: 관계형 데이터베이스 (MySQL, PostgreSQL)
  2. 약한 일관성 (Weak Consistency):
    • 읽기 작업이 최신 업데이트를 반영하지 않을 수 있음
    • 예: 메모리 캐시 (Redis, Memcached)
  3. 결과적 일관성 (Eventual Consistency):
    • 일정 시간이 지나면 모든 노드가 동일한 데이터 상태를 가짐
    • 예: DynamoDB, Cassandra
  4. 인과적 일관성 (Causal Consistency):
    • 인과 관계가 있는 작업에 대해서만 일관성 보장
    • 예: MongoDB 의 인과적 일관성 세션

ACID vs. BASE

ACIDBASE
Atomicity (원자성)Basically Available (기본 가용성)
Consistency (일관성)Soft state (소프트 상태)
Isolation (격리성)Eventual consistency (결과적 일관성)
Durability (지속성)

주요 원리 및 작동 원리

분산 시스템에서의 일관성 유지 메커니즘

가용성 보장 메커니즘

구조 및 아키텍처

CP(일관성 + 분할 내성) 시스템 아키텍처

CP 시스템은 일관성을 우선시하며, 네트워크 분할 발생 시 가용성을 희생한다.

주요 특징

  1. 마스터 - 슬레이브 구조: 쓰기 작업은 마스터 노드에서만 처리
  2. 동기식 복제: 대부분의 노드가 데이터를 복제한 후에야 트랜잭션 완료
  3. 강한 일관성 모델: 모든 노드가 항상 동일한 데이터 상태를 유지
  4. 쿼럼 기반 의사 결정: 노드 다수의 동의를 필요로 함

대표적인 CP 시스템

아키텍처 구성 요소

  1. 합의 관리자 (Consensus Manager): Paxos, Raft 등의 합의 알고리즘 구현
  2. 상태 복제기 (State Replicator): 노드 간 상태 복제 담당
  3. 로그 관리자 (Log Manager): 작업 로그 관리 및 재생
  4. 장애 감지기 (Failure Detector): 노드 상태 모니터링

AP(가용성 + 분할 내성) 시스템 아키텍처

AP 시스템은 가용성을 우선시하며, 네트워크 분할 발생 시 일관성을 희생한다.

주요 특징

  1. 멀티 마스터 구조: 모든 노드가 읽기/쓰기 작업 처리 가능
  2. 비동기식 복제: 로컬 노드에서 작업 완료 후 다른 노드로 비동기적 복제
  3. 결과적 일관성 모델: 일정 시간 후에 모든 노드가 동일한 상태에 도달
  4. 충돌 해결 메커니즘: 데이터 충돌 해결을 위한 벡터 클럭, 머지 등 활용

대표적인 AP 시스템

아키텍처 구성 요소

  1. 안티 - 엔트로피 프로토콜 (Anti-entropy Protocol): 노드 간 상태 동기화
  2. 벡터 클럭 (Vector Clocks): 이벤트 순서 추적 및 충돌 감지
  3. 머지 해결기 (Merge Resolver): 충돌 자동 해결
  4. 가십 프로토콜 (Gossip Protocol): 클러스터 멤버십 및 상태 정보 전파

CA(일관성 + 가용성) 시스템의 한계

CA 시스템은 네트워크 분할에 대한 내성이 없으므로, 실제 분산 환경에서는 구현이 불가능하다. 그러나 네트워크 분할이 드물게 발생하는 환경에서는 CA 에 가까운 시스템을 구현할 수 있다.

주요 특징

  1. 단일 데이터 센터 내 배포: 네트워크 분할 가능성 최소화
  2. 고가용성 네트워크 인프라: 중복 네트워크 연결
  3. 로컬 복제: 지연 시간 최소화를 위한 로컬 복제
  4. 장애 조치 메커니즘: 빠른 복구를 위한 자동 장애 조치

예시

12. 장점과 단점

가용성 중심 (AP) 시스템

장점단점
높은 가용성 - 시스템 일부에 장애가 발생해도 서비스 계속 제공데이터 일관성 보장 어려움 - 일시적인 데이터 불일치 발생 가능
짧은 응답 시간 - 로컬 노드에서 즉시 응답 가능복잡한 충돌 해결 - 네트워크 분할 후 데이터 충돌 발생 시 해결 필요
쉬운 수평 확장 - 노드 추가가 상대적으로 용이복잡한 애플리케이션 로직 - 일관성이 보장되지 않는 환경을 고려한 설계 필요
높은 쓰기 성능 - 비동기식 복제로 인한 쓰기 지연 최소화트랜잭션 처리 어려움 - ACID 트랜잭션 지원 제한적
지역적 장애 분리 - 일부 지역 장애가 전체에 영향을 미치지 않음정확한 집계 및 분석 어려움 - 데이터 불일치로 인한 결과 정확도 문제

일관성 중심 (CP) 시스템

장점단점
강한 데이터 일관성 - 모든 노드가 항상 동일한 데이터 상태 유지네트워크 분할 시 가용성 저하 - 일부 노드에서 작업 거부 가능
트랜잭션 처리 용이 - ACID 속성 지원상대적으로 높은 응답 지연 - 합의 과정으로 인한 지연 발생
비즈니스 로직 단순화 - 일관된 데이터 상태를 가정한 설계 가능제한된 확장성 - 합의 알고리즘으로 인한 확장 제약
정확한 데이터 집계 및 분석 - 일관된 데이터로 정확한 결과 도출더 많은 네트워크 트래픽 - 합의 과정에서 많은 메시지 교환 필요
감사 및 규정 준수 용이 - 일관된 상태 추적 가능하드웨어 자원 요구 증가 - 동기화 작업으로 인한 자원 소모

강점과 약점

특성강점약점
일관성 중심 시스템 (CP)데이터 정확성 보장응답 지연 및 가용성 저하 가능성
가용성 중심 시스템 (AP)높은 응답성 및 가용성데이터 불일치 및 일관성 저하 가능성

실무 적용 예시

사용 사례권장 접근법이유예시 기술
금융 거래 시스템CP (일관성 우선)잘못된 거래나 중복 거래 방지가 중요PostgreSQL, Google Spanner
전자상거래 카탈로그AP (가용성 우선)일시적 불일치보다 서비스 중단이 더 큰 문제Cassandra, DynamoDB
소셜 미디어 피드AP (가용성 우선)모든 사용자에게 최신 데이터를 즉시 보여줄 필요 없음Cassandra, Redis
재고 관리 시스템CP (일관성 우선)과잉 판매/재고 부족 방지가 중요MySQL 클러스터, MongoDB (강한 일관성 설정)
실시간 분석 시스템AP (가용성 우선)대략적 결과도 허용 가능, 가용성이 더 중요Elasticsearch, Cassandra
게임 리더보드AP 또는 하이브리드항상 최신 데이터가 필요하지 않으나 서비스는 지속되어야 함Redis (가용성 설정), MongoDB
결제 처리 시스템CP (일관성 우선)정확한 금액 처리가 필수적관계형 DB + 2 단계 커밋
콘텐츠 전송 네트워크AP (가용성 우선)콘텐츠 제공 가용성이 최우선Redis, CloudFront + DynamoDB
헬스케어 시스템CP 또는 하이브리드환자 데이터는 정확해야 하지만 일부 기능은 가용성 우선PostgreSQL(중요 데이터) + MongoDB(비중요 데이터)
IoT 데이터 수집AP (가용성 우선)대량의 데이터, 일부 손실 허용 가능Apache Kafka, Cassandra

활용 사례

시스템의 각 구성 요소는 요구되는 특성에 따라 적절한 CAP 조합을 선택하여 구현된다.

시나리오 설명

온라인 쇼핑 플랫폼에서는 사용자 경험을 향상시키기 위해 장바구니 기능을 제공한다. 이 시스템은 다음과 같은 요구사항을 가진다:

이러한 요구사항을 만족시키기 위해 시스템은 다음과 같은 전략을 채택한다:

다이어그램

아래 다이어그램은 온라인 쇼핑 플랫폼에서의 장바구니 시스템의 구성과 흐름을 나타낸다:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[사용자]
   |
   v
[장바구니 서비스 (AP 시스템)]
   |
   v
[결제 서비스 (CP 시스템)]
   |
   v
[재고 관리 시스템]

이 사례에서 배울 수 있는 점

  1. 도메인별 요구사항 분석: 모든 구성 요소에 동일한 접근 방식을 적용하지 않고, 각 도메인의 요구사항에 맞게 CP 와 AP 특성을 선택적으로 적용
  2. 하이브리드 접근법: 단일 서비스 내에서도 데이터 중요도나 작업 유형에 따라 다른 일관성 모델 적용 가능
  3. 비즈니스 영향 고려: 일관성과 가용성 중 어떤 것이 비즈니스에 더 중요한지 분석하여 결정
  4. 사용자 경험 최적화: 사용자에게 직접 영향을 미치는 기능은 가용성을, 백엔드 처리는 일관성을 우선시
  5. 복잡성 관리: 다양한 기술 스택 사용 시 운영 복잡성이 증가하므로 이를 관리하기 위한 전략 필요

실무에서 효과적으로 적용하기 위한 고려사항 및 주의할 점

단계별 고려사항

단계항목주요 내용
요구사항 분석비즈니스 요구사항 명확화데이터 정확성 vs. 서비스 연속성 우선순위 결정, 규제 및 컴플라이언스 요구사항 확인
데이터 특성 분석데이터 중요도·민감도, 수명 주기, 액세스 패턴 분석
사용자 경험 요구사항허용 가능한 지연 시간 정의, 장애 발생 시 기대 동작 정의
설계일관성 모델 선택강한 일관성 (금융 등), 결과적 일관성 (소셜 피드 등), 세션 일관성 (사용자별)
아키텍처 패턴 고려CQRS, 이벤트 소싱, 사가 (Saga) 패턴 등 활용
데이터 파티셔닝 전략지역 기반 파티셔닝, 기능 기반 파티셔닝으로 유연한 일관성 적용
구현 및 운영장애 처리 전략장애 감지 및 자동 복구, 네트워크 분할 시 동작 정의
모니터링 및 경고 시스템복제 지연, 데이터 불일치, 네트워크 상태 실시간 모니터링
테스트 전략카오스 엔지니어링, 네트워크 분할 테스트, 부하 테스트 도입

주의사항

항목주요 내용
복잡성 관리다양한 일관성 모델 사용 시 복잡성 증가, 문서화·교육 필수
데이터 불일치 해결충돌 해결 로직 명확화, 애플리케이션 수준에서 해결 방안 설계
확장성 고려미래 확장성을 고려한 설계, 일관성 모델 변경 비용 고려
운영 오버헤드다양한 기술 스택 운영 복잡성, 모니터링·트러블슈팅 부담 증가

최적화하기 위한 고려사항 및 주의할 점

고려사항

구분전략/항목내용 요약
가용성 최적화분산 데이터 저장지역 기반 데이터 센터 및 위치 기반 라우팅
캐싱 전략다단계 캐시 계층화, 읽기 부하 감소, 캐시 무효화 전략 필요
비동기 처리메시지 큐 활용, 응답 우선 처리로 사용자 체감 지연 감소
자동 확장부하 기반 인프라 자동 확장 및 복구 전략
일관성 최적화쿼럼 기반 접근법읽기/쓰기 조합 조정 (예: W + R > N), 네트워크 조건 기반 설정
로컬 트랜잭션 활용샤딩 및 데이터 배치 전략으로 트랜잭션 로컬화
데이터 지역성데이터 접근 경로 최적화로 지연 시간 및 충돌 최소화
합의 알고리즘 튜닝Paxos, Raft 등 알고리즘의 타임아웃, 재시도 등 성능 조정
트레이드오프 최적화하이브리드 일관성 모델데이터 유형/업무 성격에 따라 일관성 모델 구분 적용
일관성 수준 제어클라이언트나 API 에서 일관성 수준 설정 기능 제공
비동기 복제 최적화우선순위 큐, 복제 지연 감소 기법, 네트워크 트래픽 조절
데이터 샤딩 전략균등한 샤딩 키 설계, 핫스팟 발생 방지를 위한 리밸런싱

주의사항

항목내용
과도한 최적화 경계시스템 복잡도와 유지보수 가능성을 고려한 균형 유지
일관성 착각 방지완벽한 일관성 가정 금지, 엣지 케이스 검증 철저히 수행
성능 테스트장애 조건 및 피크 부하 환경에서의 검증 필수
자원 사용 효율성리소스 활용도 모니터링, 동기화 최소화 및 리팩토링 고려

최신 동향

동향설명관련 기술
다중 영역 데이터베이스여러 지역에 걸쳐 데이터를 분산하면서도 일관성 관리를 개선한 데이터베이스Google Spanner, CockroachDB, YugabyteDB
양자화된 일관성 모델일관성 수준을 세밀하게 조정할 수 있는 새로운 모델FaunaDB, MongoDB 5.0+
에지 - 클라우드 하이브리드 아키텍처에지 컴퓨팅과 중앙 클라우드를 결합한 하이브리드 접근법AWS Wavelength, Azure Edge Zones
자율 데이터베이스AI 를 활용하여 일관성과 가용성 간 균형을 자동으로 조정Oracle Autonomous DB, MongoDB Atlas
서버리스 데이터베이스일관성과 가용성을 관리하는 복잡성을 추상화한 서버리스 솔루션AWS Aurora Serverless, Fauna, Planetscale
CRDT 의 주류화충돌 없는 데이터 유형이 분산 시스템에서 널리 채택됨Redis Enterprise, Riak, Ditto
블록체인 영감 합의 알고리즘블록체인 기술에서 영감을 받은 새로운 분산 합의 메커니즘Solana, Cosmos SDK, Ethereum 2.0
멀티 모델 데이터베이스단일 시스템에서 다양한 데이터 모델과 일관성 옵션 제공ArangoDB, FaunaDB, Cosmos DB

주목해야 할 기술들

기술특징일관성/가용성 관점
FoundationDB확장 가능한 키 - 값 저장소로 강한 일관성 제공ACID 트랜잭션을 유지하면서 분산 환경에서 높은 확장성 제공
CockroachDBSQL 호환 분산 데이터베이스, 글로벌 규모에서 일관성 제공강한 일관성과 높은 가용성 동시 제공 시도
TiDBMySQL 호환 분산 데이터베이스, 강한 일관성 지원트랜잭션 지원과 수평적 확장성 결합
Fauna서버리스 글로벌 데이터베이스, 일관성과 가용성 균형글로벌 분산과 트랜잭션 지원 결합
PolarDB클라우드 네이티브 데이터베이스, 분리된 스토리지와 컴퓨팅고성능과 일관성 보장 결합
YugabyteDBPostgreSQL 호환 분산 SQL 데이터베이스강한 일관성과 고가용성 동시 제공, Google Spanner 아키텍처 영감
SingleStore메모리 최적화 분산 관계형 데이터베이스실시간 분석과 트랜잭션 워크로드를 위한 하이브리드 접근법
Dgraph그래프 데이터베이스, 수평적 확장성그래프 데이터에 대한 일관성과 확장성 균형
NATS JetStream영구 스트리밍 플랫폼, 높은 처리량과 낮은 지연 시간이벤트 스트리밍에서 일관성과 가용성 균형
Apache Pulsar멀티 테넌트 메시징 및 스트리밍 플랫폼계층화된 스토리지와 컴퓨팅으로 가용성과 내구성 향상
R2DB반응형 관계형 데이터베이스비동기 및 논블로킹 I/O 로 높은 가용성 제공
Materialize증분 계산을 위한 스트리밍 데이터베이스스트리밍 데이터에 대한 일관성 있는 뷰 제공
PingCAP TiFlashHTAP(Hybrid Transactional/Analytical Processing) 컴포넌트분석과 트랜잭션 처리에 다른 일관성 모델 적용

앞으로의 전망

영역전망영향
AI 기반 자율 시스템AI 가 일관성과 가용성 간 균형을 자동으로 조정하는 시스템 등장운영 복잡성 감소, 상황에 따른 최적의 트레이드오프 자동 결정
양자 컴퓨팅 영향양자 컴퓨팅의 발전으로 분산 합의 알고리즘 혁신더 효율적인 합의 메커니즘, 일관성과 가용성의 새로운 균형점
에지 컴퓨팅 확산데이터와 처리가 에지로 이동, 로컬 일관성 모델 중요성 증가지역적으로 강한 일관성, 글로벌 수준에서 약한 일관성의 계층화
하이브리드 일관성 모델단일 시스템 내 다중 일관성 수준 지원 확대더 세밀한 일관성/가용성 트레이드오프 제어 가능
분산 원장 기술 통합블록체인과 전통적 분산 시스템의 경계 희석새로운 형태의 합의 알고리즘과 불변 데이터 구조 활용
실시간 글로벌 데이터글로벌 수준의 실시간 데이터 처리 요구 증가지역 간 일관성 보장하면서 글로벌 가용성 제공하는 기술 발전
규제 영향 증가데이터 주권, 개인정보 보호 규제가 아키텍처 결정에 영향지역별 데이터 저장 및 처리, 일관성 모델에 규제 요구사항 반영
지속 가능한 분산 시스템에너지 효율성을 고려한 일관성/가용성 결정환경 영향을 최소화하는 새로운 알고리즘과 아키텍처

추가 학습 내용

주제설명학습 자원
분산 시스템 이론CAP 정리를 넘어선 분산 시스템의 수학적 기초 및 한계“Designing Data-Intensive Applications” (Martin Kleppmann), MIT 분산 시스템 강의
합의 알고리즘Paxos, Raft, BFT 등 다양한 합의 알고리즘의 작동 원리“In Search of an Understandable Consensus Algorithm” (Raft 논문), “Paxos Made Simple” (Leslie Lamport)
CRDT (Conflict-free Replicated Data Types)자동으로 충돌을 해결하는 데이터 구조의 이론과 응용“A comprehensive study of Convergent and Commutative Replicated Data Types”
데이터베이스 내부 구현다양한 데이터베이스가 일관성과 가용성을 구현하는 내부 메커니즘각 데이터베이스 기술 문서, 아키텍처 설명 블로그
분산 트랜잭션2PC, 사가 패턴 등 분산 환경에서의 트랜잭션 관리 기법“Microservices Patterns” (Chris Richardson)
성능 측정 및 벤치마킹일관성과 가용성 트레이드오프 정량화 방법YCSB (Yahoo! Cloud Serving Benchmark), TPC 벤치마크
장애 시뮬레이션카오스 엔지니어링을 통한 시스템 탄력성 테스트Netflix Chaos Monkey, AWS Fault Injection Simulator
글로벌 분산 시스템 설계지리적으로 분산된 시스템에서의 일관성/가용성 관리Google Spanner 논문, “Designing Distributed Systems” (Brendan Burns)
양자 컴퓨팅과 분산 합의양자 컴퓨팅이 분산 합의 알고리즘에 미칠 영향연구 논문, 학술 자료
에지 컴퓨팅 아키텍처에지 - 클라우드 환경에서의 데이터 일관성 관리AWS Greengrass, Azure IoT Edge 문서

용어 정리

용어설명
CAP 정리 (CAP Theorem)분산 시스템에서 일관성 (Consistency), 가용성 (Availability), 분할 내성 (Partition Tolerance) 세 가지를 동시에 만족시킬 수 없다는 이론
일관성 (Consistency)모든 노드가 동일한 시점에 동일한 데이터를 볼 수 있도록 보장하는 특성
가용성 (Availability)모든 요청이 성공 또는 실패 응답을 받을 수 있도록 보장하는 특성
분할 내성 (Partition Tolerance)네트워크 분할 (노드 간 통신 실패) 발생 시에도 시스템이 계속 작동하는 특성
네트워크 분할 (Network Partition)네트워크 장애로 인해 노드 간 통신이 불가능해지는 상황
강한 일관성 (Strong Consistency)모든 읽기 작업이 가장 최근의 쓰기 작업을 반영하는 일관성 모델
결과적 일관성 (Eventual Consistency)일정 시간이 지나면 모든 노드가 동일한 데이터 상태를 가지게 되는 일관성 모델
ACID원자성 (Atomicity), 일관성 (Consistency), 격리성 (Isolation), 지속성 (Durability) 의 약자로, 트랜잭션 특성을 나타냄. 전통적인 관계형 데이터베이스의 일관성과 신뢰성을 보장하는 모델이다.
BASE기본 가용성 (Basically Available), 소프트 상태 (Soft state), 결과적 일관성 (Eventual consistency) 의 약자. NoSQL 시스템의 트레이드오프 모델이다.
PACELC네트워크 분할 (P) 발생 시 가용성 (A) 과 일관성 (C) 중 선택, 그렇지 않을 때 (E) 지연 시간 (L) 과 일관성 (C) 중 선택하는 이론
쿼럼 (Quorum)분산 시스템에서 작업 성공을 위해 필요한 최소 노드 수
2 단계 커밋 (Two-Phase Commit)분산 트랜잭션을 위한 프로토콜로, 모든 참가자가 커밋하거나 모두 롤백함
합의 알고리즘 (Consensus Algorithm)분산 시스템에서 노드들이 특정 값에 대해 합의하는 알고리즘 (예: Paxos, Raft)
벡터 클럭 (Vector Clock)분산 시스템에서 이벤트 순서를 추적하고 충돌을 감지하기 위한 논리적 시계
CRDT(Conflict-free Replicated Data Type)수학적으로 충돌 해결이 보장되는 데이터 구조
동기식 복제 (Synchronous Replication)모든 복제본이 업데이트된 후 클라이언트에 응답하는 복제 방식
비동기식 복제 (Asynchronous Replication)주 노드 업데이트 후 즉시 응답하고, 복제는 백그라운드에서 진행하는 방식
샤딩 (Sharding)데이터를 여러 노드에 분산하여 저장하는 기법
인과적 일관성 (Causal Consistency)인과 관계가 있는 작업들에 대해서만 순서를 보장하는 일관성 모델
세션 일관성 (Session Consistency)동일 세션 내에서만 일관성을 보장하는 모델
Eventual Consistency (최종 일관성)네트워크 지연이나 장애 이후 시간이 지나면 결국 모든 노드가 동일한 상태로 수렴하는 일관성 모델입니다.
Strong Consistency (강한 일관성)모든 읽기 연산이 가장 최근의 쓰기 연산 결과를 반환하는 일관성 모델입니다.
Linearizability (선형화 가능성)연산이 순차적으로 처리되는 것처럼 보이도록 하는 일관성 보장 방식으로, Strong Consistency 의 일종입니다.
Raft Consensus Algorithm (Raft 합의 알고리즘)리더를 중심으로 한 간단하고 이해하기 쉬운 분산 합의 알고리즘입니다.
Paxos Consensus Algorithm (Paxos 합의 알고리즘)분산 시스템의 노드들이 서로 신뢰할 수 없을 때도 합의를 이끌어내기 위한 알고리즘입니다.
CRDT (Conflict-free Replicated Data Type)분산 시스템에서 동시성이 보장된 상태에서 충돌 없이 데이터 일관성을 유지할 수 있는 데이터 구조입니다.
Network Partition (네트워크 분할)네트워크 장애로 인해 시스템 노드 간 통신이 불가능해지는 상황을 의미합니다.
Failover (장애 조치)시스템 구성 요소가 실패했을 때 자동으로 백업 구성 요소로 전환되는 메커니즘입니다.
Read/Write Quorum (읽기/쓰기 정족수)분산된 데이터베이스에서 일관성을 유지하기 위한 읽기 또는 쓰기 요청 수의 기준입니다.
TCCTry-Confirm-Cancel 분산 트랜잭션 패턴

참고 및 출처