# Placement Driver

__*PD 功能*__

+ 整个集群 TiKV 的元数据存储
+ 分配全局 **ID** 和事务 **ID**
+ 生成全局时间戳 TSO
+ 收集集群信息进行调度
+ 提供 **TiDB Dashboard** 服务

![right](./student-guide/diagram/PD_zh_001_20220506.png)
-------------------------------------------------------------
在接下来的课程中我们将会详细为大家介绍 PD 的主要功能以及实现原理,这里我们先简要了解下它的各项功能。

1. 整个集群 TiKV 的元数据存储
包括,'key range' 对应的 'region','region'（包括 'leader' 等信息） 所在的 TiKV （'store'）等信息都是存储到 PD 中的,例如, TiDB Server 就是从 PD 获得路由信息之后,到相关 TiKV 中去存取数据的。
另外,包括 TiKV 的拓扑信息,标签（'label'）信息也都是存储在 PD 中的,后面还会进行详细介绍。

2. 分配全局 ID 和 事务 ID
我们使用的 'store ID,region ID,peer ID,table ID,index ID' 等等全局 ID 和 分布式事务的事务 ID 也都是由 PD 分配的。

3. 生成全局时间戳 TSO 
TSO 是一个全局的时间戳,用于保证数据库中事务的顺序,PD 的一个非常重要功能就是生成 'TSO'。具体内容我们在后面进行介绍。

4. 收集集群信息进行调度。
TiKV 节点周期性地向 PD 上报集群的状态,PD 负责根据相关状态进行 'region' 在 TiKV 节点间的调度工作,具体内容我们在后面进行介绍。

5. 提供 'TiDB Dashboard' 服务。