File-System Development with Stackable Layers

John S. Heidemann and Gerald J. Popek
University of California, Los Angeles

Abstract

Filing services have experienced a number of innovations in recent years, but many of these promising ideas have failed to enter into broad use. One reason is that current filing environments present several barriers to new development. For example, file systems today typically stand alone instead of building on the work of others, and support of new filing services often requires changes which invalidate existing work.

Stackable file system design addresses these issues in several ways. Complex filing services are constructed from layer ``building blocks'', each of which may be provided by independent parties. There are no syntactic constraints to layer order, and layers can occupy different address spaces, allowing very flexible layer configuration. Independent layer evolution and development is supported by an extensible interface bounding each layer.

This paper discusses stackable layering in detail and presents design techniques it enables. We describe an implementation providing these facilities that exhibits very high performance. By lowering barriers to new filing design, stackable layering offers the potential of broad third party file system development not feasible today.

Availability

Paper copies can be obtained by an e-mail request to the authors. On-line copies are available to ACM members through their digital library. If obtaining a paper copy (from TOCS or the authors) is impossible, an older version of this paper is available electronically. Copyright terms for this paper appear below.

Reference

Heidemann94a
John S. Heidemann and Gerald J. Popek. File-System Development with Stackable Layers. ACM Transactions on Computer Systems, 12 (1 ), pp. 58-89, 1994. Preliminary version available as UCLA technical report CSD-930019. <http://www.isi.edu/~johnh/PAPERS/Heidemann94a.html>.
@article{Heidemann94a,
	author = "John S. Heidemann and Gerald J. Popek",
	title = "File-System Development with Stackable Layers",
	year = "1994",
	volume = "12",
	number = "1",
	pages = "58--89",
	journal = "{ACM} Transactions on Computer Systems",
	note = "Preliminary version available as UCLA technical report
		  CSD-930019",
	url = "http://www.isi.edu/~johnh/PAPERS/Heidemann94a.html",
	psurl = "http://www.isi.edu/~johnh/PAPERS/Heidemann94a.ps.gz",
	pdfurl = "http://www.isi.edu/~johnh/PAPERS/Heidemann94a.pdf",
	oldurl = "ftp://ftp.cs.ucla.edu/pub/ficus/ucla_csd_930019.ps.gz",
	keywords = "ficus, file system stacking, stackable
			layers, i405",
	availability = "
Paper copies can be obtained by an
  e-mail request
  to the authors.
On-line copies
  are available to ACM members through their digital library.
If obtaining a paper copy (from TOCS or the authors) is impossible,
  an older version of this paper is available electronically.
",
	organization = "University of California, Los Angeles",
	copyrightholder = "{ACM}",
}

Copyright

This paper is copyright © 1994 by ACM. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that new copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted.

To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request Permissions from Publications Dept, ACM Inc., Fax +1 (212) 869-0481, or permissions@acm.org.