Wang et al. describe a framework for adaptively selecting input/output (I/O) caching policy when given a set of policies. The main idea is to capture a set of policies and the data required, in the form of a module, and select a policy that is appropriate for a given workload, based on the current policy cache hit rate. If the hit rate falls below a user-definable threshold, other policies are evaluated on the metadata captured from the workload.
It is well known that there is no “silver bullet”--that is, there is no single caching policy that will result in optimal caching performance. That being said, this paper provides a sound framework for realizing multiple policies and allowing for optimal cache performance for applications.