Secret sauce that brings YouTube followers, views, likes
Get Free YouTube Subscribers, Views and Likes

SILK: Preventing Latency Spikes in Log-Structured Merge Key-Value Stores

Follow
Microsoft Research

LSMbased KV stores are designed to offer good write performance by capturing client writes in memory and only later flushing them to storage. Writes are later compacted into a treelike data structure on disk to improve read performance and to reduce storage space use. It has been widely documented that compactions severely hamper throughput. Various optimizations have successfully dealt with this problem. These techniques include, among others, ratelimiting flushes and compactions, selecting among compactions for maximum effect, and limiting compactions to the highest level by socalled fragmented LSMs.

In this work we focus on latencies rather than throughput. The root cause of high tail latencies is interference between client writes, flushes and compactions. We introduce the notion of an I/O sched uler for an LSMbased KV store to reduce this interference. We explore three techniques as part of this I/O scheduler: 1) opportunistically allocating more bandwidth to internal operations during periods of low load, 2) prioritizing flushes and compactions at the lower levels of the tree, and 3) preempting compactions.

SILK is a new opensource KV store that incorporates this notion of an I/O scheduler. SILK is derived from RocksDB, but the concepts can be applied to other LSMbased KV stores. We demonstrate that SILK achieves up to two orders of magnitude lower 99th percentile latencies than RocksDB and TRIAD, without any significant negative effects on other performance metrics.

Talk slides: https://www.microsoft.com/enus/resea...

Learn more about this and other talks at Microsoft Research: https://www.microsoft.com/enus/resea...

posted by houffennypf