|
CMU-CS-02-145
Computer Science Department
School of Computer Science, Carnegie Mellon University
CMU-CS-02-145
Metadata Efficiency in a Comprehensive Versioning File System
Craig A.N. Soules, Garth R. Goodson, John D. Strunk, Gregory R. Ganger
2002
CMU-CS-02-145.ps
CMU-CS-02-145.pdf
Keywords: Versioning, file system, log-structured, journal-based
metadata, multiversion b-tree, comprehensive versioning
A comprehensive versioning file system creates and retains a new
file version for every WRITE or other modification request. The resulting
history of file modifications provides a detailed view to tools and
administrators seeking to investigate a suspect system state.
Conventional versioning systems do not efficiently record the many
prior versions that result. In particular, the versioned metadata t
hey keep consumes almost as much space as the versioned data. This
paper examines two space-efficient metadata structures for versioning
file systems and describes their integration into the Comprehensive
Versioning File System (CVFS). Journal-based metadata encodes each
metadata version into a single journal entry; CVFS uses this structure
for inodes and indirect blocks, reducing the associated space
requirements by 80%. Multiversion b-trees extend the per-entry key with
a timestamp and keep current and historical entries in a single tree;
CVFS uses this structure for directories, reducing the associated space
requirements by 99%. Experiments with CVFS verify that its
current-version performance is similar to that of non-versioning file
systems. Although access to historical versions is slower than
conventional versioning systems, checkpointing is shown to mitigate
this effect.
33 pages
|