Table of Contents
Fetching ...

Approaches to Conflict-free Replicated Data Types

Paulo Sérgio Almeida

TL;DR

This article provides solid coverage of the essential concepts of CRDT, clarifying some misconceptions that frequently occur, but also presents some novel insights gained from considerable experience in designing both specific CRDTs and approaches to CRDTs.

Abstract

Conflict-free Replicated Data Types (CRDTs) allow optimistic replication in a principled way. Different replicas can proceed independently, being available even under network partitions, and always converging deterministically: replicas that have received the same updates will have equivalent state, even if received in different orders. After a historical tour of the evolution from sequential data types to CRDTs, we present in detail the two main approaches to CRDTs, operation-based and state-based, including two important variations, the pure operation-based and the delta-state based. Intended as a tutorial for prospective CRDT researchers and designers, it provides solid coverage of the essential concepts, clarifying some misconceptions which frequently occur, but also presents some novel insights gained from considerable experience in designing both specific CRDTs and approaches to CRDTs.

Approaches to Conflict-free Replicated Data Types

TL;DR

This article provides solid coverage of the essential concepts of CRDT, clarifying some misconceptions that frequently occur, but also presents some novel insights gained from considerable experience in designing both specific CRDTs and approaches to CRDTs.

Abstract

Conflict-free Replicated Data Types (CRDTs) allow optimistic replication in a principled way. Different replicas can proceed independently, being available even under network partitions, and always converging deterministically: replicas that have received the same updates will have equivalent state, even if received in different orders. After a historical tour of the evolution from sequential data types to CRDTs, we present in detail the two main approaches to CRDTs, operation-based and state-based, including two important variations, the pure operation-based and the delta-state based. Intended as a tutorial for prospective CRDT researchers and designers, it provides solid coverage of the essential concepts, clarifying some misconceptions which frequently occur, but also presents some novel insights gained from considerable experience in designing both specific CRDTs and approaches to CRDTs.
Paper Structure (101 sections, 27 equations, 24 figures, 2 tables, 8 algorithms)

This paper contains 101 sections, 27 equations, 24 figures, 2 tables, 8 algorithms.

Figures (24)

  • Figure 1: A register object with read and write operations. To be linearizable, last read must return 0.
  • Figure 2: Some consistency models for distributed systems.
  • Figure 3: Execution model for op-based CRDTs, stressing the commutativity of effect for concurrently invoked operations.
  • Figure 4: Simple CRDTs with only commutative operations: GCounter, PNCounter and GSet. State and effect the same as for a sequential data type.
  • Figure 5: Op-based observed-remove set, ORSet$\langle E \rangle$, naive implementation.
  • ...and 19 more figures