Flash-Conscious Cache Population for Enterprise Database Workloads

Host-side flash caching has lately emerged as a suitable and e↵ective means of accelerating enterprise workloads. However, cache management for flash-based caching is di↵erent from traditional DRAM-based caching. A flash cache sits underneath the DRAM cache. Its position in the hierarchy combined with the unique characteristics of flash, calls for a di↵erent cache management solution. Specifically, cache population, an aspect of cache management which is not attributed much importance in DRAM caches, becomes crucial in flash-based caches. In this paper, we first present a performance evaluation of three popular open-source flash cache implementations: flashcache, bcache, and EnhanceIO . We evaluate them under an industry-standard database benchmark and identify their limitations. We demonstrate that several shortcomings are due to sub-optimal cache population. We propose a novel set of techniques for cache population, and present the design of the Scalable Cache Engine (SCE) – a new flash cache solution that incorporates our cache population techniques. We demonstrate that SCE remarkably outperforms the existing open-source solutions: 45% higher throughput, 55% lower latency, 12⇥ faster cache warm-up than flashcache, and 95% less memory usage than EnhanceIO .

[1]  Robert C. Daley,et al.  The Multics virtual memory , 1972, Commun. ACM.

[2]  Margo I. Seltzer,et al.  Flash Caching on the Storage Client , 2013, USENIX Annual Technical Conference.

[3]  Alan Jay Smith,et al.  Sequentiality and prefetching in database systems , 1978, TODS.

[4]  Ming Zhao,et al.  Write policies for host-side flash caches , 2013, FAST.

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

[6]  Randy H. Katz,et al.  A case for redundant arrays of inexpensive disks (RAID) , 1988, SIGMOD '88.

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

[8]  Andrea C. Arpaci-Dusseau,et al.  Warming up storage-level caches with bonfire , 2013, FAST.

[9]  Sooyong Kang,et al.  LRU-WSR: integration of LRU and writes sequence reordering for flash memory , 2008, IEEE Transactions on Consumer Electronics.

[10]  Steve Byan,et al.  Mercury: Host-side flash caching for the data center , 2012, 012 IEEE 28th Symposium on Mass Storage Systems and Technologies (MSST).

[11]  Umakishore Ramachandran,et al.  What is a good buffer cache replacement scheme for mobile flash storage? , 2012, SIGMETRICS '12.

[12]  Dharmendra S. Modha,et al.  CAR: Clock with Adaptive Replacement , 2004, FAST.

[13]  Sang-Won Lee,et al.  SFS: random write considered harmful in solid state drives , 2012, FAST.

[14]  Joonwon Lee,et al.  CFLRU: a replacement algorithm for flash memory , 2006, CASES '06.

[15]  Song Jiang,et al.  LIRS: an efficient low inter-reference recency set replacement policy to improve buffer cache performance , 2002, SIGMETRICS '02.

[16]  Andrea C. Arpaci-Dusseau,et al.  Getting real: lessons in transitioning research simulations into hardware systems , 2013, FAST.

[17]  Dennis Shasha,et al.  2Q: A Low Overhead High Performance Buffer Management Replacement Algorithm , 1994, VLDB.

[18]  Ippokratis Pandis,et al.  From A to E: analyzing TPC's OLTP benchmarks: the obsolete, the ubiquitous, the unexplored , 2013, EDBT '13.