OceanBase
English日本語简体中文
Docs Home
Products
Integrations
Release Notes

Databases

OceanBase DatabaseOceanBase Cloud OceanBase Best Practices

Tools

OceanBase Cloud PlatformOceanBase Migration ServiceOceanBase Developer CenterOceanBase Migration AssessmentOceanBase Admin ToolOceanBase Loader and DumperOceanBase DeployerKubernetes operator for OceanBaseOceanBase Diagnostic Tool OceanBase Binlog Service

Connectors and Middleware

OceanBase Database Proxy OceanBase Connector/C OceanBase Connector/J OceanBase Connector/ODBC OceanBase Connector/NETOceanBase Command-Line Client

Databases

OceanBase DatabaseOceanBase Cloud OceanBase Best Practices

Connectors and Middleware

OceanBase Database Proxy OceanBase Connector/C OceanBase Connector/J OceanBase Connector/ODBC OceanBase Connector/NETOceanBase Command-Line Client

Tools

OceanBase Cloud PlatformOceanBase Migration ServiceOceanBase Developer CenterOceanBase Migration AssessmentOceanBase Admin ToolOceanBase Loader and DumperOceanBase DeployerKubernetes operator for OceanBaseOceanBase Diagnostic Tool OceanBase Binlog Service
OceanBase DatabaseOceanBase Cloud ToolsConnectors and MiddlewareLifecycle Support Policy

OceanBase Database Proxy

