{
  "slug": "late-binding-journal",
  "term": "Late-binding journal",
  "aliases": [
    "Late-binding journaling"
  ],
  "definition": "A late-binding journal records an operation's logical order before binding its recovery record to the physical locations holding its data.",
  "note": "The research design persists containing tree nodes before the corresponding log flush. Recovery reserves referenced nodes before replay. Logging values can remain preferable for small updates because forced node writes reduce batching. [fast16]\n\nBetrFS 0.2 recovers through the last completed log flush or checkpoint; a query-visible update alone is not evidence of durability. [fast16]\n\nBindings may name nodes missing from the checkpoint's allocation table. Reserving these nodes prevents replay from reusing blocks that still hold recovery data. [fast16]\n\nAn unbound insert can bind to a NULL node only after all transactions involving its key-value pair and the deleting transaction commit, while the log has not yet been flushed. This scoped cancellation avoids writing an obsolete value. [fast16]",
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "This is a specific research recovery protocol, not a generic filesystem option or proof of hardware power-loss safety.",
      "citationIds": [
        "fast16"
      ]
    }
  ],
  "related": [
    "b-epsilon-tree",
    "buffered-upsert",
    "write-ahead-log",
    "fsync"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-24",
  "citations": [
    {
      "id": "fast16",
      "title": "Jun Yuan et al. Optimizing Every Operation in a Write-optimized File System. FAST 2016, pp. 1-14; section 3 (pp. 3-5), sections 6-7.",
      "url": "https://www.usenix.org/system/files/conference/fast16/fast16-papers-yuan.pdf",
      "accessed": "2026-10-24"
    },
    {
      "id": "hesela-buffered",
      "title": "Hesela. B-epsilon trees: visible updates, deferred work",
      "url": "https://hesela.com/analyses/b-epsilon-trees-buffered-updates/",
      "accessed": "2026-10-23"
    }
  ],
  "provenance": [
    "FAST 2016 BetrFS 0.2, section 3, source-reviewed on 2026-10-23. No implementation or hardware experiment performed.",
    "Section 3 cancellation conditions rechecked on 2026-10-24; the teaching model does not implement this recovery protocol."
  ]
}
