A Unified, Practical, and Understandable Model of Non-transactional Consistency Levels in Distributed Replication
Guanzhou Hu, Andrea Arpaci-Dusseau, Remzi Arpaci-Dusseau
TL;DR
The paper introduces a unified, ordering-based framework for non transactional consistency in distributed replication by modeling a Shared Object Pool (SOP) where objects are registers and operations yield a DAG of acknowledged actions. Consistency semantics emerge from two constraint families: convergence constraints (SO, CPO, NPO) and relationship constraints (RT, CASL, FIFO, None), enabling a spectrum from linearizability to eventual and beyond. A Jepsen integrated checker implements the SOP model to assess real system histories from etcd, ZooKeeper, and RabbitMQ, illustrating both applicability and practical limitations. The work offers a practical toolset and design guidance for protocol designers to reason about trade offs between strong guarantees and performance/availability in cloud-era replicated storage systems.
Abstract
We present a practical model of non-transactional consistency levels in the context of distributed data replication. Unlike prior work, our simple Shared Object Pool (SOP) model defines common consistency levels in a unified framework centered around the single concept of ordering. This naturally reflects modern cloud object storage services and is thus easy to understand. We show that a consistency level can be intuitively defined by specifying two types of constraints on the validity of orderings allowed by the level: convergence, which bounds the lineage shape of the ordering, and relationship, which bounds the relative positions between operations. We give examples of representative protocols and systems, and discuss their availability upper bound. To further demonstrate the expressiveness and practical relevance of our model, we use it to implement a Jepsen-integrated consistency checker for the four most common levels (linearizable, sequential, causal+, and eventual); the checker analyzes consistency conformity for small-scale histories of real system runs (etcd, ZooKeeper, and RabbitMQ).
