The MonA file system incurs three overheads not found in a conventional file system. The open, read, and write system calls are more expensive due to extra costs building and maintaining transformations.
The following tests compare the performance of the MonA file system with ext2, the base file system that underlies MonA. As expected, the MonA file system imposes minimal overhead on an unguarded file, a file that does not use transformations. For a guarded file, the system incurs overhead proportional to the number of transformations on that file.
Opening a transformation link has overhead due to reading the structure of a transformation network from disk and creating it within the kernel. Alternatively, a user can open a base file and manually push transformations with the ioctl system call. However, the cost of executing a system call dominates the overhead of ioctl and it typically is more expensive to explicitly push transformations at runtime. In both cases, the cost of opening a file is independent of file size and the transformation used.
Figure 6 shows the cost of performing an open
call in several situations. An ext2 open clearly is the fastest.
Opening an unguarded MonA file is only marginally slower because
no transformation networks are created. The next test opens a file
guarded by one transformation.
It takes approximately twice as long to open as an unguarded
file due to reading and creating the
transformation network. The final tests open files guarded by five and
twenty-five consecutive transformations. The networks for
these virtual files are more complicated than previous examples and the
file system
requires additional time to generate them. However, opening a file with
a network of twenty-five transformations takes less than 200
s.
Figures 7 and 8 display the access times versus file size for read and write calls, respectively. These tests focus on the overhead imposed by the transformation framework rather than the time spent executing the body of a transformation. Consequently, the identity transformation (whose output is identical to its input) is compared to ext2. For all cases, the cost of a read or a write increases linearly with the size of the accessed file. An ext2 read or write is approximately 3-5% faster than a guarded read or write performed in the MonA file system.
If the file is unguarded, the MonA file system calls read and write routines that are equivalent to their ext2 counterparts; otherwise, it uses the slightly more expensive MonA read and write routines. However, the 1 KB test demonstrates that an unguarded access is approximately 10% slower than its corresponding guarded access, even though less work is done for the unguarded file. We have investigated this discrepancy but have not yet determined the source of the anomaly.