John Heidemann / Papers / File-System Development with Stackable Layers

File-System Development with Stackable Layers
John S
University of California, Los Angeles, Computer Science Department

Citation

John S. Heidemann and Gerald J. Popek. File-System Development with Stackable Layers. ACM Transactions on Computer Systems. 12, 1 (Jan. 1994), 58–89. [PDF] [alt PDF]

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.

Bibtex Citation

@article{Heidemann94a,
  author = {Heidemann, John S. and Popek, Gerald J.},
  title = {File-System Development with Stackable Layers},
  year = {1994},
  sortdate = {1994-01-01},
  project = {ficus},
  jsubject = {stacking},
  month = jan,
  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/%7ejohnh/PAPERS/Heidemann94a.html},
  psurl = {http://www.isi.edu/%7ejohnh/PAPERS/Heidemann94a.ps.gz},
  pdfurl = {http://www.isi.edu/%7ejohnh/PAPERS/Heidemann94a.pdf},
  oldurl = {ftp://ftp.cs.ucla.edu/pub/ficus/ucla_csd_930019.ps.gz},
  keywords = {ficus, file system stacking, stackable
  			layers, i405},
  location = {johnh: folder: ficus/stacking},
  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.
  },
  myorganization = {University of California, Los Angeles, Computer Science Department},
  copyrightholder = {ACM},
  copyrightterms = {
  	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.
  }
}

Copyright

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.
Copyright © by John Heidemann