Pure Operation-Based Replicated Data Types

by   Carlos Baquero, et al.

Distributed systems designed to serve clients across the world often make use of geo-replication to attain low latency and high availability. Conflict-free Replicated Data Types (CRDTs) allow the design of predictable multi-master replication and support eventual consistency of replicas that are allowed to transiently diverge. CRDTs come in two flavors: state-based, where a state is changed locally and shipped and merged into other replicas; operation-based, where operations are issued locally and reliably causal broadcast to all other replicas. However, the standard definition of op-based CRDTs is very encompassing, allowing even sending the full-state, and thus imposing storage and dissemination overheads as well as blurring the distinction from state-based CRDTs. We introduce pure op-based CRDTs, that can only send operations to other replicas, drawing a clear distinction from state-based ones. Data types with commutative operations can be trivially implemented as pure op-based CRDTs using standard reliable causal delivery; whereas data types having non-commutative operations are implemented using a PO-Log, a partially ordered log of operations, and making use of an extended API, i.e., a Tagged Causal Stable Broadcast (TCSB), that provides extra causality information upon delivery and later informs when delivered messages become causally stable, allowing further PO-Log compaction. The framework is illustrated by a catalog of pure op-based specifications for classic CRDTs, including counters, multi-value registers, add-wins and remove-wins sets.


page 1

page 2

page 3

page 4


Verified Causal Broadcast with Liquid Haskell

Protocols to ensure that messages are delivered in causal order are a ub...

GOC-Ledger: State-based Conflict-Free Replicated Ledger from Grow-Only Counters

Conventional blockchains use consensus algorithms that totally order upd...

Verifying Strong Eventual Consistency in δ-CRDTs

Conflict-free replicated data types (CRDTs) are a natural structure with...

Tunable Causal Consistency: Specification and Implementation

To achieve high availability and low latency, distributed data stores of...

Non-uniform Replication

Replication is a key technique in the design of efficient and reliable d...

Conflict-Aware Replicated Data Types

We introduce Conflict-Aware Replicated Data Types (CARDs). CARDs are sig...

An Efficient Approach to Move Elements in a Distributed Geo-Replicated Tree

Replicated tree data structures are extensively used in collaborative ap...

Please sign up or login with your details

Forgot password? Click here to reset