OceanBaseデータベースプロキシODP(OceanBase Database Proxy)は、OceanBaseデータベース専用のプロキシサーバーです。OceanBaseデータベースユーザーのデータは複数レプリカ形式で各OBServerノードに保存されます。ODPはユーザーから送信されたSQLリクエストを受信し、最適なターゲットOBServerノードにSQLリクエストを転送し、実行結果をユーザーに返します。
特徴
ODPはOceanBaseデータベースの重要なコンポーネントとして、以下の特徴を備えています:
接続管理
あるクライアントの物理接続に対して、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互換性のデータ型やインタラクションモデルをサポートするために伝送プロトコルを強化したりしています。