V4.3.4
  • What is ODP?
  • Installation and deployment
    • Overview
    • Deploy ODP by using obd
    • Deploy ODP by using OCP
    • Deploy ODP by using the CLI
    • Deployment modes
  • Basic operations
  • Configuration parameter
    • View and modify parameters
    • Parameter summary
    • Global parameters
      • automatic_match_work_thread
      • block_thread_num
      • cache_cleaner_clean_interval
      • check_tenant_locality_change
      • client_max_connections
      • client_max_memory_size
      • client_session_id_version
      • client_sock_option_flag_out
      • client_tcp_keepcnt
      • client_tcp_keepidle
      • client_tcp_keepintvl
      • client_tcp_user_timeout
      • cluster_count_high_water_mark
      • cluster_expire_time
      • config_server_refresh_interval
      • congestion_fail_window
      • congestion_failure_threshold
      • congestion_retry_interval
      • connection_diagnosis_option
      • connect_observer_max_retries
      • current_local_config_version
      • default_buffer_water_mark
      • default_inactivity_timeout
      • delay_exit_time
      • delay_update_entry_interval
      • detect_server_timeout
      • digest_sql_length
      • enable_abort_conn_info
      • enable_async_log
      • enable_async_pull_location_cache
      • enable_bad_route_reject
      • enable_binlog_service
      • enable_cached_server
      • enable_causal_order_read
      • enable_client_connection_lru_disconnect
      • enable_client_ip_checkout
      • enable_cluster_checkout
      • enable_compression_protocol
      • enable_congestion
      • enable_connection_diagnosis
      • enable_cpu_isolate
      • enable_cpu_topology
      • enable_extra_prometheus_metric
      • enable_flow_control
      • enable_full_link_trace
      • enable_full_username
      • enable_get_rslist_remote
      • enable_global_ps_cache
      • enable_index_route
      • enable_monitor_stat
      • enable_ob_protocol_v2
      • enable_ob_protocol_v2_with_client
      • enable_obproxy_rpc_service
      • enable_partition_table_route
      • enable_performance_mode
      • enable_pl_route
      • enable_primary_zone
      • enable_prometheus
      • enable_proxy_scramble
      • enable_qa_mode
      • enable_qos
      • enable_report_session_stats
      • enable_reroute
      • enable_sequence_prefetch
      • enable_sharding
      • enable_single_leader_node_routing
      • enable_standby
      • enable_stat
      • enable_strict_kernel_release
      • enable_strict_stat_time
      • enable_sync_all_stats
      • enable_syslog_file_compress
      • enable_syslog_wf
      • enable_trace
      • enable_trace_stats
      • enable_trans_detail_stats
      • enable_transaction_internal_routing
      • enable_xa_route
      • fetch_proxy_bin_random_time
      • fetch_proxy_bin_timeout
      • flow_consumer_reenable_threshold
      • flow_event_queue_threshold
      • flow_high_water_mark
      • flow_low_water_mark
      • grpc_client_num
      • grpc_thread_num
      • hot_upgrade_exit_timeout
      • hot_upgrade_failure_retries
      • hot_upgrade_rollback_timeout
      • idc_list_refresh_interval
      • ignore_local_config
      • internal_cmd_mem_limited
      • ip_listen_mode
      • ldg_info_refresh_interval
      • listen_port
      • local_bound_ip
      • local_bound_ipv6_ip
      • log_cleanup_interval
      • log_dir_size_threshold
      • log_file_percentage
      • long_async_task_timeout
      • max_log_file_size
      • max_syslog_file_count
      • max_syslog_file_time
      • mem_leak_check_class_name
      • mem_leak_check_mod_name
      • metadb_server_state_refresh_interval
      • min_congested_connect_timeout
      • min_keep_congestion_interval
      • monitor_cost_ms_unit
      • monitor_item_limit
      • monitor_item_max_idle_period
      • monitor_log_level
      • monitor_stat_dump_interval
      • monitor_stat_high_threshold
      • monitor_stat_low_threshold
      • monitor_stat_middle_threshold
      • need_convert_vip_to_tname
      • net_accept_threads
      • net_config_poll_timeout
      • normal_pl_update_threshold
      • obproxy_config_server_url
      • obproxy_sys_password
      • partition_location_expire_relative_time
      • prometheus_cost_ms_unit
      • prometheus_listen_port
      • prometheus_sync_interval
      • protocol_diagnosis_level
      • proxy_hot_upgrade_check_interval
      • proxy_id
      • proxy_info_check_interval
      • proxy_local_cmd
      • proxy_mem_limited
      • qa_mode_mock_public_cloud_slb_addr
      • qos_stat_clean_interval
      • qos_stat_item_limit
      • refresh_idc_list
      • refresh_json_config
      • refresh_rslist
      • request_buffer_length
      • rootservice_list
      • rpc_client_net_write_timeout
      • routing_cache_mem_limited
      • rpc_async_task_thread_num
      • rpc_client_net_read_timeout
      • rpc_enable_direct_expire_route_entry
      • rpc_enable_congestion
      • rpc_enable_force_srv_black_list
      • rpc_enable_global_index
      • rpc_enable_parallel_handler
      • rpc_enable_reroute
      • rpc_enable_retry_request_info_log
      • rpc_force_srv_black_list
      • rpc_max_response_batch_size
      • rpc_listen_port
      • rpc_max_request_batch_size
      • rpc_max_server_table_entry_num
      • rpc_net_timeout_base
      • rpc_redis_operation_timeout
      • rpc_redis_default_user_name
      • rpc_request_timeout
      • rpc_redis_default_database_name
      • rpc_period_task_interval
      • rpc_request_timeout_delta
      • rpc_server_entry_expire_time
      • rpc_server_net_invalid_time_us
      • rpc_server_net_handler_expire_time
      • rpc_service_mode
      • rpc_server_net_max_pending_request
      • rpc_srv_session_pool_inactive_timeout
      • rpc_sub_request_isolation_mode
      • rpc_support_key_partition_shard_request
      • rpc_sub_request_weight
      • sequence_entry_expire_time
      • sequence_fail_retry_count
      • sequence_prefetch_threshold
      • server_detect_fail_threshold
      • server_detect_mode
      • server_detect_refresh_interval
      • server_protocol
      • server_routing_mode
      • server_state_refresh_interval
      • server_tcp_init_cwnd
      • server_tcp_keepcnt
      • server_tcp_keepidle
      • server_tcp_keepintvl
      • server_tcp_user_timeout
      • shard_scan_thread_num
      • short_async_task_timeout
      • skip_proxy_sys_private_check
      • skip_proxyro_check
      • slow_proxy_process_time_threshold
      • slow_transaction_time_threshold
      • sock_option_flag_out
      • sock_packet_mark_out
      • sock_packet_tos_out
      • sock_recv_buffer_size_out
      • sock_send_buffer_size_out
      • sql_table_cache_expire_relative_time
      • sql_table_cache_mem_limited
      • sqlaudit_mem_limited
      • stack_size
      • stat_dump_interval
      • stat_table_sync_interval
      • syslog_io_bandwidth_limit
      • syslog_level
      • task_thread_num
      • tenant_location_valid_time
      • tunnel_request_size_threshold
      • username_separator
      • work_thread_num
      • xflush_log_level
    • Multi-level parameters
      • binlog_service_ip
      • compression_algorithm
      • enable_check_cluster_name
      • enable_client_ssl
      • enable_cloud_full_username
      • enable_read_write_split
      • enable_rpc_throttle
      • enable_server_ssl
      • enable_standby_read_write_split
      • enable_transaction_split
      • enable_weak_reroute
      • mysql_version
      • ob_max_read_stale_time
      • obproxy_force_parallel_query_dop
      • obproxy_read_consistency
      • obproxy_read_only
      • observer_query_timeout_delta
      • observer_sys_password
      • observer_sys_password1
      • proxy_idc_name
      • proxy_primary_zone_name
      • proxy_route_policy
      • proxy_tenant_name
      • query_digest_time_threshold
      • read_stale_retry_interval
      • rootservice_cluster_name
      • route_diagnosis_level
      • rpc_request_throttle_waiting_time
      • rpc_throttle_limit_qps_qa
      • route_target_replica_type
      • rpc_throttle_trigger_percentage
      • slow_query_time_threshold
      • sql_firewall_config
      • ssl_attributes
      • target_db_server
      • weakread_weight_zone
  • Connection management
    • Principles
    • Session status synchronization
    • Configure a globally unique client session ID
    • Client session
    • Server session
    • Network connection
  • Data routing
    • Factors affecting data routing
    • ODP routing
    • Intra-tenant routing
      • Overview
      • IP address-based routing
      • Partitioned table-based routing for strong-consistency reads
      • Global index table-based routing for strong-consistency reads
      • Replicated table-based routing for strong-consistency reads
      • Primary zone-based routing for strong-consistency reads
      • Strategy-based routing
      • Distributed transaction routing
      • Rerouting
      • Forcible routing
      • Weight-based load-balanced routing
    • Automatic routing to the primary/standby tenants
    • Read/Write separation
    • Follower latency threshold
    • Function partition key routing
      • Overview
      • String functions
      • Numeric calculation functions
      • Date calculation functions
      • FAQ
    • Character set-based routing
    • Partitioning key types supported for routing by ODP
  • Logs
    • Overview
    • obproxy_diagnosis.log
    • obproxy_digest.log
    • obproxy_error.log
    • obproxy_slow.log
    • obproxy_stat.log
    • obproxy.log
  • Commands
    • Overview
    • Dedicated ODP commands
      • ALTER
      • KILL
      • ping
      • SHOW
        • SHOW
        • SHOW PROXYPS
    • Compatible MySQL commands
      • BINLOG
      • KILL
      • SHOW PROCESSLIST
      • SHOW RELAYLOG EVENTS
      • SHOW SLAVE HOSTS
  • High availability mechanism
    • Overview
    • High availability of ODP services
    • High availability of OceanBase Database
    • High availability testing
  • OBKV
    • RPC service port
    • Throttling
  • Security and protocols
  • Operation and maintenance
    • Troubleshooting logic
    • Performance analysis
    • Show Trace
    • Routing diagnostics
      • Overview
      • Obtain diagnostic information
      • Diagnostic point troubleshooting
        • Overview
        • SQL_PARSE
        • ROUTE_INFO
        • LOCATION_CACHE_LOOKUP
        • ROUTINE_ENTRY_LOOKUP_DONE
        • FETCH_TABLE_RELATED_DATA
        • TABLE_ENTRY_LOOKUP_DONE
        • EXPR_PARSE
        • CALC_ROWID
        • RESOLVE_TOKEN
        • RESOLVE_EXPR
        • CALC_PARTITION_ID
        • PARTITION_ID_CALC_DONE
        • PARTITION_ENTRY_LOOKUP_DONE
        • ROUTE_POLICY
        • CONGESTION_CONTROL
        • RETRY
        • HANDLE_RESPONSE
      • Examples
    • Memory leak diagnostics
    • Connection diagnostics
    • Prometheus monitoring
    • SQL firewall
  • Release Notes
    • Versioning rules
    • Enterprise Edition
      • V4.3
        • ODP Enterprise Edition V4.3.4
        • ODP Enterprise Edition V4.3.3
        • ODP Enterprise Edition V4.3.2
        • ODP Enterprise Edition V4.3.1
        • ODP Enterprise Edition V4.3.0
      • V4.2
        • ODP Enterprise Edition V4.2.3
        • ODP Enterprise Edition V4.2.2
        • ODP Enterprise Edition V4.2.1
      • V4.1
        • ODP Enterprise Edition V4.1.0
      • V4.0
        • ODP Enterprise Edition V4.0.0
      • V3.2
        • ODP Enterprise Edition V3.2.11
        • ODP Enterprise Edition V3.2.3.5
    • Community Edition
      • V4.3
        • ODP Enterprise Edition V4.3.4
        • ODP Community Edition V4.3.3
        • ODP Community Edition V4.3.2
        • ODP Community Edition V4.3.1
      • V4.2
        • ODP Community Edition V4.2.3
        • ODP Community Edition V4.2.1
        • ODP Community Edition V4.2.0
      • V4.1
        • ODP Community Edition V4.1.0
      • V4.0
        • ODP Community Edition V4.0.0

