Table of Contents
Fetching ...

Wait-free Replicated Data Types and Fair Reconciliation

Petr Kuznetsov, Maxence Perion, Sara Tucci-Piergiovanni

TL;DR

The paper tackles wait-free replication under partitioned, asynchronous networks by formalizing eventual state-machine replication and introducing stability (a growing stable prefix) and fairness (no client starvation) as progress guarantees. It proposes a generic DAG-based framework where replicas exchange local views and apply a reconciliation function to derive a total operation history, enabling wait-free operation for any replicated data type. Two reconciliation functions are presented: a BFS-based one that guarantees a growing stable prefix and a fairness-oriented one using round-robin leaders to prevent starvation, with complexity analyses and discussions of Byzantine-tolerant extensions. This work provides a general, practical method for implementing wait-free, partition-tolerant replication with stability and fairness in asynchronous environments, linking CRDT-style ideas with DAG-based ordering and reconciliation.

Abstract

Replication ensures data availability in fault-prone distributed systems. The celebrated CAP theorem stipulates that replicas cannot guarantee both strong consistency and availability under network partitions. A popular alternative, adopted by CRDTs, is to relax consistency to be eventual. It enables progress to be wait-free, as replicas can serve requests immediately. Yet, wait-free replication faces a key challenge: due to asynchrony and concurrency, operations may be constantly reordered, leading to results inconsistent with their original contexts and preventing them from stabilizing over time. Moreover, a particular client may experience starvation if, from some point on, each of its operations is reordered at least once. We make two contributions. First, we formalize the problem addressed by wait-free replicated data types (e.g., CRDTs) as eventual state-machine replication. We then augment it with stability and fairness ensuring, respectively, that (1)~all replicas share a growing stable prefix of operations, and (2)~no client starves. Second, we present a generic DAG-based framework to achieve eventual state-machine replication for any replicated data type, where replicas exchange their local views and merge them using a reconciliation function. We then propose reconciliation functions ensuring stability and fairness.

Wait-free Replicated Data Types and Fair Reconciliation

TL;DR

The paper tackles wait-free replication under partitioned, asynchronous networks by formalizing eventual state-machine replication and introducing stability (a growing stable prefix) and fairness (no client starvation) as progress guarantees. It proposes a generic DAG-based framework where replicas exchange local views and apply a reconciliation function to derive a total operation history, enabling wait-free operation for any replicated data type. Two reconciliation functions are presented: a BFS-based one that guarantees a growing stable prefix and a fairness-oriented one using round-robin leaders to prevent starvation, with complexity analyses and discussions of Byzantine-tolerant extensions. This work provides a general, practical method for implementing wait-free, partition-tolerant replication with stability and fairness in asynchronous environments, linking CRDT-style ideas with DAG-based ordering and reconciliation.

Abstract

Replication ensures data availability in fault-prone distributed systems. The celebrated CAP theorem stipulates that replicas cannot guarantee both strong consistency and availability under network partitions. A popular alternative, adopted by CRDTs, is to relax consistency to be eventual. It enables progress to be wait-free, as replicas can serve requests immediately. Yet, wait-free replication faces a key challenge: due to asynchrony and concurrency, operations may be constantly reordered, leading to results inconsistent with their original contexts and preventing them from stabilizing over time. Moreover, a particular client may experience starvation if, from some point on, each of its operations is reordered at least once. We make two contributions. First, we formalize the problem addressed by wait-free replicated data types (e.g., CRDTs) as eventual state-machine replication. We then augment it with stability and fairness ensuring, respectively, that (1)~all replicas share a growing stable prefix of operations, and (2)~no client starves. Second, we present a generic DAG-based framework to achieve eventual state-machine replication for any replicated data type, where replicas exchange their local views and merge them using a reconciliation function. We then propose reconciliation functions ensuring stability and fairness.

Paper Structure

This paper contains 10 sections, 7 theorems, 1 figure, 3 algorithms.

Key Result

Theorem 5.1

For any reconciliation function, Algorithm alg:append satisfies eventual state-machine replication.

Figures (1)

  • Figure 1: A DAG representing an execution of a basic Network File System. Clients can create (operation $\textit{mkdir}(\textit{path}, \textit{name})$) and delete directories (operation $\textit{rmdir}(\textit{path})$).

Theorems & Definitions (8)

  • Definition 5.1: Reconciliation function
  • Theorem 5.1
  • Lemma 5.1
  • Lemma 5.2
  • Lemma 5.3: Bounded same distance set
  • Lemma 5.4: Same distance stability
  • Theorem 5.2: $f_{\textit{BFS}}$ ensure stability
  • Theorem 5.3: $f_{\textit{fair}}$ ensures stability and fairness