splitfs · research

SplitFS

SplitFS is a research persistent-memory file system that divides data handling in a user-space library from metadata handling in ext4 DAX.

Related Observatory article: SplitFS on hesela.com

The library intercepts application calls through LD_PRELOAD. The prototype requires its kernel setup; this is not a switch on an arbitrary ext4 installation. [3]

Its POSIX mode protects metadata; sync adds durable operation completion; strict also makes individual data operations atomic. Applications select their guarantees through separate library instances. [2]

In 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. [1]

Staging and relink move prepared data into the target file through journaled metadata changes. [2]

Relations

related
Persistent memory, Direct Access, NOVA file system, Crash consistency

Limitations

  • The paper's guarantees are operation- and mode-specific, not a general multi-file transaction contract. [1]

Citations

  1. 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. (accessed 2026-11-13)
  2. Vijay Chidambaram. SplitFS: architecture, configurable guarantees and relink. PIRL, 24 October 2019. (accessed 2026-11-13)
  3. SplitFS authors. README at commit 1ac6412676724760557b587e85cc21f26f654fee: interception and setup. (accessed 2026-11-13)

Further reading

  1. Hesela. SplitFS: choose the operation contract. (accessed 2026-11-13)
Sources & caveats
  • Primary-source synthesis of the SOSP 2019 design and pinned prototype documentation; no execution or power-loss experiment.

JSON: /data/terms/splitfs.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. SplitFS. Hesela. 2026-11-13. https://hesela.dev/terms/splitfs/