tidb 内的 region split 触发方法有三种,
- tidb 触发,通过 ddl sql 人工触发,split table xxx;
- pd 触发,通过 pd api /regions/split 或 pd-ctl 创建 Operator;
- tikv 触发,包括两种,一种是 raft 驱动的分裂检查,常见比如 size 超过阈值了会靠这种方式触发,另外一种就 load split.
核心代码请参考:
https://github.com/tikv/tikv/blob/b0f67e6128e4596367dba7b0400065b2496c65a3/components/raftstore/src/store/worker/split_controller.rs#L560