Collabs: Composable Collaborative Data Structures

  title={Collabs: Composable Collaborative Data Structures},
  author={Matthew Weidner and Heather Miller and Huairui Qi and Maxime Kjaer and Ria Pradeep and Benito Geordie and Christopher S. Meiklejohn},
Replicated data types (RDTs), such as Conflict-free Replicated Data Types (CRDTs), provide an abstraction for reasoning about replication and consistency in distributed systems. To make them as useful as ordinary, local data structures, RDTs need to be both modular and composable , so that programmers can create new app-specific RDTs by composing existing ones. However, no existing RDT libraries combine these properties; either they use monolithic architectures that rule out new RDTs or they do… 



OpSets: Sequential Specifications for Replicated Datatypes (Extended Version)

The Isabelle/HOL proof assistant is used to formalise the OpSets approach and produce mechanised proofs of correctness of the main claims in this paper, thereby eliminating the ambiguity of previous informal approaches, and ruling out reasoning errors that could occur in handwritten proofs.

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.

A comprehensive study of Convergent and Commutative Replicated Data Types

This paper formalises asynchronous object replication, either state based or operation based, and provides a sufficient condition appropriate for each case, and describes several useful CRDTs, including container data types supporting bothadd and remove operations with clean semantics, and more complex types such as graphs, montonic DAGs, and sequences.

A Conflict-Free Replicated JSON Datatype

This paper presents an algorithm and formal semantics for a JSON data structure that automatically resolves concurrent modifications such that no updates are lost, and such that all replicas converge towards the same state (a conflict-free replicated datatype or CRDT).

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.

Don't settle for eventual: scalable causal consistency for wide-area storage with COPS

This paper identifies and defines a consistency model---causal consistency with convergent conflict handling, or causal+---that is the strongest achieved under these constraints and presents the design and implementation of COPS, a key-value store that delivers this consistency model across the wide-area.

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.

Higher-Order Patterns in Replicated Data Types

The design of Conflict-free Replicated Data Types traditionally requires implementing new designs from scratch to meet a desired behavior. Although there are composition rules that can guide the

Composing and decomposing op-based CRDTs with semidirect products

The semidirect product of op-based CRDTs is presented, which combines the operations of twoCRDTs into one while handling conflicts between their concurrent operations in a uniform way, forming a bridge between these two opposing techniques for constructing replicated data types.

Near Real-Time Peer-to-Peer Shared Editing on Extensible Data Types

YATA is presented, an approach for peer-to-peer shared editing applications that ensures convergence, preserves user intentions, allows offline editing and can be utilized for arbitrary data types in the Web browser.