Three data groups, active-active-active#

3つのデータグループパターンは3つ以上の地理的リージョンにまたがり、それぞれがローカルの高可用性HAのために独自の独立したRaftコンセンサスグループを実行しています。グループごとに3つ以上のデータノードがある場合、各グループは、接続マネージャーが書き込みリーダールーティングをローカルに処理し、独自のリージョン内でマジョリティベースのコミットスコープを使用できます。

アプリケーションは、低遅延の読み取りおよび書き込みのためにローカルリージョンに接続します。リージョン間のレプリケーションは、通常、リージョン間のレイテンシーペナルティを回避するために非同期です。

Three data groups topology

Three data groups topology#

図の凡例#

シンボルは、ノードタイプ、グループコンテナ、および接続タイプを表します。

Diagram legend showing node types, group containers, and connection types

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

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

Three data groups behavior diagram#