PolarDB-Xの高可用性アーキテクチャは、災害が発生した場合にリカバリポイント目標 (RPO) が0になるように設計されています。 このトピックでは、PolarDB-Xの高可用性機能の概要について説明します。
マルチレプリカアーキテクチャ
PolarDB-Xは、3つまたは5つのレプリカなどの複数のデータレプリカを使用するマルチレプリカアーキテクチャを採用しています。 レプリカ間の一貫性 (RPO=0) を保証するために、アーキテクチャは、各書き込み操作がノードの半分以上によって確認されなければならないことを要求するPaxos多数コンセンサス複製プロトコルを使用する。 このように、クラスタは、ノードが故障しても中断することなくサービスを提供し続けることができる。 Paxosは、レプリカ間の不整合の問題を排除することにより、強力な一貫性を確保できます。
PolarDB-Xでは、データレプリカは、データステートマシンでの役割に基づいて、通常レプリカとロガーレプリカの2つのカテゴリに分類されます。 レプリケーショングループ内のレプリカは、レプリカがリーダー選択に参加するかどうかに基づいて、以下の役割にさらに分類できます。
レプリカの役割 | 役割カテゴリ | ロールの説明 |
リーダー | 正常 | リーダーはクライアントの要求を処理し、意思決定を行います。 リーダーは、データの一貫性と回復性を確保するためにログを維持します。 |
フォロワー | 正常 | フォロワーはリーダーからの命令を受け入れて実行します。 リーダーが失敗するかアクセスできなくなった場合、フォロワーは新しいリーダーになるように選択できます。 |
ロガー | ロガー | フォロワーと同様に、ロガーは多数コンセンサスプロトコルをサポートしますが、データサービスは提供しません。 リーダーが失敗するかアクセスできなくなると、ロガーはリーダー選挙に参加します。 ロガーは一時的なリーダーとして選択されますが、データサービスは提供しません。 フォロワーが更新され、最新のデータとステータスが同期された後、ロガーはリーダーシップを放棄します。 |
学習者 | 正常 | 学習者は、システムから状態情報を受動的に受け取り、リーダーの選挙または意思決定プロセスには参加しません。 したがって、学習者はシステム上で最小のオーバーヘッドを生成する。 |
プライマリおよび読み取り専用インスタンス
プライマリインスタンスのデータノード (DN) には、2つの通常レプリカと1つのロガーレプリカがあります。 ロガーレプリカはログのみを保存し、データは保存しません。 したがって、3つのレプリカ構成は、従来の2つのレプリカ (プライマリ /セカンダリ) 構成に似ています。
読み取り専用インスタンスのDNには1つのデータレプリカがあり、これが学習者の役割を引き受け、プライマリインスタンスからデータを非同期に複製します。 パクソスを拠点とするリーダーの選挙と意思決定プロセスには参加していません。 したがって、読み取り専用インスタンスで発生した問題は、プライマリインスタンスの操作に影響を与えません。 これにより、読み取り専用インスタンスの障害を確実に分離できます。
高可用性とディザスタリカバリ
PolarDB-Xは、プライマリインスタンスのDNに次のPaxosベースのレプリカポリシーを実装して、高可用性とディザスタリカバリを確保します。
展開モード | レプリカポリシー | ディザスタリカバリ機能 |
シングルゾーン | 3つのレプリカ (2つの通常レプリカと1つのロガーレプリカ) |
|
3つのゾーン | 3つのレプリカ (2つの通常レプリカと1つのロガーレプリカ) |
|
2つのリージョンにまたがる3つのデータセンター | 5つの通常のレプリカ |
|
PolarDB-Xは、プライマリインスタンスのデプロイモードと一致するように、読み取り専用インスタンスのDNに次のレプリカポリシーを実装します。
プライマリインスタンスのデプロイモード | 読み取り専用インスタンスのレプリカポリシー |
シングルゾーン | 1つのレプリカ。異なるゾーンに配置できますが、プライマリインスタンスと同じリージョンに配置する必要があります。 |
3つのゾーン | |
2つのリージョンにまたがる3つのデータセンター | 1つのレプリカ。異なるゾーンに配置できますが、プライマリインスタンスのプライマリデータセンターと同じリージョンに配置する必要があります。 |