V4.3.4
Version information
Release date: April 25, 2025
Version: V4.3.4
RPM version: obproxy-ce-4.3.4.0-1
Version overview
ODP V4.3.4 is the latest version in the ODP 4.3.x series. It is recommended for use in POC testing and production environments for both cloud and on-premises businesses. This version enhances SQL proxy capabilities by supporting routing based on Asian character sets and collations, partitioning by function, and optimizing routing strategies for replication tables and requests exceeding 4K. It also improves routing performance by reducing remote routing and unifying global protocol parameters between ODP and OceanBase Database. For RPC proxy, it supports accurate routing for single-partition tables and atomic partition information retrieval, enhances routing capabilities, and improves congestion handling processes. It also asynchronously retrieves ODP ls_id information to further enhance system stability.
Key features
SQL proxy
Enhanced routing capabilities
Support for Asian character sets and collations
ODP V4.3.4 fully supports Asian character sets, including ujis, euckr, cp932, and eucjpms, along with their corresponding collations.
Optimized routing for JOIN operations involving replication tables
In previous versions, ODP randomly routed requests to any OBServer node when a replication table was the first table in a JOIN operation. This could lead to remote routing, affecting performance. ODP V4.3.4 optimizes this by using the JOINed table for routing instead of random routing when the first table is a replication table.
Support for function-based partitioning
Previously, ODP failed to accurately route requests when using function expressions as partition keys. ODP V4.3.4 addresses this by parsing and converting function-based partition keys, ensuring accurate partition calculations.
Enhanced routing for requests exceeding 4K
In earlier versions, ODP used a
request_buffer_lengthof4KB, leading to random routing for requests exceeding 4KB that had not yet been parsed. This could result in remote routing and significant performance impact. ODP V4.3.4 increases the defaultrequest_buffer_lengthto8KBto ensure accurate routing for larger requests.
Improved protocol configuration usability
ODP V4.3.4 introduces the global parameter server_protocol to explicitly define the protocol type between ODP and OceanBase Database. This replaces the previous reliance on enable_ob_protocol_v2 and enable_compression_protocol, which were no longer sufficient after ODP V4.3.1 introduced performance optimizations for standalone mode. The new server_protocol parameter simplifies protocol configuration and improves usability during troubleshooting.
RPC proxy
Enhanced routing capabilities
Accurate routing for single-partition tables
Previously, ODP could not accurately determine whether a table was partitioned or not, leading to routing errors in single-partition table scenarios. ODP V4.3.4 optimizes this by retrying routing based on error feedback from OBServer nodes, ensuring accurate routing for single-partition tables.
Atomic partition information retrieval
Previously, ODP retrieved table information through multiple internal requests, which lacked atomicity and could lead to inconsistent table information. This could cause partition calculation failures. ODP V4.3.4 addresses this by adding real-time validation and retries for table information retrieval, ensuring accurate routing.
Enhanced congestion handling processes
ODP V4.3.4 supports asynchronous processing of RPC requests, isolating the request state machine from OBServer node network changes. This ensures that congestion handling processes are independent of OBServer node status changes. For OBKV requests, which strictly depend on calculated partition and routing information, ODP V4.3.4 ensures that requests are never forwarded to abnormal OBServer nodes, even in congestion scenarios.
Asynchronous retrieval of ODP ls_id information
Starting from ODP V4.3.1, retrieving ls_id information became synchronous and dependent on tablet_id retrieval, complicating SQL processing and increasing pressure on the sys tenant of OceanBase clusters. ODP V4.3.4 addresses this by asynchronously retrieving tablet_id information for LSOP requests, simplifying the overall process.
Compatibility changes
Parameter |
Change type |
Description |
|---|---|---|
| server_protocol | New | Specifies the protocol type between ODP and OceanBase Database. |
| rpc_client_net_read_timeout | New | Specifies the RPC client network read timeout threshold. |
| rpc_client_net_write_timeout | New | Specifies the RPC client network write timeout threshold. |
| request_buffer_length | Changed | The default value is updated from 4KB to 8KB. Additionally, when the request size exceeds the configured threshold, ODP directly uses tunnel streaming to forward client requests. |
| tunnel_request_size_threshold | Deprecated | This parameter is deprecated starting from V4.3.4. Its functionality is replaced by request_buffer_length. |
Supported OceanBase Database versions
ODP V4.3.4 is compatible with OceanBase Database 4.x, 3.x, and earlier versions. The recommended ODP version depends on the OceanBase Database version in use:
For OceanBase Database 3.x and earlier, we recommend using ODP V3.2.11.
For OceanBase Database 4.x, we recommend using ODP V4.3.4.
Bug fixes
Fixed the issue where ODP fails to connect to a read-only endpoint on AWS.
Fixed the issue where ODP fails to parse SQL statements following '--' when '--' is used in comments and followed by a line break.
Fixed the issue where DBMS_LOB.READ times out and returns the business error
write clob error.Fixed the issue where ODP fails to start in IPv6 mode on ARM-based systems.
Fixed the issue where, in the case of a partitioned table with a missing partition key and a default partition, SQL requests are not randomly distributed as expected.
Fixed the issue where, when using ODP to connect to a cluster for direct load, a
4016error is returned if the parameters are incorrectly specified.Fixed the issue where, when a user variable contains the keyword
value, the PS routing is inaccurate.Fixed the issue where, in a transaction, requests larger than 4 KB fail to reconnect after parsing and retrying.
Fixed the issue where, when OceanBase Database 2.0 and compression protocols are disabled, no results are returned under the PS protocol.
Fixed the issue where, in the sys tenant, the
kill query sessionidstatement cannot terminate an SQL statement executed in a business tenant.Fixed the issue where, when the WHERE clause contains the
joinkeyword in a string value, the partition information is incorrectly parsed, leading to inaccurate routing.Fixed the issue where, when inserting data into a single-partition table using an RPC proxy, a
4016error is returned.Fixed the issue where, in a manual partition split scenario, ODP returns the error
-5627.Fixed the issue where, during the initial phase of batch insert stress testing, a large number of
routed to the wrong servererrors are returned.Fixed the issue where, after a node is restarted, the client is disconnected and an error is returned.
Fixed the issue where, when the ycsb tool executes the batch checkAndInsUp operation, the error
unknown errcode: -10652is returned.Fixed the issue where, when querying using a global index, the error
OB_ERR_KV_GLOBAL_INDEX_ROUTEis returned.Fixed the issue where, after migration, a global index in ODP returns the error
-5150, causing the client to continuously reconnect and return errors.
