如何加快生成 Merge Operator 的速度

tikv 版本 v4.0.2

相关调整
“max-merge-region-keys”: 100000,
“max-merge-region-size”: 10,
“merge-schedule-limit”: 16,
“patrol-region-interval”: “50ms”

配置调整之后,Merge Operator 生成速度没有变化, 空 region 的数量依然很多, 请问还有其他参数可以调整来加快 merge 吗?


empty-region-count 还是比较多可以参考一下这个 FAQ

是按照这篇文章的讨论设置的参数,但配置后没有效果,唯一的区别是 split-region-on-table 这个参数因为要重启集群还没有配置,但我这边没有使用 tidb,这个参数看名称是无关了

没有使用 tidb 的意思是部署的是裸 KV 集群吗?
写入裸 KV 集群的时候,是通过 txn api 写入的还是 raw api 写入的?

通过 txn api 写入

是否可以尝试设置 split-region-on-table 参数看是否有效。

这个参数我看是 coprocessor 的配置,我没有用到 sql,所以 coprocessor 的配置没有单独配置,都是用的默认设置,也会影响其他功能?

split-region-on-table 在裸 KV 场景下也是会影响 tikv 行为的
另外,PD 中和这个相关的两个参数是 pd-server.key-type 和 schedule.enable-cross-table-merge,可以确认下当前的配置是什么。

pd-server.key-type 没有设置, schedule.enable-cross-table-merge 为 true


建议将参数调整下看下

好的,我调整下, key-type 的作用是什么,会影响 key 的编码吗?

https://github.com/tikv/pd/pull/2620/files

看了一下注释,key-type 参数应该是不需要调整的,调整 tikv 参数即可

修改了 split-region-on-table 默认值, 已经重启 tikv, 监控中间的变化应该是重启导致的? 之有恢复了原来的值, 对加速 merge 似乎没有效果



可以拿一下 pd-ctl 执行 region check empty-region 的结果,将结果重定向到文本中提供一下
https://docs.pingcap.com/zh/tidb/stable/pd-control#region-check-miss-peer--extra-peer--down-peer--pending-peer--offline-peer--empty-region--hist-size--hist-keys

另外可以拿一下 pd-ctl 执行 config show all 的结果

empty-region.json (303.0 KB) config.json (7.0 KB)

看之前的监控 empty region count 是 500 多,刚才的截图是 200 多,所以总体的 empty region count 数量是在减少的?

之前调过 merge schedule limit 的配置,降到了 200 多,之后就一直保持在 200 多,因为最近一直在删除数据,所以希望 merge 能再加快些


如果要加快可以看下这几个参数的调整有没有效果,如果目前 empty region 对集群没有影响的话,可以不处理