@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.}
}