Download PDF

Document Feedback
  1. Documentation Center
  2. OceanBase Database Proxy
  3. V4.3.4

ODP Enterprise Edition V4.3.4

Last Updated:2026-09-04 08:23:04

V4.3.4
Version information
Overview
Key features
Compatibility changes
Supported OceanBase Database versions
Bug fixes

V4.3.4

Version information

  • Release date: April 18, 2025

  • Version: V4.3.4

  • RPM version: obproxy-4.3.4.0-262025041714

Overview

OceanBase Database Proxy (ODP) V4.3.4 is the latest 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. When serving as an SQL proxy, ODP of the new version supports routing for Asian character sets and their collations, as well as function partitioning key-based routing to enhance its core routing capabilities. It optimizes the routing strategies for replicated tables and requests sized more than 4 KB to reduce remote routing and improve the routing performance. It also provides a global parameter for determining the communication protocol used between ODP and OceanBase Database, which simplifies protocol configuration. When serving as a remote procedure call (RPC) proxy, ODP of the new version supports accurate routing for single-partition tables and obtaining partition information in an atomic manner, enhancing the routing capabilities. It also improves the congestion handling process and asynchronously obtains ls_id information to further improve system stability.

Key features

SQL proxy

Routing capability improvement
  • Support for more character sets

    ODP V4.3.4 is fully compatible with Asian character sets, including ujis, euckr, cp932, and eucjpms, as well as the corresponding collations.

  • Routing optimization for replicated tables involved in joins

    For a request initiated to a replicated table, ODP randomly routes the request to any OBServer node. If the replicated table is the first table in a join, ODP may route the request to a non-leader node of a non-replicated table based on the random routing strategy. This results in remote routing, which compromises the overall performance of the request. ODP V4.3.4 optimizes routing for replicated tables involved in joins. Based on the new routing strategy, if ODP finds that the first table in a join is a replicated table, ODP will not perform random routing but use the resulting table of the join for routing. This avoids performance issues caused by remote routing.

  • Support for function partitioning key-based routing

    ODP partition calculation does not support scenarios where a function expression is used in the partitioning key during table creation, which can result in partition calculation failure and inaccurate routing. ODP V4.3.4 identifies the table creation information in the metadata of partitioned tables, and parses and converts partitioning keys that contain a function expression, to ensure the accuracy of partition calculation.

  • Support for routing of requests sized more than 4 KB

    In ODP of versions earlier than V4.3.4, the default value of the request_buffer_length parameter is 4KB. For a request that is sized more than 4 KB and whose routing information has not been parsed, ODP will choose random routing due to a parsing failure. This may lead to remote routing, significantly compromising the performance. This issue frequently occurs in actual business scenarios. In ODP V4.3.4, the default value of the request_buffer_length parameter is changed from 4KB to 8KB to ensure that requests sized more than 4 KB can also be accurately routed.

