百合文库
首页 > 网文

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

2024-06-14 来源:百合文库
2.2 Kreon Tebis使用Kreon来管理每个服务器中的数据。Kreon是一个持久的基于lsm的KV存储器,专为快速存储设备(NVMe ssd)设计。Kreon使用(a) KV分离和(b)内存映射I/O用于I/O缓存和直接I/O用于将数据写入设备,提高了CPU效率并减少了I/O放大。其索引采用多级LSM结构进行组织。第一级L0存储在内存中,而其余的L0存储在设备上。Kreon在内部将每个层次组织为B 树。叶子包含<key_prefix, value_location>对。所有级别的索引和值log在设备上都表示为一个固定大小的段列表(当前为2 MB)。
Kreon使用两种不同的I/O路径:(a)它使用内存映射I/O来管理其I/O缓存,并在读和扫描操作期间访问存储设备。(b)在合并过程中使用直接I/O读写level,避免污染I/O缓存。我们修改了Kreon,使用显式的I/O系统调用,绕过缓冲区缓存,来写其KV日志,以进一步减少连续写页错误的CPU开销。

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


2.3 Remote Direct Memory Access RDMA支持双向发送/接收操作和单边读写操作。在发送和接收过程中,发送方和接收方都要积极参与通信,消耗CPU周期。读写操作允许一端直接读写另一端的内存,而不涉及远端CPU,只消耗原节点的CPU周期。在Tebis中,我们使用单边RDMA写操作。
3 Design图1 Tebis overview.3.1 Primary-Backup Value Log Replication Tebis复制它的日志,而不涉及备份的CPU。当主服务器从客户端接收到更新和插入时,分三步将每个操作复制到它的备份服务器集(图2)。主服务器将KV对插入到Kreon中,该KV对返回值日志尾部段中的偏移量。然后,它(通过RDMA写操作)将KV对添加到每个备份节点的RDMA缓冲区对应的偏移位置(图2中的步骤1)。tebis等待所有RDMA写操作已经复制到备份节点的内存中的确认。为了检测RDMA写操作已经完成,并且数据已经写入备份的远程内存,Tebis使用可靠队列对的工作完成事件。备份服务器的CPU不涉及任何这些步骤。当客户端收到确认时,意味着它的操作已经被复制到副本集中。

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


猜你喜欢