next up previous
Next: Conclusion Up: The Modify-on-Access File System: System Previous: End-to-End Performance Results

   
Related Work

The watchdogs [3] system provides extended file semantics by guarding file accesses with watchdog processes. Each watchdog process is a user-level program associated with either a file or directory. When a guarded file opens, the kernel negotiates with the watchdog guarding the file to determine how to handle accesses. Like the MonA file system, watchdogs provide a simple mechanism to add functionality to a file system. However, it does not allow multiple watchdogs to guard a file and hence cannot derive new views from existing watchdogs. Furthermore, creating a new process for each open guarded file is expensive in system resources and interprocess communication.

The vnode interface described in [11] proposes operation stacks on each vnode of the file system. The file system would then push or pop operations on these stacks at runtime. However, this model lacks the flexibility and extensibility of transformation links, which concurrently expose multiple paths to the same data.

Spring [6] and stackable [5] file systems derive functionality from pre-existing file systems. By stacking a file system on top of another in a file system hierarchy, the operations provided by the lower level are inherited by the higher. In this manner, a compression or encryption layer could be added to an existing file system. This works well if only a few operations are required for a large set of files and the operations change infrequently. However, stackable file systems fail to propagate their full extensibility down to the typical user because system administrators must implement all stacking. Furthermore, the layering structure (and thus the functionality) of stackable file systems cannot be modified dynamically. This is a much more coarse-grained approach than watchdogs or the MonA file system, where an operation is designed for a user to implement it on a per-file basis.

The Active Pages [8] computational model examines the effects of placing programmable logic within a memory chip. The memory system of a simulated processor architecture was modified to support uploading application-specific code to memory and associating the code with a page (512 KB) of memory. Accessing an Active Page operates on data locally on the memory chip. The Active Pages system demonstrates application speedups of up to three orders of magnitude.

A simulation of Active Disks [1] validates the use of intelligent disk drives. An Active Disk architecture integrates powerful processors and large amounts of memory onto a disk drive. A limited form of transformation, a disklet, operates on streams of data entering and exiting the disk drive. An analysis of several algorithms on this architecture found that an Active Disk using application-specific disklets outperforms conventional disk drives. Additionally, Active Disks scale considerably better than traditional disk architectures.

Conceptually, a file system lies between system memory and secondary storage in a conventional memory hierarchy. Similarly, the MonA file system lies between Active Pages and Active Disks in an intelligent memory hierarchy. An Active Page transforms data as it is transferred to and from an intelligent memory chip. Likewise, an Active Disk transforms data during transit to and from an intelligent disk. The MonA file system is capable of exploiting the performance gains demonstrated by these simulations in a real system.


next up previous
Next: Conclusion Up: The Modify-on-Access File System: System Previous: End-to-End Performance Results
Richard Kendall
1999-02-01