Replication-aware linearizability

Distributed systems often replicate data at multiple locations to achieve availability despite network partitions. These systems accept updates at any replica and propagate them asynchronously to every other replica. Conflict-Free Replicated Data Types (CRDTs) provide a principled approach to the problem of ensuring that replicas are eventually consistent despite the asynchronous delivery of updates. We address the problem of specifying and verifying CRDTs, introducing a new correctness criterion called Replication-Aware Linearizability. This criterion is inspired by linearizability, the de-facto correctness criterion for (shared-memory) concurrent data structures. We argue that this criterion is both simple to understand, and it fits most known implementations of CRDTs. We provide a proof methodology to show that a CRDT satisfies replication-aware linearizability that we apply on a wide range of implementations. Finally, we show that our criterion can be leveraged to reason modularly about the composition of CRDTs.

[1]  Pascal Molli,et al.  Wooki: A P2P Wiki-Based Collaborative Writing Tool , 2007, WISE.

[2]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

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

[4]  Paulo Sérgio Almeida,et al.  The Single-Writer Principle in CRDT Composition , 2017, PMLDC@ECOOP.

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

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

[7]  Werner Vogels,et al.  Dynamo: amazon's highly available key-value store , 2007, SOSP.

[8]  Pascal Molli,et al.  Data consistency for P2P collaborative editing , 2006, CSCW '06.

[9]  Rachid Guerraoui,et al.  On verifying causal consistency , 2016, POPL.

[10]  Martín Abadi,et al.  The Existence of Refinement Mappings , 1988, LICS.

[11]  Marvin Theimer,et al.  Session guarantees for weakly consistent replicated data , 1994, Proceedings of 3rd International Conference on Parallel and Distributed Information Systems.

[12]  Robert Thomas,et al.  Maintenance of duplicate databases , 1975, RFC.

[13]  Nancy A. Lynch,et al.  Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services , 2002, SIGA.

[14]  Alastair R. Beresford,et al.  Verifying strong eventual consistency in distributed systems , 2017, Proc. ACM Program. Lang..

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

[16]  Joonwon Lee,et al.  Parallel Distrib , 2022 .

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

[18]  Sebastian Burckhardt,et al.  Specification and Complexity of Collaborative Text Editing , 2016, PODC.

[19]  Annette Bieniusa,et al.  Formal Specification and Verification of CRDTs , 2014, FORTE.

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

[21]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[22]  N. Lynch,et al.  Forward and backward simulations , 1993 .