The Ficus project developed peer-to-peer optimistic file replication systems that allow far richer methods of data-sharing than were previously possible. By keeping multiple full-function copies of data, the Ficus file system gives its users: 1) quicker access to files that would otherwise be stored remotely, 2) the ability to continue working despite machine failures, and 3) the opportunity to set up easy, cooperative data-sharing between users at distant sites. 

The figure above illustrates three uses of the Ficus system. For example, by using Ficus to share files between a home machine and the Internet, users can work more efficiently by keeping copies of important data both at home and at the work place. Occasional phone calls propagate changes from the home machine to the office machines on the Internet, and vice versa. Ficus also permits users at distant locations, such as Los Angeles and Guam, to work cooperatively. Each location has its own copy of the files, and Ficus ensures that updates to any copy are propagated to all copies. Additonally, Ficus offers support for portable machines. Users of portable computers can store, on their machines, copies of the files they normally use in the office. This provides an opportunity to work while traveling. 

Ficus's use of optimistic replication allows updates to be applied by users whenever they access a copy of the file. Non-optimistic systems refuse updates under certain circumstances. The peer-to-peer nature of Ficus permits flexible sharing of data updates.

Ficus was built using a method of extending file system functionality called stackable layers. The stackable layers technology developed as part of the Ficus project permits easy extensions to file system functionality. Instead of altering existing file system source code, new modules providing just the desired new services are added to the existing operating system. This technology not only permitted easier development of Ficus, but it is also used to add encryption, data compression, and other new and useful functionality to file systems. 

The Ficus system was developed during the period 1991 to 1996 under DARPA contract N00174-91-C-0107.


Date: 12 July 2005
Technical Contact: Peter Reiher (reiher@cs.ucla.edu)