The Featherstitch File System Project
Reliable storage systems depend in part on "write-before" relationships where some changes to stable storage are delayed until other changes commit. A journaled file system, for example, must commit a journal transaction before applying that transaction's changes, and soft updates and other consistency enforcement mechanisms have similar constraints, implemented in each case in system-dependent ways.
We present a general abstraction, the patch, that makes write-before relationships explicit and file system agnostic. A patch-based file system implementation expresses dependencies among writes, leaving lower system layers to determine write orders that satisfy those dependencies. Storage system modules can examine and modify the dependency structure, and generalized file system dependencies are naturally exportable to user level.
Our patch-based storage system, Featherstitch, includes several important optimizations that reduce patch overheads by orders of magnitude. Our ext2 prototype runs in the Linux kernel and supports asynchronous writes, soft updates-like dependencies, and journaling. It outperforms similarly reliable ext2 and ext3 configurations on some, but not all, benchmarks. It also supports unusual configurations, such as correct dependency enforcement within a loopback file system, and lets applications define consistency requirements without micromanaging how those requirements are satisfied.
Generalized File System Dependencies
Christopher Frost, Mike Mammarella, Eddie Kohler, Andrew de los Reyes, Shant Hovsepian, Andrew Matsuoka, and Lei Zhang
Proceedings of the 21st Symposium on Operating Systems Principles (SOSP 2007)
Stevenson, WA, October 2007
The KudOS Architecture for File Systems
Andrew de los Reyes, Christopher Frost, Eddie Kohler, Mike Mammarella, and Lei Zhang
SOSP 2005 WIP
Brighton, United Kingdom, October 2005
In the News
Visit the HOWTO page for instructions on downloading and using Featherstitch.
- Andrew de los Reyes
- Chris Frost
- Shant Hovsepian
- Eddie Kohler
- Mike Mammarella
- Andrew Matsuoka
- Lei Zhang
Featherstitch development is supported by the National Science Foundation under Grant Nos. 0546892 and 0427202, by a Microsoft Research New Faculty Fellowship, and by an equipment grant from Intel.