百合文库
首页 > 网文

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

2024-06-14 来源:百合文库
在为生成索引段后,主服务器将其发送到备份服务器。备份区域分配一个新的本地段,并向其索引映射添加一个新条目。然后,解析并重写索引段,修改所有pivot节点(索引节点)和KV对(叶子节点)的设备偏移量。对于每个源设备偏移量,它用段映射图中的本地段替换高阶比特位。
最后,合并完成后,主节点将中根节点的偏移量(即索引的入口点)发送给每个备份节点。然后,每个备份使用其索引映射转换为其存储空间的根偏移量。
需要注意的是,索引运输和重写技术可以应用于执行完全合并的KV存储,如RocksDB或使用KV分离。在这些系统中,SST可能包含主设备到其值日志的设备偏移量或需要类似Tebis重写的内部SST索引。
图3 Tebis B tree index and value log organization on the storage devices.

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


3.3 RDMA Write-based Communication Protocol Tebis解决的主要设计要点是在服务器不同步的情况下管理RDMA缓冲区,以及支持可变大小的消息。
3.3.1 RDMA Buffer Management Tebis通过单边RDMA写操作进行客户端与服务器的通信,避免网络中断,降低服务器的CPU开销。建立连接后,服务器和客户端分配一对大小可配置的缓冲区(当前为256 KB)。当客户端断开连接或失败时,region服务器会释放这些缓冲区。线程监视不活动的队列对,并检查队列对是否仍然处于有效状态。当前,该线程在RDMA缓冲区上旋转,但也可以使用睡眠-唤醒方法。
客户端管理请求和应答缓冲区,以避免服务器中的worker之间的同步。客户端为每个KV操作分配一对消息;一个用于请求,一个用于服务器应答(图4中的第一步)。每个请求首部都包含一个缓冲区偏移量,用于region服务器写入应答。worker异步完成请求,并乱序响应客户端。

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


猜你喜欢