概述
Autopilot 是 GreptimeDB Enterprise 中用于自动优化集群负载和数据分布的能力。它运行在 Metasrv 中,通过持续收集 Datanode 和 Region 的写吞吐和查询 CPU 时间统计信息,在满足条件时自动提交调度动作,减少人工排查热点和手动调整集群的运维成本。
Autopilot 当前包括以下能力:
- Region Balancer:自动迁移热点 Region,使 Datanode 之间的写入负载和读查询 CPU 负载更均衡。
- Auto Repartition:自动将大 Region 拆分为多个小 Region,避免单个大 Region 成为性能瓶颈。拆分后的 Region 可以被调度到不同 Datanode 上,从而打散潜在的负载瓶颈。
工作方式
Autopilot 由共享的运行时、集群统计信息和不同的调度策略组成:
- 运行时:按照固定间隔触发一次调度周期。
- 集群统计信息:通过 Datanode heartbeat 收集 Region 写吞吐和查询 CPU 时间统计信息,并对短期波动进行平滑。
- 调度策略:根据统计信息判断是否需要迁移 Region 或拆分大 Region。
- 执行器:将调度策略生成的动作提交给对应的执行流程,例如 Region Migration 或 Repartition。
当同时启用 Region Balancer 和 Auto Repartition 时,它们共享同一套 Autopilot 运行时和集群统计信息。