{
  "slug": "splitfs",
  "term": "SplitFS",
  "aliases": [],
  "definition": "SplitFS is a research persistent-memory file system that divides data handling in a user-space library from metadata handling in ext4 DAX.",
  "note": "The library intercepts application calls through LD_PRELOAD. The prototype requires its kernel setup; this is not a switch on an arbitrary ext4 installation. [splitfs-code]\n\nIts POSIX mode protects metadata; sync adds durable operation completion; strict also makes individual data operations atomic. Applications select their guarantees through separate library instances. [splitfs-author]\n\nIn POSIX mode, overwrites are synchronous but appends need fsync. Strict mode does not combine multiple calls into one atomic transaction. The paper separately delays cross-process append visibility until fsync: durability and visibility must not be conflated. [splitfs-paper]\n\nStaging and relink move prepared data into the target file through journaled metadata changes. [splitfs-author]",
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "The paper's guarantees are operation- and mode-specific, not a general multi-file transaction contract.",
      "citationIds": [
        "splitfs-paper"
      ]
    }
  ],
  "related": [
    "persistent-memory",
    "dax",
    "nova",
    "crash-consistency"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-13",
  "citations": [
    {
      "id": "splitfs-paper",
      "title": "Kadekodi et al. SplitFS: Reducing Software Overhead in File Systems for Persistent Memory. SOSP 2019, sections 3.2-3.4, 5.1-5.3. DOI: 10.1145/3341301.3359631.",
      "url": "https://www.cs.utexas.edu/~vijay/papers/sosp19-splitfs.pdf",
      "accessed": "2026-11-13"
    },
    {
      "id": "splitfs-author",
      "title": "Vijay Chidambaram. SplitFS: architecture, configurable guarantees and relink. PIRL, 24 October 2019.",
      "url": "https://pirl.nvsl.io/2019/10/24/splitfs-reducing-software-overhead-in-file-systems-for-persistent-memory/",
      "accessed": "2026-11-13"
    },
    {
      "id": "splitfs-code",
      "title": "SplitFS authors. README at commit 1ac6412676724760557b587e85cc21f26f654fee: interception and setup.",
      "url": "https://github.com/utsaslab/SplitFS/blob/1ac6412676724760557b587e85cc21f26f654fee/README.md",
      "accessed": "2026-11-13"
    },
    {
      "id": "hesela-pmem",
      "title": "Hesela. SplitFS: choose the operation contract.",
      "url": "https://hesela.com/analyses/pmem-persistence-domains-dax/#splitfs",
      "accessed": "2026-11-13"
    }
  ],
  "provenance": [
    "Primary-source synthesis of the SOSP 2019 design and pinned prototype documentation; no execution or power-loss experiment."
  ]
}
