Short Description:
Current distributed file systems are designed around a centralized server model. This model
provides easy sharing of data for a network of computers. However, as more clients are added, the
server's cpu quickly becomes a performance limitation. In response, faster (but more expensive)
servers have been built and recent file system designs have attempted to alleviate the server's
workload by designating as much work as possible to the clients. But even in these systems, the
speed of the server remains the limiting factor in file system scalability.
We are currently designing a serverless file system called xFS which will attempt to provide low
latency, high bandwidth access to file system data by distributing the functionality of the server
among the clients. The typical duties of a server include maintaining cache coherence, locating data,
and servicing disk requests.
We are currently developing cache coherence protocols which use the collective memory of the
clients as a system-wide cache. By reducing the amount of redundant caching among clients and
allowing the memory of idle machines to be utilized, cooperative caching can lower the latency of
reads by reducing number of requests which must go to disk.
The function of locating data in xFS is distributed by having each client responsible for servicing
requests on a subset of the files. File data is striped across multiple clients to provide high
bandwidth. The striped data includes parity information which can be used to reconstruct a missing
stripe segment due to, for example, a machine being down. In this way, no node is a single point of
failure.
Model:
Properties:
Transparency:
Running on:
Date: