Tebis: Index Shipping for Efficient Replication in LSM Key-Value Stores——论文泛读

EuroSys 2022 Paper 论文阅读笔记整理

问题

基于LSM树的Key-value (KV)存储已成为数据中心和云服务存储栈中的基础层。目前实现可靠性和可用性的方法倾向于减少网络流量,并仅将新的KV对发送到副本。但需要执行昂贵的压缩操作来重新组织主节点和备份节点中的数据,增加了设备I/O流量和CPU开销,最终损害了整个系统的性能。

现有方法局限性

为了提供可靠性和可用性,最先进的KV存储[11,27]在多个(通常是两个或三个[7])节点中复制KV对。当前的设计[11,27,37]执行代价高昂的压缩,以重新组织主节点和备份节点中的数据,以确保:(1)通过仅在节点之间移动用户数据来最小化网络流量;(2)通过仅执行大型I/O来顺序访问设备。但是,这种方法会显著增加备份时的读取I/O流量、CPU利用率和内存使用量。考虑到所有节点同时充当主节点和备份节点,这种方法最终会损害系统的整体性能。

本文方法

我们提出了Tebis,高效的基于LSM的KV存储,减少了用于维护副本索引的I/O放大和CPU开销。

  • 我们使用主-备份复制方案仅在主节点上执行压缩,并将预构建的索引发送到备份节点,减少了备份节点中的读取I/O放大、CPU开销和内存利用率。

  • 提出备份节点上索引的高效重写机制。备份接收到的索引包含主节点上设备的段偏移量,Tebis创建了主备段之间的映射,通过映射有效地重写备份中的设备位置。

  • 使用基于RDMA的主备通信协议来复制数据值日志,该协议不需要备份CPU参与通信操作[40]。Tebis使用单边RDMA写操作,支持可变大小的消息,使用单往返路程减少服务器处理开销。

Tebis: Index Shipping for Efficient Replication in LSM Key-Value Stores——论文泛读_第1张图片

我们的结果表明,与执行完整压实相比,Tebis减轻了对备份节点的压力:吞吐量增加了1.1−1.48倍,CPU效率提高了1.06−1.54倍,I/O放大减少了1.13−1.81倍,而不会过度增加服务器之间的网络流量(最多增加1.09−1.82倍)。

实验

实验环境:三个相同的服务器组成,配备了两个运行在2.4 GHz的Intel(R)Xeon(R)CPU E5-2630,具有16个物理内核,共32个超线程,并具有256 GB的DDR4 DRAM。所有服务器都运行带有Linux内核4.4.159的CentOS 7.3。每台服务器都有一个1.5 TB的Samsung PM173X NVMe SSD和一个56 Gbps的Mellanox ConnectX 3 Pro RDMA网卡。

数据集:YCSB[12]

实验对比:吞吐量、每周期的操作数、I/O放大、网络放大、尾延迟、

总结

针对包含多个数据副本的KV存储系统,如何减少压缩和CPU利用率。作者提出只在主节点进行压缩,并将预构建的索引发送到备份节点,减少备份节点的I/O放大、CPU开销和内存利用率;提出备份节点上索引的高效重写机制,通过创建主备节点间段的映射,通过映射重写备份中的设备位置;利用RDMA进行数据传输,减少CPU开销和通信操作。

你可能感兴趣的:(论文阅读,论文阅读,KV存储,lsm-tree)