合并的过程可以通过内部表进行查看,通常合并的时间是取决于两次合并之间的数据变化量。两次合并之间的数据变化大,合并的时间会更长。同时,合并的线程数,合并时的集群压力,是否轮转合并等都影响合并的时间长短。

    观察合并的过程可以通过如下语句查询:

    如果合并时间比较长,并且两次合并之间的增量很大,可以通过一下语句查看内部表来查看合并进度:

    字段名称

    类型

    NULL

    描述

    zone

    varchar(256)

    NO

    Zone 名称

    svr_ip

    varchar(32)

    NO

    IP 地址

    bigint(20)

    NO

    端口号

    major_version

    bigint(20)

    NO

    大版本号

    min_version

    bigint(20)

    NO

    小版本号

    ss_store_count

    bigint(20)

    NO

    SSStore 总数量

    merged_ss_store_count

    bigint(20)

    NO

    合并完成的 SSStore 总数量

    modified_ss_store_count

    bigint(20)

    NO

    修改过的 SSStore 总数量

    macro_block_count

    bigint(20)

    NO

    宏块总数量

    use_old_macro_block_count

    bigint(20)

    NO

    重用的宏块数量

    merge_start_time

    timestamp(6)

    合并开始时间

    merge_finish_time

    timestamp(6)

    NO

    合并结束时间

    merge_process

    bigint(20)

    NO

    合并进度

    rewrite_macro_old_micro_block_count

    bigint(20)

    NO

    重用的微块数量

    rewrite_macro_total_micro_block_count

    bigint(20)

    NO

    写入的微块数量

    除了通过内部表查看合并进度,也可以通过日志查看 Partiton 粒度的合并,每个 Partition 开始和成功合并的记录:

    通过内部表 除了可以查看 progress,也可以查看 Macro Block 级别的进度。Macro Block 为 2 MB 大小,因此比 Partition 级别的粒度更细。在合并中如果遇到单一 Partition 非常大的情况,可以观察这个内部表的 和 这两列,当他们的值在不断变化,表示合并仍然在进行。

    通过 OCP 查看

    发起合并后,也可以通过 OCP 来查看合并进度及其他信息。

    说明

    不同 OCP 版本的操作界面可能不同,本节以 OCP V2.5.0 版本为例提供操作指导,OCP 其他版本的操作请参考对应版本的《OCP 用户指南》文档。

    1. 集群概览 页面的 集群列表 区域,选择待操作的集群并单击其集群名。

    2. 合并详情 页签中,查看合并详情。

      合并详情一般显示的是集群最近的一次合并。如果当前正在合并,则展示合并中的版本,如果当前是空闲状态即未处于合并状态,则显示上一次合并版本详情。

      说明

      对于合并中的版本,合并的 开始时间结束时间 后显示的是预计完成时间。预计完成时间是基于最近三次合并完成的平均值来估算的,可能与实际合并完成时间有较大偏差。

      一般而言,对于稳定运行的环境,预计完成时间会比较准确,新部署的环境因为估算的数据缺失,估算的准确度会较低。

      此外,还可以根据 总分区副本数完成合并的分区副本数 来观察分区级别的合并完成情况,推测实际的合并完成进度。

      基于完成合并的分区副本数来直接计算合并完成的进度仍然不准确,因为不同分区的大小差异可能很大,每个分区合并的耗时也可能差异很大。