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.4.0
  • 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
      • connection_pool_mode
      • 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_auto_restart
      • 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_crash_error_log
      • enable_cross_shard_txn
      • 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_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_scan_all_request
      • 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
      • is_need_skip_delay_interval_schema_changed
      • 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_cluster
      • 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
      • rpc_client_net_read_timeout
      • rpc_async_pull_batch_max_size
      • rpc_async_task_thread_num
      • rpc_ctx_expire_time
      • routing_cache_mem_limited
      • rpc_enable_async_analyze
      • rpc_enable_async_pull_batch_tablets
      • rpc_async_pull_batch_max_times
      • rpc_async_pull_batch_wait_interval
      • rpc_enable_direct_expire_route_entry
      • rpc_enable_congestion
      • rpc_enable_lower_case_table_names
      • rpc_enable_global_index
      • rpc_enable_force_srv_black_list
      • rpc_enable_requestsm_info
      • rpc_enable_reroute
      • rpc_enable_parallel_handler
      • rpc_enable_retry_request_info_log
      • rpc_force_use_original_redis_protocol
      • rpc_enable_sub_req_log
      • rpc_force_srv_black_list
      • rpc_listen_port
      • rpc_max_request_batch_size
      • rpc_max_response_batch_size
      • rpc_max_server_table_entry_num
      • rpc_net_timeout_base
      • rpc_partition_calc_max_retries
      • rpc_redis_operation_timeout
      • rpc_request_server_entry_max_retries
      • rpc_request_timeout
      • rpc_request_max_retries
      • rpc_redis_default_database_name
      • rpc_redis_max_monitor_num
      • rpc_period_task_interval
      • rpc_redis_default_user_name
      • rpc_request_retry_waiting_time
      • rpc_server_entry_expire_time
      • rpc_request_timeout_delta
      • rpc_server_net_invalid_time_us
      • rpc_server_net_handler_expire_time
      • rpc_srv_session_pool_inactive_timeout
      • rpc_service_mode
      • rpc_server_net_max_pending_request
      • rpc_sub_request_isolation_mode
      • rpc_support_key_partition_shard_request
      • rpc_sub_request_weight
      • rpc_sub_req_max_retries
      • scan_buffered_rows_warning_threshold
      • 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
      • session_pool_idle_timeout
      • session_pool_reset_interval
      • session_pool_stat_log_interval
      • session_pool_thread_num
      • session_pool_thread_schedule_interval
      • 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
      • table_entry_retry_build_limit
      • 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
      • init_sql
      • 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
    • Session connection pool
  • 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
      • Equality derivation for partition calculation
    • 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
        • KILL GLOBALSESSION
        • KILL PROXYSESSION
      • ping
      • SHOW
        • SHOW
        • SHOW GLOBALSESSION
        • 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
    • Version number rules
    • Enterprise Edition
      • V4.3
        • OceanBase Database Proxy Enterprise Edition V4.3.6
        • OceanBase Database Proxy Enterprise Edition V4.3.5
        • OceanBase Database 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
        • OceanBase Database Proxy Community Edition V4.3.6
        • OceanBase Database Proxy Community Edition V4.3.5
        • OceanBase Database Proxy Community 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.4.0

OceanBase Database Proxy Community Edition V4.3.6

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

V4.3.6
Version information
Version overview
Key features
Compatibility changes
Supported OceanBase Database versions
Known issues
Bug fixes

V4.3.6

Version information

  • Release date: March 3, 2026

  • Version: V4.3.6

  • RPM version: obproxy-ce-4.3.6.1-2

Version overview

ODP V4.3.6 is the latest long-term support (LTS) release in the ODP 4.3.x series. It focuses on stability improvements and core capability upgrades, and is recommended for POC testing and production on cloud and on-premises workloads. For the SQL proxy, it adds support for the Azure ppv2 protocol to improve cloud compatibility; supports logging user logout events to strengthen auditing and operational observability; optimizes memory management, refines fragmentation handling, supports dynamic adjustment when memory limits are exceeded, and further improves CRASH signal interception—significantly improving SQL proxy stability. For the RPC proxy, it adds a kernel-feedback-based routing optimization mechanism to re-route when routing information is inaccurate; supports the new HBase put protocol to improve write performance; adds RPC request lifecycle control, optimizes retry logic and cross-partition sub-request handling, and comprehensively improves RPC proxy reliability and performance.

Key features

SQL proxy

Connection management

Under the Azure ppv2 protocol, PP2_SUBTYPE_AZURE_PRIVATEENDPOINT_LINKID is mapped to tenant information. The new ODP version parses this field to complete the mapping and support the ppv2 protocol on Azure.

Stability improvements

  • Memory optimization

    ODP’s memory management module was reviewed for issues and optimization opportunities; improvements are delivered in this LTS release to improve memory stability, including:

    • Optimizing PS module memory usage that tends to cause fragmentation, avoiding amplification and slow reclamation due to fragmentation.

    • When memory exceeds the limit, supporting dynamic increase of ODP’s memory ceiling via signals, avoiding memory alarms and new connection failures when the limit cannot be raised.

  • Improved CRASH signal interception

    The enable_crash_error_log parameter controls CRASH signal interception. The default is True, allowing interception and stack traces in logs. The parameter supports dynamic changes.

Usability improvements

ODP V4.3.6 can log user logout events. ODP already logs login and abnormal disconnections to obproxy_diagnosis.log, but not normal logouts. The new version also logs normal exits (COM_QUIT) and unifies disconnect log formats for complete login/logout auditing.

RPC proxy

Routing improvements

