Personnel: Emery Berger, James Cipar, & Mark Corner

We have developed OS mechanisms that support transparent resource management for contributory applications. A contributory application is a program run by users who do not directly benefit from the use of these applications. Examples of such programs are Condor, Folding/SETI@home, Freenet, etc. Because the user is running these as a service for someone else, and not to directly benefit themselves, these programs must not inconvenience the user in any way, or the user will simply turn them off. Therefore, the application's resource consumption must not intefere with the user's resource consumption - it should be transparent.

Source Tarball, README, LICENSE
USENIX 2006: Transparent Contribution of Memory
FAST 2007: TFS: A Transparent File System for Contributory Storage

Current TFS tarball.
This version of TFS was created as a testbed for TFS concepts. It should be viewed as a prototype, and should not be used for valuable data. Utilities such as fdisk were not needed in our evaluation of TFS, and have received only minimal testing.

Transparent File System Overview

TFS is a file system modification intended to support contributory storage applications, such as Freenet. These applications allow users to contribute storage from their desktop to a shared pool of resources. Like all contributory applications, contributory storage systems must not interfere with the user in any way. Because resources are being donated voluntarily, the user will simply turn off or uninstall the application if it get in their way. To overcome this, contributory systems try to be transparent, i.e. the user should not notice any difference in the behavior of their own applications as a result of contributing resources. For contributory storage, this usually means the application must limit itself to contributing a small amount of space.

TFS provides a new type of file, called transparent files, which can be used by contributory applications to avoid interference. From the perspective of ordinary files, transparent files take up no space on the disk, and cause no fragmentation. If an ordinary file tries to allocate a block which is being used for a transparent file, the transparent file will be overwritten.

TFS allocation example