Search papers, labs, and topics across Lattice.
This paper presents an empirical study of CacheLib, a widely used programmable caching engine, under dynamic and volatile multi-tenant workloads. The evaluation reveals limitations in CacheLib's adaptability, fairness, and programmability, leading to suboptimal performance, inefficient memory usage, and tenant starvation. The authors identify rigid configurations, limited runtime adaptability, and lack of quality-of-service support as key factors hindering CacheLib's effectiveness.
CacheLib, a popular caching engine, buckles under dynamic multi-tenant workloads, revealing critical limitations in adaptability and fairness that demand a rethink of its design.
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.