3 つのデータ センター展開でのローカル読み取り
3 つのデータ センターのモデルでは、リージョンには各データ センターに分離された 3 つのレプリカがあります。ただし、強力な一貫性のある読み取りの要件により、TiDB はすべてのクエリに対して対応するデータのLeaderレプリカにアクセスする必要があります。クエリがLeaderレプリカとは異なるデータ センターで生成された場合、TiDB は別のデータ センターからデータを読み取る必要があり、アクセスのレイテンシーが増加します。
このドキュメントでは、 ステイル読み取り機能を使用して、センター間アクセスを回避し、リアルタイムのデータ可用性を犠牲にしてアクセスのレイテンシーを減らす方法について説明します。
3つのデータセンターのTiDBクラスタをデプロイ
3データセンター展開方式については、 1 つの地域展開における複数のデータセンターを参照してください。
TiKV ノードと TiDB ノードの両方に構成項目labels
が設定されている場合、同じデータセンター内の TiKV ノードと TiDB ノードは、ラベルzone
に同じ値を設定する必要があることに注意してください。たとえば、TiKV ノードと TiDB ノードの両方がデータセンターdc-1
にある場合、2 つのノードを次のラベルで設定する必要があります。
[labels]
zone=dc-1
ステイル読み取りを使用してローカル読み取りを実行する
ステイル読み取りは、TiDB がユーザーに履歴データを読み取るために提供するメカニズムです。このメカニズムを使用すると、特定の時点または指定された時間範囲内の対応する履歴データを読み取ることができ、storageノード間のデータ複製によって生じるレイテンシーを節約できます。地理的に分散された展開の一部のシナリオでステイル読み取り を使用する場合、TiDB は、リアルタイム パフォーマンスを犠牲にして、現在のデータ センターのレプリカにアクセスして対応するデータを読み取ります。これにより、センター間の接続によって生じるネットワークレイテンシーが回避され、クエリ プロセス全体のアクセスレイテンシーが短縮されます。
TiDB がステイル読み取りクエリを受信すると、その TiDB ノードのzone
ラベルが設定されており、 tidb_replica_read
closest-replicas
に設定されている場合、TiDB は、対応するデータ レプリカが存在する同じzone
ラベルを持つ TiKV ノードに要求を送信します。
ステイル読み取り の実行方法については、 AS OF TIMESTAMP
句を使用してステイル読み取りを実行する参照してください。