# Placement Driver (PD) Server

+ TiDB クラスタ全体のメタデータストレージ
+ グローバルIDとトランザクションIDを割り当てます
+ グローバルなタイムスタンプTSOを生成します
+ リソーススケジューリングのためのクラスタ情報を収集します
+ TiDB ダッシュボード（UI）サービスを提供します

```
ID                Role    Host        Ports        OS/Arch       Status   Data Dir                      Deploy Dir
--                ----    ----        -----        -------       ------   --------                      ----------
...
10.0.0.110:2379   pd      10.0.0.110  2379/2380    linux/x86_64  Up|L|~!@UI@!~  /tidb-data/pd-2379            /tidb-deploy/pd-2379
...
```

![`smart`](PD_aa_001_20220506.png)

------------------------------------------------------------
重要なPlacement Driverの特徴は以下の通りです：

TiDBクラスタ全体のメタデータストレージ
- PDには、リージョンマッピングからキー範囲へのマッピングや、リージョンがどこにあるかなどの情報が格納されています。例えば、TiDBサーバーはPDからルーティング情報を取得し、それを使って関連するTiKVにデータにアクセスします。また、TiKVのトポロジー情報やラベル情報もPDに格納されています。ラベルについては後ほど詳しく説明します。

Global ID と Transaction ID の割り当て
- グローバルIDとして、`store ID`、`region ID`、`peer ID`、`table ID`、`index ID`などを使用し、分散トランザクションのトランザクションIDもPDによって割り当てられます。

グローバルなタイムスタンプTSOを生成します
- TiDBクラスタ内のトランザクションの順序を保証するために使用される、グローバルなタイムスタンプであるTSOは、PDの非常に重要な機能の1つであることがあります。

クラスタ情報の収集を行うことで、リソースのスケジューリングを行います
- TiKVノードは定期的にクラスタの状態をPDに報告します。PDは関連する状態に応じてTiKVノード間でRegionをスケジューリングする責任を持ちます。