# 调度流程
![`left`](./student-guide/diagram/07-schedule-process-01-01.png)
-------------------------------------------------------------
调度流程
宏观上来看，调度流程大体可划分为 3 个部分：
1. 信息收集：TiKV 节点周期性地向 PD 上报 Store 和 Region 的信息
  - Store：基本信息，容量，剩余空间，读写流量等
  - Region：范围，副本分布，副本状态，数据量，读写流量等
2. 生成调度：不同的调度器从自身的逻辑和需求出发，考虑限制和约束后生成待执行的 Operator
  - balance-leader-scheduler：保持不同节点的 Leader 均衡
  - balance-region-scheduler：保持不同节点的 Peer 均衡
  - hot-region-scheduler：保持不同节点的读写热点 Region 均衡
  - evict-leader-{store-id}：驱逐某个节点的所有 Leader
3. 执行调度：生成的 Operator 进入等待队列，PD 根据配置从等待队列中取出 Operator，把每个 Operator Step 下发给对应 Region 的 Leader
