John Heidemann / Papers / Stackable Layers: an Architecture for File System Development

Stackable Layers: an Architecture for File System Development
John S
University of California, Los Angeles, Computer Science Department

Citation

John S. Heidemann. Stackable Layers: an Architecture for File System Development. Technical Report CSD-910056. University of California, Los Angeles. [PDF] [alt PDF]

Abstract

This thesis proposes the \em stackable layers\/ method of file system design. This approach constructs file systems from a number of independently developed \em layers. Each layer is bounded by a symmetric interface, syntactically identical above and below. Layers combine in \em stacks, linear or tree-shaped collections, each layer building on the functionality of those beneath it. Stackable filing improves file system development in several ways. Stacking encourages code re-use by building upon already existing layers. Incremental improvement is possible by substitution of existing layers. The layer interface is extensible, allowing new operations to be easily added by third-parties. Each operation is carefully described, permitting existing layers to adjust automatically to the addition of new operations. The feasibility of stackable filing is demonstrated by the development of a prototype layer interface and several file system layers. The performance of multi-layer stacks is found comparable to that of monolithic file systems. Through the re-use of existing services, we find development of new filing services with stackable layers significantly easier than development with traditional methods.

Bibtex Citation

@techreport{Heidemann91c,
  author = {Heidemann, John S.},
  title = {Stackable Layers: an Architecture for
  				File System Development},
  institution = {University of California, Los Angeles},
  year = {1991},
  sortdate = {1991-07-01},
  project = {ficus},
  jsubject = {stacking},
  number = {CSD-910056},
  month = jul,
  pages = {100},
  keywords = {stackable layers, Ficus},
  note = {Master's Thesis.},
  copyrightholder = {author},
  url = {https://ant.isi.edu/%7ejohnh/PAPERS/Heidemann91c.html},
  psurl = {https://ant.isi.edu/%7ejohnh/PAPERS/Heidemann91c.ps.gz},
  pdfurl = {https://ant.isi.edu/%7ejohnh/PAPERS/Heidemann91c.pdf},
  oldurl = {ftp://ftp.cs.ucla.edu/pub/ficus/ucla_csd_910056.ps.gz},
  myorganization = {University of California, Los Angeles, Computer Science Department},
  jlocation = {johnh: pafiles}
}
Copyright © by John Heidemann