Zab protocol
E705296
The Zab protocol is a crash-recovery atomic broadcast and consensus algorithm used by Apache ZooKeeper to ensure ordered, reliable updates across distributed nodes.
Statements (45)
| Predicate | Object |
|---|---|
| instanceOf |
atomic broadcast protocol
ⓘ
consensus algorithm ⓘ crash-recovery protocol ⓘ |
| assumes |
non-Byzantine failures
ⓘ
reliable communication channels ⓘ |
| designedFor |
distributed systems
ⓘ
replicated state machines ⓘ |
| ensures |
committed transactions survive leader changes
ⓘ
followers apply transactions in the same order as leader ⓘ only one active leader at a time ⓘ |
| ensuresProperty |
atomic broadcast
ⓘ
durable updates ⓘ ordered updates ⓘ reliable broadcast ⓘ total order broadcast ⓘ |
| fullName | ZooKeeper Atomic Broadcast protocol NERFINISHED ⓘ |
| guarantees |
agreement among non-faulty nodes
ⓘ
liveness under partial failures ⓘ no data loss for committed transactions ⓘ prefix ordering of committed transactions ⓘ |
| handles |
follower crash recovery
ⓘ
leader crash recovery ⓘ |
| hasAbbreviation | Zab NERFINISHED ⓘ |
| hasPhase |
broadcast phase
ⓘ
discovery phase ⓘ leader election phase ⓘ synchronization phase ⓘ |
| hasProperty |
leader-based atomic broadcast
ⓘ
log-based state replication ⓘ primary-backup style replication ⓘ |
| implementedIn | Apache ZooKeeper server codebase ⓘ |
| inspiredBy | Viewstamped Replication NERFINISHED ⓘ |
| maintains | global order of ZooKeeper transactions ⓘ |
| publication | “Zab: High-performance broadcast for primary-backup systems” NERFINISHED ⓘ |
| relatedTo |
Paxos
NERFINISHED
ⓘ
Raft consensus algorithm NERFINISHED ⓘ |
| requires | distinguished leader ⓘ |
| supportsModel | crash-recovery failure model ⓘ |
| usedBy |
Apache Hadoop ecosystem components via ZooKeeper
ⓘ
Apache ZooKeeper NERFINISHED ⓘ |
| usedFor |
coordination in distributed applications
ⓘ
leader-based replication ⓘ replicated log management ⓘ |
| usedIn |
ZooKeeper quorum-based write operations
ⓘ
ZooKeeper transaction ordering ⓘ |
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.