The ever-increasing gap in performance between CPU/memory technologies and the I/O subsystem (disks, I/O buses) in modern workstations has exacerbated the I/O bottlenecks inherent in applications that access large disk resident data sets. A common technique to alleviate the I/O bottlenecks on clusters of workstations, is the use of parallel file systems due to the increased I/O bandwidth made possible by accessing large number of disks in parallel. Designing a fault-tolerant parallel file system that provides consistency in the face of multiple writers and readers is increasingly becoming more important as clusters scale. Traditional techniques to provide file system consistency for both meta-data and data use variants of locking techniques that fall short if fault tolerance is a design requirement. We propose a simpler and a more robust lockless technique atop a content-addressable storage layer, that can be used for performing atomic updates and can hence provide sequential consistency semantics in a parallel file system, when the underlying network is fully connected.
Completed Features
Partially completed Features/Works-in-progress
Source Tarball
The code below provides a fairly functional, usable content-addressable parallel
file system, but there may/will be bugs that we have not handled just yet.
We will continue updating the link to provide recent snapshots as and when we release
them. Instructions to compile, and setup the file-system are provided as part of the
source tarball.
Please use at your own discretion. We have tested out this code on a glibc-2.2.5 based
Mandrake Linux 9.0 distribution running a 2.4.19 kernel, a glibc 2.3.2 based Redhat 9 distribution
running a 2.4.20 smp kernel
and on a glibc 2.3.3 based Fedora Core 2 distribution running a 2.6.10+ kernel.
The code should compile
on most other distributions, but your milage may vary.
The only requirement is that the system have a fairly new compiler (gcc-3.0+),
a posix-threads library and openssl(0.9.6j+). If there are any specific issues,
please feel free to report. As they say, if the code breaks your system, you get to
keep the pieces :).
tar/gzip snapshot [v0.9] as of 09/04/2005.
Paper
The following paper (pdf)
outlines some of the features, design and functionalities in CAPFS.
People
DevelopersMurali Vilayannur
Partho Nath
Jason Ganetsky
Collaborators
Anand Sivasubramaniam
Robert Ross
Rajeev Thakur
Questions/Comments
Last updated on: Sep. 4th, 2005