PD (Placement Driver) #
一、PD概述 #
1.1 核心定位 #
PD (Placement Driver) 是 TiDB 集群的大脑,负责全局调度和元数据管理。
text
PD 核心职责
├── 元数据管理
│ ├── 集群拓扑信息
│ ├── Region 信息
│ └── 数据分布信息
│
├── 调度决策
│ ├── Region 调度
│ ├── Leader 调度
│ └── 热点调度
│
├── 时间戳分配
│ ├── TSO 分配
│ ├── 全局唯一
│ └── 单调递增
│
└── 集群管理
├── 成员管理
├── 配置管理
└── 故障检测
1.2 架构位置 #
text
PD 在集群中的位置
┌─────────────────────────────────────────────────────────────┐
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ TiDB Server │ │
│ │ │ │
│ │ 请求 TSO、获取 Region 位置 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ PD Cluster │ │
│ │ │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │ PD 1 │ │ PD 2 │ │ PD 3 │ │ │
│ │ │ Leader │ │Follower │ │Follower │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ │ │
│ │ │ │
│ │ 功能: │ │
│ │ - TSO 分配 │ │
│ │ - 元数据存储 │ │
│ │ - 调度决策 │ │
│ │ - 监控收集 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────────┼───────────────┐ │
│ ▼ ▼ ▼ │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
│ │ TiKV 1 │ │ TiKV 2 │ │ TiKV 3 │ │
│ │ │ │ │ │ │ │
│ │ 心跳上报 │ │ 心跳上报 │ │ 心跳上报 │ │
│ │ 接收调度 │ │ 接收调度 │ │ 接收调度 │ │
│ └───────────────┘ └───────────────┘ └───────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
1.3 高可用设计 #
text
PD 高可用架构
┌─────────────────────────────────────────────────────────────┐
│ │
│ PD 集群使用 Raft 协议保证高可用: │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ Raft Group │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────┐ │ │ │
│ │ │ │ PD 1 │ Leader │ │ │
│ │ │ │ │ - 处理所有请求 │ │ │
│ │ │ │ │ - 执行调度 │ │ │
│ │ │ └─────────┘ │ │ │
│ │ │ │ │ │ │
│ │ │ │ 复制 │ │ │
│ │ │ ▼ │ │ │
│ │ │ ┌─────────┐ ┌─────────┐ │ │ │
│ │ │ │ PD 2 │ │ PD 3 │ Follower │ │ │
│ │ │ │ │ │ │ - 同步数据 │ │ │
│ │ │ │ │ │ │ - 等待选举 │ │ │
│ │ │ └─────────┘ └─────────┘ │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 故障切换: │
│ - Leader 故障 → Follower 选举新 Leader │
│ - 选举时间: 约 3 秒 │
│ - 数据不丢失 │
│ │
└─────────────────────────────────────────────────────────────┘
二、元数据管理 #
2.1 集群元数据 #
text
PD 存储的元数据
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. 集群信息 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ - 集群 ID │ │
│ │ - 集群版本 │ │
│ │ - 全局配置 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 2. 节点信息 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ TiKV 节点: │ │
│ │ - Store ID │ │
│ │ - 地址 │ │
│ │ - 状态 (Up/Down) │ │
│ │ - 容量、已用空间 │ │
│ │ - Region 数量、Leader 数量 │ │
│ │ │ │
│ │ TiDB 节点: │ │
│ │ - 地址 │ │
│ │ - 版本 │ │
│ │ - 状态 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 3. Region 信息 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ - Region ID │ │
│ │ - Start Key / End Key │ │
│ │ - Region Epoch (conf_ver, version) │ │
│ │ - Peers (副本列表) │ │
│ │ - Leader 位置 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
2.2 Region信息查询 #
sql
-- 查看 Region 信息
SELECT * FROM INFORMATION_SCHEMA.TIKV_REGION_STATUS LIMIT 10;
-- 查看特定表的 Region
SELECT
TABLE_NAME,
REGION_ID,
START_KEY,
END_KEY,
LEADER_STORE_ID
FROM INFORMATION_SCHEMA.TIKV_REGION_STATUS
WHERE TABLE_NAME = 'users';
-- 查看 Store 信息
SELECT * FROM INFORMATION_SCHEMA.TIKV_STORE_STATUS;
2.3 心跳机制 #
text
心跳上报流程
┌─────────────────────────────────────────────────────────────┐
│ │
│ TiKV 定期向 PD 发送心跳: │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ TiKV │ │
│ │ │ │
│ │ 心跳内容: │ │
│ │ ├── Store 信息 │ │
│ │ │ - 容量、已用空间 │ │
│ │ │ - Region 数量 │ │
│ │ │ - Leader 数量 │ │
│ │ │ - 读写 QPS │ │
│ │ │ │ │
│ │ └── Region 信息 │ │
│ │ - Region ID │ │
│ │ - Leader ID │ │
│ │ - Peers 列表 │ │
│ │ - 读写统计 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ │ 心跳请求 │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ PD │ │
│ │ │ │
│ │ 处理心跳: │ │
│ │ 1. 更新 Store 状态 │ │
│ │ 2. 更新 Region 元数据 │ │
│ │ 3. 检查是否需要调度 │ │
│ │ 4. 返回调度命令 │ │
│ │ │ │
│ │ 返回的调度命令: │ │
│ │ ├── 转移 Leader │ │
│ │ ├── 添加副本 │ │
│ │ ├── 删除副本 │ │
│ │ ├── 分裂 Region │ │
│ │ └── 合并 Region │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 心跳间隔: 默认 10 秒 │
│ │
└─────────────────────────────────────────────────────────────┘
三、TSO时间戳 #
3.1 TSO原理 #
text
TSO (Timestamp Oracle)
┌─────────────────────────────────────────────────────────────┐
│ │
│ TSO 是全局唯一、单调递增的时间戳: │
│ │
│ 结构 (64位): │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 64 bits │ │
│ │ ┌─────────────────────────┬────────────────────┐ │ │
│ │ │ 物理时间 (38位) │ 逻辑计数 (16位) │ │ │
│ │ │ │ │ │ │
│ │ │ 毫秒级时间戳 │ 同一毫秒内计数 │ │ │
│ │ │ (可表示约 174 年) │ (最多 65536 个) │ │ │
│ │ └─────────────────────────┴────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 示例: │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 物理时间: 1700000000000 ms │ │
│ │ 逻辑计数: 123 │ │
│ │ │ │
│ │ TSO = (1700000000000 << 16) | 123 │ │
│ │ = 11158821230540808187 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 特点: │
│ - 全局唯一: 由 PD Leader 统一分配 │
│ - 单调递增: 保证事务顺序 │
│ - 高性能: 内存分配,批量获取 │
│ │
└─────────────────────────────────────────────────────────────┘
3.2 TSO分配流程 #
text
TSO 分配流程
┌─────────────────────────────────────────────────────────────┐
│ │
│ TiDB Server │
│ │ │
│ │ 1. 请求 TSO (批量) │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ PD Leader │ │
│ │ │ │
│ │ 2. 分配 TSO │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ │ │ │
│ │ │ 当前物理时间: T │ │ │
│ │ │ 当前逻辑计数: C │ │ │
│ │ │ │ │ │
│ │ │ 分配 N 个 TSO: │ │ │
│ │ │ [T, C], [T, C+1], ..., [T, C+N-1] │ │ │
│ │ │ │ │ │
│ │ │ 更新逻辑计数: C = C + N │ │ │
│ │ │ │ │ │
│ │ │ 如果 C > 65535: │ │ │
│ │ │ T = T + 1 │ │ │
│ │ │ C = 0 │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ 3. 持久化到 Raft 日志 (保证不重复) │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ │ 4. 返回 TSO 批次 │
│ ▼ │
│ TiDB Server │
│ 本地缓存 TSO,供事务使用 │
│ │
└─────────────────────────────────────────────────────────────┘
3.3 TSO使用场景 #
text
TSO 使用场景
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. 事务开始 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ BEGIN; │ │
│ │ // 获取 start_ts │ │
│ │ // 用于读取快照 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 2. 事务提交 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ COMMIT; │ │
│ │ // 获取 commit_ts │ │
│ │ // 用于写入新版本 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 3. MVCC 版本 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Key + commit_ts → Value │ │
│ │ │ │
│ │ 读取时: │ │
│ │ 只读取 commit_ts < start_ts 的版本 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 4. GC 安全点 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ safe_point 之前的版本可以删除 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
四、调度系统 #
4.1 调度器类型 #
text
PD 调度器类型
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. balance-leader-scheduler │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 目标: 均衡各节点的 Leader 数量 │ │
│ │ 方式: 转移 Leader 到其他副本 │ │
│ │ │ │
│ │ 场景: │ │
│ │ - 某节点 Leader 过多,负载高 │ │
│ │ - 新节点加入,需要均衡 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 2. balance-region-scheduler │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 目标: 均衡各节点的存储容量 │ │
│ │ 方式: 迁移 Region 副本 │ │
│ │ │ │
│ │ 场景: │ │
│ │ - 某节点存储空间不足 │ │
│ │ - 数据分布不均匀 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 3. hot-region-scheduler │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 目标: 分散热点 Region │ │
│ │ 方式: 迁移热点 Region 的副本 │ │
│ │ │ │
│ │ 场景: │ │
│ │ - 某些 Region 读写频繁 │ │
│ │ - 单节点成为热点 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 4. evict-leader-scheduler │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 目标: 驱逐某节点的所有 Leader │ │
│ │ 方式: 转移 Leader 到其他节点 │ │
│ │ │ │
│ │ 场景: │ │
│ │ - 节点需要维护 │ │
│ │ - 节点需要下线 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
4.2 调度流程 #
text
调度决策流程
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. 信息收集 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ TiKV 心跳 → PD │ │
│ │ ├── Store 信息 │ │
│ │ │ - 容量、已用空间 │ │
│ │ │ - Region 数量、Leader 数量 │ │
│ │ │ - 读写 QPS │ │
│ │ │ │ │
│ │ └── Region 信息 │ │
│ │ - Region ID、Leader │ │
│ │ - 读写统计 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ 2. 调度计算 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ PD 调度器计算: │ │
│ │ │ │
│ │ for each scheduler: │ │
│ │ ops = scheduler.Schedule(cluster) │ │
│ │ if ops != nil: │ │
│ │ return ops │ │
│ │ │ │
│ │ 调度优先级: │ │
│ │ 1. 安全相关 (副本数不足) │ │
│ │ 2. 热点调度 │ │
│ │ 3. 容量均衡 │ │
│ │ 4. Leader 均衡 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ 3. 执行调度 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ PD 返回调度命令给 TiKV │ │
│ │ │ │
│ │ 调度命令类型: │ │
│ │ ├── TransferLeader: 转移 Leader │ │
│ │ ├── AddPeer: 添加副本 │ │
│ │ ├── RemovePeer: 删除副本 │ │
│ │ ├── SplitRegion: 分裂 Region │ │
│ │ └── MergeRegion: 合并 Region │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ 4. 执行确认 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ TiKV 执行调度命令 │ │
│ │ 通过心跳回报执行结果 │ │
│ │ PD 更新元数据 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
4.3 调度限制 #
text
调度限制参数
┌─────────────────────────────────────────────────────────────┐
│ │
│ 参数 默认值 说明 │
│ ──────────────────────────────────────────────────────── │
│ leader-schedule-limit 4 同时进行的 │
│ Leader 调度数 │
│ │
│ region-schedule-limit 2048 同时进行的 │
│ Region 调度数 │
│ │
│ replica-schedule-limit 64 同时进行的 │
│ 副本调度数 │
│ │
│ merge-schedule-limit 8 同时进行的 │
│ 合并调度数 │
│ │
│ hot-region-schedule-limit 4 同时进行的 │
│ 热点调度数 │
│ │
│ max-replicas 3 每个 Region │
│ 的副本数 │
│ │
│ max-pending-peer-count 16 单节点最大 │
│ 待处理副本数 │
│ │
└─────────────────────────────────────────────────────────────┘
五、热点调度 #
5.1 热点检测 #
text
热点检测机制
┌─────────────────────────────────────────────────────────────┐
│ │
│ PD 通过心跳收集 Region 读写统计: │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 统计指标: │ │
│ │ ├── 读 QPS (ReadKeys, ReadBytes) │ │
│ │ ├── 写 QPS (WrittenKeys, WrittenBytes) │ │
│ │ └── 查询 QPS (QueryStats) │ │
│ │ │ │
│ │ 热点判定: │ │
│ │ - Region QPS > 阈值 (默认 1000 QPS) │ │
│ │ - Region 流量 > 阈值 (默认 16MB/s) │ │
│ │ │ │
│ │ 热点类型: │ │
│ │ ├── 读热点: 大量读取请求 │ │
│ │ └── 写热点: 大量写入请求 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 热点统计示例: │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Region 1: Read QPS = 5000 ← 读热点 │ │
│ │ Region 2: Write QPS = 3000 ← 写热点 │ │
│ │ Region 3: Read QPS = 100 ← 正常 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
5.2 热点调度策略 #
text
热点调度策略
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. 读热点处理 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 策略: 分散 Leader │ │
│ │ │ │
│ │ 热点 Region Leader 在 TiKV 1 │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ 转移 Leader 到 TiKV 2 │ │
│ │ │ │
│ │ 效果: 分散读请求到不同节点 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 2. 写热点处理 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 策略: 分裂 + 打散副本 │ │
│ │ │ │
│ │ 热点 Region │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ 分裂为多个小 Region │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ 打散到不同 TiKV 节点 │ │
│ │ │ │
│ │ 效果: 分散写请求到不同节点 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 3. 自动分裂 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 配置: │ │
│ │ hot-region-split-size = "10MB" │ │
│ │ hot-region-split-qps = 1000 │ │
│ │ │ │
│ │ 触发条件: │ │
│ │ - Region 大小 > hot-region-split-size │ │
│ │ - Region QPS > hot-region-split-qps │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
六、配置管理 #
6.1 查看配置 #
sql
-- 查看所有配置
SHOW CONFIG;
-- 查看 PD 配置
SHOW CONFIG WHERE TYPE = 'pd';
-- 查看特定配置
SHOW CONFIG WHERE TYPE = 'pd' AND NAME LIKE '%schedule%';
6.2 修改配置 #
sql
-- 动态修改配置
SET CONFIG pd `max-replicas` = 3;
SET CONFIG pd `leader-schedule-limit` = 8;
-- 修改调度参数
SET CONFIG pd `region-schedule-limit` = 2048;
SET CONFIG pd `hot-region-schedule-limit` = 8;
6.3 调度器管理 #
sql
-- 查看调度器
SELECT * FROM INFORMATION_SCHEMA.PD_SCHEDULERS;
-- 添加调度器 (通过 pd-ctl)
-- pd-ctl scheduler add balance-leader-scheduler
-- 删除调度器
-- pd-ctl scheduler remove balance-leader-scheduler
-- 暂停调度器
-- pd-ctl scheduler pause balance-leader-scheduler 60
-- 恢复调度器
-- pd-ctl scheduler resume balance-leader-scheduler
七、监控与诊断 #
7.1 关键指标 #
text
PD 关键监控指标
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. 集群状态 │
│ ├── Store 状态 (Up/Down/Offline) │
│ ├── Region 健康状态 │
│ └── 副本完整性 │
│ │
│ 2. 调度指标 │
│ ├── 调度速度 (ops/s) │
│ ├── 调度队列长度 │
│ ├── 调度成功率 │
│ └── 调度延迟 │
│ │
│ 3. 容量指标 │
│ ├── 存储容量使用率 │
│ ├── Region 数量 │
│ ├── Leader 数量 │
│ └── 热点 Region 数量 │
│ │
│ 4. TSO 指标 │
│ ├── TSO 分配延迟 │
│ ├── TSO 请求 QPS │
│ └── TSO 物理时间偏差 │
│ │
└─────────────────────────────────────────────────────────────┘
7.2 常用诊断命令 #
bash
# 使用 pd-ctl 工具
# 查看集群信息
pd-ctl cluster
# 查看 Store 信息
pd-ctl store
# 查看 Region 信息
pd-ctl region
pd-ctl region <region_id>
# 查看热点 Region
pd-ctl hot read
pd-ctl hot write
# 查看调度器
pd-ctl scheduler show
# 查看 Leader 分布
pd-ctl operator show
# 查看 TSO
pd-ctl tso
八、最佳实践 #
8.1 调优建议 #
text
PD 调优建议
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. 调度速度 │
│ ├── 生产环境: 适当提高调度限制 │
│ ├── 维护窗口: 大幅提高调度限制 │
│ └── 日常: 保持默认值 │
│ │
│ 2. 热点处理 │
│ ├── 监控热点 Region │
│ ├── 及时调整热点参数 │
│ └── 考虑业务层面优化 │
│ │
│ 3. 容量规划 │
│ ├── 保持各节点容量均衡 │
│ ├── 预留足够空间 │
│ └── 及时扩容 │
│ │
│ 4. 高可用 │
│ ├── 至少 3 个 PD 节点 │
│ ├── 跨机架/机房部署 │
│ └── 监控 PD 状态 │
│ │
└─────────────────────────────────────────────────────────────┘
8.2 故障处理 #
text
常见故障处理
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. PD Leader 切换频繁 │
│ ├── 检查网络延迟 │
│ ├── 检查磁盘 IO │
│ └── 调整选举超时时间 │
│ │
│ 2. 调度不执行 │
│ ├── 检查调度器是否启用 │
│ ├── 检查调度限制 │
│ └── 检查 Store 状态 │
│ │
│ 3. 热点无法消除 │
│ ├── 检查热点参数 │
│ ├── 手动分裂 Region │
│ └── 业务层面优化 │
│ │
│ 4. Region 副本不足 │
│ ├── 检查 Store 数量 │
│ ├── 检查副本配置 │
│ └── 检查 Store 状态 │
│ │
└─────────────────────────────────────────────────────────────┘
九、总结 #
PD 核心要点:
| 模块 | 要点 |
|---|---|
| 元数据管理 | 集群信息、Region 信息、心跳机制 |
| TSO | 全局时间戳、事务版本控制 |
| 调度系统 | Leader 均衡、Region 均衡、热点调度 |
| 高可用 | Raft 协议、自动故障切换 |
| 监控 | 关键指标、诊断命令 |
下一步,让我们学习 TiFlash 列存引擎!
最后更新:2026-03-27