Learning
토픽 169 / 201·NewSQL 및 특수 목적 DB

분산 트랜잭션 심화 (Percolator 모델)

분산 트랜잭션 심화 (Percolator 모델)

Google이 개발한 대규모 분산 데이터베이스에서 ACID 트랜잭션을 지원하는 프로토콜로, 2PC의 한계를 극복하고 타임스탬프 기반 MVCC와 결합하여 분산 환경에서 스냅샷 격리 제공

목적: 대규모 분산 환경에서 트랜잭션 지원, 높은 처리량, 전역 일관성

배경: 전통적 2PC는 코디네이터 장애 시 블로킹, 성능 병목 문제 존재

Percolator 핵심 개념

  • 타임스탬프 오라클(TSO): 전역 단조증가 타임스탬프 발급, 트랜잭션 순서 결정
  • 스냅샷 격리: start_ts 시점의 일관된 데이터 읽기
  • 2단계 커밋 변형: Prewrite → Commit, 락 기반 충돌 감지

데이터 구조 (Bigtable 기반)

  • Data 컬럼: 실제 데이터 저장, (key, start_ts) → value
  • Lock 컬럼: 쓰기 락 정보, (key, start_ts) → primary_lock
  • Write 컬럼: 커밋 정보, (key, commit_ts) → start_ts

트랜잭션 프로세스

충돌 처리: 락 발견 시 대기 또는 롤백, TTL 기반 락 정리

장점: 높은 확장성, 낮은 레이턴시, 락 해제 없이 복구 가능, 스냅샷 격리

단점: TSO 단일 장애점, 네트워크 레이턴시, 구현 복잡도

적용사례: Google Percolator, TiDB(TiKV), CockroachDB(유사 모델)

기술요소: TSO, MVCC, Snapshot Isolation, 2PC 변형, 분산 락

비교: Percolator(타임스탬프/확장성) vs 2PC(전통/블로킹) vs Spanner(TrueTime/강일관성)

연관: 분산 트랜잭션, MVCC, TiDB, CockroachDB, CAP 정리