A Fast File System for UNIX*

Marshall Kirk McKusick, William N. Joy**,
Samuel J. Leffler***, Robert S. Fabry

Computer Systems Research Group
Computer Science Division
Department of Electrical Engineering and Computer Science
University of California, Berkeley
Berkeley, CA 94720


ABSTRACT

A reimplementation of the UNIX file system is described. The reimplementation provides substantially higher throughput rates by using more flexible allocation policies that allow better locality of reference and can be adapted to a wide range of peripheral and processor characteristics. The new file system clusters data that is sequentially accessed and provides two block sizes to allow fast access to large files while not wasting large amounts of space for small files. File access rates of up to ten times faster than the traditional UNIX file system are experienced. Long needed enhancements to the programmers' interface are discussed. These include a mechanism to place advisory locks on files, extensions of the name space across file systems, the ability to use long file names, and provisions for administrative control of resource usage.

Revised February 18, 1984


CR Categories and Subject Descriptors: D.4.3 [Operating Systems]: File Systems Management - file organization, directory structures, access methods; D.4.2 [Operating Systems]: Storage Management - allocation/deallocation strategies, secondary storage devices; D.4.8 [Operating Systems]: Performance - measurements, operational analysis; H.3.2 [Information Systems]: Information Storage - file organization

Additional Keywords and Phrases: UNIX, file system organization, file system performance, file system design, application program interface.

General Terms: file system, measurement, performance. TABLE OF CONTENTS

1.  Introduction


2.  Old file system


3.  New file system organization
3.1.    Optimizing storage utilization
3.2.    File system parameterization
3.3.    Layout policies


4.  Performance


5.  File system functional enhancements
5.1.     Long file names
5.2.     File locking
5.3.     Symbolic links
5.4.     Rename
5.5.     Quotas


Acknowledgements


References





























Table of Contents