The Design, Implementation, and Evaluation of a Predictive Caching File System

Conventional le systems suuer from high access latencies Ous90]. To complicate matters, emerging technologies such as wireless computing, telecommuting environments, read/write CD-ROM systems, and wide area le systems often exhibit higher latencies than conventional le systems. This paper describes the design, implementation, and evaluation of a predictive le caching approach. Predictive caching reduces le system latency by converting the le cache into a staging area for data about to be referenced as opposed to the conventional repository of recently accessed data. The system uses heuristic-based algorithms to predict and prefetch data without user or application intervention. A pruning algorithm keeps prefetching overhead in check. We show the expected performance gains for a variety of simulated environments. Simulations run on le traces show that prefetching can improve cache miss rates by as much as 70% and read times by as much as 52%. For certain common workloads (e.g., compilation), our algorithm achieves performance similar to that of an optimal prediction system. Our prototype SunOS implementation veriies the simulation results and shows read improvements of as much as 61% for real applications. Finally, our results show that prefetching can help small memory machines achieve the same performance as machines with twice as much memory.

[1]  Gail E. Kaiser,et al.  Disconnected operation in a multi-user software development environment , 1993, Proceedings 1993 IEEE Workshop on Advances in Parallel and Distributed Systems.

[2]  Samuel J. Leffler,et al.  The design and implementation of the 4.3 BSD Unix operating system , 1991, Addison-Wesley series in computer science.

[3]  Mary Baker,et al.  Non-volatile memory for fast, reliable file systems , 1992, ASPLOS V.

[4]  Michael N. Nelson,et al.  Caching in the Sprite network file system , 1988, TOCS.

[5]  John A. Kunze,et al.  A trace-driven analysis of the UNIX 4.2 BSD file system , 1985, SOSP '85.

[6]  P. Krishnan,et al.  Practical prefetching via data compression , 1993 .

[7]  Peter J. Denning,et al.  Working Sets Past and Present , 1980, IEEE Transactions on Software Engineering.

[8]  Darrell D. E. Long,et al.  Predicting Future File-System Actions From Prior Events , 1996, USENIX Annual Technical Conference.

[9]  Thorsten Joachims,et al.  WebWatcher : A Learning Apprentice for the World Wide Web , 1995 .

[10]  Anna R. Karlin,et al.  A study of integrated prefetching and caching strategies , 1995, SIGMETRICS '95/PERFORMANCE '95.

[11]  Edward A. Fox,et al.  Removal Policies in Network Caches for World-Wide Web Documents , 1996, SIGCOMM.

[12]  Alan Jay Smith,et al.  Sequentiality and prefetching in database systems , 1978, TODS.

[13]  Jim Griffioen,et al.  Reducing File System Latency using a Predictive Approach , 1994, USENIX Summer.

[14]  Mahadev Satyanarayanan,et al.  Using dynamic sets to overcome high I/O latencies during search , 1995, Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V).

[15]  Alan Jay Smith,et al.  Disk cache—miss ratio analysis and design considerations , 1983, TOCS.

[16]  K. Korner,et al.  Intelligent caching for remote file service , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[17]  Mahadev Satyanarayanan,et al.  Coda: A Highly Available File System for a Distributed Workstation Environment , 1990, IEEE Trans. Computers.

[18]  Kai Li,et al.  Implementation and performance of application-controlled file caching , 1994, OSDI '94.

[19]  Michael Dahlin,et al.  A quantitative analysis of cache policies for scalable network file systems , 1994, SIGMETRICS.

[20]  Joseph D. Touch,et al.  An experiment in latency reduction , 1994, Proceedings of INFOCOM '94 Conference on Computer Communications.

[21]  Jim Zelenka,et al.  Informed prefetching and caching , 1995, SOSP.

[22]  Stanley B. Zdonik,et al.  Fido: A Cache That Learns to Fetch , 1991, VLDB.

[23]  Carla Schlatter Ellis,et al.  Prefetching in File Systems for MIMD Multiprocessors , 1990, IEEE Trans. Parallel Distributed Syst..

[24]  James E. Pitkow,et al.  Yet Robust Caching Algorithm Based on Dynamic Access Patterns , 1994, WWW Spring 1994.

[25]  John K. Ousterhout,et al.  Why Aren't Operating Systems Getting Faster As Fast as Hardware? , 1990, USENIX Summer.

[26]  Geoffrey H. Kuenning,et al.  An Analysis of Trace Data for Predictive File Caching in Mobile Computing , 1994, USENIX Summer.

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

[28]  Todd C. Mowry,et al.  Tolerating latency through software-controlled data prefetching , 1994 .

[29]  Richard B. Bunt,et al.  Disk cache replacement policies for network fileservers , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.