OceanBase Cloudは、クロスクラウド・デュアルアクティブアーキテクチャにより高可用性を実現し、さまざまな障害に直面した場合でも安定したサービスの継続的な提供を保証します。
原理
OceanBase Cloudは、異なるクラウドサービスプロバイダー間で同じデータとサービスを展開することをサポートします。各クラウド環境は常にアクティブ状態であり、同時に業務リクエストを処理し、リアルタイムデータ同期技術によってデータの一貫性を維持します。
いずれか一方のクラウド環境で障害が発生した場合、もう一方のクラウド環境がすべての業務トラフィックをシームレスに引き継ぎ、サービスの中断を防ぎます。このアーキテクチャは、システムのフォールトトレランスを向上させるだけでなく、単一のクラウドサービスプロバイダーへの依存を減らし、システム全体の信頼性と安定性を強化します。
クロスクラウド・デュアルアクティブレプリケーション機能は、全体として大きく二つの機能に分けられます。それぞれ、クロスクラウドの実現とデュアルアクティブリンクの構築です。
実装方法
クロスクラウドアーキテクチャの実装方法
クロスクラウドのシナリオでは、異なるクラウド間で独自のネットワークソリューション(専用線、パブリックネットワーク、クラウドエンタープライズネットワークなどを含むがこれらに限定されない)を通じてネットワーク相互接続を実現する必要があります。これにより生じるネットワーク構築の複雑さ、帯域幅と遅延が性能に与える影響、ネットワーク伝送データのセキュリティは、すべてデータ同期の性能とセキュリティに直接的に影響し、ひいては顧客のビジネスに影響します。OceanBase Cloudは上記の問題に対して最適化を施しており、具体的な実装方法は以下のとおりです。

クロスクラウドネットワークゲートウェイのサービス化:
OceanBase Cloudは基盤としてクロスクラウドのゲートウェイサービスを実装しており、クロスクラウドのネットワーク構築はOceanBase Cloudが担当します。ユーザーは必要なソース側およびターゲット側のクラウドベンダーとリージョンを選択するだけで、データ移行タスクはクラウドベンダーとリージョンの属性に基づいて必要なネットワークサービスを自動的に判断します。利用面では、クロスクラウドネットワークの構築、監視、運用保守などを意識する必要はありません。すべてOceanBase Cloudのバックグラウンドで自動的に完了し、お客様の業務ネットワークには一切影響しません。
伝送コンポーネントのローカライズドデプロイメント:
クロスクラウドネットワークのトラフィックと遅延は、データ伝送の性能に直接的な影響を与えます。OceanBase Cloudのクロスクラウド伝送はこの特性に対応し、基盤コンポーネントのデプロイメントアーキテクチャを調整しました。データログ解析コンポーネントをソース側のクラウドベンダーとリージョンに、データ書き込みコンポーネントをターゲット側のリージョンにデプロイします。これにより、ソース側の増分データ解析コンポーネントで不要な同期データの大部分をフィルタリングできると同時に、書き込み側をターゲット側に近づけることで、ネットワーク遅延によるデータ書き込み性能の低下を回避できます。
データ伝送のセキュリティ暗号化:
セキュリティ面では、異なるリージョン間のクロスクラウドゲートウェイ間で、ガロワ/カウンタモード(GCM)の高度な暗号化標準(AES)と128ビット鍵(AES-128-GCM)を使用してネットワーク層で暗号化を実現します。これも広く使用されている伝送セキュリティを保証する暗号化標準であり、Google CloudやAWSなどの主要なクラウドベンダーで採用されています。ゲートウェイ間のセッション鍵はOMSプライベートネットワーク間の安全な制御トンネルを通じて伝送され、セッション鍵は定期的にローテーションされます。これにより、クロスクラウドネットワーク伝送データのセキュリティを保証します。
デュアルアクティブリンクの実装
データベースの災害復旧要件において、従来のバックアップ・リストアやプライマリ/スタンバイインスタンスに加え、現在では業務の究極の継続性や性能を考慮してデュアルアクティブ構成を構築する必要があるケースが多くあります。デュアルアクティブ構築では、二つのデータセンターが同時に業務の読み書き能力を担うことが求められ、両側のデータ一貫性を保証するためには、リアルタイムの双方向同期を実現する必要があります。現在の業界のデータ同期製品の多くは単方向同期をサポートしていますが、OceanBase Cloudのデータリンクは、MySQL、Oracle、OceanBaseデータベース間の異種データベース間の双方向同期を実現できます。データの逆ループ防止と競合検出機能により、デュアルアクティブリンクの安定性とデータ一貫性を保証します。

データ逆ループ防止
上図からわかるように、一方の端で業務データを書き込むと、データベースログが記録され、データ同期によって相手方に書き込まれます。データ同期によって相手方に書き込まれた後も同様にデータベースログが記録され、逆方向でもデータ同期によって解析されて書き戻されることで、無限ループの問題が発生します。
データ逆ループ問題に対して、OceanBase Cloudはデータベースの違いに応じて二つの実装方法を提供します。MySQL、Oracleデータベースの場合、増分データの書き込みと同時にトランザクションテーブルを記録し、増分解析コンポーネントがログを解析する前にトランザクションテーブル内のデータを取得します。解析されたデータがトランザクションテーブル内にある場合は、データ同期によって生成されたデータと見なされ、関連データはデフォルトで破棄されます。そうでない場合は関連データを同期します。OceanBaseデータベースの場合、データ書き込みコンポーネントのクライアントとサーバーが接続を確立した後にthread_idを指定し、すべての増分書き込みコンポーネントのデータには特定のthread_idが付随します。増分解析コンポーネントはデータを解析する際、デフォルトで増分コンポーネントのthread_idによって生成されたデータを破棄することで、データ逆ループ防止のレプリケーションを実現します。
競合検出
通常、データのデュアルアクティブ業務では、業務が二つのデータセンターで同一のデータ(同一の一意キー)に対して同時に書き込みまたは更新操作を行うことを避ける必要があります。その理由は、デュアルアクティブレプリケーションリンクがそれを正常な業務データの相手方への同期と見なし、データ更新の欠落が発生する可能性があるためです。しかし、実際の業務処理過程では、欠陥などの原因でこのようなデータが発生することは避けられません。OceanBase Cloudのデュアルアクティブレプリケーションリンクは、このような問題を解決するための専用機能を備えています。
ダブルアクティブレプリケーションのリンクが稼働している間、競合データをリアルタイムで検出し、リンク設定時に指定した処理(ターゲット側データ上書き、競合無視、ターゲット側データ保持)に基づいて特別な処理を行います。ビジネスの実際の状況に応じて適切なデータ処理方法を選択することで、ビジネスデータの最終的な一貫性を保証できます。同時に、OB Cloudは競合データレコードを保持し、ダウンロードして確認できるようにすることで、競合データが発生した原因を分析・特定し、ビジネスロジックの最終的な最適化を実現するのに役立ちます。