No abstract
Modern key-value stores, object stores, Internet proxy caches, and Content Delivery Networks (CDN) often manage objects of diverse sizes, e.g., blobs, video files of different lengths, images with varying resolutions, and small documents. In such workloads, size-aware cache policies outperform size-oblivious algorithms. Unfortunately, existing size-aware algorithms tend to be overly complicated and computationally expensive. Our work follows a more approachable pattern; we extend the prevalent (size-oblivious) TinyLFU cache admission policy to handle variable-sized items. Implementing our approach inside two popular caching libraries only requires minor changes. We show that our algorithms yield competitive or better hit-ratios and byte hit-ratios compared to the state-of-the-art size-aware algorithms such as AdaptSize, LHD, LRB, and GDSF. Further, a runtime comparison indicates that our implementation is faster by up to 3x compared to the best alternative, i.e., it imposes a much lower CPU overhead.
Modern key-value stores, object stores, Internet proxy caches, as well as Content Delivery Networks (CDN) often manage objects of diverse sizes, e.g., blobs, video files of different lengths, images with varying resolution, and small documents. In such workloads, size-aware cache policies outperform sizeoblivious algorithms. Unfortunately, existing size-aware algorithms tend to be overly complicated and computationally expensive.Our work follows a more approachable pattern; we extend the prevalent (size-oblivious) TinyLFU cache admission policy to handle variable sized items. Implementing our approach inside two popular caching libraries only requires minor changes. We show that our algorithms yield competitive or better hit-ratios and byte hit-ratios compared to the state of the art size-aware algorithms such as AdaptSize, LHD, LRB, and GDSF. Further, a runtime comparison indicates that our implementation is faster by up to x3 compared to the best alternative, i.e., it imposes much lower CPU overhead. IntroductionCaches improve the performance of diverse computing and networked systems by storing portions of the data closer to the applications and users. Caching is widely used in many databases and storage systems in which DRAM memory serves as a cache for slower secondary storage [25], Web caching [34], and even in hardware fast SRAM memory serves as a cache to slower DRAM memory. As another example, Content Delivery Networks (CDN) reduce the data access latency by storing popular content closer (in terms of Internet topology) to its consumers [22]. CDNs deploy multiple distributed content caching servers, also known as Points of Presence (PoP), in multiple ASs. PoPs serve popular content faster than fetching the data from the original server and accomplish three goals: reducing Internet traffic [21], reducing the load on the content providers' servers, and reducing users' perceived response times, thereby improving the user experience.Given that the cache is smaller than the entire storage whose content it stores, a cache management policy decides which items to store in the cache at any given point. Due to the diversity of workloads and systems, a plethora of such policies have been devised, e.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.