Moderately Complex Paxos Made Simple: High-Level Executable Specification of Distributed Algorithms
Yanhong A. Liu, Saksham Chand, Scott D. Stoller

TL;DR
This paper demonstrates how high-level executable specifications of complex Paxos variants can be created using DistAlgo, leading to simpler, more precise, and verifiable distributed algorithms that facilitate optimization and correctness proofs.
Contribution
The authors introduce a high-level language-based approach to specify complex Paxos variants, enabling clearer, more compact, and executable specifications that improve understanding and verification.
Findings
Specifications are complete and precise at a high level.
Simpler specifications reveal issues in previous designs.
Executable and optimizable specifications improve performance.
Abstract
This paper describes the application of a high-level language and method in developing simpler specifications of more complex variants of the Paxos algorithm for distributed consensus. The specifications are for Multi-Paxos with preemption, replicated state machine, and reconfiguration and optimized with state reduction and failure detection. The language is DistAlgo. The key is to express complex control flows and synchronization conditions precisely at a high level, using nondeterministic waits and message-history queries. We obtain complete executable specifications that are almost completely declarative---updating only a number for the protocol round besides the sets of messages sent and received. We show the following results: 1.English and pseudocode descriptions of distributed algorithms can be captured completely and precisely at a high level, without adding, removing, or…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Software System Performance and Reliability · Petri Nets in System Modeling
