피드로 돌아가기
Distributed Systems - Quorum vs. Raft vs 2PC
Dev.toDev.to
Infrastructure

분산 시스템에서 Quorum은 Durability, Raft는 Ordering, ACID는 Correctness를 각각 담당하는 계층적 구조를 형성함

Distributed Systems - Quorum vs. Raft vs 2PC

Santosh Koti2026년 4월 1일3advanced

Context

분산 시스템 설계 시 Quorum, Raft, 2PC를 단순히 대안으로 비교하지만 각각 Data Plane, Control Plane, Logical Contract에서 다른 역할을 담당함. 네트워크 분할 발생 시 Quorum은 외부의 fencing 메커니즘이 필요하지만 Raft는 프로토콜 내장 Term으로 자동 보호됨.

Technical Solution

  • Quorum: $W + R > N$ 조건으로 Durability를 수학적으로 보장하며 리더 정보 없이 데이터만 안전 저장함
  • Raft: Control Plane과 Data Plane을 결합하여 모든 노드가 동일한 이벤트 시퀀스를 보도록 Ordering 보장함
  • Multi-Raft: CockroachDB, TiDB에서 데이터shard별로 독립 consensus 실행하여 단일 그룹 병목 해소함
  • 2PC: 다중 shard 트랜잭션에서 원자성 보장을 위해 분산 ACID를 상위 레이어에서 구현함
  • Kafka KRaft: Metadata에만 Raft 적용하고 Data Partition에는 ISR 프로토콜 사용하여 heartbeat 오버헤드 최소화함

Impact

Kafka는 Raft 메타데이터와 ISR 데이터 레플리케이션을 분리하여 수천 개 파티션의 분산 consensus 비용을 절감함.

Key Takeaway

분산 시스템의 보장은 계층적이다. Quorum이 데이터 안정성을, Consensus가 순서 일관성을, ACID가 논리적 정합성을 담당하며 각 계층은 독립적으로 동작하지 않고 상위 계층이 하위 계층 위에 구축됨.


새로운 분산 스토리지 시스템을 설계할 때 Quorum만으로는 fencing 문제가 발생할 수 있으므로 리더 election이 필요한 경우 Raft 기반 솔루션을 선택하고, 다중 shard 트랜잭션이 필요한 경우 Raft 위에 2PC를 조합해야 함.

원문 읽기