TiKV的load based split拆分region对应代码逻辑应该在哪?

看了TiKV Split源码分析的博客,可是并没有找到根据负载进行切分的代码逻辑;Load Based Split说是4.0之后就加入的功能,难道是在PD上做的切分吗?

tidb 内的 region split 触发方法有三种,

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