Implementation of informed prefetching and caching in Linux

This paper describes the design and implementation of an application-aware Informed Prefetching and Caching (IPrC) system for the Linux operating system. IPrC is a technique for improving application response time by exploiting I/O and computation parallelism. This proactive mechanism utilizes hints (application disclosed file access patterns) in order to pre-fetch the needed data blocks ahead of time and place them in the page cache. While well-studied in experimental systems IPrC technology has not been transferred to commercial or widely-used operating systems. We believe that our work is unique in that respect. We show that an implementation of the IPrC system in Linux is not only feasible but also extremely beneficial, especially for applications with non-sequential file access patterns. Our IPrC system is implemented by replacing the traditional read-ahead mechanism in the Linux kernel. The experiments conducted on a 60 MHz Intel PC show execution time reduction of 15-39% for various testing scenarios.