ODPは、そのサービスを保証するために高い可用性が必要です。ユーザーのリクエストはまずODPに到達しますが、ODPに異常が発生すると、ユーザーのリクエストは正常に処理されなくなります。また、ODPはデータベースクラスタノードの障害を処理し、それに応じたフォールトトレランス処理を行う必要があります。
ODPはOceanBaseクラスタとは異なり、永続化された状態を持っていません。その運用に必要なすべてのデータ情報はデータベースへのアクセスから得られるため、ODPの障害によってデータが失われることはありません。ODPも複数のノードで構成されるクラスタがサービスを提供しており、ユーザーのリクエストが具体的にどのODPノードで実行されるかは、ユーザーのF5やその他のロードバランシングコンポーネントが担当します。同時に、ODPのあるノードに障害が発生した場合も、ロードバランシングコンポーネントが自動的にそのノードを除外し、以降のリクエストが障害ノードに送信されないようにします。
ODPの実行プロセスでは、データベースクラスタの状態をリアルタイムで監視します。一方でODPはクラスタのシステムテーブルをリアルタイムで取得し、システムテーブルを通じて各データベースノードのヘルス状態とパーティションのリアルタイム位置を把握します。また、ODPはネットワーク接続を通じてデータベースノードのサービス状態を検出し、異常が発生した場合は該当ノードの障害状態をマークし、適切なサービス切り替えを行います。
関連ドキュメント
ODPの詳細については、プロキシの概要を参照してください。