next up previous
Next: Applications Up: The Modify-on-Access File System: System Previous: Introduction

   
Transformations

A transformation is a modular operation on a data stream. The typical transformation modifies its input data and passes it to the next transformation. Terminal transformations read or write into buffers or files.

The transformation model is highly flexible, simple, and general. The details of an individual transformation are of no concern to the programmer; hence, the implementation is transparent. In addition, transformations easily can be incorporated into the memory system, making the model extensible and configurable.


  
Figure 1: Transformations modify data as it flows from source to sink.
\begin{figure}\begin{center}
\leavevmode
\epsfxsize=4.0in
\epsfbox{pipeline.eps}
\end{center}\end{figure}

A transformation network is a combination of consecutive transformations. For example, consider a compressed and encrypted file. A system accessing it uses the network shown in Figure 1. Data flows from the source to the sink while transformations decompress and decrypt it.

Abstractly, this network resembles the Unix pipe model. However, our definition of a transformation is much more general than a basic link in a standard pipeline. A pipeline link is a passive connection from one process to another. In contrast, a transformation is an active connection that modifies data passing through it. Moreover, unlike a pipeline, a user may add or remove functionality from a transformation network at runtime by pushing or popping transformations.


  
Figure 2: The file system exposes virtual files to users.
\begin{figure}\begin{center}
\leavevmode
\epsfxsize=4.7in
\epsfysize=2.5in
\epsfbox{tar.eps}
\end{center}\end{figure}

The MonA file system creates virtual files whose data is not physically located within the file system; rather, it is generated at runtime as needed. However, a virtual file is accessed as though it were a conventional file. Figure 2 illustrates the use of virtual files in a transformation network. In this example, the file system presents foo.tar.gz, an actual file that physically lies within the file system, and four virtual files. The actual file is in a tarred and zipped format. The file system derives a virtual file named foo.tar through the gunzip transformation which decompresses its input. In addition, MonA derives three additional files using the untar transformation. A user accessing one of these transparently derives the appropriate data from the tarfile. Therefore, a user has access to the compressed, tarred, and individual file simultaneously, even though only foo.tar.gz is physically in the system.


next up previous
Next: Applications Up: The Modify-on-Access File System: System Previous: Introduction
Richard Kendall
1999-02-01