{
  "slug": "durable-linearizability",
  "term": "Durable linearizability",
  "aliases": [],
  "definition": "Durable linearizability requires a concurrent object's operation history to remain linearizable across system-wide crashes without losing completed operations.",
  "note": "The full-system model gives each era new abstract threads. A pending call may take effect before failure, be completed by later threads or have no effect, subject to a legal history. The condition does not require every interrupted call to resolve by the crash. [disc16]\n\nBuffered durable linearizability can lose effects of completed calls. Retained portions of pre-crash eras must be happens-before-consistent cuts that remain linearizable when combined with subsequent execution. Unlike unbuffered durable linearizability, it is not generally compositional. [disc16]\n\nDurability concerns abstract effects rather than every representation byte. A persistent set can recover links from durable membership information. In this proof framework, recovery must preserve the encoded abstract state even if recovery itself crashes. [path23]",
  "status": "research",
  "advantages": [
    {
      "text": "Recovery correctness and operation correctness can be verified separately using explicit durable and recovered representations.",
      "citationIds": [
        "path23"
      ]
    }
  ],
  "limitations": [
    {
      "text": "This safety condition alone gives no bound on recovery time or operation completion.",
      "citationIds": [
        "disc16"
      ]
    }
  ],
  "related": [
    "linearizability",
    "memory-persistency",
    "crash-consistency"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-30",
  "citations": [
    {
      "id": "disc16",
      "title": "Izraelevitz, Mendes and Scott. Linearizability of Persistent Memory Objects Under a Full-System-Crash Failure Model. DISC 2016, sections 1-2 and 3.3.",
      "url": "https://www.cs.rochester.edu/u/scott/papers/2016_DISC_persistence.pdf",
      "accessed": "2026-10-30"
    },
    {
      "id": "path23",
      "title": "D'Osualdo, Raad and Vafeiadis. The Path to Durable Linearizability. POPL 2023, section 2 (pp. 8-9) and section 4.1.",
      "url": "https://arxiv.org/abs/2211.07631",
      "accessed": "2026-10-30"
    },
    {
      "id": "hesela-pmem",
      "title": "Hesela. Persistent memory: DAX is not a durable commit.",
      "url": "https://hesela.com/analyses/pmem-persistence-domains-dax/",
      "accessed": "2026-10-30"
    }
  ],
  "provenance": [
    "DISC 2016 section 2, Definitions 1-4, supplies the full-system failure model and completed/pending-operation distinction; section 3.3 separates liveness conditions.",
    "The Path to Durable Linearizability was read in sections 2 and 4.1 for the link-free-set representation and sound-recovery argument.",
    "Source synthesis of a formal safety condition, not a hardware experiment or proof of a particular storage implementation."
  ]
}
