Zab

High-performance broadcast for primary-backup systems

Flavio P. Junqueira, Benjamin C. Reed, Marco Serafini

Research output: Chapter in Book/Report/Conference proceedingConference contribution

100 Citations (Scopus)

Abstract

Zab is a crash-recovery atomic broadcast algorithm we designed for the ZooKeeper coordination service. ZooKeeper implements a primary-backup scheme in which a primary process executes clients operations and uses Zab to propagate the corresponding incremental state changes to backup processes1. Due the dependence of an incremental state change on the sequence of changes previously generated, Zab must guarantee that if it delivers a given state change, then all other changes it depends upon must be delivered first. Since primaries may crash, Zab must satisfy this requirement despite crashes of primaries. Applications using ZooKeeper demand high-performance from the service, and consequently, one important goal is the ability of having multiple outstanding client operations at a time. Zab enables multiple outstanding state changes by guaranteeing that at most one primary is able to broadcast state changes and have them incorporated into the state, and by using a synchronization phase while establishing a new primary. Before this synchronization phase completes, a new primary does not broadcast new state changes. Finally, Zab uses an identification scheme for state changes that enables a process to easily identify missing changes. This feature is key for efficient recovery. Experiments and experience so far in production show that our design enables an implementation that meets the performance requirements of our applications. Our implementation of Zab can achieve tens of thousands of broadcasts per second, which is sufficient for demanding systems such as our Web-scale applications.

Original languageEnglish
Title of host publicationProceedings of the International Conference on Dependable Systems and Networks
Pages245-256
Number of pages12
DOIs
Publication statusPublished - 26 Aug 2011
Externally publishedYes
Event2011 IEEE/IFIP 41st International Conference on Dependable Systems and Networks, DSN 2011 - Hong Kong, Hong Kong
Duration: 27 Jun 201130 Jun 2011

Other

Other2011 IEEE/IFIP 41st International Conference on Dependable Systems and Networks, DSN 2011
CountryHong Kong
CityHong Kong
Period27/6/1130/6/11

Fingerprint

Synchronization
Recovery
Experiments

Keywords

  • Asynchronous consensus
  • Atomic broadcast
  • Distributed algorithms
  • Fault tolerance
  • Primary backup

ASJC Scopus subject areas

  • Computer Networks and Communications
  • Hardware and Architecture
  • Software

Cite this

Junqueira, F. P., Reed, B. C., & Serafini, M. (2011). Zab: High-performance broadcast for primary-backup systems. In Proceedings of the International Conference on Dependable Systems and Networks (pp. 245-256). [5958223] https://doi.org/10.1109/DSN.2011.5958223

Zab : High-performance broadcast for primary-backup systems. / Junqueira, Flavio P.; Reed, Benjamin C.; Serafini, Marco.

Proceedings of the International Conference on Dependable Systems and Networks. 2011. p. 245-256 5958223.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Junqueira, FP, Reed, BC & Serafini, M 2011, Zab: High-performance broadcast for primary-backup systems. in Proceedings of the International Conference on Dependable Systems and Networks., 5958223, pp. 245-256, 2011 IEEE/IFIP 41st International Conference on Dependable Systems and Networks, DSN 2011, Hong Kong, Hong Kong, 27/6/11. https://doi.org/10.1109/DSN.2011.5958223
Junqueira FP, Reed BC, Serafini M. Zab: High-performance broadcast for primary-backup systems. In Proceedings of the International Conference on Dependable Systems and Networks. 2011. p. 245-256. 5958223 https://doi.org/10.1109/DSN.2011.5958223
Junqueira, Flavio P. ; Reed, Benjamin C. ; Serafini, Marco. / Zab : High-performance broadcast for primary-backup systems. Proceedings of the International Conference on Dependable Systems and Networks. 2011. pp. 245-256
@inproceedings{1d6145d06a8949c5ab04e8077ef99441,
title = "Zab: High-performance broadcast for primary-backup systems",
abstract = "Zab is a crash-recovery atomic broadcast algorithm we designed for the ZooKeeper coordination service. ZooKeeper implements a primary-backup scheme in which a primary process executes clients operations and uses Zab to propagate the corresponding incremental state changes to backup processes1. Due the dependence of an incremental state change on the sequence of changes previously generated, Zab must guarantee that if it delivers a given state change, then all other changes it depends upon must be delivered first. Since primaries may crash, Zab must satisfy this requirement despite crashes of primaries. Applications using ZooKeeper demand high-performance from the service, and consequently, one important goal is the ability of having multiple outstanding client operations at a time. Zab enables multiple outstanding state changes by guaranteeing that at most one primary is able to broadcast state changes and have them incorporated into the state, and by using a synchronization phase while establishing a new primary. Before this synchronization phase completes, a new primary does not broadcast new state changes. Finally, Zab uses an identification scheme for state changes that enables a process to easily identify missing changes. This feature is key for efficient recovery. Experiments and experience so far in production show that our design enables an implementation that meets the performance requirements of our applications. Our implementation of Zab can achieve tens of thousands of broadcasts per second, which is sufficient for demanding systems such as our Web-scale applications.",
keywords = "Asynchronous consensus, Atomic broadcast, Distributed algorithms, Fault tolerance, Primary backup",
author = "Junqueira, {Flavio P.} and Reed, {Benjamin C.} and Marco Serafini",
year = "2011",
month = "8",
day = "26",
doi = "10.1109/DSN.2011.5958223",
language = "English",
isbn = "9781424492336",
pages = "245--256",
booktitle = "Proceedings of the International Conference on Dependable Systems and Networks",

}

