SlimCache: An Efficient Data Compression Scheme for Flash-based Key-value Caching

SlimCache: An Efficient Data Compression Scheme for Flash-based Key-value Caching
复制标题

SlimCache:一种基于闪存的键值缓存的高效数据压缩方案

DOI:
10.1145/3383124
复制
发表时间:
2020
影响因子:
1.7
通讯作者:
Chen, Feng
Chen, Feng
中科院分区:
计算机科学3区
文献类型:
--
作者:
Jia, Yichen;Shao, Zili;Chen, Feng

文献摘要

相似文献

由于提供高速的键值服务,基于闪存的键值缓存在数据中心中变得越来越流行。这些系统在闪存上采用基于板片的空间管理,为键值缓存提供了低成本的解决方案。然而,由于闪存设备具有数量巨大的键值项和独特的技术限制,因此优化基于闪存的键值缓存系统的缓存效率是非常具有挑战性的。在本文中,我们提出了一种动态在线压缩方案,称为SlimCache,通过数据压缩来虚拟地扩展可用缓存空间,从而提高缓存命中率。我们研究了压缩粒度的影响,以实现压缩比和速度之间的平衡,并利用Key-Value系统中独特的工作负载特征来高效地识别和分离冷热数据。为了动态适应运行时的负载变化,我们设计了一种基于代价模型的自适应冷热区域划分方法。为了避免不必要的压缩,SlimCache还会评估数据的可压缩性,以确定数据是否适合压缩。我们已经实现了一个基于Twitter的Fatcache的原型。实验结果表明,SlimCach可以在闪存中容纳更多的关键值项,最高可达223.4%,有效地提高吞吐量和降低平均延迟,分别高达380.1%和80.7%。
Flash-based key-value caching is becoming popular in data centers for providing high-speed key-value services. These systems adopt slab-based space management on flash and provide a low-cost solution for key-value caching. However, optimizing cache efficiency for flash-based key-value cache systems is highly challenging, due to the huge number of key-value items and the unique technical constraints of flash devices. In this article, we present a dynamic on-line compression scheme, calledSlimCache, to improve the cache hit ratio by virtually expanding the usable cache space through data compression. We have investigated the effect of compression granularity to achieve a balance between compression ratio and speed, and we leveraged the unique workload characteristics in key-value systems to efficiently identify and separate hot and cold data. To dynamically adapt to workload changes during runtime, we have designed an adaptive hot/cold area partitioning method based on a cost model. To avoid unnecessary compression, SlimCache also estimates data compressibility to determine whether the data are suitable for compression or not. We have implemented a prototype based on Twitter’s Fatcache. Our experimental results show that SlimCache can accommodate more key-value items in flash by up to 223.4%, effectively increasing throughput and reducing average latency by up to 380.1% and 80.7%, respectively.