发起合并后,您可以参考本节内容查看合并进度及其他信息。

通过内部表查看

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

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

  1. obclient> SELECT * FROM __all_zone WHERE name LIKE '%merge%';

参数

说明

is_merge_error

合并是否出错。

last_merged_version

集群所有 Zone 和最后合并版本。

merge_status

合并状态 IDLE,ERROR,TIMEOUT,MERGING。

all_merged_version

所有 Zone 合并的版本。

is_merge_timeout

合并是否超时。

last_merged_time

最后合并的时间。

last_merged_version

最后合并的版本。

merge_start_time

Zone 开始的合并时间。

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

  1. obclient> SELECT * FROM __all_virtual_partition_sstable_image_info;

字段名称

类型

NULL

描述

zone

varchar(256)

NO

Zone 名称

svr_ip

varchar(32)

NO

IP 地址

svr_port

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)

NO

合并开始时间

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 开始和成功合并的记录:

  1. egrep "begin to merge partition|succ to merge partition" observer.log

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

通过 OCP 查看

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

说明

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

  1. 登录 OCP。

    默认进入 集群概览 页面。

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

  3. 在显示的左侧导航栏上,单击 合并管理

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

    合并详情

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

    说明

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

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

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

    注意

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