{
  "slug": "quorum-read-writeback",
  "term": "Quorum read write-back",
  "aliases": [
    "read write-back"
  ],
  "definition": "Quorum read write-back propagates a read's selected version to a protocol-required quorum and waits for acknowledgements before returning it.",
  "note": "The single-writer ABD register queries a majority, adopts the largest label and announces it to a majority before returning; receivers never decrease their labels. This prevents a later non-overlapping read from returning an older version. Its crash-stop assumptions do not establish persistence across restarts. Query replies alone do not complete the read: its write-back must also finish. Termination in the complete-network crash-stop model assumes a surviving majority and fair execution, not a response-time bound. [abd-register]\n\nWrite-back is a protocol step, not a claim that every replica has converged or an asynchronous cache write-back policy. Cassandra's BLOCKING read repair has its own queried-data scope and partition-atomicity trade-off. [cassandra-read-repair]\n\nAfter state loss, restarting is not the same as becoming operational. Michael et al.'s protocol separates recovering from operational replicas and uses incarnation information to obtain crash-consistent quorums. The model assumes fixed membership, retained process identities and a fresh per-process incarnation identifier on every restart; a process also recognizes that it is restarting. [diskless-recovery]",
  "status": "shipping",
  "advantages": [],
  "limitations": [
    {
      "text": "Quorum overlap alone does not specify version ordering, acknowledged propagation or recovery behavior.",
      "citationIds": [
        "abd-register"
      ]
    },
    {
      "text": "Selecting a version is not completion when the required write-back acknowledgements are unavailable.",
      "citationIds": [
        "abd-register"
      ]
    }
  ],
  "related": [
    "read-quorum",
    "quorum-intersection",
    "read-repair"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-07",
  "citations": [
    {
      "id": "abd-register",
      "title": "Attiya, Bar-Noy and Dolev. Sharing Memory Robustly in Message-Passing Systems. JACM 42(1), 1995, sections 2-4; DOI: 10.1145/200836.200869.",
      "url": "https://groups.csail.mit.edu/tds/papers/Attiya/JACM95.pdf",
      "accessed": "2026-11-07"
    },
    {
      "id": "cassandra-read-repair",
      "title": "Apache Cassandra 5.0.0: Read repair; monotonic quorum reads and partition write atomicity.",
      "url": "https://raw.githubusercontent.com/apache/cassandra/cassandra-5.0.0/doc/modules/cassandra/pages/managing/operating/read_repair.adoc",
      "accessed": "2026-11-07"
    },
    {
      "id": "hesela-consistency",
      "title": "Hesela: Storage consistency, ordering and quorum read write-back",
      "url": "https://hesela.com/analyses/storage-consistency-ordering/#quorum-writeback",
      "accessed": "2026-10-25"
    },
    {
      "id": "diskless-recovery",
      "title": "Ellis Michael et al. Recovering Shared Objects Without Stable Storage. DISC 2017, sections 3-4. DOI: 10.4230/LIPIcs.DISC.2017.36.",
      "url": "https://www.microsoft.com/en-us/research/wp-content/uploads/2018/03/recovery-disc17.pdf",
      "accessed": "2026-11-07"
    }
  ],
  "provenance": [
    "Primary-source synthesis and a separately labelled finite illustration; no database execution or new fault-tolerance proof."
  ]
}
