Implementation of the Ficus Replicated File System

Richard G. Guy, John S. Heidemann, Wai Mak, Thomas W. Page, Jr., Gerald J. Popek, and Dieter Rothmeier
USC/Information Sciences Institute

Abstract

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.

Availability

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.

Reference

Guy90b
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. In USENIX Conference Proceedings, pp. 63-71. Anaheim, CA, USENIX. June, 1990. <http://www.isi.edu/~johnh/PAPERS/Guy90b.html>.
@inproceedings{Guy90b,
	author = "Richard G. Guy and John S. Heidemann and Wai Mak and
				Page, Jr., Thomas W. and Gerald J. Popek and
				Dieter Rothmeier",
	title = "Implementation of the {Ficus} Replicated File System",
	booktitle = " {USENIX} Conference Proceedings",
	year = "1990",
	month = "June",
	publisher = "{USENIX}",
	pages = "63--71",
	address = "Anaheim, CA",
	keywords = "seminal Ficus paper, cs555-sp1997,
                         cs555-sp1998, cs555-sp1999",
	url = "http://www.isi.edu/~johnh/PAPERS/Guy90b.html",
	psurl = "http://www.isi.edu/~johnh/PAPERS/Guy90b.ps.gz",
	pdfurl = "http://www.isi.edu/~johnh/PAPERS/Guy90b.pdf",
	oldurl = "ftp://ftp.cs.ucla.edu/pub/ficus/usenix_summer_90.ps.gz",
	copyrightholder = "authors",
}

Copyright

This paper is copyright © 1990 by its authors. Permission to make digital or hard copies of part or all of this work for personal 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. Abstracting with credit is permitted.

To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission of the authors.