Stackable file systems can provide extensible file system functionality with minimal performance overhead and development cost. However, previous approaches provide only limited functionality. In particular, they do not support size-changing algorithms (SCAs), which are important and useful for many applications such as compression and encryption. We propose fast indexing, a technique for efficient support of SCAs in stackable file systems. Fast indexing provides a page mapping between file system layers in a way that can be used with any SCA. We use index files to store this mapping. Index files are designed to be recoverable if lost and add less than 0.1% disk space overhead. We have implemented fast indexing using portable stackable templates, and we have used this system to build several example file systems with SCAs. We demonstrate that fast index files have low overhead for typical user workloads such as large compilations, only 2.3% over other stacked file systems and 4.7% over non-stackable file systems. Our system can deliver better performance with SCAs than user-level applications, as much as five times faster.
D.4.3 Operating Systems File Systems Management [Access methods]
Algorithms, Design, Experimentation, Performance
Size-changing algorithms, Compression file systems, Encryption file systems, Index file structures, Stackable file systems, Virtual file systems, Extensible file systems
State University of New York at Stony Brook - Johan M. Andersen, Ion Badulescu, and Jason Nieh