@InProceedings{cortes:prefetch, author = {T. Cortes and J. Labarta}, title = {Linear Aggressive Prefetching: A Way to Increase the Performance of Cooperative Caches}, booktitle = {Proceedings of the Joint International Parallel Processing Symposium and IEEE Symposium on Parallel and Distributed Processing}, year = {1999}, month = {April}, pages = {45--54}, address = {San Juan, Puerto Rico}, keywords = {parallel I/O, file access pattern, prefetching, caching, simulation, pario-bib}, abstract = {Cooperative caches offer huge amounts of caching memory that is not always used as well as it could be. We might find blocks in the cache that have not been requested for many hours. These blocks will hardly improve the performance of the system while the buffers they occupy could be better used to speed-up the I/O operations. In this paper, we present a family of simple prefetching algorithms that increase the file-system performance significantly. Furthermore, we also present a way to make any simple prefetching algorithm into an aggressive one that controls its aggressiveness not to flood the cache unnecessarily. All these algorithms and mechanisms have proven to increase the performance of two state-of-the-art parallel/distributed file systems: PAFS and xFS.}, comment = {They present algorithms for "linear aggressive prefetching" for systems using a cooperative cache. Two prediction schemes are used: a OBA (one block ahead) and IS_PPM (Interval and size -prediction by partial match). The aggressive prefetch algorithm continuosly prefetches data until a miss-prediction occurs. When a mis-prediction occurs, they realize that they were on the wrong path and start prefetching again from the mis-predicted block. To limit the aggressiveness of the prefetching, they only allow one block from each file to be prefetched at a time. If a single application is running, this forces a parallel reads to only utilize one disk at a time. They claim, however, that when many files are being accessed they achieve good disk utilization. They implemented the prefetching algorithms on the xFS \cite{anderson:serverless} and PAFS \cite{cortes:pafs} file systems. They used a trace-driven simulator DIMEMAS \cite{labarta:dip} to obtain performance results for portions of the CHARISMA and Sprite workloads. The results show that using aggressive prefetching does not usually load the system more than a system with no prefetching, and sometimes, it even lowers the disk traffic.} }