A trace-driven analysis of name and attribute caching in a distributed system

This paper presents the results of simulating file name and attribute caching on client machines in a distributed file system. The simulation used trace data gathered on a network of about 40 workstations. Caching was found to be advantageous: a cache on each client containing just 10 directories had a 91 percent hit rate on name look ups. Entry-based name caches (holding individual directory entries) had poorer performance for several reasons, resulting in a maximum hit rate of about 83 percent. File attribute caching obtained a 90 percent hit rate with a cache on each machine of the attributes for 30 files. The simulations show that maintaining cache consistency between machines is not a significant problem; only 1 in 400 name component look ups required invalidation of a remotely cached entry. Process migration to remote machines had little effect on caching. Caching was less successful in heavily shared and modified directories such as /tmp, but there weren't enough references to /tmp overall to affect the results significantly. We estimate that adding name and attribute caching to the Sprite operating system could reduce server load by 36 percent and the number of network packets by 30 percent.

[1]  Alan Jay Smith,et al.  Aspects of cache memory and instruction buffer performance , 1987 .

[2]  Mahadev Satyanarayanan,et al.  Disconnected Operation in the Coda File System , 1999, Mobidata.

[3]  Brent B. Welch,et al.  The Sprite Remote Procedure Call System , 1986 .

[4]  Dan Walsh,et al.  Design and implementation of the Sun network filesystem , 1985, USENIX Conference Proceedings.

[5]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[6]  Mahadev Satyanarayanan,et al.  Scale and performance in a distributed file system , 1987, SOSP '87.

[7]  Carla Schlatter Ellis,et al.  Directory Reference Patterns in Hierarchical File Systems , 1989, IEEE Trans. Knowl. Data Eng..

[8]  Fred Douglis,et al.  Transparent process migration: Design alternatives and the sprite implementation , 1991, Softw. Pract. Exp..

[9]  Michael Newell Nelson,et al.  Physical memory management in a network operating system , 1988 .

[10]  Rick Floyd,et al.  Directory Reference Patterns in a UNIX Environment. , 1986 .

[11]  Samuel J. Leffler,et al.  Measuring and Improving the Performance of 4.2BSD , 1984 .

[12]  Andrew R. Cherenson,et al.  The Sprite network operating system , 1988, Computer.

[13]  Gerald J. Popek,et al.  Name Service Locality and Cache Design in a Distributed Operating System , 1986, ICDCS.

[14]  Bruce Walker,et al.  The LOCUS distributed operating system , 1983, SOSP '83.

[15]  Mary Baker,et al.  Measurements of a distributed file system , 1991, SOSP '91.

[16]  Garret Swart,et al.  Availability and consistency tradeoffs in the Echo distributed file system , 1989, Proceedings of the Second Workshop on Workstation Operating Systems.