TY - GEN

T1 - Zab

T2 - High-performance broadcast for primary-backup systems

AU - Junqueira, Flavio P.

AU - Reed, Benjamin C.

AU - Serafini, Marco

PY - 2011/8/26

Y1 - 2011/8/26

N2 - Zab is a crash-recovery atomic broadcast algorithm we designed for the ZooKeeper coordination service. ZooKeeper implements a primary-backup scheme in which a primary process executes clients operations and uses Zab to propagate the corresponding incremental state changes to backup processes1. Due the dependence of an incremental state change on the sequence of changes previously generated, Zab must guarantee that if it delivers a given state change, then all other changes it depends upon must be delivered first. Since primaries may crash, Zab must satisfy this requirement despite crashes of primaries. Applications using ZooKeeper demand high-performance from the service, and consequently, one important goal is the ability of having multiple outstanding client operations at a time. Zab enables multiple outstanding state changes by guaranteeing that at most one primary is able to broadcast state changes and have them incorporated into the state, and by using a synchronization phase while establishing a new primary. Before this synchronization phase completes, a new primary does not broadcast new state changes. Finally, Zab uses an identification scheme for state changes that enables a process to easily identify missing changes. This feature is key for efficient recovery. Experiments and experience so far in production show that our design enables an implementation that meets the performance requirements of our applications. Our implementation of Zab can achieve tens of thousands of broadcasts per second, which is sufficient for demanding systems such as our Web-scale applications.

AB - Zab is a crash-recovery atomic broadcast algorithm we designed for the ZooKeeper coordination service. ZooKeeper implements a primary-backup scheme in which a primary process executes clients operations and uses Zab to propagate the corresponding incremental state changes to backup processes1. Due the dependence of an incremental state change on the sequence of changes previously generated, Zab must guarantee that if it delivers a given state change, then all other changes it depends upon must be delivered first. Since primaries may crash, Zab must satisfy this requirement despite crashes of primaries. Applications using ZooKeeper demand high-performance from the service, and consequently, one important goal is the ability of having multiple outstanding client operations at a time. Zab enables multiple outstanding state changes by guaranteeing that at most one primary is able to broadcast state changes and have them incorporated into the state, and by using a synchronization phase while establishing a new primary. Before this synchronization phase completes, a new primary does not broadcast new state changes. Finally, Zab uses an identification scheme for state changes that enables a process to easily identify missing changes. This feature is key for efficient recovery. Experiments and experience so far in production show that our design enables an implementation that meets the performance requirements of our applications. Our implementation of Zab can achieve tens of thousands of broadcasts per second, which is sufficient for demanding systems such as our Web-scale applications.

KW - Asynchronous consensus

KW - Atomic broadcast

KW - Distributed algorithms

KW - Fault tolerance

KW - Primary backup

UR - http://www.scopus.com/inward/record.url?scp=80051932368&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=80051932368&partnerID=8YFLogxK

U2 - 10.1109/DSN.2011.5958223

DO - 10.1109/DSN.2011.5958223

M3 - Conference contribution

SN - 9781424492336

SP - 245

EP - 256

BT - Proceedings of the International Conference on Dependable Systems and Networks

ER -