CSE 221 Paper Evaluation

Greg Johnson (johnson@SDSC.EDU)
Wed, 31 May 2000 21:31:44 -0700 (PDT)

A FAST FILE SYSTEM FOR UNIX
M. McKusick, W. Joy, S. Leffler, and R. Fabry, 1984.

This paper describes several low level modifications to the UNIX file
system to improve performance, storage utilization, and functionality.
Many of these improvements were made without changing the syntax or
semantics of the user level file system API. The API was only modified
as required to add additional features such as file locking, symbolic
links, and quotas.

The authors meticulously identify and pose solutions to several issues
affecting the performance of the pre-BSD 4.2 file system (which utilized
roughly 2 percent of peak bandwidth to disk). The optimizations covered
focus on the following:

* improving the amount of data that can be read per transaction by
using a larger block size, and file system layout policies which
spread out unrelated blocks (giving files space to grow) while
coalescing related blocks (enabling larger transfers);

* reducing the number of seeks required to read blocks pertaining
to the same file, by parameterizing characteristics of the hardware
(CPU and disk) to allow adjacent blocks of a file to be arranged on
disk such that they fall under the disk head as needed and in order;

* improving the mapping of blocks to files and reducing waste, through
the use of fragments, along with a more sophisticated file expansion
scheme.

The performance of the improved file system is then discussed (the new
system is faster, more efficient, and more absorbent). The last section
of the paper is devoted to describing several features previously un-
available in a UNIX file system (see above).

This paper is straightforward and interesting in the sense that it
describes the reasoning behind several aspects of the UNIX file system
I had encountered previously but not understood (such as the results
reported by the "df" command for full file systems).

=============================================================================
Greg Johnson office: (858) 534-8367
Senior Programmer Analyst fax: (858) 534-5152
San Diego Supercomputer Center email: johnson@sdsc.edu
University of California San Diego