目录
一、PD 简介
TiDB PD (Placement Driver) 是 TiDB 分布式数据库系统中的核心组件之一,负责整个集群的元数据管理和调度工作。PD 在 TiDB 架构中扮演着至关重要的角色,确保了数据的正确分布、高可用性、以及资源的有效利用。
PD 的功能如下:
1.1 元数据管理
存储集群全局元信息:PD 保存了 TiKV 集群的整体拓扑结构、每个 TiKV 节点的状态、以及数据在各个节点上的分布情况(即 Region 分布)等关键元数据。
维护 Region 信息:Region 是 TiKV 中数据的最小分布单元,PD 负责记录每个 Region 的键值范围、副本位置、Leader 信息等,并动态调整 Region 分布以实现数据均衡。
1.2 调度决策
数据均衡:PD 根据预设的策略(如 Region 大小、副本数、地域分布等)定期进行数据均衡操作,通过迁移 Region 的副本来避免数据热点、保证资源利用率,并确保在节点故障时有足够的副本可用。
故障恢复:当 TiKV 节点发生故障或网络隔离时,PD 负责检测并触发故障转移流程,重新选举 Leader,确保数据的高可用性。
Region Split/Merge:根据数据增长和查询需求,PD 自动触发 Region 的分裂(Split)和合并(Merge)操作,以维持合理的 Region 大小,优化查询性能。
1.3 全局服务
全局唯一时间戳(Timestamp Oracle, TSO):PD 提供全局单调递增的时间戳服务,用于协调分布式事务中的时间顺序,确保事务的 ACID 特性。
全局唯一 ID 分配:PD 分配全局唯一的 Region ID、Table ID、Index ID 等,确保在整个集群内标识符的唯一性。
1.4 集群配置与管理
配置变更:PD 存储并管理 TiKV、TiDB 等组件的配置信息,支持动态调整配置并通过 gRPC 接口推送变更。
监控与告警:PD 收集集群的运行状态和性能指标,支持通过 Prometheus 等工具进行监控,并提供告警功能。
Dashboard & CLI:提供图形化界面(TiDB Dashboard)和命令行工具(pd-ctl)供管理员查看集群状态、执行管理操作。