当前位置: X-MOL 学术ACM Trans. Comput. Syst. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
SILK+ Preventing Latency Spikes in Log-Structured Merge Key-Value Stores Running Heterogeneous Workloads
ACM Transactions on Computer Systems ( IF 2.0 ) Pub Date : 2020-05-31 , DOI: 10.1145/3380905
Oana Balmau 1 , Florin Dinu 1 , Willy Zwaenepoel 1 , Karan Gupta 2 , Ravishankar Chandhiramoorthi 2 , Diego Didona 3
Affiliation  

Log-Structured Merge Key-Value stores (LSM KVs) 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 tree-like 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, rate-limiting flushes and compactions, selecting among compactions for maximum effect, and limiting compactions to the highest level by so-called fragmented LSMs. In this article, we focus on latencies rather than throughput. We first document the fact that LSM KVs exhibit high tail latencies. The techniques that have been proposed for optimizing throughput do not address this issue, and, in fact, in some cases, exacerbate it. The root cause of these high tail latencies is interference between client writes, flushes, and compactions. Another major cause for tail latency is the heterogeneous nature of the workloads in terms of operation mix and item sizes whereby a few more computationally heavy requests slow down the vast majority of smaller requests. We introduce the notion of an Input/Output (I/O) bandwidth scheduler for an LSM-based KV store to reduce tail latency caused by interference of flushing and compactions and by workload heterogeneity. 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) separating client requests by size and by data access path. SILK+ is a new open-source LSM KV that incorporates this notion of an I/O scheduler.

中文翻译:

SILK+ 防止运行异构工作负载的日志结构合并键值存储中的延迟峰值

Log-Structured Merge Key-Value stores (LSM KVs) 旨在提供良好的写入性能,通过在内存中捕获客户端写入,然后才将它们刷新到存储中。写入稍后会在磁盘上压缩成树状数据结构,以提高读取性能并减少存储空间使用。已广泛记录压缩严重阻碍吞吐量。各种优化已经成功地解决了这个问题。这些技术包括限速刷新和压缩、在压缩中选择以获得最大效果,以及通过所谓的分段 LSM 将压缩限制在最高级别。在本文中,我们关注延迟而不是吞吐量。我们首先记录了 LSM KV 表现出高尾延迟的事实。为优化吞吐量而提出的技术并没有解决这个问题,事实上,在某些情况下,它会加剧它。这些高尾延迟的根本原因是客户端写入、刷新和压缩之间的干扰。尾延迟的另一个主要原因是工作负载在操作组合和项目大小方面的异构性质,因此一些计算量更大的请求会减慢绝大多数较小的请求。我们为基于 LSM 的 KV 存储引入了输入/输出 (I/O) 带宽调度器的概念,以减少由刷新和压缩的干扰以及工作负载异构性引起的尾部延迟。作为该 I/O 调度程序的一部分,我们探索了三种技术:(1)在低负载期间机会性地为内部操作分配更多带宽,(2) 在树的较低级别对刷新和压缩进行优先级排序,以及 (3) 按大小和数据访问路径分离客户端请求。SILK+ 是一个新的开源 LSM KV,它结合了 I/O 调度程序的概念。
更新日期:2020-05-31
down
wechat
bug