From: Chuck Reeves (creeves_at_windows.microsoft.com)
Date: Mon Feb 23 2004 - 15:41:20 PST
The paper "Scale and Performance in a Distributed File System", was
written by a number of researchers at Carnegie Mellon University in
1986. It describes the design of a distributed file system called the
Andrew File System. The original design was organized as a client
(Venus) and a server (Vice). Venus was a user-level file cache that
communicated with Vice via RPC calls. Venus hooked the file open and
file close operations. Executions of these hooks initiated the logic to
located and copy the remote file to the local disk. This approach
differed from remote-open file systems, which transfered pages or blocks
of data as requested by the client.
The initial prototype identified some performance issues that prevented
it from reaching their stated goals. This included slow performance due
to excessive network traffic (due to frequent calls to get file
statistics) and high server CPU utilization (due to frequent context
switching between user specific server processes).
The network performance was improved through the introduction of a
different management model for cached information. Instead of assuming
that cached information was invalid (requiring a RPC call to verify
currency of data) the client simply assumed cache entries were valid
until notified otherwise. This was accomplished through the use of
callbacks to the "client". This technique sounds very similiar to some
of the peer-to-peer file sharing systems I've been reading about in my
research. The excessive context-switching was addressed through the
introduction of a thread-pool.
I thought the flexibility introduced by volumes in this design was a
brilliant move. Again it seemed to parallel many of the mechanisms I've
read about in P2P systems.
Chuck Reeves, creeves_at_microsoft.com
Microsoft | Windows | Directory Services
This archive was generated by hypermail 2.1.6 : Mon Feb 23 2004 - 15:41:43 PST