The following section examines the cost of executing
(N)
user-space transformations. Tests compare three linear
transformations, increment, compress and
decompress,5 to the identity transformation.
This exposes the overhead imposed by the complexity of transformation
algorithms.
Figure 11 presents a comparison of the execution times of the four user-space transformations. For small file sizes, decompression takes longer than compression. However, for files larger than 4 KB, the decompression algorithm is faster. As expected, the increment transformation is 3-5% slower than the identity transformation because increment performs additional work on each byte.
Both compress and decompress6 are faster than the identity transformation. Although an identity algorithm is clearly faster than either compression or decompression, the compress and decompress transformations require less communication. The identity transformation outputs the same number of bytes that it reads. However, the compress transformation outputs considerably fewer bytes than it reads. In addition, the decompress transformation requires fewer input bytes to generate as many output bytes as identity. Because communication is expensive between the kernel and MonA daemon, the reduction in the amount of communication more than offsets the increased complexity of compression and decompression.
Through kernel and user-space transformations, the MonA file system provides users with greater functionality than is found in a conventional file system. For a kernel transformation, MonA introduces 3-5% overheads over the base file system on a read or write. Although a user-space transformation is considerably slower than a corresponding kernel transformation, the export transformation still handles each 4 KB page in under 1 ms. Furthermore, a user-space transformation that reduces the amount of required communication will reap considerable performance benefits.