合并的过程可以通过内部表进行查看,通常合并的时间是取决于两次合并之间的数据变化量。两次合并之间的数据变化大,合并的时间会更长。同时,合并的线程数,合并时的集群压力,是否轮转合并等都影响合并的时间长短。
观察合并的过程可以通过如下语句查询:
如果合并时间比较长,并且两次合并之间的增量很大,可以通过一下语句查看内部表来查看合并进度:
字段名称 | 类型 | 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 来查看合并进度及其他信息。
说明
在 集群概览 页面的 集群列表 区域,选择待操作的集群并单击其集群名。
在 合并详情 页签中,查看合并详情。
合并详情一般显示的是集群最近的一次合并。如果当前正在合并,则展示合并中的版本,如果当前是空闲状态即未处于合并状态,则显示上一次合并版本详情。
说明
对于合并中的版本,合并的 开始时间 和 结束时间 后显示的是预计完成时间。预计完成时间是基于最近三次合并完成的平均值来估算的,可能与实际合并完成时间有较大偏差。
一般而言,对于稳定运行的环境,预计完成时间会比较准确,新部署的环境因为估算的数据缺失,估算的准确度会较低。
此外,还可以根据 总分区副本数 和 完成合并的分区副本数 来观察分区级别的合并完成情况,推测实际的合并完成进度。
注意