libprefetch

faster nonsequential file access

Abstract

An analysis of performance characteristics of modern disks finds that prefetching can improve the performance of nonsequential read access patterns by an order of magnitude or more, far more than demonstrated by prior work. Using this analysis, we design prefetching algorithms that make effective use of primary memory, and can sometimes gain additional speedups by reading unneeded data. We show when additional prefetching memory is most critical for performance. A contention controller automatically adjusts prefetching memory usage, preserving the benefits of prefetching while sharing available memory with other applications. When implemented in a library with some kernel changes, our prefetching system improves performance for some workloads of the GIMP image manipulation program and the SQLite database by factors of 4.9x to 20x.

Publication

Reducing Seek Overhead with Application-Directed Prefetching [pdf] [Presentation: pdf, odp]
Steve VanDeBogart, Christopher Frost, and Eddie Kohler
Proceedings of the 2009 USENIX Annual Technical Conference (USENIX 2009)
San Diego, CA, June 2009

Software

Coming soon.

People

Thanks

Libprefetch development is supported by the National Science Foundation under grants NSF-0430425, NSF-0427202, and NSF-0546892, a Microsoft Research New Faculty Fellowship, and a Sloan Research Fellowship.