Affiliation:
1. Massachusetts Institute of Technology, USA
Abstract
Today’s Internet services are often expected to stay available and render high responsiveness even in the face of site crashes and network partitions. Theoretical results state that causal consistency is one of the strongest consistency guarantees that is possible under these requirements, and many practical systems provide causally consistent key-value stores. In this paper, we present a framework called Chapar for modular verification of causal consistency for replicated key-value store implementations and their client programs. Specifically, we formulate separate correctness conditions for key-value store implementations and for their clients. The interface between the two is a novel operational semantics for causal consistency. We have verified the causal consistency of two key-value store implementations from the literature using a novel proof technique. We have also implemented a simple automatic model checker for the correctness of client programs. The two independently verified results for the implementations and clients can be composed to conclude the correctness of any of the programs when executed with any of the implementations. We have developed and checked our framework in Coq, extracted it to OCaml, and built executable stores.
Funder
DARPA
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
43 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Modeling and Verification of the Causal Broadcast Algorithm Using Colored Petri Nets;2024 Third International Conference on Distributed Computing and High Performance Computing (DCHPC);2024-05-14
2. Inductive Diagrams for Causal Reasoning;Proceedings of the ACM on Programming Languages;2024-04-29
3. Rooting for Efficiency: Mechanised Reasoning about Array-Based Trees in Separation Logic;Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs;2024-01-09
4. Verifying Reliable Network Components in a Distributed Separation Logic with Dependent Separation Protocols;Proceedings of the ACM on Programming Languages;2023-08-30
5. Performal: Formal Verification of Latency Properties for Distributed Systems;Proceedings of the ACM on Programming Languages;2023-06-06