placement rule 策略会导致region数量成倍增加

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5.0
【复现路径】大规模清理空分区的placement rule 后region个数已经peer count会陡然骤降
【遇到的问题:问题现象及影响】
【附件:截图/日志/监控】



没看懂,可以统计下之前每个表的regions数量和peer数量,placement rule是什么,然后去掉后又是多少

拿出你的placement-rule 看看,然后再看看你修改后的。你现在给的信息只能看到region peer下降了,region也下降了。

image

修改参数前后可以看看
INFORMATION_SCHEMA.TIKV_REGION_STATUS

INFORMATION_SCHEMA.TIKV_REGION_PEERS
两个视图关联region_id查询可以查某个表的region数量,大小和peer的数量等,不要看总量,挑一个表对比下

没有遇到过




对已有数据进行placement rule 时,其实region个数时不受影响的,但是对没有任何数据的分区配置该策略的时候会新增region个数。但是从show table regions ,新增的reigon 的 APPROXIMATE_SIZE 显示有31MB。感觉这个会占磁盘空间是不是

没遇到过

感觉挺奇怪的,我等下测测,你的rule是什么内容,还是1leader 2follower吗

定义了一个bu,fun标签

是1leader 2 follower

这个怎么会增加region数量呢?不理解。

使用placement rule in sql对表或分区设置placement rule 规则时,会让region按placement rule的边界切分,对应operator 类型为rule-split-region,所以会导致region数量增加,这是预期内的,可通过pd 日志观察到此现象

2 个赞

当表中有数据的时候这个现象不太明显,因为这时候一个表涉及多个region,当表是空的表时,一个region会对应多个表,这个时候设置placement rule in sql就会切出来很多region

1 个赞

当表是空的表时,一个region会对应多个表

一般来说,新建的表一般都是一个表一个region吧

顶多一个表多一个region,不至于多很多吧。

新建表是会一个表一个region的,https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#split-table
但是有可能被PD merge到一起的,https://docs.pingcap.com/zh/tidb/stable/pd-configuration-file#enable-cross-table-merge

实际上很难触发的,这个可以看INFORMATION_SCHEMA.TIKV_REGION_STATUS里面有1个regionid对多个表的,一般都是系统表

是的,因为只有相邻的region才可能合并,并且要满足合并的前提条件

平时基本上都是缓慢上升,就算时建普通新表也不会突增的。但是当库配置了有placement rule,新建空的大量分区的分区表时,就很容易上升。看着就担惊受怕的