Page 243 - 《软件学报》2021年第10期
P. 243
朱阅岸 等:构建新型高性能与高可用的键值数据库系统 3215
备份数据可见度=bLSN/pLSN,
其中,bLSN 指备份上的 LSN,pLSN 是指主机上的 LSN.文献[14]同步每个节点上的时钟,并且,每 20ms 读取 LSN.
例如,在某个时间 t,主机的 LSN 为 1 000,备机的 LSN 为 800,备份数据可见度为 0.8.同样,我们探测主从机器上
的(time,LSN)对.我们从主机以及备机上各选取 8 个点,然后在坐标轴上绘制相应的数据可见度曲线.由于
LogBase 以及 HBase 在单集群下并没有备机这个概念,因此也就没有主备日志滞后的概念.系统行为表现的度
量标准是读写延迟.WAL 日志与文件不断地写入 HDFS,做 3 副本存储.系统周期性地删除过期的 WAL 日志.类
似关系数据库中的 checkpoint.只有系统崩溃了才需要读取日志进行恢复操作;而搭建 HBase 主备集群又只能做
到最终一致性.在这个系统拓扑下,双拷贝架构给系统带来的开销已经不是占主导的因素.因此,我们没有对
LogBase 和 HBase 两个系统进行主备数据可见性实验.图 8 给出了 LogStore 主备之间的数据延迟.由于单拷贝
的设计使得备机无需重放日志,日志刷盘位点 bLSN 就可以度量数据可见度.如图 8 所示,备机数据可见度约为
95%.如果主机崩溃,备机几乎可以立刻接管主机,然后对外提供服务.因此,我们认为 LogStore 具有良好的高可
用规范.
Fig.8 Gap between the primary and secondaries
图 8 主备之间的差距
恢复时间
现在我们研究 LogBase 和 LogStore 这两种单拷贝系统的恢复表现.利用生成快照成本(将内存中索引写入
持久存储)和恢复时间两个维度度量系统恢复功能.对于单拷贝系统架构而言,产生快照成本与恢复时间成正比
(系统无需重放操作),因此我们只需测试恢复时间.对于 LogBase 和 LogStore,恢复成本与要读取的日志记录量
密切相关,因为它们不需要应用日志记录来生成最新的数据文件.我们利用 fork 系统调用为 LogStore 生成快照.
如图 9 所示,LogStore 在系统恢复方面的性能令人满意.LogBase 在重新加载快照和恢复时间上的成本几乎是
LogStore 的 10 倍.因此,LogBase 创建检查点成本比 LogStore 高 10 倍.这主要是因为 LogStore 的内存索引结构
相当节省空间,因此可以大幅度地减少生成快照时间.在数据集大小为 4GB 时,内存索引只有 16MB 大小.可变大
小的树节点以及只在叶子节点存储多版本信息是节省内存的关键.当数据大小超过 64G 时,LogBase 需要 1 小
时才能生成快照.因此,我们没有给出 LogBase 在数据大小超过 64GB 后的恢复时间.以上实验在单个分区上进
行.可以认为:如果在分区之间并行执行恢复,LogStore 可以在 1 分钟内完成数据大小为 TB 级别的系统恢复.
Fig.9 Recovery time under different data volume
图 9 不同数据大小下的系统恢复时间