Cooperative Concurrency Control for Write-Intensive Key-Value Workloads

Cooperative Concurrency Control for Write-Intensive Key-Value Workloads
复制标题

DOI:
10.1145/3567955.3567957
复制
发表时间:
2022-12
期刊:
Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1
影响因子:
--
通讯作者:
Mark Sutherland;B. Falsafi;Alexandros Daglis
Mark Sutherland;B. Falsafi;Alexandros Daglis
中科院分区:
其他
文献类型:
--
作者:
Mark Sutherland;B. Falsafi;Alexandros Daglis

文献摘要

相似文献

键值存储(KVS)是在线服务的基础设施组件。由于延迟至关重要的性质,当今性能最好的KVS包含大量的全栈优化,通常针对主要是读取的、受欢迎的工作负载。生产研究表明,写密集型工作负载的普及率增加的动机,我们分解的KVS工作负载空间分为四个不同的类,并认为,目前的设计只足以为其中两个。原因是KVS并发控制协议暴露了一个基本的权衡:通过跨线程分区写入来避免同步对于高吞吐量是强制性的,但必然会造成负载不平衡,这种不平衡会随着核心数量和写入分数的增加而增加。我们打破了这种权衡与C-4,NIC硬件和KVS软件之间的协同设计,明智地将写请求分为两类:独立的,可以跨线程平衡,和依赖的,必须排队。C-4使用NIC动态划分独立写入,以增加当前KVS设计的负载平衡灵活性,并向KVS添加软件层,以将相关写入压缩为批处理。我们的评估表明,对于写密集型工作负载,C-4将99%的尾部延迟降低了1.3 - 5倍,并将吞吐量提高了1.7倍。
Key-Value Stores (KVS) are foundational infrastructure components for online services. Due to their latency-critical nature, today’s best-performing KVS contain a plethora of full-stack optimizations commonly targeting read-mostly, popularity-skewed workloads. Motivated by production studies showing the increased prevalence of write-intensive workloads, we break down the KVS workload space into four distinct classes, and argue that current designs are only sufficient for two of them. The reason is that KVS concurrency control protocols expose a fundamental tradeoff: avoiding synchronization by partitioning writes across threads is mandatory for high throughput, but necessarily creates load imbalance that grows with core count and write fraction. We break this tradeoff with C-4, a co-design between NIC hardware and KVS software that judiciously separates write requests into two classes: independent ones that can be balanced across threads, and dependent ones which must be queued. C-4 dynamically partitions independent writes with the NIC to increase the load balancing flexibility of current KVS designs, and adds a software layer to the KVS to compact dependent writes into batches. Our evaluation shows that for write-intensive workloads, C-4 reduces 99th% tail latency by 1.3−5× and improves throughput by up to 1.7×.