ODP Enterprise Edition V4.3.0

2025-03-21 09:03:23  Updated

V4.3.0 BP1 hotfix1

Version information

  • Release date: May 24, 2024

  • Version: V4.3.0 BP1 hotfix1

  • RPM version: obproxy-4.3.0.0-662024052217

Bug fixes

  • Fixed the issue where data fails to be imported by using obloader V4.3 in direct load mode.

  • Fixed the issue where verification fails because an invalid session ID is returned after the Java client initiates an asynchronous query.

  • Fixed the issue where no error code is returned after a cross-partition request times out.

  • Fixed the suspected memory leak issue of the OB_CONCURRENCY_OBJ_POOL module in ObTableLSOpRequest disaster recovery scenarios.

  • Fixed the memory leak issue of the OB_SE_ARRAY module in ObTableLSOpRequest disaster recovery scenarios.

V4.3.0 BP1

Version information

  • Release date: May 09, 2024

  • Version: V4.3.0 BP1

  • RPM version: obproxy-4.3.0.0-552024051315

Overview

  • The action to take after an OceanBase Database Proxy (ODP) memory overrun occurs is changed.

  • Prometheus monitoring for ODP is improved.

V4.3.0

Version information

  • Release date: April 08, 2024

  • Version: V4.3.0

  • RPM version: obproxy-4.3.0.0-252024040811

Overview

OceanBase Database Proxy (ODP) V4.3.0 is a milestone version in the ODP V4.x series. In addition to the original SQL proxy service, ODP V4.3.0 further supports the OBProxy-OBKV (RPC) proxy service. With these two proxy services integrated, ODP V4.3.0 supports both SQL and RPC capabilities.

  • SQL proxy supports routing for tables where SERIAL columns are used as partitioning keys, forwarding the server_id and server_uuid system variables to the binlog service node, compatibility with MySQL communication protocol command words, and other features to further improve MySQL compatibility. Moreover, multi-level parameters and compression protocol implementation are optimized to enhance product stability.

  • RPC proxy supports the ObTableLSOpRequest request type to improve the processing efficiency in batch mode. It also supports asynchronous query requests to optimize the streaming processing capability for large data sets.

Key features

Integration of SQL and RPC proxy services

OceanBase Database supports OBKV and provides APIs for users to access table models and HBase models, which is simple and efficient. To support OBKV, ODP adds an RPC service port, on the basis of the existing SQL proxy service, to provide the proxy service for RPC requests. The RPC proxy service mainly provides features such as PRC request receiving, processing, and routing-based forwarding, allowlist access, and control on the number of concurrent sessions. It also supports bypass import through OBKV extension requests.

When ODP is started, both SQL and RPC service ports are enabled by default to provide services. The default SQL service port is 2883, and the default RPC service port is 2885. You can use -s/--rpc_listen_port to customize the RPC service port.

Multi-level configuration optimization

ODP provides an approach for multi-level configuration management. In addition to global parameters, ODP also provides parameters at three levels: cluster, tenant, and access address. Parameter settings at different levels separately take effect, thereby achieving configuration customization and isolation for different users without interfering with each other. Moreover, ODP supports parameter O&M operations, such as viewing and modifying parameters, to make parameter management easier.

ODP V4.3.0 optimizes configuration usage, memory, and performance to improve the user experience.

Support for asynchronous query requests

In earlier versions, ODP supports ObTableQueryAsync requests within a single partition, and blocks cross-partition asynchronous queries. However, all query requests of go-client are implemented based on asynchronous queries. ODP V4.3.0 now supports cross-partition asynchronous query requests. The new feature allows go-client to connect to ODP to process query requests.

Support for ObTableLSOpRequest requests

