Two data groups, active-active#

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

両方のデータセンターは、ローカルの読み取りと書き込みを同時に提供し、グループ間のレプリケーションにより、両方の場所を最新の状態に保ちます。

Two data groups topology

Two data groups topology#

図の凡例#

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

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

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

このパターンを使用する場合#

このパターンは、金融サービス、医療、および2つのアクティブな場所にまたがるデータ損失ゼロのジオレプリケーションを必要とするアプリケーションに適しています。どちらのデータセンターも、競合の解決と同時に書き込みを提供し、場所を超えて真のアクティブ-アクティブオペレーションを提供します。

このパターンには次のような利点があります。

  • 真のディザスターリカバリーを提供し、完全なデータセンターDCの障害を乗り切ります。

  • アクティブ-アクティブで実行され、両方のDCがローカルレイテンシーの読み取りおよび書き込みを処理します。

  • コンプライアンス要件のための地理的冗長性。

  • ローカルルーティングでは、各DCはほとんどの操作で独立して動作します。

注意すべき制限がいくつかあります。

  • オプティミスティックなクロスリージョンの一貫性処理では、競合は避けられません。

  • DC障害時の書き込みレイテンシーとゼロデータ損失は緊張しています。コミットスコープが強くなると、レイテンシーが増加します。

  • RaftマジョリティDC損失がないと、グローバル割り当てシーケンスgallocは、最終的に割り当てられたレンジとブロックを使い果たします。

  • グローバルルーティングは使用できません。 1つのDCが失われると、クラスター全体のRaftマジョリティが壊れます。

Raftマジョリティとgallocの制限は、以下で説明するように、監視の場所を追加することにより対処できます。

監視の場所の追加#

単一の監視ノードを含む3番目の場所を追加することにより、Raftマジョリティとgallocの制限が解決されます。 WitnessはRaftコンセンサスに参加しますが、ユーザーデータを保存しません。奇数のクォーラム7つの投票者6つのデータノードと1つの監視により、クラスターは1つのDCが失われた場合でもRaftマジョリティを維持し、グローバルルーティングを復元し、gallocシーケンスが割り当てられたレンジを使い果たさないようにします。

その構成は自分自身でローカルHAを実現できないため、グループごとの監視なしでグループごとに2つのデータノードのみを使用する場合にも、監視の場所が必要です。

Two data groups with witness topology

Two data groups with witness topology#

このパターンに推奨されるコミットスコープ#

  • マジョリティプロテクト グループ内のマジョリティノードへの同期複製。実稼働使用に最も一般的に推奨されるスコープ。

  • クォーラムコミット ノードがローカルにコミットする前に、すべての参加ノードにわたってコミット決定を調整し、コミットする前に両方のリージョンにわたってトランザクションが持続することを保証します。決済やコアバンキングなど、厳密な分散一貫性を必要とするワークロードに推奨されます。 MAJORITY FOR EACH GROUP IN CLUSTER QUORUM COMMIT ABORT ON (timeout = 6s) を使用します。これは、新しい書き込みリーダーが、以前のリーダーによって確認された最新のコミットデータを持つことを保証します。

  • CAMO グループごとに2つのデータノードと1つの監視を使用する場合、 CAMOは同期レプリケーションを介した厳密に1回のトランザクション保証を追加します。

  • ローカルプロテクト ローカルノードのみの耐久性を備えた非同期レプリケーション。実稼働環境での使用はお勧めしません。

コミットスコープは、パフォーマンス、耐久性、一貫性、スケーラビリティにわたってさまざまなトレードオフを行います。

Two data groups behavior diagram

Two data groups behavior diagram#