观察合并的过程可以通过如下语句查询:
如果合并时间比较长,比如两次合并之间的增量很大,可以通过一下语句查看内部表来查看合并进度:
字段名称 | 类型 | 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 开始和成功合并的记录:
通过内部表 除了可以查看 progress,也可以查看 Macro Block 级别的进度。Macro Block 为 2 MB 大小,因此比 Partition 级别的粒度更细。在合并中如果遇到单一 Partition 非常大的情况,可以观察这个内部表的 和 这两列,当他们的值在不断变化,表示合并仍然在进行。