Our previous experiments identified three factors that affect NFS performance for meta-data-intensive applications: (i) consistency check related messages (ii) synchronous meta-data update messages and (iii) non-aggregated meta-data updates. This section explores enhancements that eliminate these overheads.
The consistency check related messages can be eliminated by using a strongly-consistent read-only name and attribute cache as proposed in . In such a cache, meta-data read requests are served out of the local cache. However, all update requests are forwarded to the server. On an update of an object, the server invalidates the caches of all clients that have that object cached.
The meta-data updates can be made asynchronously in an aggregated fashion by enhancing NFS to support directory delegation. In directory delegation a NFS client holds a lease on meta-data and can update and read the cached copy without server interaction. Since NFS v4 only supports file delegation, directory delegation would be an extension to the NFS v4 protocol specification. Observe that directory delegation allows a client to asynchronously update meta-data in an aggregated fashion. This in turn would allow NFS clients to have comparable performance with respect to iSCSI clients even for meta-data update intensive benchmarks. Directory delegation can be implemented using leases and callbacks .
The effectiveness of strongly-consistent read-only meta-data cache as well as directory delegation depends on the amount of meta-data sharing across client machines. Hence, we determine the characteristics of meta-data sharing in NFS by analyzing two real-world NFS workload traces from Harvard University . We randomly choose one day (09/20/2001) trace from the EECS traces (which represents a research, software development, and course-based workload) and the home02 trace from the Campus traces (which represents a email and web workload). Roughly 40,000 file system objects were accessed for the EECS traces and about 100,000 file system objects were visited for the Campus traces.
Figure 7 demonstrates that the read sharing of directories is much higher than write sharing in the EECS trace. In Campus trace, we find that although the read-sharing is higher at smaller time-scales, it is less than the read-write sharing at larger time-scales. However, in both the traces, a relatively small percentage of directories are both read and written by multiple clients. For example, at time-scale of seconds only 4% and 3.5% percentage of directories are read-write shared in EECS and Campus traces, respectively. This suggests that cache invalidation rate in strongly consistent meta-data read cache and contention for leases in directory delegation should not be significant, and it should be possible to implement both techniques with low overhead.
[EECS Trace] [width=2.75in]graphs/shareanalysis/norm_dir.eps [Campus Trace] [width=2.75in]graphs/shareanalysis/fas_norm_dir.eps
We evaluated the utility of strongly-consistent read-only meta-data caching using simulations. Our simulation results demonstrated that a directory cache size of leads to more than reduction in meta-data messages. Furthermore, the number of messages for cache invalidation is fairly low. The callback ratio, defined as ratio of cache-invalidation messages and number of meta-data messages , is less than for a directory cache size of for the EECS and campus traces.
The above preliminary results indicate that implementing a strongly-consistent read-only meta-data cache and directory delegation is feasible and would enable a NFS v4 client with these enhancements to have comparable performance with respect to an iSCSI client even for meta-data intensive benchmarks. A detailed design of these enhancements and their performance is beyond the scope of this paper and is the subject of future research.