V4.3.1 BP4 hotfix3
Version information
Release date: April 22, 2025
Version: V4.3.1 BP4 hotfix3
RPM version: obproxy-4.3.1.4-282025042210
Bug fixes
Fixed the issue where disconnection occurs because the coordinator is incorrectly identified.
Fixed memory issues caused by protocols.
Fixed the issue where the execution result of the
select proxy_version()command is inaccurate.
V4.3.1 BP4 hotfix2
Version information
Release date: March 21, 2025
Version: V4.3.1 BP4 hotfix2
RPM version: obproxy-4.3.1.4-242025032019
Overview
Binary Optimization and Layout Tool (BOLT) is newly supported for optimization.
The default value of
enable_single_leader_node_routingis changed toFalse.
Bug fixes
Fixed the issue where ODP reports the error
errno = 9747during a Sysbench benchmark.Fixed the issue where a core dump occurs for binlog requests due to disconnection from the OBServer node.
V4.3.1 BP4 hotfix1
Version information
Release date: March 05, 2025
Version: V4.3.1 BP4 hotfix1
RPM version: obproxy-4.3.1.4-182025030514
Bug fixes
Fixed the issue where ODP does not return a response occasionally.
Fixed the issue where an error is returned when a put operation is executed on a non-partitioned table in HBase.
Fixed the issue where no log is recorded for a failure to start ODP by using an IPv6 address.
V4.3.1 BP4
Version information
Release date: January 24, 2025
Version: V4.3.1 BP4
RPM version: obproxy-4.3.1.4-62025012317
Bug fixes
Fixed the issue where disconnection occasionally occurs during the execution of the
show master statuscommand, after the Binlog service is enabled.Fixed the issue where, after an SQL statement is executed, the DB time recorded in
obproxy_digestlogs is inaccurate.Fixed the issue where the monitoring item
odp_sql_cost_totalof Prometheus has negative values.Fixed the issue where an access error is returned because the communication protocol is not aligned between ODP and OceanBase Database.
Fixed the issue where a core dump occurs during a hot restart of ODP.
Fixed the issue where the number of scanners returned by
getScannersof HBase is incorrect when ODP is used to connect to a cluster.Fixed the issue where an error is returned during the execution of PL blocks.
Fixed the issue where a core dump occurs in ODP due to a
cs_idallocation failure.Fixed the issue where an error indicating no dependency is returned during the execution of the
obproxy -Vcommand in a certain environment.Fixed the issue where the
proxy_sessionidparameter in the result set ofshow proxysession attribute xxhas negative values.Fixed the issue where the
proxy_session_idparameter in ODP logs has negative values.
V4.3.1 BP3
Version information
Release date: November 15, 2024
Version: V4.3.1 BP3
RPM version: obproxy-4.3.1.0-712024111215
Overview
A new method is supported for identifying logins to the primary/standby tenants based on the service name. Specifically, if the login connection string contains the keyword SERVICE, followed by the tenant name, OceanBase Database Proxy (ODP) identifies the login as a primary/standby tenant login.
Bug fixes
Fixed the issue where routing is inaccurate when the tablet IDs (
tablet_id) of partitioned tables of different tenants in one cluster are the same.Fixed the issue related to generated column evaluation.
Fixed the issue where orderliness is maintained only within individual partitions when connection through ODP is used in HBase reverse scans.
V4.3.1 BP2
Version information
Release date: September 27, 2024
Version: V4.3.1 BP2
RPM version: obproxy-4.3.1.0-662024092710
Bug fixes
Fixed the issue where a timeout error occurs during the processing of the column family name in a cross-partition batch put operation through an ObTableLSOpRequest request.
Fixed the issue where, if
lower_case_table_names = 0is configured in a tenant and the database name contains both uppercase and lowercase letters, the business access connection is interrupted.Fixed the issue where, if
lower_case_table_names = 0is configured in a tenant, requests cannot be accurately routed to some databases or tables.
V4.3.1 BP1 hotfix2
Version information
Release date: September 05, 2024
Version: V4.3.1 BP1 hotfix2
RPM version: obproxy-4.3.1.0-602024090512
Bug fixes
Fixed the issue where the execution hangs if the
LOAD DATA LOCAL INFILEstatement is executed multiple times in a connection.Fixed the issue where connection through ODP fails when an IPv6 address is specified for OceanBase Database deployment.
Fixed the issue where an error is reported indicating that the
GTID_SUBTRACTfunction does not exist.Fixed the memory leak issue of the ObLocationTenantInfo module.
Fixed issues such as memory exceptions and program crashes caused due to a lack of protective measures against abnormal logic such as timeouts for queries on the sequence table.
Fixed the issue where connection through ODP is interrupted when all parameters related to the Prepared Statement (PS) protocol of the MySQL driver of a later version are set to
null.
V4.3.1 BP1 hotfix1
Version information
Release date: August 13, 2024
Version: V4.3.1 BP1 hotfix1
RPM version: obproxy-4.3.1.0-522024080914
Bug fixes
Fixed the issue where the Binlog service cannot be accessed after a domain name is configured.
Fixed the issue where the system is restarted because a core dump is generated during DML stress testing by using Sysbench.
V4.3.1 BP1
Version information
Release date: August 01, 2024
Version: V4.3.1 BP1
RPM version: obproxy-4.3.1.0-482024073020
Overview
Substring-based KEY partition routing is supported.
A generated column obtained by using the
SUBSTRING_INDEXfunction can be used as a partitioning key in HBase.
Bug fixes
Fixed the issue where a binlog does not contain the connection attribute.
Fixed the issue where, after the connection for executing the
COM_STMT_SEND_LONG_DATAcommand is terminated, ODP must terminate the connection with the client.
V4.3.1
Version information
Release date: July 01, 2024
Version: V4.3.1
RPM version: obproxy-4.3.1.0-402024062810
Overview
ODP V4.3.1 is a Long-Term Support (LTS) version of the ODP V4.3.x series and is recommended for on-cloud and on-premises business in a proof of concept (POC) test or production environment. The SQL proxy supports many new routing features, such as automatic routing to the primary/standby tenants, primary zone-based routing, ASCII character set-based routing, and utf8mb4_0900_ai_ci collation-based routing. It provides the binlog_service_ip parameter that supports multiple addresses or domain names. Furthermore, it optimizes the routing strategies to significantly improve the performance in standalone deployment scenarios. The remote procedure call (RPC) proxy supports empty column families for the HBase model, improves the ObTableLSOpRequest request type, and optimizes the parsing logic of the request protocol and the mode to batch obtain routing information.
Key features
SQL proxy
Automatic routing to the primary/standby tenants
In the primary/standby solution of OceanBase Database V2.x and V3.x, a primary/standby cluster pair is identified by the cluster name. By default, you log in to the primary cluster. If a primary/standby switchover occurs, ODP can automatically route a connection request to the new primary cluster. The cluster name remains unchanged and therefore the login connection string does not need to be modified. In OceanBase Database V4.x, the Physical Standby Database solution is provided at the tenant level to make full use of the multitenancy feature. In other words, the PRIMARY and STANDBY roles are assigned to tenants instead of clusters. Two different tenants can be in a primary/standby relationship. The primary/standby relationships of tenants are not recorded in the database but maintained in OceanBase Cloud Platform (OCP).
After a primary/standby switchover occurs, you need to modify the tenant name in the connection string to ensure normal login, which causes inconveniences. Starting from V4.3.1, ODP interacts with the OCP API to internally record the tenant-level primary/standby relationships, associates with different tenants, and manages the tenants based on service names to mask the tenant-level primary/standby relationships from users. This implements the same effects as automatic routing to the primary/standby clusters in OceanBase Database V2.x and V3.x.
For more information about automatic routing to the primary/standby tenants, see Automatic routing to the primary/standby tenants.
Primary zone-based routing
In earlier ODP versions, you can use the proxy_primary_zone_name parameter to specify a single zone so that all requests received by ODP are routed to the specified zone. In scenarios where OceanBase Database supports both online analytical processing (OLAP) and online transaction processing (OLTP) loads, ODP must route the analysis requests to multiple OLAP replicas for load balancing. In ODP V4.3.1, you can set proxy_primary_zone_name to multiple zones.
Support for more character sets and collations
OceanBase Database V4.2.4 supports the ASCII and TIS620 character sets and the utf8mb4_0900_ai_ci collation. Accordingly, ODP V4.3.1 implements routing support for the character sets and collation.
Multiple addresses and domain names supported for binlog_service_ip
In the interaction architecture between the Binlog service and ODP, each time when ODP sends a binlog-related SQL request or binlog dump request, it needs to obtain the address of the Binlog service cluster from the binlog_service_ip parameter. In earlier ODP versions, the binlog_service_ip parameter supports only one IP address and does not support domain names, which cannot meet the requirements of some high availability scenarios. In ODP V4.3.1, the binlog_service_ip parameter supports multiple domain names and addresses to implement high availability in the following scenarios:
The load balancer (LB) has different physical IP addresses in different zones.
Automatic recovery is supported during LB switching.
Performance optimization
ODP is a dedicated service proxy for OceanBase Database. It aims to cope with multi-node routing for a distributed cluster and its routing strategies have obvious benefits in distributed scenarios. However, in a standalone scenario, the routing is simple and complex routing logic is unnecessary. Therefore, in ODP V4.3.1, the routing logic is optimized to adapt to standalone scenarios, thereby improving the routing performance.
ODP V4.3.1 is also optimized in terms of system compilation, further improving the performance.
In standalone mode, the routing performance of ODP V4.3.1 is improved by 30% to 50% in comparison with ODP V4.3.0.
RPC proxy
ObTableLSOpRequest request type improvement
ODP V4.3.0 provides a new single-operation format and a corresponding batch-operation format to carry the semantics of checkAndInsUp and support ObTableLSOpRequest requests. ODP V4.3.1 supports ObTableLSOpRequest requests with multiple types of table operations and division of subrequests by log stream, and optimizes the performance.
Support of empty column families for the HBase mode
The HBase API of OceanBase Database supports only a single column family. The concept of table group is introduced to support more column families and avoid modifying customer code for compatibility in some cases, for example, the client passes in an empty column family for scan. By default, a table in HBase corresponds to a table group in OceanBase Database, and a column family in HBase corresponds to a table in OceanBase Database. In a request sent by a client to ODP, the table name corresponds to the current table group name. ODP needs to support table group-based routing so as to support the new HBase mode.
Parameter changes
| Parameter | Change type | Description |
|---|---|---|
| enable_single_leader_node_routing | New | Specifies whether to apply more efficient routing rules when the tenant is deployed in leader concentration mode. |
| enable_full_link_trace | New | Specifies whether to enable end-to-end tracing for query execution. |
| rpc_max_response_batch_size | New | Specifies the maximum number of responses allowed in a single batch. |
| rpc_max_request_batch_size | Modified | The default value of this parameter has been changed from 5 to 20 since ODP V4.3.1. |
| enable_standby | Modified | Specifies whether to enable routing to the primary/standby tenants. This parameter was introduced in ODP V4.3.1. |
| proxy_primary_zone_name | Modified | You can configure multiple zones for this parameter in ODP V4.3.1 and later. |
| binlog_service_ip | Modified | You can configure multiple IP addresses or domain names for this parameter in ODP V4.3.1 and later. |
| enable_strict_stat_time | Modified | The default value of this parameter has been changed from True to False since ODP V4.3.1. |
| proxy_mem_limited | Modified | The value range of this parameter has been changed from [100MB, 100G] to [100MB, +∞) since ODP 4.3.1. |
Supported OceanBase Database versions
ODP supports OceanBase Database V4.x and OceanBase Database V3.x and earlier. The recommended ODP version varies based on the OceanBase Database version.
For OceanBase Database V3.x and earlier, ODP V3.2.11 is recommended.
For OceanBase Database V4.x, ODP V4.3.1, which is an LTS version, is recommended.
Bug fixes
Fixed the issue where the execution of the
BEGINstatement by the JDBC driver is stuck when both the PreparedStatement and PrepareExecute protocols are enabled for ODP to connect to an OceanBase cluster.Fixed the issue where an error is constantly returned for subsequent retries if an attempt to access the standby cluster fails in a primary/standby cluster scenario.