
개요
ZAB(Zookeeper Atomic Broadcast)는 Apache Zookeeper에서 분산 시스템의 데이터 일관성과 합의를 보장하기 위해 설계된 원자적 브로드캐스트(Atomic Broadcast) 프로토콜이다. Paxos와 유사한 구조를 가지지만, Zookeeper의 리더-팔로워(Leader-Follower) 아키텍처에 특화되어 고가용성과 일관성(consistency)을 모두 달성한다.
ZAB는 데이터 복제, 리더 선출, 장애 복구 과정에서 핵심적인 역할을 하며, 모든 노드가 동일한 순서로 동일한 상태 변경(Log)을 적용하도록 보장한다.
1. 개념 및 정의
ZAB는 ‘원자적 브로드캐스트(Atomic Broadcast)’를 기반으로, 분산된 노드 간에 동일한 순서의 상태 업데이트를 보장하는 프로토콜이다. 모든 변경 요청은 리더(Leader)를 통해 순차적으로 전파되며, 팔로워(Follower)는 리더가 승인한 순서에 따라 로그를 커밋한다.
즉, 모든 Zookeeper 서버가 동일한 순서로 동일한 데이터를 복제하는 것이 ZAB의 핵심 목표다.
2. 특징
| 항목 | 설명 | 비고 |
| 합의 보장 | 모든 서버가 동일한 순서의 로그를 수신 및 적용 | Linearizability 보장 |
| 장애 복구 | 리더 장애 시 새로운 리더 자동 선출 | 지속 가능한 클러스터 운영 |
| 순차적 브로드캐스트 | 요청이 순서대로 전달되고 커밋됨 | Atomic Broadcast 구현 |
| 안정성 | 중복 적용이나 로그 누락 방지 | 트랜잭션 무결성 확보 |
→ ZAB는 ‘리더 단일 진실원(Single Source of Truth)’ 원칙을 유지하면서, 복수 노드 간의 상태 일관성을 보장한다.
3. 구성 요소
| 구성 요소 | 설명 | 예시 |
| Leader | 클라이언트 요청 수신 및 브로드캐스트 관리 | Zookeeper 리더 노드 |
| Follower | 리더의 로그를 수신하고 확인 응답 전송 | Zookeeper 팔로워 노드 |
| Epoch | 리더 세션을 구분하는 논리적 시간 단위 | Leader Term과 유사 |
| Proposal | 리더가 팔로워에 전파하는 로그 단위 | 트랜잭션 단위 업데이트 |
| Commit | 팔로워 과반이 승인한 Proposal을 확정 | 상태 반영 단계 |
→ 리더가 제안(Propose)하고 팔로워가 승인(Acknowledge)하는 과정이 ZAB의 핵심 플로우다.
4. 기술 요소
| 기술 요소 | 설명 | 관련 표준/모델 |
| Atomic Broadcast | 순서 보장형 브로드캐스트 프로토콜 | Paxos와 유사한 합의 모델 |
| Epoch & ZXID | 글로벌 순서 식별자(Global Transaction ID) | Zookeeper 내부 트랜잭션 관리 |
| Quorum | 과반수 노드 동의로 커밋 결정 | 분산 합의 핵심 개념 |
| Leader Election | 새로운 리더를 선출하는 알고리즘 | Fast Leader Election (FLE) |
| Persistence | 로그 및 스냅샷의 안정적 저장 | WAL(Write-Ahead Log) 구조 |
→ ZAB는 Atomic Broadcast + Crash Recovery를 결합하여, 일관성과 가용성을 동시에 확보한다.
5. 장점 및 이점
| 구분 | 설명 | 효과 |
| 순서 일관성 보장 | 모든 노드가 동일한 순서로 로그 적용 | 데이터 불일치 제거 |
| 고가용성 | 리더 장애 시 자동 복구 | 무중단 운영 가능 |
| 빠른 합의 수렴 | 과반 응답 기반 승인 | 지연 최소화 |
| 단순 구조 | 리더 중심 모델 | 관리 및 구현 용이 |
| 신뢰성 | 로그 내구성 및 복원력 확보 | 장애 복구 시 데이터 유지 |
→ ZAB는 Zookeeper를 분산 합의 시스템으로 발전시킨 핵심 동력이다.
6. 주요 활용 사례 및 고려사항
| 사례 | 설명 | 기대 효과 |
| Apache Zookeeper | 메타데이터 관리 및 분산 락 구현 | 안정적인 클러스터 코디네이션 |
| Hadoop YARN / HBase | 클러스터 상태 관리 및 리더 선출 | 고가용성 및 장애 복원력 확보 |
| Kafka Controller | 브로커 상태 동기화 | 토픽 메타데이터 일관성 유지 |
고려사항: 리더 노드 과부하 시 성능 저하 가능성, 네트워크 파티션 시 지연 증가, 로그 동기화 비용 등은 운영 시 최적화가 필요하다.
7. 결론
ZAB(Zookeeper Atomic Broadcast)는 분산 시스템에서 순서 보장, 합의, 복구를 동시에 달성하는 실용적 합의 프로토콜이다. Paxos보다 단순하지만 동일한 안정성을 제공하며, Zookeeper의 안정적인 동작을 가능하게 한다. 향후 Raft 및 Multi-Raft 기반 시스템에서도 ZAB의 개념은 여전히 핵심적 설계 철학으로 이어지고 있다.
'Topic' 카테고리의 다른 글
| IEEE 802.1Qci (0) | 2025.11.28 |
|---|---|
| CRDTs(Conflict-Free Replicated Data Types) (0) | 2025.11.27 |
| SCRAM-SHA-256/512 (0) | 2025.11.26 |
| EU Digital Identity Wallet (EUDI) (0) | 2025.11.25 |
| OIDC CIBA(Client-Initiated Backchannel Authentication) (0) | 2025.11.25 |