@InProceedings{kimbrel:prefetch-trace,
  author = {Tracy Kimbrel and Andrew Tomkins and R. Hugo Patterson and Brian
  Bershad and Pei Cao and Edward Felten and Garth Gibson and Anna R. Karlin and
  Kai Li},
  title = {A Trace-Driven Comparison of Algorithms for Parallel Prefetching and
  Caching},
  booktitle = {Proceedings of the 1996 Symposium on Operating Systems Design
  and Implementation},
  year = {1996},
  month = {October},
  pages = {19--34},
  publisher = {USENIX Association},
  URL =
  {http://www.usenix.org/publications/library/proceedings/osdi96/kimbrel.html},
  keywords = {parallel I/O, tracing, prefetch, trace-driven simulation,
  pario-bib},
  abstract = {High-performance I/O systems depend on prefetching and caching in
  order to deliver good performance to applications. These two techniques have
  generally been considered in isolation, even though there are significant
  interactions between them; a block prefetched too early reduces the
  effectiveness of the cache, while a block cached too long reduces the
  effectiveness of prefetching. In this paper we study the effects of several
  combined prefetching and caching strategies for systems with multiple disks.
  Using disk-accurate trace-driven simulation, we explore the performance
  characteristics of each of the algorithms in cases in which applications
  provide full advance knowledge of accesses using hints. Some of the
  strategies have been published with theoretical performance bounds, and some
  are components of systems that have been built. One is a new algorithm that
  combines the desirable characteristics of the others. We find that when
  performance is limited by I/O stalls, aggressive prefetching helps to
  alleviate the problem; that more conservative prefetching is appropriate when
  significant I/O stalls are not present; and that a single, simple strategy is
  capable of doing both.}
}