Simplified protocol configuration

ODP provides two parameters enable_ob_protocol_v2 and enable_compression_protocol for controlling the protocol used between ODP and OceanBase Database. After ODP supports performance optimization for the standalone mode in V4.3.1, the protocol to be used between ODP and OceanBase Database is automatically selected and no longer controlled by parameters. As a result, the protocol in use can be different from that specified by parameters, making it difficult for O&M engineers to identify the protocol during troubleshooting, thereby complicating the troubleshooting process. ODP V4.3.4 provides a new global parameter server_protocol for determining the protocol used between ODP and OceanBase Database, simplifying protocol configuration.

RPC proxy

Routing capability improvement
  • Accurate routing supported for single-partition tables

    ODP cannot accurately determine whether a table is partitioned or non-partitioned. When RPC proxy routing is used for a single-partition table, an error may be returned during routing. ODP V4.3.4 optimizes the routing logic. It performs routing retries based on the error information provided by the OBServer node, so as to implement accurate routing for single-partition tables.

  • Partition information obtained in an atomic manner

    ODP obtains table information through multiple internal requests without atomicity. This cannot ensure consistency between the obtained table information. If any inconsistency occurs, partition calculation will fail. ODP V4.3.4 optimizes the table information acquisition logic. It verifies the obtained table information in real time and performs a retry when necessary to ensure routing accuracy.

