# `Routing`

![`smart`](RoutingCapabilities_aa_003_20220509.png)

---------------------------------------------------------------------------
PDがTiKVクラスタの情報を全て保持しているので、TiDBサーバーにルーティング機能を提供できます。

TiDBサーバーが値を書き込もうとしたとします。

1. TiKV ClientはまずPDからそのキーがどのRegionに属しているかを取得し、PDはそのRegionに関連するメタ情報を返します。

2. TiKV Clientには、PDからメタデータを毎回取得する必要がないようにキャッシュするRegion Cacheがあります。その後、コマンドは直接RegionのLeaderに送信されます。

リージョンのLeaderが別のTiKVインスタンスに変更された可能性があります。TiKVは、新しいLeaderのアドレスを含むNotLeaderエラーを返し、そこでRegion Cacheが更新され、リクエストが新しいLeaderに再度送信されます。

リージョンのバージョンが変更された可能性があります; 例えば、分割されました。 この時点で、キーが新しいリージョンに移動されている可能性があり、TiKV ClientはStaleCommandエラーを受け取り、情報はPlacement Driverから再度取得されます。
