{
  "slug": "madfs",
  "term": "MadFS",
  "aliases": [
    "metadata embedded filesystem",
    "per-file virtualization"
  ],
  "definition": "MadFS is a research library filesystem that embeds file-local metadata inside regular DAX-backed files to coordinate copy-on-write updates in userspace.",
  "note": "The kernel still controls permissions and directory operations; MadFS manages the embedded block map and virtual file size. Its log-based optimistic concurrency protocol publishes writes across processes without a central lease service. [madfs-paper]\n\nVisibility and durability have different completion points. The FAST 2023 implementation batches log-cacheline writeback; fsync persists the outstanding tail. Its mmap path has no crash-consistency guarantee. These limits must not be replaced by a claim that every returned write or mapped store is durable. [madfs-paper] [madfs-sync] [madfs-mmap]\n\nThe compact log is replayed into a DRAM block table on open. Removing a separate recovery phase therefore does not eliminate reconstruction work; the authors flag frequent file opens as a poor fit. [madfs-paper]",
  "status": "research",
  "advantages": [],
  "limitations": [],
  "related": [
    "persistent-memory",
    "dax",
    "kuco"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-14",
  "citations": [
    {
      "id": "madfs-paper",
      "title": "Zhong et al. MadFS: Per-File Virtualization for Userspace Persistent Memory Filesystems. FAST 2023, pp. 265-280, sections 3-5.",
      "url": "https://www.usenix.org/system/files/fast23-zhong.pdf",
      "accessed": "2026-11-14"
    },
    {
      "id": "madfs-sync",
      "title": "MadFS authors. File::fsync at revision 7514a7816d39b95c9f34555a13c50173c4fa2b32, src/file/sync.cpp.",
      "url": "https://github.com/ShawnZhong/MadFS/blob/7514a7816d39b95c9f34555a13c50173c4fa2b32/src/file/sync.cpp",
      "accessed": "2026-11-14"
    },
    {
      "id": "madfs-mmap",
      "title": "MadFS authors. File::mmap at revision 7514a7816d39b95c9f34555a13c50173c4fa2b32, src/file/mmap.cpp.",
      "url": "https://github.com/ShawnZhong/MadFS/blob/7514a7816d39b95c9f34555a13c50173c4fa2b32/src/file/mmap.cpp",
      "accessed": "2026-11-14"
    },
    {
      "id": "hesela-madfs",
      "title": "Hesela. MadFS: move the block map, keep the permission boundary.",
      "url": "https://hesela.com/analyses/pmem-persistence-domains-dax/#madfs",
      "accessed": "2026-11-14"
    }
  ],
  "provenance": [
    "Primary-paper and pinned-source synthesis. No MadFS runtime, hardware benchmark or power-loss experiment was performed. The 2023 evaluation and later source snapshot are distinct evidence."
  ]
}
