百合文库
首页 > 网文

Tebis: Index Shipping for Efficient Replication in LSM Key-Value(3)

2024-06-14 来源:百合文库
Tebis使用一个高效的基于rdbase的主备份通信协议来复制数据值日志,该协议在通信操作中不需要备份cpu的参与。此外,为了减少客户端与服务器通信的CPU开销,Tebis使用单边RDMA写操作。Tebis协议支持KV存储所必需的可变大小消息,使用一次往返来减少服务器的处理开销。
2 Background2.1 LSM tree LSM树是一种写优化的数据结构,它将数据组织成多个层级,这些层级的数据大小以常数增长因子f增长。第一个层级的数据大小约为数百MB,完全存储在内存中,而其他层级的数据则存储在设备中。虽然在某些系统中,内存中的级别被命名为memtable,但为简单起见,我们使用LSM的术语,将其称为第0级(L0)。有不同的方法来组织数据的层次。本文关注于分层KV存储,将每个层组织在不重叠的范围内,这也是使用最广泛的方法。

Tebis: Index Shipping for Efficient Replication in LSM Key-Value


在LSM树中,增长因子f=4会导致最小的I/O放大。然而,生产中的KV存储使用更大的增长因子,通常为8-12,这增加了整体I/O放大,但减少了级别的数量。假设中间级别只包含更新和删除操作,在高更新率的情况下,更少的级别会导致更少的设备空间使用。
目前的KV存储设计利用快速存储设备在小随机I/O下以较高比例(接近80%)运行的能力来减少I/O放大。主要技术有KV分离和混合KV布局。KV分离将键和值附加在单独的值日志中,而不是存储在索引中的键值。索引将元数据保存到日志中的对应值。因此,它们只是在多级结构中重新组织键值指针。这种方法,取决于kv对的大小,减少了高达10倍的I/O放大。混合KV布局是一种扩展KV间隔并减少垃圾回收开销的技术,尤其适用于中(≥100b)和大(≥1000b) KV对。混合KV放置也将大KV对放置在单独的日志中,小KV对放置在每个LSM树层中,中KV对放置在单独的值日志中,直到最后一个或两个级别回收中值日志。

Tebis: Index Shipping for Efficient Replication in LSM Key-Value


猜你喜欢