[论文解读] Co-KV: A Collaborative Key-Value Store Using Near-Data Processing to Improve Compaction for the LSM-tree
Co-KV 提出了一种协作式键值存储,利用固态硬盘(SSD)中的近数据处理(NDP)技术,将压缩工作负载从主机卸载,将压缩任务在主机与设备之间拆分,实现并行执行。该方法在更新密集型工作负载下,将写入放大减少了高达36.0%,整体吞吐量相比 LevelDB 提升了2.0倍。
Log-structured merge tree (LSM-tree) based key-value stores are widely employed in large-scale storage systems. In the compaction of the key-value store, SSTables are merged with overlapping key ranges and sorted for data queries. This, however, incurs write amplification and thus degrades system performance, especially under update-intensive workloads. Current optimization focuses mostly on the reduction of the overload of compaction in the host, but rarely makes full use of computation in the device. To address these issues, we propose Co-KV, a Collaborative Key-Value store between the host and a near-data processing ( i.e., NDP) model based SSD to improve compaction. Co-KV offers three benefits: (1) reducing write amplification by a compaction offloading scheme between host and device; (2) relieving the overload of compaction in the host and leveraging computation in the SSD based on the NDP model; and (3) improving the performance of LSM-tree based key-value stores under update-intensive workloads. Extensive db_bench experiment show that Co-KV largely achieves a 2.0x overall throughput improvement, and a write amplification reduction by up to 36.0% over the state-of-the-art LevelDB. Under YCSB workloads, Co-KV increases the throughput by 1.7x - 2.4x while decreases the write amplification and average latency by up to 30.0% and 43.0%, respectively.
研究动机与目标
- 解决在更新密集型工作负载下,LSM-tree 基键值存储因压缩导致的性能下降问题。
- 通过使用近数据处理(NDP)将部分压缩工作负载卸载至 SSD,减少主机端的 CPU 和 I/O 开销。
- 利用主机与设备之间的并行性,提升整体压缩性能并减少数据移动。
- 设计一种协作式架构,在保持与现有 LSM-tree 接口兼容的同时,实现压缩任务的透明卸载。
- 通过语义感知的任务划分,在主机与存储设备之间平衡计算与 I/O 负载,优化系统级性能。
提出的方法
- 提出两级压缩卸载方案:主机(Co-KVH)与设备(Co-KVD)协同执行压缩,通过拆分工作负载实现。
- 使用语义感知的管理器,基于键范围和存储特性,协调主机与设备之间的数据分区与任务分发。
- 实现一种压缩卸载机制,将重叠的键范围合并任务分配给主机与 SSD,支持并行执行。
- 将 Co-KV 系统集成到 LevelDB 中作为原型,扩展其功能以支持 NDP 优化的 SSD,且不改变应用程序接口。
- 设计轻量级卸载管理器,负责压缩期间的任务调度、数据移动与主机与设备之间的协调。
- 利用 NDP 模型,通过在数据附近执行计算,最大限度减少数据移动,降低带宽压力与写入放大。
实验结果
研究问题
- RQ1将压缩任务从主机卸载至 NDP 优化的 SSD 是否能减少 LSM-tree 基键值存储中的写入放大?
- RQ2主机与设备之间的协作压缩在更新密集型工作负载下,如何提升吞吐量与降低延迟?
- RQ3与仅由主机优化相比,主机与设备之间的系统级并行性在多大程度上能提升压缩性能?
- RQ4工作负载特性(如读写比、数据大小)对 Co-KV 性能提升的影响如何?
- RQ5如何设计一种透明且接口兼容的系统,将基于 NDP 的压缩集成到现有的 LSM-tree 存储栈中?
主要发现
- 在 db_bench 工作负载下,Co-KV 相比 LevelDB 实现了 2.0 倍的整体吞吐量提升。
- 在更新密集型工作负载下,Co-KV 的写入放大最高可减少 36.0%。
- 在 YCSB 工作负载中,100% 为更新操作时,Co-KV 的吞吐量提升 2.0 倍至 2.2 倍,平均延迟最高降低 43.0%。
- 在 90% 读取与 10% 更新操作的配置下,Co-KV 实现了 21,415 ops/sec 的性能,优于 LevelDB 在相同条件下的表现。
- 在 20GB 负载与 80GB 运行工作负载配置下,写入放大降低至 LevelDB 的 71.0%。
- 设备端组件(Co-KVD)处理了大约一半的压缩操作,实现了有效的并行处理与负载均衡。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。