Second, evolution of filing interfaces presents a problem to development and maintenance of services. In some respects, evolution is often too fast, as when vendor changes to interfaces invalidate existing third-party layers, greatly adding to their development and maintenance costs. At the same time, evolution is too limited and slow, as when developers and especially third parties cannot provide new services because of the constraints of old, centrally-managed interfaces. We address these problems by providing an extensible layering interface which supports managed interface evolution by both vendors and third parties. When interface changes are too large or are incompatible with existing practice, a compatibility layer can smooth over the changes. With an extensible interface, a layer may be confronted by an operation it does not understand. A standard mechanism allows layers to handle these operations by sending the operation to a lower layer for processing.
Stacking enables and simplifies several design techniques. A transport layer may move operations between machines and allows user-level layer development. Our stacking solution also includes a cache-coherence protocol to synchronize state across stack layers and a lightweight layering protocol allowing the benefits of independent development to extend even to very ``thin'' layers. We have constructed several layers using our stacking facilities.
This dissertation describes both the implementation of these services and their measurement and evaluation. We examine the performance of the stacking framework, cache-coherence protocols, and lightweight layers, concluding that stacking often adds little or no cost to user-observed performance and minimal additional kernel overhead. Finally, our experiences using stacking to develop and deploy several layers suggest that new services can be provided significantly easier with stacking than with traditional methods.
This paper is available in several formats: abstract web page with pointers and cites, gzip'ed postscript, PDF, paper copies can be obtained by mail to the authors. Copyright terms for this paper appear below.
@techreport{Heidemann95e,
author = "John Shelby Heidemann",
title = "Stackable Design of File Systems",
institution = "University of California, Los Angeles",
year = "1995",
number = "CSD-950032",
month = "September",
pages = "xvi + 105",
url = "http://www.isi.edu/~johnh/PAPERS/Heidemann95e.html",
psurl = "http://www.isi.edu/~johnh/PAPERS/Heidemann95e.ps.gz",
pdfurl = "http://www.isi.edu/~johnh/PAPERS/Heidemann95e.pdf",
keywords = "ficus, file system stacking, stackable
layers, i405",
organization = "University of California, Los Angeles",
copyrightholder = "author",
}
To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission of the authors.