faster nonsequential file access
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.
Reducing Seek Overhead with Application-Directed Prefetching
Steve VanDeBogart, Christopher Frost, and Eddie Kohler
Proceedings of the 2009 USENIX Annual Technical Conference (USENIX 2009)
San Diego, CA, June 2009
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.