Flashield: a Hybrid Key-value Cache that Controls Flash Write Amplification

Website Maintenance Alert

Due to scheduled maintenance on Monday, December 10, 2018, from 10 am-12 noon, parts of the USENIX website (e.g. user account changes) may not be available. We apologize for the inconvenience.


Assaf Eisenman, Stanford University; Asaf Cidon, Stanford University and Barracuda Networks; Evgenya Pergament and Or Haimovich, Stanford University; Ryan Stutsman, University of Utah; Mohammad Alizadeh, MIT CSAIL; Sachin Katti, Stanford University


As its price per bit drops, SSD is increasingly becoming the default storage medium for hot data in cloud application databases. Even though SSD’s price per bit is more than 10× lower, and it provides sufficient performance (when accessed over a network) compared to DRAM, the durability of flash has limited its adoption in write-heavy use cases, such as key-value caching. This is because key-value caches need to frequently insert, update and evict small objects. This causes excessive writes and erasures on flash storage, which significantly shortens the lifetime of flash. We present Chimera, a hybrid key-value cache that uses DRAM as a “filter” to control and limit writes to SSD. Chimera performs lightweight machine learning admission control to predict which objects are likely to be read frequently without getting updated; these objects, which are prime candidates to be stored on SSD, are written to SSD in large chunks sequentially. In order to efficiently utilize the cache’s available memory, we design a novel in-memory index for the variable-sized objects stored on flash that requires only 4 bytes per object in DRAM. We describe Chimera’s design and implementation, and evaluate it on real-world traces from a widely used caching service, Memcachier. Compared to state-of-the-art systems that suffer a write amplification of 2.5× or more, Chimera maintains a median write amplification of 0.5× (since many filtered objects are never written to flash at all), without any loss of hit rate or throughput.

@inproceedings {226000,
author = {Assaf Eisenman and Asaf Cidon and Evgenya Pergament and Or Haimovich and Ryan Stutsman and Mohammad Alizadeh and Sachin Katti},
title = {Flashield: a Hybrid Key-value Cache that Controls Flash Write Amplification},
booktitle = {16th {USENIX} Symposium on Networked Systems Design and Implementation ({NSDI} 19)},
year = {2019},
address = {Boston, MA},
url = {https://www.usenix.org/conference/nsdi19/presentation/eisenman},
publisher = {{USENIX} Association},