Setting up your geo-replication topology#
展開パターンを選択したら、次のステップはクラスタートポロジを構成することです。これには、ノード分散の計画、場所サブグループの作成、およびこれらのサブグループへのノードの割り当てが含まれます。
ノード分散の計画#
クラスターを構成する前に、ロケーション間のネットワーク遅延と帯域幅を測定します。クロスロケーションレイテンシーは、レプリケーションラグ、同期コミットパフォーマンス、およびDDL期間に直接影響を与えます。
クォーラムプランニングの場合、単一の場所が投票ノードのマジョリティを保持していないことを確認します。たとえば、5つのノードのうち3つが場所Aにあり、2つが場所Bにある場合、場所Aのみがマジョリティを保持します。ロケーションAを失うと、ロケーションBがまだ実行されている場合でも、クラスターは読み取り専用になります。
2か所の展開の場合、3番目の場所の監視ノードが標準のソリューションです。ロケーションごとに2つのデータノードと1つの監視がある場合、投票者は合計5人になるため、いずれかのロケーションが失敗する可能性があり、残りのノードがマジョリティを保持したままになります。ローカルの高可用性を実現するには、各場所に少なくとも2つのデータノードが必要です。
ロケーションサブグループの作成#
PGDは、グループ階層を使用して物理的トポロジを表します。各地理的場所はノードサブグループにマッピングされ、すべてのロケーションサブグループは、クラスター全体にまたがる単一のトップレベルグループの下にあります。場所ごとにサブグループを作成します。
SELECT bdr.create_node_group(
node_group_name := <location_a>,
parent_group_name := <top_group>,
join_node_group := false
);
SELECT bdr.create_node_group(
node_group_name := <location_b>,
parent_group_name := <top_group>,
join_node_group := false
);
join_node_group := false
パラメーターは、現在のノードを参加させずにグループを作成します。ノードは次のステップで個別に結合されます。
<location_a> および<location_b>
をロケーションの説明的な名前たとえばus_east およびeu_west
などに置き換え、 <top_group>
をトップレベルのPGDグループの名前に置き換えます。
サブグループが作成されたことを確認するには
SELECT node_group_name, parent_group_name
FROM bdr.node_group_summary
ORDER BY parent_group_name;
ノードのサブグループへの割り当て#
ノードをクラスターに参加させるときに、それが属するサブグループを指定します。
SELECT bdr.join_node_group(
node_group_name := <location_a>
);
これを各ノードで実行して、その場所のサブグループに関連付けます。接続マネージャーは、サブグループメンバーシップを使用して、書き込みトラフィックを各場所の正しい書き込みリーダーにルーティングします。
サブグループが配置されたら、展開パターンのルーティングとルート優先度を構成します。 ルーティングしきい値の設定 を参照してください。