When routing information is inaccurate, ODP V4.3.6 can re-route based on feedback from OceanBase Database. OceanBase supports distributed execution so that RPC may still succeed even if routing is wrong, but ODP previously did not refresh caches without feedback, causing sustained RPC overhead and performance degradation. With distributed routing enabled, tablet_id must be filled and clients must add an option_flag field; OceanBase uses option_flag and tablet_id together to determine whether distributed capability is enabled.

Connection management

ODP V4.3.6 supports the new HBase put protocol. In HBase scenarios, write performance was limited largely by protocol parsing, routing, and conversion between the model layer and TableAPI. HBase put payloads are relatively fixed and simple. The new version adds a fast path in the OBKV stack for put operations, skipping layered conversion so writes proceed immediately after parsing, improving write performance.

Stability improvements

  • RPC request lifecycle control

    An RPC request involves client_net_handler, request_sm, and server_net_handler. ODP assigns a STATE to each; the request is released only when all three satisfy release conditions. If interaction with OceanBase leaves states unsatisfied, requests could wait in memory for a long time until timers fire. The new version adds lifecycle control to address this.

  • Optimized RPC request retry logic

    When table schema changes (for example, TRUNCATE), ODP asynchronously refreshes the location cache and may still use stale cache during refresh, causing excessive retries to OBServer, retries ending before refresh completes, or sub-request retries that block tablet_id recalculation. The new version improves the retry flow to mitigate these stale-cache issues.

  • Improved handling of cross-partition sub-requests in OBKV

    ODP may split cross-partition RPC into sub-requests. In error paths, parent work could couple with each sub-request’s sub_request_sm, harming stability. The new version decouples parent/child and state machines for simpler call chains, better performance and stability, and easier troubleshooting.

Usability improvements

ODP V4.3.6 can control whether sub-requests print Slow RPC Query and obproxy_digest logs. Previously, slow and digest logging ignored sub-requests, though they are full RPC requests and may need slow logging. To avoid excessive logging when there are many sub-requests, rpc_enable_sub_req_log was added.

Compatibility changes

Parameter changes

Parameter
Change type
Description
connection_diagnosis_option Changed A third bit controls whether normal login/logout is logged; the default changes from 3 to 7.

Note

Under heavy short-connection workloads, logging login and logout may reduce performance by up to about 4%. In performance-sensitive short-connection scenarios, set connection_diagnosis_option to 3 and protocol_diagnosis_level to 0 to avoid the impact.

enable_crash_error_log Changed Effective mode changes from ODP restart to dynamic.
rpc_enable_sub_req_log New Controls whether qualifying OBKV sub-requests are printed in obproxy_slow.log and obproxy_digest.log.

Supported OceanBase Database versions

OceanBase Database 4.x, 3.x, and earlier are supported. Recommendations by database version:

  • For OceanBase Database 3.x and earlier, use ODP 3.x.

  • For OceanBase Database 4.x, use the latest ODP V4.3.6 (LTS).

Known issues

Clusters with globally unique client session IDs enabled (client_session_id_version=2) that run stably for more than seven days may experience connection failures. Upgrade to a build that fixes this issue.

Bug fixes

  • Fixed slow memory release after disconnect when text PS prepare pushed ODP memory above 90%.

  • Fixed ODP startup failure when /etc/hosts lacked IP hostname entries.

  • Fixed negative odp_current_session when logging in with service_name, causing false OCP connection-limit alarms.

  • Fixed memory leaks during system or user variable synchronization when using COM_RESET_CONNECTION or COM_CHANGE_USER.

  • Fixed array overflow when getaddrinfo returned more than 64 IPs, leading to abnormal ODP cores.

  • Fixed inaccurate routing for DML when column names contained #.

  • Fixed ODP core due to stack buffer overrun after changing digest_sql_length.

  • Fixed client hangs when ODP sent multiple requests slowly while OceanBase returned quickly and ODP mishandled responses.

  • Fixed ODP core when SQL contained the status keyword.

  • Fixed ODP hang when using service_name with SQL payload over 16 MB.

  • Fixed fixed 30s timeout for show proxymemory objpool; under memory-leak diagnostics, blocking useful output.

  • Fixed stack overflow when parsing round(9.99,-9.9), round(9.99,-10), and round(99.99,-20).

  • Fixed core when non-partitioned table requests hit OB_SCHEMA_ERROR, retry treated the table as single-partition, and part info was empty.

  • Fixed ODP core for large requests at buffer limit combined with xa_start variable sync.

  • Fixed inability for the proxysys tenant to connect when ODP memory was over limit.

  • Fixed routing errors when partition metadata could not be fetched on multi-column partitioned tables.

  • Fixed error 4016 when tablet_id fetch exceeded retry count after partition split.

  • Fixed errors when PS close or reset did not synchronize session state.

  • Fixed errors when TRUNCATE changed routing during request execution but cache was not refreshed before retry completed.

  • Fixed occasional failure to disable distributed routing when thread-local cache was not cleared.

  • Fixed sub-partition requests not being cleaned when OceanBase could not respond and ODP could not read results due to memory limits, preventing request memory reclamation.

  • Fixed error 4016 for cross-partition requests when TRUNCATE ran mid-execution.

  • Fixed RPC port isolation with rpc_enable_congestion off where performance did not recover within 2 minutes.

  • Fixed error 4016 for over 2 minutes when a node went offline with rpc_enable_congestion off.

  • Fixed possible memory leak when part_num was 0 while fetching table_entry on single-partition routing.

  • Fixed error 4016 when PS close synchronized session state but OceanBase returned incorrect transaction-end flags.

Previous topic

ODP Enterprise Edition V3.2.3.5
Last

Next topic

OceanBase Database Proxy Community Edition V4.3.5
Next
on this page
V4.3.6
Version information
Version overview
Key features
Compatibility changes
Supported OceanBase Database versions
Known issues
Bug fixes