Multi-Grained Specifications for Distributed System Model Checking and Verification
Lingzhi Ouyang, Xudong Sun, Ruize Tang, Yu Huang, Madhav Jivrajani,, Xiaoxing Ma, Tianyin Xu

TL;DR
This paper demonstrates a multi-grained specification approach using TLA+ and model checking to verify ZooKeeper's correctness, effectively balancing detail and scalability in evolving distributed systems.
Contribution
It introduces a novel multi-grained specification methodology that manages the trade-off between detail and scalability in model checking complex, evolving distributed systems.
Findings
Detected six severe bugs and verified their fixes
Developed composable multi-grained specifications
Improved protocol design for correctness
Abstract
This paper presents our experience specifying and verifying the correctness of ZooKeeper, a complex and evolving distributed coordination system. We use TLA+ to model fine-grained behaviors of ZooKeeper and use the TLC model checker to verify its correctness properties; we also check conformance between the model and code. The fundamental challenge is to balance the granularity of specifications and the scalability of model checking -- fine-grained specifications lead to state-space explosion, while coarse-grained specifications introduce model-code gaps. To address this challenge, we write specifications with different granularities for composable modules, and compose them into mixed-grained specifications based on specific scenarios. For example, to verify code changes, we compose fine-grained specifications of changed modules and coarse-grained specifications that abstract away…
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
TopicsFormal Methods in Verification · Model-Driven Software Engineering Techniques · Software Testing and Debugging Techniques
