# Placement Driver (PD)

__*PD 功能*__

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

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

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

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

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

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

1. 提供 `TiDB Dashboard` 服务。