Abstract

In this work, we optimize the highly variable latency of flash SSDs by presenting a host side storage engine, which is capable of cooperating with the SSDs, and augmented by the redundancy of multiple SSD instances. The storage engine schedules I/O and SSD internal operations to data blocks replicated among multiple SSDs exploiting the support of an SSD control API provided by off-the-shelf SATA 6.0 Gb/s MLC SSDs extended with modest firmware modifications. Side effects of latency heavy operations such as garbage collection (GC) are detained in a group of physical SSDs, while foreground operations are diverted to other SSDs. This way, flash SSDs can keep up with demands of free blocks, even under workloads without idle time, without harming foreground application latency. In our evaluations, our storage engine enhanced the latency stability of flash SSDs by 40 times, decreasing the 99.9999th percentile latency to sub milli-second levels. Also, our storage engine, when integrated into a flash SSD based in-memory system, was capable of reducing the 99th percentile of application latency by 4.5 times.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call