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   不同数据大小下的系统恢复时间
   238   239   240   241   242   243   244   245   246   247   248