Tebis: Index Shipping for Efficient Replication in LSM Key-Value(5)
每个备份区域维护一个日志映射,其中包含条目,指定每个段在主备份存储设备上的位置。备份使用它们重写Send-Index方法中的主指针。log map的内存占用较小,以MB为单位。map中的每个条目为16b,一个值log为1tb、段大小为2mb的log map需要8mb。
为此,主捎带使用其存储设备中的尾部段编号来刷写消息。备份服务器在持久化它们的值日志尾部段之后,使用这些信息在它们的日志映射中创建相应的条目(图2中的步骤2d)。注意,备份中的日志映射在由于故障或负载均衡操作而发生主要更改之前是有效的。在这些情况下,Tebis将一个备份提升为新的主备份,其余备份需要更新它们的日志映射。该过程也是一个内存操作,不需要I/O。新的主节点将它的日志映射发送到其他备份节点。备份遍历map,用新的主节点的段号替换前一个节点的段号。
图2 Value log replication in Tebis.3.2 Index Shipping and Rewrite at the Backup Tebis避免了备份区域的完全压缩过程,以节省设备读I/O吞吐量、CPU和内存。相反,每次合并后,主索引都会将一个新索引发送到备份。Tebis中的主要挑战是重写备份中的索引以包含有效的设备地址,因为服务器不共享全局存储名称空间。