|
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.
|
|