Invariant Safety for Distributed Applications

We study a proof methodology for verifying the safety of data invariants of highly-available distributed applications that replicate state. The proof is (1) modular: one can reason about each individual operation separately, and (2) sequential: one can reason about a distributed application as if it were sequential. We automate the methodology and illustrate the use of the tool with a representative example.

[1]  Alastair R. Beresford,et al.  A framework for establishing Strong Eventual Consistency for Conflict-free Replicated Datatypes , 2017, Arch. Formal Proofs.

[2]  Sreeja Nair,et al.  Improving the "Correct Eventual Consistency" Tool , 2018, ArXiv.

[3]  Marc Shapiro,et al.  A comprehensive study of Convergent and Commutative Replicated Data Types , 2011 .

[4]  Bor-Yuh Evan Chang,et al.  Boogie: A Modular Reusable Verifier for Object-Oriented Programs , 2005, FMCO.

[5]  Radha Jagadeesan,et al.  Eventual Consistency for CRDTs , 2018, ESOP.

[6]  Marc Shapiro,et al.  Conflict-Free Replicated Data Types , 2011, SSS.

[7]  Sebastian Burckhardt,et al.  Principles of Eventual Consistency , 2014, Found. Trends Program. Lang..

[8]  Sebastian Burckhardt,et al.  Replicated data types: specification, verification, optimality , 2014, POPL.

[9]  Paulo Sérgio Almeida,et al.  Composition in State-based Replicated Data Types , 2017, Bull. EATCS.

[10]  Hongseok Yang,et al.  'Cause I'm strong enough: Reasoning about consistency choices in distributed systems , 2016, POPL.

[11]  Hongseok Yang,et al.  The CISE tool: proving weakly-consistent applications correct , 2016, PaPoC@EuroSys.

[12]  Peter W. O'Hearn,et al.  Resources, concurrency, and local reasoning , 2007 .

[13]  Suresh Jagannathan,et al.  Declarative programming over eventually consistent data stores , 2015, PLDI.

[14]  Carla Ferreira,et al.  Bringing Hybrid Consistency Closer to Programmers , 2017, PaPoC@EuroSys.