SlimCache: Exploiting Data Compression Opportunities in Flash-Based Key-Value Caching

Flash-based key-value caching is becoming popular indatacentersforprovidinghigh-speedkey-valueservices. 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 paper, we present a dynamic on-line compression scheme, called SlimCache, 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 leveraged the unique workload characteristics in key-value systems to efficiently identify and separate hot and cold data. In order to dynamically adapt to workload changes during runtime, we have designed an adaptive hot/coldareapartitioningmethodbasedonacostmodel. Inorder 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 125.9%, effectively increasing throughput and reducing average latency by up to 255.6% and 78.9%, respectively.

[1]  G. Zipf,et al.  Relative Frequency as a Determinant of Phonetic Change , 1930 .

[2]  Adam Silberstein,et al.  Benchmarking cloud serving systems with YCSB , 2010, SoCC '10.

[3]  Rina Panigrahy,et al.  Design Tradeoffs for SSD Performance , 2008, USENIX ATC.

[4]  Thomas F. Wenisch,et al.  Thin servers with smart pipes: designing SoC accelerators for memcached , 2013, ISCA.

[5]  Xiaodong Zhang,et al.  Understanding intrinsic characteristics and system implications of flash memory based solid state drives , 2009, SIGMETRICS '09.

[6]  Angelos Bilas,et al.  Using transparent compression to improve SSD-based I/O caches , 2010, EuroSys '10.

[7]  Sang Joon Kim,et al.  A Mathematical Theory of Communication , 2006 .

[8]  Jordi Torres,et al.  Improving Web Server Performance Through Main Memory Compression , 2008, 2008 14th IEEE International Conference on Parallel and Distributed Systems.

[9]  Song Jiang,et al.  Workload analysis of a large-scale key-value store , 2012, SIGMETRICS '12.

[10]  Shlomo Weiss,et al.  Selective main memory compression by identifying program phase changes , 2004, 2004 23rd IEEE Convention of Electrical and Electronics Engineers in Israel.

[11]  Gordon V. Cormack,et al.  Data compression on a database system , 1985, CACM.

[12]  Wayne Wolf,et al.  Caching Web objects using Zipf's law , 1998, Other Conferences.

[13]  Sivan Toledo,et al.  Compression and SSD : Where and How ? , 2014 .

[14]  Zili Shao,et al.  DIDACache: A Deep Integration of Device and Application for Flash Based Key-Value Caching , 2017, FAST.

[15]  CachingLee,et al.  On the Implications of Zipf ' s Law for Web , 1998 .

[16]  Avishay Traeger,et al.  To Zip or not to Zip: effective resource usage for real-time compression , 2013, FAST.

[17]  K. Fu,et al.  Assessing Censorship on Microblogs in China: Discriminatory Keyword Analysis and Impact Evaluation of the 'Real Name Registration' Policy , 2013 .

[18]  Li Fan,et al.  Web caching and Zipf-like distributions: evidence and implications , 1999, IEEE INFOCOM '99. Conference on Computer Communications. Proceedings. Eighteenth Annual Joint Conference of the IEEE Computer and Communications Societies. The Future is Now (Cat. No.99CH36320).

[19]  Eddie Kohler,et al.  Cache craftiness for fast multicore key-value storage , 2012, EuroSys '12.

[20]  Ling Liu,et al.  Achieving 10Gbps Line-rate Key-value Stores with FPGAs , 2013, HotCloud.

[21]  Dhabaleswar K. Panda,et al.  SSD-Assisted Hybrid Memory to Accelerate Memcached over High Performance Networks , 2012, 2012 41st International Conference on Parallel Processing.

[22]  Ingo Müller,et al.  Adaptive String Dictionary Compression in In-Memory Column-Store Database Systems , 2014, EDBT.

[23]  Alfons Kemper,et al.  Data Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilation , 2016, SIGMOD Conference.

[24]  Pradeep Dubey,et al.  Architecting to achieve a billion requests per second throughput on a single key-value store server platform , 2015, 2015 ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA).

[25]  Meikel Pöss,et al.  Data Compression in Oracle , 2003, VLDB.

[26]  Nimrod Megiddo,et al.  ARC: A Self-Tuning, Low Overhead Replacement Cache , 2003, FAST.

[27]  Pietro Michiardi,et al.  Memory partitioning in Memcached: An experimental performance analysis , 2014, 2014 IEEE International Conference on Communications (ICC).

[28]  Thomas R. Gross,et al.  Adaptive Main Memory Compression , 2005, USENIX Annual Technical Conference, General Track.

[29]  Hyeontaek Lim,et al.  MICA: A Holistic Approach to Fast In-Memory Key-Value Storage , 2014, NSDI.

[30]  Li Zhang,et al.  zExpander: a key-value cache with both high performance and fewer misses , 2016, EuroSys.

[31]  Daniel J. Abadi,et al.  Integrating compression and execution in column-oriented database systems , 2006, SIGMOD Conference.

[32]  Tony Tung,et al.  Scaling Memcache at Facebook , 2013, NSDI.

[33]  Mark J. Huiskes,et al.  The MIR flickr retrieval evaluation , 2008, MIR '08.

[34]  Joonwon Lee,et al.  DRACO: A Deduplicating FTL for Tangible Extra Capacity , 2015, IEEE Computer Architecture Letters.

[35]  Xiaodong Zhang,et al.  Essential roles of exploiting internal parallelism of flash memory based solid state drives in high-speed data processing , 2011, 2011 IEEE 17th International Symposium on High Performance Computer Architecture.

[36]  Song Jiang,et al.  CLOCK-Pro: An Effective Improvement of the CLOCK Replacement , 2005, USENIX Annual Technical Conference, General Track.

[37]  Yannis Smaragdakis,et al.  The Case for Compressed Caching in Virtual Memory Systems , 1999, USENIX Annual Technical Conference, General Track.

[38]  Rubao Lee,et al.  Internal Parallelism of Flash Memory-Based Solid-State Drives , 2016, ACM Trans. Storage.