{
  "slug": "ctfs",
  "term": "ctFS",
  "aliases": [
    "contiguous file system (ctFS)"
  ],
  "definition": "ctFS is a research persistent-memory file system that places each file in a contiguous virtual address range and uses hardware address translation for access.",
  "note": "Physical pages need not be contiguous. Persistent page tables preserve mappings; ordinary DRAM page tables supply the hardware MMU. Growing a file can exchange mappings instead of copying its existing payload. [ctfs-author]\n\nThe paper separates sync-mode persistence from strict-mode atomic data writes. Staging and pswap provide the latter; unaligned boundary fragments still need copying. This is an operation-level contract, not a transaction spanning arbitrary calls. [ctfs-paper]\n\nAt revision 664a8b7, ctfs_config.h comments out CTFS_ATOMIC_WRITE. The ctfs_pwrite dispatcher selects its atomic path only when that macro is defined. Record the effective build configuration before attributing strict-mode guarantees to a binary. [ctfs-config] [ctfs-dispatch]\n\nThe released prototype expects a modified kernel and Optane persistent-memory hardware. It is not an ordinary ext4 mount option. [ctfs-readme]",
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "The paper's user-space protection targets accidental bugs, not malicious applications.",
      "citationIds": [
        "ctfs-paper"
      ]
    }
  ],
  "related": [
    "splitfs"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-14",
  "citations": [
    {
      "id": "ctfs-paper",
      "title": "Li et al. ctFS. USENIX FAST 2022, pp.35-50, sections 3.1-3.6 and 5.",
      "url": "https://www.usenix.org/system/files/fast22-li.pdf",
      "accessed": "2026-11-14"
    },
    {
      "id": "ctfs-author",
      "title": "Li et al. ctFS: Converting File Index Traversals to Hardware Memory Translation. USENIX ;login: Online, 2022.",
      "url": "https://www.usenix.org/publications/loginonline/ctfs-converting-file-index-traversals-hardware-memory-translation-through",
      "accessed": "2026-11-14"
    },
    {
      "id": "ctfs-config",
      "title": "ctFS 664a8b7: ctfs_config.h, commented atomic-write configuration.",
      "url": "https://github.com/robinlee09201/ctFS/blob/664a8b7941c8039a2c45783cc249aa32be1780c6/ctfs_config.h#L1-L5",
      "accessed": "2026-11-14"
    },
    {
      "id": "ctfs-dispatch",
      "title": "ctFS 664a8b7: ctfs_pwrite dispatch and atomic-write implementation.",
      "url": "https://github.com/robinlee09201/ctFS/blob/664a8b7941c8039a2c45783cc249aa32be1780c6/ctfs_func.c#L506-L512",
      "accessed": "2026-11-14"
    },
    {
      "id": "ctfs-readme",
      "title": "ctFS 664a8b7: prototype requirements and tested environment.",
      "url": "https://github.com/robinlee09201/ctFS/blob/664a8b7941c8039a2c45783cc249aa32be1780c6/README.md",
      "accessed": "2026-11-14"
    }
  ],
  "provenance": [
    "Primary-source synthesis and pinned-code inspection on 2026-11-14; no ctFS execution, crash injection or performance reproduction."
  ]
}
