John Heidemann / Papers / Implementation of the Ficus Replicated File System

Implementation of the Ficus Replicated File System
Richard G
University of California, Los Angeles, Computer Science Department


Richard G. Guy, John S. Heidemann, Wai Mak, Thomas W. Page Jr., Gerald J. Popek and Dieter Rothmeier. Implementation of the Ficus Replicated File System. USENIX Conference Proceedings (Anaheim, CA, Jun. 1990), 63–71. [PDF] [alt PDF]


As we approach nation-wide integration of computer systems, it is clear that file replication will play a key role, both to improve data availability in the face of failures, and to improve performance by locating data near where it will be used. We expect that future file systems will have an extensible, modular structure in which features such as replication can be “slipped in” as a transparent layer in a stackable layered architecture. We introduce the Ficus replicated file system for NFS and show how it is layered on top of existing file systems. The Ficus file system differs from previous file replication services in that it permits update during network partition if any copy of a file is accessible. File and directory updates are automatically propagated to accessible replicas. Conflicting updates to directories are detected and automatically repaired; conflicting updates to ordinary files are detected and reported to the owner. The frequency of communications outages rendering inaccessible some replicas in a large scale network and the relative rarity of conflicting updates make this optimistic scheme attractive. Stackable layers facilitate the addition of new features to an existing file system without reimplementing existing functions. This is done in a manner analogous to object-oriented programming with inheritance. By structuring the file system as a stack of modules, each with the same interface, modules which augment existing services can be added transparently. This paper describes the implementation of the Ficus file system using the layered architecture.

Bibtex Citation

  author = {Guy, Richard G. and Heidemann, John S. and Mak, Wai and Page, Jr., Thomas W. and Popek, Gerald J. and Rothmeier, Dieter},
  title = {Implementation of the {Ficus} Replicated File System},
  booktitle = { {USENIX} Conference Proceedings},
  year = {1990},
  sortdate = {1990-06-01},
  project = {ficus},
  jsubject = {replication},
  month = jun,
  publisher = {{USENIX}},
  pages = {63--71},
  address = {Anaheim, CA},
  jlocation = {johnh: folder: Ficus publications},
  keywords = {seminal Ficus paper, cs555-sp1997,
                           cs555-sp1998, cs555-sp1999, cs555-sp2000, cs555-sp2001},
  url = {},
  psurl = {},
  pdfurl = {},
  oldurl = {},
  copyrightholder = {authors},
  myorganization = {University of California, Los Angeles, Computer Science Department}
Copyright © by John Heidemann