{
  "slug": "soft-updates",
  "term": "Soft updates",
  "aliases": [
    "softdep"
  ],
  "definition": "Soft updates is a filesystem metadata-consistency mechanism that delays unsafe on-disk changes until their update dependencies are satisfied.",
  "note": "The original BSD implementation uses per-change tracking and temporary buffer rollback rather than a full metadata journal. [soft1999] FreeBSD also offers soft updates journaling as a separate setting. [tunefs143]",
  "status": "shipping",
  "advantages": [],
  "limitations": [
    {
      "text": "It does not make every recent application write durable, and unused allocations can require later reclamation.",
      "citationIds": [
        "soft1999"
      ]
    }
  ],
  "related": [
    "metadata-update-dependency",
    "background-fsck",
    "crash-consistency"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "soft1999",
      "title": "McKusick and Ganger. Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem. FREENIX 1999, pp. 1-17, sections 2-4.",
      "url": "https://www.usenix.org/legacy/publications/library/proceedings/usenix99/full_papers/mckusick/mckusick.pdf",
      "accessed": "2026-10-15"
    },
    {
      "id": "hesela-soft",
      "title": "Hesela: Soft updates and metadata ordering",
      "url": "https://hesela.com/analyses/soft-updates-metadata-ordering/",
      "accessed": "2026-10-15"
    },
    {
      "id": "tunefs143",
      "title": "FreeBSD 14.3-RELEASE tunefs(8): distinct soft updates and soft updates journaling settings.",
      "url": "https://man.freebsd.org/cgi/man.cgi?query=tunefs&sektion=8&manpath=FreeBSD+14.3-RELEASE",
      "accessed": "2026-10-15"
    }
  ],
  "updated": "2026-10-15"
}
