OceanBase Database Proxy (ODP, also known as OBProxy) is a dedicated proxy server for OceanBase Database. The data of OceanBase Database users is stored in multiple replicas on OBServer nodes. ODP receives SQL requests from users, forwards the requests to the optimal target OBServer node, and returns the execution results to users.
Features
As a key component of OceanBase Database, ODP has the following features:
Connection management
For the physical connections of a client, ODP maintains its connections to multiple OBServer nodes at the backend. It also adopts the incremental synchronization solution based on version numbers to maintain the session status of connections to each OBServer node. This ensures efficient client access to each OBServer node.
Optimal routing
ODP fully considers the location of the replica involved in the user request, read/write split routing policy configured by the user, optimal procedure for multi-region deployment of OceanBase Database, and the status and load of each OBServer node. It routes the user requests to the optimal OBServer node, and ensures the high-performance operation of OceanBase Database.
High-performance forwarding
ODP is fully compatible with the MySQL protocol and supports the proprietary protocol of OceanBase. It adopts the multi-threaded asynchronous framework and transparent streaming forwarding to ensure high-performance data forwarding. In addition, it consumes minimal cluster resources.
Easy O&M
ODP is stateless and supports unlimited horizontal scale-out. It allows you to access multiple OceanBase clusters at the same time. You can perform real-time monitoring of ODP status by using various internal commands, which greatly facilitates O&M.
High availability
On the one hand, ODP itself is highly available in providing continuous proxy service. On the other hand, ODP is a key component of the OceanBase high availability mechanism, which protects users from interruptions caused by downtime and upgrades, and ensures the stability and fast recovery of OceanBase Database services.
Proprietary protocol
By default, ODP and OBServer nodes use the proprietary protocol of OceanBase. For example, ODP performs a cyclic redundancy check (CRC) on messages to ensure the correctness of connections to each OBServer node. ODP also enhances the transmission protocol to support Oracle-compatible data types and interaction models.