Three data groups, active-active-active#
3つのデータグループパターンは3つ以上の地理的リージョンにまたがり、それぞれがローカルの高可用性HAのために独自の独立したRaftコンセンサスグループを実行しています。グループごとに3つ以上のデータノードがある場合、各グループは、接続マネージャーが書き込みリーダールーティングをローカルに処理し、独自のリージョン内でマジョリティベースのコミットスコープを使用できます。
アプリケーションは、低遅延の読み取りおよび書き込みのためにローカルリージョンに接続します。リージョン間のレプリケーションは、通常、リージョン間のレイテンシーペナルティを回避するために非同期です。
Three data groups topology#
図の凡例#
シンボルは、ノードタイプ、グループコンテナ、および接続タイプを表します。
Diagram legend showing node types, group containers, and connection types#
このパターンを使用する場合#
このパターンは、グローバルSaaSアプリケーション、CDNのようなデータ分散、および3つ以上のリージョンにわたるデータの局所性と最終的一貫性を備えたジオレプリケーションを必要とする多国籍企業に適しています。
このパターンには次のような利点があります。
すべてのリージョンでの低レイテンシーの読み取りおよび書き込みにより、真のグローバルプレゼンスを有効にします。
他のリージョンが動作を継続している間、リージョン全体の障害は生き残ります。
3つ以上のリージョンを持つNatural Raftマジョリティ。
グローバルに分散されたアプリケーションのための最高のエンドユーザーエクスペリエンス。
注意すべき制限がいくつかあります。
オプティミスティックなクロスリージョンの一貫性処理では、競合は避けられません。
より多くのノード、より多くの場所、より多くの監視による運用の複雑性の向上。
リージョン間のレイテンシーは、レプリケーションラグと競合検出ウィンドウに影響を与えます。
グローバルルーティングの追加#
3つ以上のデータグループは、クラスター全体がグループごとに1つではなく単一の書き込みリーダーを持つグローバルルーティングで使用することもできます。単一のグローバル書き込みリーダーは、すべての書き込みを1つの場所を介してルーティングすることにより、書き込み競合を排除しますが、書き込みリーダーをホストしていないリージョンの書き込みレイテンシーが増加します。書き込みリーダーの場所が変更されると、すべてのリージョンのレイテンシー特性がシフトします。
Three data groups with global routing topology#
このパターンに推奨されるコミットスコープ#
マジョリティプロテクト グループ内のマジョリティノードへの同期複製。実稼働使用に最も一般的に推奨されるスコープ。
クォーラムコミット ノードがローカルにコミットする前に、すべての参加ノードにわたってコミット決定を調整し、コミットする前にすべてのリージョンでトランザクションが持続することを保証します。決済やコアバンキングなど、厳密な分散一貫性を必要とするワークロードに推奨されます。
MAJORITY FOR EACH GROUP IN CLUSTER QUORUM COMMIT ABORT ON (timeout = 6s)を使用します。これは、リージョンに関係なく、新しい書き込みリーダーに、以前のリーダーによって確認された最新のコミットデータがあることを保証します。アダプティブプロテクト 利用可能な場合はグループ内のノードの大部分への同期レプリケーション、構成可能なタイムアウトの後、非同期レプリケーションに自動的に低下します。グループごとに2つのデータノードと1つの監視を使用する場合にお勧めします。
ローカルプロテクト ローカルノードのみの耐久性を備えた非同期レプリケーション。実稼働環境での使用はお勧めしません。
コミットスコープは、パフォーマンス、耐久性、一貫性、スケーラビリティにわたってさまざまなトレードオフを行います。
Three data groups behavior diagram#