Figure 10: Performance of LFS (with NVRAM) as a
function of available idle time. |
The benchmark in Section 5.3 assumes zero idle time. This severely stresses LFS because the cleaning time is not masked by idle periods. It also penalizes the VLD by disallowing free space compacting. In this section, we examine how LFS on a regular disk and how UFS on a VLD may benefit from idle time. We modify the benchmark of Section 5.3 to perform a burst of random updates, pause, and repeat. The disk utilization is kept at 80%.
Figure 10 shows how the LFS performance responds to the increase of idle interval length. Each curve represents a different burst size. At point A, no idle time is available. LFS fills up the NVRAM with updates and flushes the file buffer to the regular disk, invoking the cleaner when necessary.
At point B, enough idle time is available to clean one segment. If the burst size is less than or equal to 1 MB, at the time when the NVRAM becomes full, the cleaner has already generated the maximum number of empty segments possible. Consequently, flushing the NVRAM takes a constant amount of time. A similar latency is achieved at point C where two segments are cleaned per idle interval.
Point D corresponds to sufficient idle time to flush the entire burst from NVRAM to disk. The benchmark runs at memory speed because the cleaning time during flushing is entirely masked by the long idle periods. The first three curves coincide at this point because these burst sizes fit in a single segment.
We do not pretend to know the optimal LFS cleaning algorithm using NVRAM, which is outside the scope of this paper. Nevertheless, two facts are apparent. First, because the cleaner moves segment-sized data, LFS can only benefit from relatively long idle intervals. Second, unless there is sufficient idle time to mask the flushing of the burst buffered in the NVRAM, LFS performance remains poor.
Figure 11: Performance of UFS on VLD as a function
of available idle time. |
Figure 11 shows the result of repeating the same benchmark on UFS running on a VLD. Unlike the LFS cleaner, the VLD compactor has no restriction in terms of the granularity of the data it moves. For convenience, our implementation of the compactor moves data at track granularity, which is still much smaller than the LFS segment granularity. The performance on the VLD improves along a continuum of relatively small idle intervals. The VLD performance is also more predictable, whereas LFS performance experiences large variances depending on whether the NVRAM is full and whether cleaning is necessary. The experiments of this section run on the SPARCstation-10. As we have seen in the last section, the more powerful UltraSPARC-170 can easily cut the latency in Figure 11 in half.
The disadvantage of UFS on the VLD compared to LFS with NVRAM is the limiting performance with infinite amount of idle time. Because each write reaches the disk surface, the VLD experiences the overheads detailed in Section 5.4. The overheads also render the impact of the compactor less important. Fortunately, as explained in that section, as technology improves, we expect the gap of the limiting performance to narrow.
Furthermore, eager writing does not dictate the use of a UFS, nor does it preclude the use of NVRAM. We speculate that a VLFS with NVRAM can enjoy 1) the low latency of NVRAM and its filtering effect on short-lived data, and 2) the effective use of bandwidth using eager writing when idle intervals are short or disk utilization is high.