V4.3.4 hotfix1
Version information
Release date: May 26, 2025
Version: V4.3.4 hotfix1
RPM version: obproxy-4.3.4.0-332025052117
Release purpose
This version supports the use of secondary partitioning and time-series table routing features in OBKV-HBase of OceanBase Database V4.3.5.2 and later.
Bug fixes
Fixed the issue where an error message was displayed when a table did not exist in OBKV.
Fixed potential memory issues.
Fixed the issue where an error occurred when a table was deleted and rebuilt in OBKV.
V4.3.4
Version information
Release date: April 18, 2025
Version: V4.3.4
RPM version: obproxy-4.3.4.0-262025041714
Version location
ODP 4.3.4 is the latest version of ODP 4.3.x. It is recommended for POC testing and production use in both cloud and on-premises environments. The SQL proxy now supports routing based on Asian character sets and collations, and functions as partition keys. It has enhanced core routing capabilities, optimized routing strategies for replication tables and requests exceeding 4K, reduced remote routing, and improved routing performance. The global parameters for protocols between ODP and OceanBase Database have been unified, enhancing protocol configuration usability. The RPC proxy now supports accurate routing for single-partition tables and atomic retrieval of partition information. It has enhanced routing capabilities, improved congestion handling processes, and asynchronous retrieval of ODP ls_id information, further improving system stability.
Key features
SQL proxy
Enhanced routing capabilities
Expanded character set support
ODP 4.3.4 now 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 involved in a JOIN operation. If the replication table was the first table in the JOIN, the request might be routed to a non-replication table's non-leader node, resulting in remote routing and impacting overall performance. ODP 4.3.4 optimizes this scenario by adjusting the routing strategy: when the first table in a JOIN operation is a replication table, ODP uses the tables after the JOIN for routing, mitigating performance issues caused by remote routing.
Support for functions as partition keys
Previously, ODP could not accurately calculate partitions when a function expression was used as the partition key during table creation, leading to routing inaccuracies. ODP 4.3.4 addresses this by parsing and converting function expressions in partition keys, ensuring accurate partition calculations.
Routing for requests exceeding 4K
In versions prior to ODP 4.3.4, the default value of
request_buffer_lengthwas4KB. For requests exceeding 4KB that had not yet parsed routing information, ODP would randomly route the request, potentially leading to remote routing and significant performance impact. To address this, ODP 4.3.4 increases the default value ofrequest_buffer_lengthto8KB, ensuring accurate routing for requests exceeding 4KB.
Improved protocol configuration usability
ODP 4.3.4 introduces a new global parameter, server_protocol, to explicitly control the protocol type between ODP and OceanBase Database. Previously, the protocol type was adaptive and not directly controllable through parameters, making it challenging to confirm the actual protocol type during troubleshooting. This change enhances protocol configuration usability by providing a clear and direct way to specify the protocol type.
RPC proxy
Enhanced routing capabilities
Accurate routing for single-partition tables
Previously, ODP could not accurately determine whether a table was a partitioned or non-partitioned table. In single-partition table scenarios, routing through the RPC proxy might result in routing errors. ODP 4.3.4 optimizes this by retrying routing based on error information returned by the OBServer node, ensuring accurate routing for single-partition tables.
Atomic retrieval of partition information
Previously, ODP retrieved table information through multiple internal requests, which lacked atomicity and could lead to inconsistent table information. If inconsistencies occurred, partition calculations would fail. ODP 4.3.4 addresses this by adding real-time validation and retries for retrieved table information, ensuring accurate routing.
Enhanced congestion handling processes
ODP 4.3.4 supports asynchronous processing of RPC requests, isolating the request processing state machine from the OBServer node's network. This independence allows the OBServer node's status changes and congestion handling processes to operate separately. For OBKV requests, which strictly depend on calculated partition and routing information for SQL forwarding, high availability capabilities are incomplete. By adopting strategies from the ODP SQL proxy, congestion handling processes ensure that requests are never forwarded to an abnormal OBServer node under any circumstances.
Asynchronous retrieval of ODP ls_id information
Starting from ODP 4.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 the OceanBase cluster. To address this, ODP 4.3.4 asynchronously decomposes the ls_id retrieval process, adding asynchronous tablet_id retrieval steps for LSOP requests.
Compatibility changes
Parameter |
Change type |
Description |
|---|---|---|
| server_protocol | New | Controls the protocol type between ODP and OceanBase Database. |
| rpc_client_net_read_timeout | New | Sets the RPC client network read timeout threshold. |
| rpc_client_net_write_timeout | New | Sets the RPC client network write timeout threshold. |
| request_buffer_length | Changed | The default value is updated from 4KB to 8KB, and new functionality is added: when the request size exceeds the configured threshold, ODP directly uses the tunnel for streaming client requests. |
| tunnel_request_size_threshold | Deprecated | This parameter is deprecated starting from ODP 4.3.4. Its functionality is replaced by request_buffer_length. |
Supported OceanBase Database versions
ODP 4.3.4 supports OceanBase Database 4.x, 3.x, and earlier versions. The recommended ODP version depends on the OceanBase Database version:
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.1 (LTS version).
ODP 4.3.4 introduces several new features. If your environment relies on these features, we recommend using the latest version, V4.3.4. If not, we recommend using the LTS version, V4.3.1.
Bug fixes
Fixed the issue where ODP could not connect to a read-only endpoint on AWS.
Fixed the issue where ODP failed to parse SQL statements following "--" when "--" was used in comments and a line break was present.
Fixed the issue where DBMS_LOB.READ timed out and the business error
write clob erroroccurred.Fixed the issue where ODP failed to start in IPv6 mode on ARM-based systems.
Fixed the issue where, when a partitioned table had no partitioning key and a default partition existed, SQL requests were not randomly distributed as expected.
Fixed the issue where, when a bypass import used ODP to connect to a cluster, the error
4016was returned if the parameters were incorrectly written.Fixed the issue where, when user variables contained the keyword
value, the PS routing was inaccurate.Fixed the issue where, in transactions exceeding 4 KB, the connection was disconnected during parsing and retry.
Fixed the issue where, when OceanBase Database 2.0 and compression protocols were disabled, no results were returned under the PS protocol.
Fixed the issue where, when the
kill query sessionidstatement was executed in the sys tenant, the SQL statement executed in a business tenant could not be terminated.Fixed the issue where, when the WHERE clause contained the
joinkeyword in a string value, the partition information was incorrectly parsed and the routing was inaccurate.Fixed the issue where, when data was inserted into a single-partition table using an RPC proxy, the error
4016was returned.Fixed the issue where, when manual partition splitting was performed, ODP returned the error
-5627.Fixed the issue where, during the initial stage of batch insert pressure testing, a large number of errors
routed to the wrong serveroccurred.Fixed the issue where, after a node was restarted, the client disconnected and an error occurred.
Fixed the issue where, when the ycsb tool executed the batch checkAndInsUp operation, the error
unknown errcode: -10652occurred.Fixed the issue where, when a global index was queried, the error
OB_ERR_KV_GLOBAL_INDEX_ROUTEoccurred.Fixed the issue where, after a migration, ODP returned the error
-5150for a global index, causing the client to continuously reconnect and report errors.
