Elephant: The file system that never forgets
Douglas S. Santry, Michael J. Feeley, Norman C. Hutchinson, Alistair C. Veitch
Abstract:
Modern file systems associate the deletion of a file with the release
of the storage associated with that file, and file writes with the
irrevocable change of file contents. We propose that this model of
file system behavior is a relic of the past, when disk storage was a
scarce resource. We believe that the correct model should ensure that
all user actions are revocable. Deleting a file should change only the
name space and file writes should overwrite no old data. The file
system, not the user, should control storage allocation using a
combination of user specified policies and information gleaned from
file-edit histories to determine which old versions of a file to
retain and for how long. This paper presents the Elephant file system,
which provides users with a new contract: Elephant will
automatically retain all important versions of the users files. Users
name previous file versions by combining a traditional pathname with
a time when the desired version of a file or directory
existed. Elephant manages storage at the granularity of a file or
groups of files using user-specified retention policies. This
approach contrasts with checkpointing file systems such as Plan9,
AFS, and WAFL, that periodically generate efficient checkpoints of
entire file systems and thus restrict retention to be guided by a
single policy for all files within that file system. We also report on
the Elephant prototype, which is implemented as a new Virtual File
System in the FreeBSD kernel.
How to view this document:
Last modified: Tue Jul 10 21:36:53 PDT 2001
by Alistair Veitch (aveitch@hpl.hp.com)