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.
翻译:可编程缓存引擎(如CacheLib)已广泛应用于生产系统,以支持多租户环境中的多样化工作负载。CacheLib的设计侧重于性能、可移植性和可配置性,使应用程序能够以最小的实现工作量继承缓存改进。然而,其在动态且不断变化的工作负载下的行为在很大程度上仍未得到探索。本文对CacheLib在多租户设置下动态易变环境中的表现进行了实证研究。我们通过对多种CacheLib配置的评估,揭示了其在类似环境下阻碍其有效性的若干局限性,包括配置僵化、运行时适应性有限、缺乏服务质量支持与协调,从而导致性能欠佳、内存使用效率低下以及租户资源匮乏。基于这些发现,我们概述了未来研究方向,以提升未来缓存引擎的适应性、公平性和可编程性。