The CacheLib Caching Engine: Design and Experiences at Scale

The CacheLib Caching Engine: Design and Experiences at Scale
复制标题

DOI:
--
复制
发表时间:
2020
期刊:
--
影响因子:
--
通讯作者:
Benjamin Berg;Daniel S. Berger;Sara McAllister;Isaac Grosof;S. Gunasekar;Jimmy Lu;Michael Uhlar;Jim Carrig;Nathan Beckmann;Mor Harchol-Balter;G. Ganger
Benjamin Berg;Daniel S. Berger;Sara McAllister;Isaac Grosof;S. Gunasekar;Jimmy Lu;Michael Uhlar;Jim Carrig;Nathan Beckmann;Mor Harchol-Balter;G. Ganger
中科院分区:
其他
文献类型:
--
作者:
Benjamin Berg;Daniel S. Berger;Sara McAllister;Isaac Grosof;S. Gunasekar;Jimmy Lu;Michael Uhlar;Jim Carrig;Nathan Beckmann;Mor Harchol-Balter;G. Ganger

文献摘要

被引文献

相似文献

网络服务几乎依赖于系统架构中每一层的缓存。通常情况下,每个缓存都由不同的团队独立实施和维护,并对其功能高度专业化。例如,应用数据缓存独立于 CDN 缓存。然而,这种方法忽略了不同缓存系统共同面临的困难挑战,大大增加了部署、维护和扩展每个缓存所需的总体工作量。本文介绍了一种不同的缓存开发方法,该方法已在 Facebook 上成功应用,它从原本互不关联的缓存系统中提取了一套核心的共同需求和功能。CacheLib 是一个通用缓存引擎,它是根据 Facebook 的一系列缓存使用案例的经验而设计的,有助于缓存的轻松开发和维护。CacheLib 于 2017 年首次在 Facebook 部署,目前已为 70 多项服务提供支持,包括 CDN、存储和应用数据缓存。本文介绍了我们从独立的专用缓存向广泛采用 CacheLib 过渡期间的经验。我们解释了 Facebook 生产工作负载和使用案例的特点如何推动了重要的设计决策。我们描述了 Facebook 的缓存是如何随着时间的推移而演变的,包括部署 CacheLib 所带来的显著优势。我们还讨论了我们的经验对未来缓存设计和研究的影响。
Web services rely on caching at nearly every layer of the system architecture. Commonly, each cache is implemented and maintained independently by a distinct team and is highly specialized to its function. For example, an application-data cache would be independent from a CDN cache. However, this approach ignores the difficult challenges that different caching systems have in common, greatly increasing the overall effort required to deploy, maintain, and scale each cache. This paper presents a different approach to cache development, successfully employed at Facebook, which extracts a core set of common requirements and functionality from otherwise disjoint caching systems. CacheLib is a general-purpose caching engine, designed based on experiences with a range of caching use cases at Facebook, that facilitates the easy development and maintenance of caches. CacheLib was first deployed at Facebook in 2017 and today powers over 70 services including CDN, storage, and application-data caches. This paper describes our experiences during the transition from independent, specialized caches to the widespread adoption of CacheLib. We explain how the characteristics of production workloads and use cases at Facebook drove important design decisions. We describe how caches at Facebook have evolved over time, including the significant benefits seen from deploying CacheLib. We also discuss the implications our experiences have for future caching design and research.