Flashield: a Key-value Cache that Minimizes Writes to Flash

by   Assaf Eisenman, et al.

As its price per bit drops, SSD is increasingly becoming the default storage medium for cloud application databases. However, it has not become the preferred storage medium for key-value caches, even though SSD offers more than 10x lower price per bit and sufficient performance compared to DRAM. This is because key-value caches need to frequently insert, update and evict small objects. This causes excessive writes and erasures on flash storage, since flash only supports writes and erasures of large chunks of data. These excessive writes and erasures significantly shorten the lifetime of flash, rendering it impractical to use for key-value caches. We present Flashield, a hybrid key-value cache that uses DRAM as a "filter" to minimize writes to SSD. Flashield performs light-weight machine learning profiling to predict which objects are likely to be read frequently before 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 Flashield's design and implementation and, we evaluate it on a real-world cache trace. Compared to state-of-the-art systems that suffer a write amplification of 2.5x or more, Flashield maintains a median write amplification of 0.5x without any loss of hit rate or throughput.


page 1

page 2

page 3

page 4


Bandana: Using Non-volatile Memory for Storing Deep Learning Models

Typical large-scale recommender systems use deep learning models that ar...

Predict and Write: Using K-Means Clustering to Extend the Lifetime of NVM Storage

Non-volatile memory (NVM) technologies suffer from limited write enduran...

Key-Value Stores on Flash Storage Devices: A Survey

Key-value stores (KV) have become one of the main components of the mode...

CheckSync: Using Runtime-Integrated Checkpoints to Achieve High Availability

CheckSync provides applications with high availability via runtime-integ...

Writes Hurt: Lessons in Cache Design for Optane NVRAM

Intel OptaneTM DC Persistent Memory resides on the memory bus and approa...

Multilevel Bidirectional Cache Filter

Modern caches are often required to handle a massive amount of data, whi...

Accelerating PageRank using Partition-Centric Processing

PageRank is a fundamental link analysis algorithm and a key representati...

Please sign up or login with your details

Forgot password? Click here to reset