このトピックでは、グローバルデータベースネットワーク (GDN) のアーキテクチャについて説明し
クロスリージョンデプロイ
GDNは、1つのプライマリクラスタと1つ以上のセカンダリクラスタで構成されます。 データは、GDN内のクラスタ間で同期される。
説明デフォルトでは、GDNには1つのプライマリクラスターと最大4つのセカンダリクラスターが含まれます。 セカンダリクラスターを追加するには、[クォータセンター] に移動します。 GDNクラスター上限調整に対応する [操作] 列の [適用] をクリックします。
デフォルトでは、GDN内の各クラスターには2つのノードが含まれます。 クラスターには最大16ノードを追加できます。 ノードの追加方法については、「読み取り専用ノードの追加または削除」トピックの「読み取り専用ノードの追加」をご参照ください。
リージョン間の低レイテンシ同期
GDNは、非同期的な方法で領域間でデータを複製する。 物理ロギングや並列処理などのテクノロジーを使用することで、GDNはプライマリクラスターとセカンダリクラスター間のクロスリージョンレプリケーションの待ち時間を短縮できます。 GDNでは、データは2秒以内の待ち時間ですべてのクラスターにわたって同期されます。 これにより、地理的に分散したリージョンからデータにアクセスするアプリケーションの読み取りレイテンシが大幅に削減されます。 データ同期のためにリモートリージョンに確立されたセカンダリクラスタは、プライマリクラスタの安定性やパフォーマンスに悪影響を与えません。
クロスリージョン読み取り /書き込み分割
特徴
ほとんどの場合、読み取り要求は現在のリージョンのセカンダリクラスタに転送され、書き込み要求はプライマリクラスタに転送されます。
説明セカンダリクラスタのプライマリノードは、主にプライマリクラスタからデータを非同期にレプリケートするために使用されます。 デフォルトでは、リージョン間の物理レプリケーションのレイテンシを短縮するために、読み取り要求は同じリージョン内のセカンダリクラスターの読み取り専用ノードに送信されます。
読み書き分離を有効にするためにアプリケーションコードを変更する必要はありません。
実装方法
GDNのクロスリージョン読み書き分離機能は、PolarDBクラスターのクラスターエンドポイントに基づいて実装する必要があります。 GDNのクラスターエンドポイントを管理する方法については、「GDNへの接続」をご参照ください。
リクエストの転送ロジック
宛先ノード
転送されたリクエスト
プライマリノードのみ
INSERT、UPDATE、DELETE、SELECT FOR UPDATEなどのDML操作を実行するために送信されるリクエスト。
データベースまたはテーブルの作成、データベースまたはテーブルの削除、テーブルスキーマまたはアクセス許可の変更など、DDL操作を実行するために送信されるリクエスト。
トランザクションにカプセル化されたリクエスト。
ユーザー定義関数を呼び出すために使用されるリクエスト。
ストアドプロシージャの実行に使用されるリクエスト。
executeステートメントの実行に使用されるリクエスト。
複数ステートメントクエリの実行に使用されるリクエスト。 詳細については、「マルチステートメント」をご参照ください。
一時テーブルを含むリクエスト。
SELECT last_insert_id() ステートメントの実行に使用されるリクエスト。
ユーザー変数の照会または再構成に使用されるリクエスト。
SHOW PROCESSLISTステートメントの実行に使用されるリクエスト。
SQLでKILLステートメントを実行するために使用されるリクエスト。 これらのステートメントは、LinuxのKILLコマンドとは異なります。
プライマリノードまたは読み取り専用ノード
説明リクエストがプライマリノードに送信されるのは、プライマリノードによる読み取りリクエストの許可 パラメーターを [はい] に設定した場合のみです。
トランザクションにカプセル化されていない読み取り要求。
COM_STMT_EXECUTEステートメントの実行に使用されるリクエスト。
すべてのノード
システム変数の変更に使用されるリクエスト。
USEステートメントの実行に使用されるリクエスト。
COM_STMT_PREPAREステートメントの実行に使用されるリクエスト。
COM_CHANGE_USER、COM_QUIT、およびCOM_SET_OPTIONステートメントの実行に使用されるリクエスト。
説明セカンダリクラスタのプライマリノードは、主にプライマリクラスタからのデータを非同期にレプリケートするために使用され、読み取りおよび書き込み要求を処理しません。 したがって、テーブルのプライマリノードはプライマリクラスタのプライマリノードを参照し、読み取り専用ノードはセカンダリクラスタの読み取り専用ノードを参照します。