Building a Reliable Mutable File System on Peer-to-peer Storage
Christopher Stein, Michael Tucker, Margo Seltzer
This paper sketches the design of the Eliot File System
(Eliot), a mutable filesystem that maintains the pure im-
mutability of its peer-to-peer (P2P) substrate by isolating
mutation in an auxiliary metadata service.
The immutability of address-to-content bindings has several advantages in P2P systems. However, mutable filesystems are desirable because they allow clients to update existing files; a necessary property for many applications. In order to facilitate modifications, the filesystem must provide some atom of mutability. Since this atom of mutability is a fundamental characteristic of the filesystem and not the underlying storage substrate, it is a mistake to violate the integrity of the substrate with special cases for mutability. Instead, Eliot employs a separate, generalized metadata service that isolates all mutation and client state in an auxiliary replicated database. Eliot provides fine-granularity file updates with either AFS open/close or NFS-like consistency semantics. Eliot builds a mutable filesystem on a global resource bed of purely immutable P2P block storage.