BPFS is a file system designed for byte-addressable, persistent memory technologies (in particular, phase change memory). It uses these mediums and careful file system design to provide dramatically stronger durability and consistency guarantees to applications: BPFS commits each file system operation synchronously and atomically.
Improving File System Consistency and Durability with Patches and BPFS
Ph.D. dissertation, UCLA, November 2010
(In addition to the SOSP 2009 content, this includes a more extensive performance comparison of BPFS with other file systems and an evaluation of the effectiveness and correctness of the BPFS optimizations)
Better I/O Through Byte-Addressable, Persistent Memory
Jeremy Condit, Edmund B. Nightingale, Christopher Frost, Engin Ipek, Doug Burger, Benjamin Lee, and Derrick Coetzee
Proceedings of the 22nd Symposium on Operating Systems Principles (SOSP 2009)
Big Sky, MT, October 2009
BPFS is a prototype implemented as a FUSE file system for Linux. It currently uses (volatile) DRAM as a development stand-in for phase change memory.
BPFS is licensed under the GPL. The Microsoft Corporation may hold rights to portions of the algorithms employed by BPFS.
Browse github repository.
Get bpfs: git clone https://github.com/ucla-readable/bpfs.git