Implementation and Performance of Application-Controlled File Caching
Abstract
Traditional file system implementations do not allow applications to control
file
caching replacement decisions. We have implemented two-level replacement,
a scheme that allows
applications to control their own cache replacement, while letting the
kernel control the allocation of cache space among processes.
We designed an interface to let applications exert control on replacement
via a set of directives to the kernel. This is effective and requires
low overhead.
We demonstrate that for applications that do not perform well under
traditional caching policies, the
combination of good application-chosen replacement strategies, and our kernel
allocation policy LRU-SP, can reduce the number
of block I/Os by up to 80, and can reduce the elapsed time by up to
45. We also show that LRU-SP is crucial to the performance
improvement for multiple concurrent applications: LRU-SP fairly distributes
cache blocks and offers protection against foolish applications.