高可用性のためのデータレプリケーション
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
ScalarDB Cluster は、高可用性とワークロード分散のために管理下のデータをリモートサイトにレプリケートすることができます。このリモートレプリケーション機能により、プライマリサイトでの書き込み操作が、1つ以上のバックアップサイトにほぼリアルタイムで複製されます。
この機能は、災害やその他の重大な障害がプライマリサイトに影響を与えた場合でも、バックアップサイトへのフェイルオーバーを可能にし、ビジネスの継続性を確保します。さらに、バックアップサイトは読み取り専用レプリカとして機能することも可能であ り、分析クエリ、レポート、ビジネスインテリジェンスのワークロードのオフロードに役立ちます。
ScalarDB におけるリモートレプリケーションとは?
ScalarDB のリモートレプリケーションは、同期レプリケーションと非同期レプリケーションを組み合わせたハイブリッドアプローチを使用します。これにより、プライマリサイトでのパフォーマンスへの影響を最小限に抑えながら、データ損失ゼロ (目標復旧時点 (RPO) がゼロ) を保証します。目標復旧時間 (RTO) は、コンピューティングリソースの量を制御することで柔軟に調整できます。この機能は ScalarDB Cluster の上に構築されており、クラウドやデータベースに依存しません。これにより、あるクラウドベンダーのデータベースから、別のクラウドベンダーの異なる種類のデータベースへのレプリケーションが可能になります。
主な利点
リモートレプリケーションは、以下の主要な利点を提供します:
- すべてのコミット済みトランザクションに対してデータ損失ゼロ (RPO が 0) を保証します。
- 同期処理と非同期処理の組み合わせにより、パフォーマンスへの影響を最小限に抑えます。
- プライマリサイトとは異なるリージョン、アベイラビリティゾーン、またはデータセンターにバックアップサイトをデプロイすることが可能です。
- 異なるクラウドサービスプロバイダーやデータベースタイプ間でのレプリケーションをサポートします。
- 組み込みのクラッシュ耐性と自動回復メカニズムを提供します。
アーキテクチャ概要
以下の図は、リモートレプリケーションアーキテクチャを示しています:
リモートレプリケーションは、このセクションに記載されているコンポーネントとツールで構成されています。
プライマリサイトコンポーネント
プライマリサイトは、プライマリサイトデータベース、クライアントアプリケーション、ScalarDB Cluster ノードの3つのコンポーネントで構成されています。それぞれ以下のように動作します:
- プライマリサイトデータベースには、ScalarDB Cluster を介してクライアントアプリケーションが使用するアプリケーションテーブルが含まれています。
- クライアントアプリケーションはデータベース操作を実行します。
- ScalarDB Cluster ノードは Coordinator データベースでトランザクション状態を管理し、LogWriter と呼ばれるモジュールを使用してトランザクション操作をキャプチャし、レプリケーションデータベースに書き込みます。
共有コンポーネント (プライマリサイトとバックアップサイト間)
プライマリサイトとバックアップサイトにまたがる2つのコンポーネントがあります: Coordinator データベースとレプリケーションデータベースです。これらのデータベースは単一のデータベースインスタンスでホストできます。ただし、トランザクション情報を維持するため、以下のように複数のサイトにレプリケートする必要があります:
- Coordinator データベースは、サイト間のトランザクション状態を可用性の高い方法で管理します。
- レプリケーションデータベースは、プライマリサイトからの書き込み操作を含むトランザクショングループを可用性の高い方法で保存します。