Idiosyncrasies of Programmable Caching Engines
This identifies problems for users of programmable caching engines in production systems, but is incremental as it builds on existing CacheLib research.
The paper empirically studied CacheLib's behavior under dynamic multi-tenant workloads, revealing limitations like rigid configurations and lack of runtime adaptability that cause suboptimal performance, inefficient memory usage, and tenant starvation.
Programmable caching engines like CacheLib are widely used in production systems to support diverse workloads in multi-tenant environments. CacheLib's design focuses on performance, portability, and configurability, allowing applications to inherit caching improvements with minimal implementation effort. However, its behavior under dynamic and evolving workloads remains largely unexplored. This paper presents an empirical study of CacheLib with multi-tenant settings under dynamic and volatile environments. Our evaluation across multiple CacheLib configurations reveals several limitations that hinder its effectiveness under such environments, including rigid configurations, limited runtime adaptability, lack of quality-of-service support and coordination, which lead to suboptimal performance, inefficient memory usage, and tenant starvation. Based on these findings, we outline future research directions to improve the adaptability, fairness, and programmability of future caching engines.