V4.2.3 BP1
Version information
Release date: February 2, 2024
Version: V4.2.3 BP1
RPM version: obproxy-4.2.3.0-20240131105459
Overview
OceanBase Database Proxy (ODP) V4.2.3 BP1 fixes some critical functional bugs to replace ODP V4.2.3.
Bug fixes
Fixed the issue where an infinite loop occurs during letter case conversion for the GB18030 character set.
Fixed the issue where the execution of the LOAD DATA LOCAL INFILE statement is stuck.
Fixed the issue where subsequent statements cannot be correctly parsed if an SQL statement contains the
'status'keyword.
V4.2.3
Notice
ODP V4.2.3 has highly risky functional bugs. Therefore, we recommend that you use ODP V4.2.3 BP1 instead of ODP V4.2.3.
Version information
Release date: December 26, 2023
Version: V4.2.3
RPM version: obproxy-4.2.3.0-20231226165754
Overview
Apart from the usability capabilities, such as routing diagnostics and connection diagnostics, introduced in OceanBase Database Proxy (ODP) V4.2.2, ODP V4.2.3 supports the following new features:
Login audit logs, log usability, protocol diagnostics, and memory diagnostics usability, which comprehensively improve the usability of ODP; wide-integer routing and routing based on more partitioning functions and expressions, which enrich the routing capabilities of ODP.
Globally unique client session IDs and protocol compression between ODP and OBServer nodes, which enhance the link capabilities of ODP.
MySQL-compatible features, such as the
MYSQL_SET_OPTION(27)command and data loading from local files.
Key features
Globally unique client session ID
A client session ID uniquely identifies a session. ODP and OceanBase Database have different mechanisms for generating client session IDs. The client session ID generated by an ODP for a connected client differs from that generated by an OBServer node. When a client connects to an ODP, the ODP sends the generated client session ID back to the client during the handshake. In a distributed system, the client may connect to a different ODP after connecting to the load balancer. An ODP does not know the client session ID generated by another ODP. Therefore, client session IDs must be globally unique. With globally unique client session IDs, OceanBase clusters can better support the kill session and show processlist mechanisms, transaction table locks, and other features.
For more information, see Configure a globally unique client session ID.
Link compression between ODP and OBServer nodes
OceanBase clusters support geo-redundant deployment modes, such as three IDCs across two regions. When OceanBase Database replicas are deployed across regions, data writing and reading across regions may encounter bandwidth restrictions. ODP V4.2.3 supports data compression between ODP and OBServer nodes at a stable compression rate around 55% for random data insertion, which effectively reduces the bandwidth pressure.
Log usability
ODP provides various log files, including obproxy_digest.log, obproxy_error.log, and obproxy.log, to help you quickly troubleshoot problems. Numerous and comprehensive logs also cause problems such as poor readability of logs and performance loss, which impair log usability.
ODP V4.2.3 improves log usability in two aspects. First, it solves the problem of fast log printing based on throttling and printing optimization. Second, it improves log readability and reduces the log volume by optimizing log content and setting clearer log levels. For more information about log levels and different type of logs, see Logs.
Memory usability
ODP of earlier versions records limited memory information. Once a memory leak occurs, it will be difficult to locate the leak location. In addition, connection establishment behavior and logging after memory usage exceeds the limit must also be optimized.
ODP V4.2.3 improves memory usability by adding the feature of memory leak diagnostics and the WARN log level. After memory usage exceeds the limit, new connections cannot be established and memory cannot be allocated to prepared statements, but forced logout will not be triggered. This reduces the impact on existing business. For more information about memory leak diagnostics, see Memory leak diagnostics.
Routing improvement
Columnar OceanBase Database supports wide-integer columns. Accordingly, ODP V4.2.3 supports accurate routing for queries on partitioned tables with wide-integer columns as partitioning keys. The new version also supports accurate routing based on more partitioning key expressions, including arithmetic expressions, character expressions, and time expressions. For more information, see Overview.
Compatibility changes
Product behavioral changes
The default system log level is changed to WDIAG.
When memory usage exceeds 90% of the limit, the product behavior changes as follows:
For existing connections: Memory allocation to prepared statements fails (connections are terminated) while the execution of other SQL statements remains normal.
For new connections: New connections to user tenants cannot be established but those to the sys tenant and proxysys tenant are allowed. ODP configurations are modified, and SQL execution remains normal.
Parameter changes
| Parameter | Change type | Description |
|---|---|---|
| mem_leak_check_mod_name | New | Specifies the names of modules to be monitored by the show proxymemory; command, which can be names in the mod_name column of the command output. The value ALL specifies to monitor all modules. We recommend that you use the value ALL only in debugging mode. |
| mem_leak_check_class_name | New | Specifies the names of classes to be monitored by the show proxymemory objpool; command, which can be names in the free_list_name column of the command output. The value ALL specifies to monitor all classes. We recommend that you use the value ALL only in debugging mode. |
| protocol_diagnosis_level | New | Specifies whether to enable protocol diagnostics and whether to output diagnostic information to logs. The default value is 0, which specifies to disable protocol diagnostics. |
| compression_algorithm | New | Specifies the compression protocol and compression level of the OceanBase 2.0 protocol. Value range: zlib:[0,9]. The value zlib:0 specifies not to use the compression protocol and the compression feature of the OceanBase 2.0 protocol. |
| syslog_io_bandwidth_limit | New | Specifies the upper limit of disk I/O bandwidth allowed for ODP logging. ODP logging is throttled when its traffic exceeds the upper bandwidth limit. When throttling is triggered, the log REACH SYSLOG RATE LIMIT is printed in the obproxy.log file. The default value is 30 MB. You need to specify the unit when you configure the parameter. The default unit is MB. |
| enable_syslog_wf | New | Specifies whether to print logs at or above the WARN level in the obproxy.log file to a separate log file (obproxy.log.wf). The default value is False, which specifies not to print such logs to a separate log file. |
| client_session_id_version | New | Specifies the version of the format used for generating client session IDs. The default value is 1. To use the new calculation logic, you need to set this parameter to 2. |
| enable_abort_conn_info | Modified | This parameter was introduced in ODP V4.2.0 and has been deprecated since ODP V4.2.3. |
| xflush_log_level | Modified | The default value of this parameter has been changed from INFO to ERROR since ODP V4.2.3. |
| syslog_level | Modified | The default value of this parameter has been changed from INFO to WDIAG since ODP V4.2.3. |
| connection_diagnosis_option | Modified | The default value of this parameter has been changed from 1 to 3 since ODP V4.2.3. The description of bit 1 is changed. In the new version, bit 1 specifies whether to build an error packet when internal errors occur. |
| enable_sharding | Modified | This parameter takes effect upon a restart in ODP V4.2.3 and later. In earlier versions, the parameter takes effect dynamically after modification. |
Supported OceanBase Database versions
OceanBase Database V4.x, V3.x, and earlier versions are supported. The recommended ODP version varies based on the OceanBase Database version.
For OceanBase Database V3.x or earlier, we recommend that you use ODP V3.2.11.
For OceanBase Database V4.x:
We recommend that you use ODP V4.2.3 if new features are required.
If new features are not required, ODP V4.2.1 which is a Long-Term Support (LTS) version, is recommended.
Bug fixes
Fixed the issue where connection fails when a .NET driver is used for connection and SSL is enabled.
Fixed the issue where connection attributes fail to be parsed and the connection is then terminated when a .NET driver is used for connection.
Fixed the issue where the performance of queries based on the specified cursor fetch size is poor when ODP connects to an OceanBase cluster.
Fixed the issue where a MySQL 8.0 client fails to connect to an OceanBase cluster with a password.