Improved congestion handling process

When serving as an RPC proxy, ODP can asynchronously process RPC requests. During processing, it maintains network isolation between the network of the request processing state machine and the OBServer nodes, ensuring that the status changes of the OBServer nodes are independent of the congestion handling process. RPC requests are forwarded and processed strictly based on the calculated partition information and corresponding routing information, which results in incomplete high availability (HA) capabilities. To address this issue, ODP references its SQL proxy strategies for the congestion handling process, to ensure that the requests are never forwarded to abnormal OBServer nodes under any circumstances.

ls_id information obtained asynchronously

ODP can obtain ls_id information since V4.3.1, which depends on retrieving tablet_id, making SQL processing complex. In addition, ODP needs to query internal tables of the cluster, increasing the load on the sys tenant of the cluster. To address this issue, ODP V4.3.4 splits the ls_id acquisition process into asynchronous steps. For ObTableLSOpRequest requests, ODP V4.3.4 adds the step of asynchronously obtaining tablet_id.

Compatibility changes

Parameter
Change type
Description
server_protocol New The type of the protocol used between ODP and OceanBase Database.
rpc_client_net_read_timeout New The timeout threshold for an RPC client when it reads data from the network.
rpc_client_net_write_timeout New The timeout threshold for an RPC client when it writes data to the network.
request_buffer_length Modified The default value is changed from 4KB to 8KB. In addition, when the size of a client request exceeds the specified threshold, ODP directly forwards the request over a tunnel.
tunnel_request_size_threshold Deprecated This parameter is deprecated and replaced by request_buffer_length since ODP V4.3.4.

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.

ODP V4.3.4 provides multiple new features. We recommend that you use ODP V4.3.4 if your environment relies on the new features, or the LTS version V4.3.1 if otherwise.

Bug fixes

  • Fixed the issue where ODP connects to an incorrect read-only address on AWS, or the client connections to OceanBase Database through ODP on AWS are interrupted.

  • Fixed the issue where ODP fails to parse an SQL statement following a "--" comment when the comment contains a line break.

  • Fixed the issue where the error write clob error is returned when DBMS_LOB.READ times out.

  • Fixed the issue where ODP fails to be started by using an IPv6 address in the Arm architecture.

  • Fixed the issue where, when a partitioned table has no partitioning key, SQL requests are not randomly scattered as expected if a default partition exists.

  • Fixed the issue where, when ODP is used to connect to the cluster during direct load, the error code 4016 is returned if an incorrect cluster name is specified.

  • Fixed the issue where prepared statement (PS) routing is inaccurate when a user variable contains keywords such as value.

  • Fixed the issue where disconnection occurs when a request sized more than 4 KB is parsed again in a transaction.

  • Fixed the issue where no result is returned under the PreparedStatement protocol when OceanBase Protocol 2.0 and the compression protocol are disabled.

  • Fixed the issue where you cannot run the kill query sessionid command in the sys tenant to terminate the execution of an SQL statement in a business tenant.

  • Fixed the issue where inaccurate routing occurs due to a partition information parsing error when the string in the WHERE condition contains the join keyword.

  • Fixed the issue where the error code 4016 is returned during data insertion into a single-partition table when ODP serves as an RPC proxy.

  • Fixed the issue where ODP returns the error code -5627 in manual partition splitting scenarios.

  • Fixed the issue where the error routed to the wrong server is repeatedly returned in the initial phase of a batch INSERT stress test.

  • Fixed the issue where, after the OBServer node is restarted, the client is disconnected and returns an error.

  • Fixed the issue where the error unknown errcode: -10652 is returned when the batch checkAndInsUp operation is performed on the client by using YCSB.

  • Fixed the issue where the error OB_ERR_KV_GLOBAL_INDEX_ROUTE is returned when a global index is used for queries.

  • Fixed the issue where, if ODP returns the error code -5150 for global indexes after migration, the client keeps reconnecting and returning errors.

Previous topic

Versioning rules
Last

Next topic

ODP Enterprise Edition V4.3.3
Next
on this page
V4.3.4
Version information
Overview
Key features
Compatibility changes
Supported OceanBase Database versions
Bug fixes