OceanBaseデータベースプロキシODP(OceanBase Database Proxy)は、OceanBaseデータベース専用のプロキシサーバーです。OceanBaseデータベースのユーザーデータは、複数のレプリカとして各OBServerノードに保存されます。ODPはユーザーから送信されたSQLリクエストを受信し、最適なターゲットOBServerノードに転送した後、実行結果をユーザーに返します。
特徴
OceanBaseデータベースの重要なコンポーネントとして、ODPには以下の特徴があります:
接続管理
あるクライアントの物理接続に対して、ODPは自身からバックエンドの複数のOBServerノードへの接続を維持し、バージョン番号に基づく増分同期方式で各OBServerノードの接続セッション状態を維持することで、クライアントが各OBServerノードに効率的にアクセスできるようにします。
最適ルーティング
ODPは、ユーザーのリクエストに関連するレプリカの位置、ユーザーが設定した読み書き分離ルーティングポリシー、OceanBaseの複数地域展開における最適リンク、およびOceanBase各マシンの状態と負荷状況を十分に考慮し、ユーザーのリクエストを最適なOBServerノードにルーティングすることで、OceanBase全体の高パフォーマンス運用を最大限に保証します。
高パフォーマンス転送
ODPはMySQLプロトコルと完全互換性があり、OceanBase独自のプロトコルもサポートしています。マルチスレッド非同期フレームワークと透過的ストリーミング転送の設計を採用しているため、データの高パフォーマンス転送を保証しつつ、自身のマシンリソース消費を最小限に抑えます。
オペレーショナル保守の容易さ
ODPはステートレスであり、無制限の水平スケーリングをサポートし、複数のOceanBaseクラスタへの同時アクセスも可能です。豊富な内部コマンドを使用してODPの状態をリアルタイムで監視できるため、運用保守が簡単かつ便利です。
高可用性
ODPの高可用性は二つの側面に分かれています。一方では自身の高可用性を保証し、プロキシサービスを継続的に提供します。もう一方では、ODPはOceanBaseの高可用性システムの主要な構成要素として、ダウンやアップグレードなどの状況をユーザーに隠蔽し、OceanBaseデータベースサービスの安定性と迅速な復旧を保証します。
専用プロトコル
ODPとOBServerノード間では、デフォルトでOceanBase専用プロトコルが採用されています。例えば、パケットのCRCチェックを追加してOBServerノードとのリンクの正確性を保証したり、Oracle互換のデータ型やインタラクションモデルをサポートするために伝送プロトコルを強化したりしています。