wacky distributed FS work (fwd)
Wed, 21 Apr 1999 18:13:24 -0700 (PDT)
I'm forwarding this for its second time due to its applicability to TUNES.
The web page when it's up, will be http://www.inter-mezzo.org.
David Manifold <email@example.com>
This message is placed in the public domain.
---------- Forwarded message ----------
Date: Wed, 21 Apr 1999 15:21:18 -0700 (PDT)
From: Jamie Heilman <firstname.lastname@example.org>
Subject: wacky distributed FS work
Their website doesn't have anything usefull on it yet but this is
interesting none the less.
---------- Forwarded message ----------
InterMezzo: A distributed file system prototype for Linux in Perl
Peter J. Braam <email@example.com>, SCS Carnegie Mellon University
Michael J. Callahan <firstname.lastname@example.org>, Ask Jeeves, Inc.
Philip I. Schwan <email@example.com>, SCS Carnegie Mellon University
Peter J. Braam
School of Computer Science, CMU
5000 Forbes Ave
Pittsburgh, PA 15213
Is it possible to implement a distributed filesystem that is an order
of magnitude simpler and smaller than, for example, Coda, yet retains
important features and has excellent performance? Such a system would
have to exploit high-level languages or frameworks, and leverage
existing OS filesystem infrastructure for its cache and fileservers.
(In contrast, Coda and Arla implement all of this from scratch.) We
claim that we are well on our way to having a working prototype,
exploiting the Linux ext2 filesystem as well as Perl for user-level
In essence an InterMezzo client is obtaining all data from the ext2
filesystem, thereby enjoying its superb performance, robustness, and
scalability. However, our kernel driver pre- and post-processes the
ext2 requests and thereby fulfills cache misses and maintains a log of
updates which are lazily shipped to the server. The user level
fileserver and cache manager enforces security, services update and
fetch requests, and negotiates version stamps and callbacks with all
At the user-level, we have used Perl to implement a framework similar
to the ACE toolkit, leveraging existing Perl packages. Our framework
favors asynchronous request processing over multiple threads of
control, for better managment of the complicated state of the file
server and cache manager. Processing multiple requests from the
kernel and over TCP sockets in parallel, as well as parallelizing
outgoing rpc's to many systems can be done in our framework using Perl
classes to deal with completion of requests. Careful study of Coda's
callback and reintegration protocols revealed an opportunity to
implement a cache manager and server with an extreme degree of code
Initial indications are that the performance might be several times
faster than NFS. Also, our prototype is small enough ( ~ 2,500 lines
of C for kernel code and ~ 2,500 lines of Perl for cache managers and
file servers) to be an extremely attractive research vehicle.
Peter J. Braam is a Senior Systems Scientist at CMU where he is leading
the Coda Project. Peter's interests are in distributed file and storage
systems and he has worked on a variety of projects in this field, almost
always involving Linux as the primary platform. Peter received his PhD
from Oxford University in 1987 and subsequently held faculty positions at
the Unversity of Utah and at Oxford, before joining CMU in 1996. Peter is
also President of Stelias Computing Inc., which specializes in consultancy
on Linux file and storage systems. When not at work, he can perhaps be
found in his Alaska cabin, or on a nearby mountain.
Michael Callahan is currently Director of Advanced Development at Ask
Jeeves, Inc. Previously he has worked on networking and distributed
filesystems, scientific visualization, and digital micropayments. He was
trained as a mathematician at Harvard and Oxford Universities.
Phil Schwan is an undergraduate studying computer science and mathematics
at CMU, intending to graduate in 2002. Past projects include a highly
Linux-optimised FTP server, LCD panel driver work, and as-yet-unreleased
GNOME dabblings. He looks forward to spending more time in the great white
north as a member of the Puffin Group.