Keep CALM and CRDT On

  title={Keep CALM and CRDT On},
  author={Shadaj Laddad and Conor Power and Mae Milano and Alvin Cheung and Natacha Crooks and Joseph M. Hellerstein},
  journal={Proc. VLDB Endow.},
Despite decades of research and practical experience, developers have few tools for programming reliable distributed applications without resorting to expensive coordination techniques. Conflict-free replicated datatypes (CRDTs) are a promising line of work that enable coordination-free replication and offer certain eventual consistency guarantees in a relatively simple object-oriented API. Yet CRDT guarantees extend only to data updates; observations of CRDT state are unconstrained and unsafe… 

Figures from this paper



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.

TARDiS: A Branch-and-Merge Approach To Weak Consistency

This paper presents the design, implementation, and evaluation of TARDiS (Transactional Asynchronously Replicated Divergent Store), a transactional key-value store explicitly designed for weakly-consistent systems, and finds that TardiS reduces coding complexity for applications and that judicious branch-on-conflict can improve their local throughput at each site by two to eight times.

Datafun: a functional Datalog

Datafun is defined, an analogue of Datalog supporting higher-order functional programming and the key idea is to track monotonicity with types.

LVars: lattice-based data structures for deterministic parallelism

LVars is presented, a new model for deterministic-by-construction parallel programming that generalizes existing single-assignment models to allow multiple assignments that are monotonically increasing with respect to a user-specified lattice.

Relational transducers for declarative networking

A formal definition of coordination-freeness is proposed and it is confirmed that the class of monotone queries is captured by coordination-free transducer networks.

Keeping CALM: When Distributed Consistency is Easy

This paper presents an informal introduction to the CALM Theorem, which answers the question of when coordination is actually required precisely by moving up from traditional storage consistency to consider properties of programs.

Katara: synthesizing CRDTs with verified lifting

Katara is a program synthesis-based system that takes sequential data type implementations and automatically synthesizes verified CRDT designs from them, 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.

DSON: JSON CRDT Using Delta-Mutations For Document Stores

DSON is proposed, a space efficient 𝛿 -based CRDT approach for distributed JSON document stores, enabling high availability at a global scale, while providing strong eventual consistency guarantees, relieving application developers from the burden of conflict resolution.

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.

Convergence of Datalog over (Pre-) Semirings

This paper considers an ordered semiring, defines the semantics of a datalog program as a least fixpoint in thisSemiring, and describes a class of ordered semirings on which one can use the semi-naive evaluation algorithm on anydatalog program.