Certified mergeable replicated data types

  title={Certified mergeable replicated data types},
  author={Vimala Soundarapandian and Adharsh Kamath and Kartik Nagar and K. C. Sivaramakrishnan},
  journal={Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation},
Replicated data types (RDTs) are data structures that permit concurrent modification of multiple, potentially geo-distributed, replicas without coordination between them. RDTs are designed in such a way that conflicting operations are eventually deterministically reconciled ensuring convergence. Constructing correct RDTs remains a difficult endeavour due to the complexity of reasoning about independently evolving states of the replicas. With the focus on the correctness of RDTs (and rightly so… 

Figures and Tables from this paper

Synthesizing CRDTs from Sequential Data Types with Verified Lifting
This paper presents a program synthesis-based system that can automatically synthesize verified CRDT designs from sequential data type implementations that are fully, automatically verified, eliminating entire classes of common errors and reducing the process of producing a new CRDT from a painstaking paper proof of correctness to a lightweight specification.
Assessing the understandability of a distributed algorithm by tweeting buggy pseudocode
This report tells the story of one informal experiment, in which users on Twitter were invited to identify the bug in an incorrect CRDT algorithm, and over the following 11 hours, at least 16 people made attempts, but most were unsuccessful.


Automated Parameterized Verification of CRDTs
A framework for automatically verifying convergence of CRDTs under different weak-consistency policies is presented and a proof rule parameterized by a consistency specification based on the concepts of commutativity modulo consistency policy and non-interference to Commutativity is developed.
Conflict-Free Replicated Data Types
This paper formalises two popular approaches (state- and operation-based) and their relevant sufficient conditions and studies a number of useful CRDTs, such as sets with clean semantics, supporting both add and remove operations, and considers in depth the more complex Graph data type.
Mergeable replicated data types
This work presents a fundamentally different approach to programming in the presence of replicated state based on the use of invertible relational specifications of an inductively-defined data type as a mechanism to capture salient aspects of the data type relevant to how its different instances can be safely merged in a replicated environment.
ECROs: building global scale systems from sequential code
The approach derives a correct RDT from any sequential data type without changes to the data type's implementation and with minimal coordination, and considerably improves the performance of non-commutative operations, compared to existing solutions.
Delta state replicated data types
Replicated data types: specification, verification, optimality
This work proposes a framework for specifying replicated data types using relations over events and verifying their implementations using replication-aware simulations, and shows how to specify consistency of replicated stores with multiple objects axiomatically, in analogy to prior work on weak memory models.
Banyan: Coordination-Free Distributed Transactions over Mergeable Types
Banyan is described, a distributed programming model for developing loosely connected distributed applications equipped with a three-way merge function à la Git to handle conflicts and provides isolated transactions for grouping together individual operations which do not require coordination among different replicas.
Hamsaz: replication coordination analysis and synthesis
This work presents novel coordination protocols that are parametric in terms of the analysis results and provide the well-coordination requirements and implemented a tool called Hamsaz that can automatically analyze the given object, instantiate the protocols and synthesize replicated objects.
Verifying strong eventual consistency in distributed systems
This work develops a modular and reusable framework in the Isabelle/HOL interactive proof assistant for verifying the correctness of CRDT algorithms, and obtains the first machine-checked correctness theorems for three concrete CRDTs.
An optimized conflict-free replicated set
A reasoning abstraction, \emph{permutation equivalence}, is presented that systematizes the characterization of the expected concurrency semantics of concurrent types and presents one of the existing conflict-free replicated data types, Observed-Remove Set.