In OceanBase Database V4.2.1 BP4 and later, OBKV supports ObTableLSOpRequest, a new message format. ObTableLSOpRequest requests enable efficient operations and save resources as follows:

  1. Log stream (LS)-level operation aggregation is implemented. OceanBase Database V4.x adopts an architecture where LSs are used to organize multiple replicas. The LS-based granularity can achieve greater operation aggregation and save transaction overhead. One ObTableLSOpRequest request can enable the execution of only one transaction.

  2. Fewer message types are required. Currently, all operations supported by OBKV can be passed through ObTableLSOpRequest requests. This facilitates batch operations, such as checkAndInsUp batch operations.

  3. RPC transmission overhead is reduced for messages. This is implemented based on dictionary encoding of column names and format optimization of client objects.

The existing queryAndMute request type cannot fully meet this requirement. Therefore, 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.

Compatibility changes

Product behavioral changes

The startup option -s (--rpc_listen_port) is added, which is used to specify the RPC service port. If it is not specified, the RPC service listens on port 2885 by default.

Note

If the RPC service port is unavailable, ODP startup as a whole is blocked.

O&M command changes

  • The show proxyconfig command supports the range field that specifies the value range of a parameter, and the config_level field that specifies the minimum effective level supported by a parameter.

  • The show proxyconfig all command is provided for you to view the values of multi-level parameters in memory.

Parameter changes

Parameter Change type Description
enable_obproxy_rpc_service New Specifies whether to enable the RPC service port.
rpc_listen_port New Specifies the RPC service listening port.
rpc_support_key_partition_shard_request New Specifies whether to send an RPC request that involves cross-partition queries to all partitions when the target table is a KEY-partitioned table.
rpc_srv_session_pool_inactive_timeout New Specifies the inactive timeout period for the server connection in the synchronization module.
rpc_enable_force_srv_black_list New Specifies whether to enable the blocklist for forced login authentication.
rpc_force_srv_black_list New Specifies the blocklist for forced login authentication.
rpc_enable_direct_expire_route_entry New Specifies whether to clean up expired routing information by force and not to use dirty data for asynchronous refresh.
rpc_enable_reroute New Specifies whether to enable RPC rerouting.
rpc_enable_congestion New Specifies whether to enable OBServer node blocklist processing for RPC requests.
rpc_enable_parallel_handler New Specifies whether to enable the asynchronous execution framework.
rpc_max_server_table_entry_num New Specifies the maximum number of connections in the backend connection pool of the RPC processing module.
rpc_max_request_batch_size New Specifies the maximum number of requests allowed in a single batch.
rpc_request_timeout New Specifies the default timeout period for sending a request, in us. The default value is 5s.
rpc_net_timeout_base New Specifies the benchmark sending rate, that is, the time (in ms) required for sending 1 byte of data. The default value is 5, which means 1 byte/5 ms. The minimum bandwidth is 200 Bps. If the parameter is set to a value lower than 200 Bps, the backend connection is abnormal and ODP removes the connection from the connection pool.
rpc_server_net_invalid_time_us New Specifies the interval (in us) for sending pending requests in the backend connection. The default value is 10s.
rpc_server_net_max_pending_request New Specifies the number of requests to be sent in the backend connection. When the number of requests reaches the specified value within rpc_server_net_invalid_time_us, ODP considers the backend connection invalid and removes the connection from the connection pool.
rpc_enable_global_index New Specifies whether to enable the support by RPC requests for global index routing.
rpc_enable_retry_request_info_log New Specifies whether to print RPC request retry information.
rpc_request_timeout_delta New Specifies the delta value of the timeout period for processing a request within ODP. The default value is 10ms.
rpc_period_task_interval New Specifies the interval for ODP to execute periodic RPC processing tasks. RPC processing tasks mainly clean up requests in an invalid state in the frontend and backend.
rpc_server_net_handler_expire_time New Specifies the timeout period for the backend connection to process a request. If no response is received within the specified period of time after a request is sent, ODP considers the connection abnormal and removes the connection from the connection pool.
rpc_server_entry_expire_time New Specifies the idle timeout period for the backend connection pool. If there is no backend connection within the specified period of time, the backend connection pool automatically exits.

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:

    • If new features are required, ODP V4.3.0 is recommended.

    • 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 of ObLatch locking failures.

  • Fixed the issue where the login fails because configurations cannot be normally written due to concurrent parameter update and proxyro password update.

Contact Us