Merlin: An Efficient Adaptive Cache Eviction Algorithm via Fine-Grained Characterization
Liujia Li, Jinhao Guo, Yi Fan, Jianyu Wu, Zhenlin Wang, Jie Zhang, Yuval Tamir, Xiaolin Wang, Yingwei Luo, Diyu Zhou
Abstract
The diverse and complex modern workloads pose a major challenge for cache to remain effective across all scenarios, degrading the performance of critical systems such as web caches. Adaptive cache eviction algorithms promise to address this challenge by observing access patterns and adjusting their behavior accordingly. However, existing ones fail this promise, even underperforming static policies. Our analysis shows that this is because they adapt only to a few typical patterns, incurring poor performance on others. Moreover, they adapt by switching between supposedly complementary algorithms, which turn out to interfere with each other.
We present Merlin, an efficient adaptive algorithm that robustly handles diverse access patterns while maintaining low overhead and high multicore scalability. The efficiency of Merlin stems from a principled pattern characterization method that can express a wide spectrum of access patterns rather than a few typical ones. This is achieved by characterizing at the level of individual objects while accounting for both access locality and cache size. Furthermore, Merlin cleanly decouples responsibilities among its components, with each component performing a single task, thereby eliminating the costly interference between base algorithms. Our evaluation across 11 datasets with 5423 traces shows that Merlin achieves robust improvements in hit rate over existing algorithms, increasing throughput by 1.4× to 7.8×.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext b6d0e658-bc9c-453f-93c2-efb0af4740dbBuilds on21
- CollAFL: Path Sensitive FuzzingShuitao Gan, Chao Zhang, Xiaojun Qin, Xuwen Tu et al.S&P 2018 · 426 citations
- A large scale analysis of hundreds of in-memory cache clusters at TwitterJuncheng Yang, Yao Yue, K. V. RashmiOSDI 2020 · 245 citations
- Learning Relaxed Belady for Content Distribution Network CachingZhenyu Song, Daniel S. Berger, Kai Li, Wyatt LloydNSDI 2020 · 193 citations
- The CacheLib Caching Engine: Design and Experiences at ScaleBenjamin Berg, Daniel S. Berger, Sara McAllister, Isaac Grosof et al.OSDI 2020 · 145 citations
- BMC: Accelerating Memcached using Safe In-kernel Caching and Pre-stack ProcessingYoann Ghigoff, Julien Sopena, Kahina Lazri, Antoine Blin et al.NSDI 2021 · 79 citations
Related papers
- SIEVE is Simpler than LRU: an Efficient Turn-Key Eviction Algorithm for Web CachesYazhuo Zhang, Juncheng Yang, Yao Yue, Ymir Vigfusson et al.NSDI 2024 · 63 citations
- FIFO queues are all you need for cache evictionJuncheng Yang, Yazhuo Zhang, Ziyue Qiu, Yao Yue et al.SOSP 2023 · 54 citations
- Latency-Aware Caching with Delayed Hits: From Bursty Traffic to Pipeline ArchitecturesNadav Keren, Gil Einziger, Gabriel ScalosubNSDI 2026 · 1 citation
- GL-Cache: Group-level learning for efficient and high-performance cachingJuncheng Yang, Ziming Mao, Yao Yue, K. V. RashmiFAST 2023 · 60 citations
- cache_ext: Customizing the Page Cache with eBPFTal Zussman, Ioannis Zarkadas, Jeremy Carin, Andrew Cheng et al.SOSP 2025 · 8 citations
