Workload analysis of a large-scale key-value store

Workload analysis of a large-scale key-value store
复制标题

DOI:
10.1145/2254756.2254766
复制
发表时间:
2012-06
期刊:
--
影响因子:
--
通讯作者:
Berk Atikoglu;Yuehai Xu;E. Frachtenberg;Song Jiang;Mike Paleczny
Berk Atikoglu;Yuehai Xu;E. Frachtenberg;Song Jiang;Mike Paleczny
中科院分区:
其他
文献类型:
--
作者:
Berk Atikoglu;Yuehai Xu;E. Frachtenberg;Song Jiang;Mike Paleczny

文献摘要

被引文献

相似文献

键值存储是许多向外扩展的企业(包括社交网络、在线零售和风险分析)中的重要组件。因此,它们受到研究团体越来越多的关注,努力提高它们的性能、可伸缩性、可靠性、成本和功耗。要使这种工作有效,就需要详细了解实际的键值工作负载。然而,在运营它们的公司之外,人们对这些工作量知之甚少。本文旨在解决这一差距。为此,我们从Facebook的Memcached部署中收集了详细的痕迹,这可以说是世界上最大的Memcached部署。这些跟踪记录在几天内捕获了来自五个不同Memcached用例的超过2840亿个请求。我们从多个角度分析工作负载,包括:请求组成、大小和速率;缓存有效性;时态模式;以及应用程序用例。我们还提出了一个最具代表性的跟踪的简单模型,以使社区能够生成更真实的合成工作负载。我们的分析详细介绍了缓存工作负载的许多特征。它还揭示了一些令人惊讶的情况:GET/SET比率为30:1,比文献中假设的要高;Memcached的一些应用程序表现得更像持久存储而不是缓存;强大的局部性指标,如每天访问数百万次的键,并不总是足以实现高命中率;在Memcached的实现中,效率和命中率仍有提升的空间。针对最后一点,我们提出了一些建议,以解决暴露的缺陷。
Key-value stores are a vital component in many scale-out enterprises, including social networks, online retail, and risk analysis. Accordingly, they are receiving increased attention from the research community in an effort to improve their performance, scalability, reliability, cost, and power consumption. To be effective, such efforts require a detailed understanding of realistic key-value workloads. And yet little is known about these workloads outside of the companies that operate them. This paper aims to address this gap. To this end, we have collected detailed traces from Facebook's Memcached deployment, arguably the world's largest. The traces capture over 284 billion requests from five different Memcached use cases over several days. We analyze the workloads from multiple angles, including: request composition, size, and rate; cache efficacy; temporal patterns; and application use cases. We also propose a simple model of the most representative trace to enable the generation of more realistic synthetic workloads by the community. Our analysis details many characteristics of the caching workload. It also reveals a number of surprises: a GET/SET ratio of 30:1 that is higher than assumed in the literature; some applications of Memcached behave more like persistent storage than a cache; strong locality metrics, such as keys accessed many millions of times a day, do not always suffice for a high hit rate; and there is still room for efficiency and hit rate improvements in Memcached's implementation. Toward the last point, we make several suggestions that address the exposed deficiencies.