OceanBase Database Proxy (ODP), also called OBProxy, is a dedicated proxy server for OceanBase Database. OBServer stores the data of OceanBase Database users with multiple replicas, while ODP receives SQL requests from users. ODP forwards SQL requests to the optimal target OBServer, and returns the execution result to users.
As a key component of OceanBase Database, ODP has the following features:
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.
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, and the status and load of each OceanBase server. It routes the user requests to the optimal OBServer, and ensures the high-performance operation of OceanBase.
Connection management
For the physical connections of a client, ODP maintains its connections to multiple OBServers at the backend. It also adopts the incremental synchronization solution based on version numbers to maintain the session status of each OBServer connection. This ensures efficient client access to each OBServer.
Proprietary protocol
ODP and OBServer use the proprietary protocol of OceanBase by default. For example, ODP adds Cyclic Redundancy Check (CRC) to messages to ensure the correctness of the OBServer connections. ODP also enhances the transmission protocol to support the Oracle-compatible data types and interaction models.
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 OceanBase status through various internal commands, which greatly facilitates O&M.