重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

3つのデータセンター展開でのローカル読み取り

3つのデータセンターのモデルでは、リージョンには3つのレプリカがあり、各データセンターで分離されています。ただし、強一貫性のある読み取りが必要なため、TiDBはすべてのクエリで対応するデータのリーダーレプリカにアクセスする必要があります。リーダーレプリカとは異なるデータセンターでクエリが生成された場合、TiDBは別のデータセンターからデータを読み取る必要があるため、アクセスの待ち時間が長くなります。

このドキュメントでは、 古い読み取りつの機能を使用して、クロスセンターアクセスを回避し、リアルタイムのデータ可用性を犠牲にしてアクセス遅延を削減する方法について説明します。

3つのデータセンターのTiDBクラスタをデプロイする

3データセンターの導入方法については、 1 つの地域展開における複数のデータセンターを参照してください。

TiKVノードとTiDBノードの両方に構成項目labelsが構成されている場合、同じデータセンター内のTiKVノードとTiDBノードのzoneラベルの値は同じである必要があることに注意してください。たとえば、TiKVノードとTiDBノードの両方がデータセンターdc-1にある場合、2つのノードは次のラベルで構成する必要があります。

[labels]
zone=dc-1

StaleReadを使用してローカル読み取りを実行します

古い読み取りは、TiDBがユーザーに履歴データを読み取るために提供するメカニズムです。このメカニズムを使用すると、特定の時点または指定された時間範囲内の対応する履歴データを読み取ることができるため、ストレージノード間のデータレプリケーションによってもたらされる遅延を節約できます。地理分散展開の一部のシナリオでStaleReadを使用する場合、TiDBは現在のデータセンターのレプリカにアクセスして、リアルタイムパフォーマンスを犠牲にして対応するデータを読み取ります。これにより、クロスセンター接続によってもたらされるネットワーク遅延が回避され、クエリプロセス全体のアクセスレイテンシ。

TiDBがStaleReadクエリを受信すると、そのTiDBノードのzoneラベルが構成されている場合、TiDBは、対応するデータレプリカが存在するのと同じzoneラベルを持つTiKVノードに要求を送信します。

Stale Readを実行する方法については、 AS OF TIMESTAMP句を使用して古い読み取りを実行しますを参照してください。