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 ServiceOceanBase DataPilot

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 ServiceOceanBase DataPilot
OceanBase DatabaseOceanBase Cloud ToolsConnectors and MiddlewareLifecycle Support Policy

OceanBase Database Proxy

V4.3.3
  • 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
    • Configuration items
    • 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_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_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_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
      • routing_cache_mem_limited
      • rpc_async_task_thread_num
      • rpc_async_pull_batch_max_size
      • rpc_async_pull_batch_max_times
      • rpc_async_pull_batch_wait_interval
      • rpc_ctx_expire_time
      • rpc_enable_async_analyze
      • rpc_enable_async_pull_batch_tablets
      • rpc_enable_congestion
      • rpc_enable_direct_expire_route_entry
      • rpc_enable_global_index
      • rpc_enable_force_srv_black_list
      • rpc_enable_parallel_handler
      • rpc_enable_reroute
      • rpc_enable_retry_request_info_log
      • rpc_force_srv_black_list
      • rpc_listen_port
      • rpc_max_request_batch_size
      • rpc_max_response_batch_size
      • rpc_net_timeout_base
      • rpc_max_server_table_entry_num
      • rpc_redis_operation_timeout
      • rpc_redis_default_database_name
      • rpc_period_task_interval
      • rpc_redis_default_user_name
      • rpc_request_timeout
      • rpc_redis_max_monitor_num
      • rpc_request_max_retries
      • rpc_request_retry_waiting_time
      • rpc_request_server_entry_max_retries
      • rpc_server_entry_expire_time
      • rpc_request_timeout_delta
      • rpc_server_net_invalid_time_us
      • rpc_server_net_handler_expire_time
      • rpc_server_net_max_pending_request
      • rpc_srv_session_pool_inactive_timeout
      • rpc_service_mode
      • 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_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
      • 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
  • 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.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 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.3

ODP Community Edition V4.3.3

Last Updated:2026-10-15 10:04:10

Version location
Key features
Compatibility changes
  • Version: V4.3.3

  • RPM version: obproxy-ce-4.3.3.0-5

Version location

ODP 4.3.3 is the latest version of ODP 4.3.x. It is recommended for use in POC testing and production environments for both cloud and on-premises businesses. The SQL proxy has been enhanced with new capabilities for read/write separation between primary and standby databases, allowing cloud users to achieve read/write separation using a single connection string. This improves the overall functionality of primary/standby database products. Additionally, the routing capabilities have been optimized for scenarios such as replication table routing and weak read routing within transactions, meeting the routing needs for special tables and specific scenarios. Support has been added for more character sets and collations, including utf16le, sjis, dec8, utf8mb4_german2_ci, and HKSCS. Furthermore, the routing accuracy for expressions such as to_days() and timestamp has been enhanced. Monitoring information, including PS cache and routing details, has been enriched to improve diagnostic usability. Multiple protocol-related issues have been fixed to enhance stability. For the RPC proxy, different authentication logic is supported for cloud and on-premises users, and the Auth authentication mechanism has been improved. New OBKV-Redis protocol commands have been added, and their processing logic has been optimized to improve performance. ODP 4.3.3 is now fully compatible with Rocky Linux 9.

Key features

SQL proxy

Read/write separation between primary and standby databases

Currently, cloud platforms support business disaster recovery across regions for primary/standby clusters, but they lack the flexibility of ODP. In addition to database switching, other scenarios require switching domain names. As the number of primary/standby database users in the cloud increases, it is necessary to enhance the capabilities of primary/standby database products to support read/write separation and primary/standby switching using a single connection string.

ODP V4.3.3 introduces the read/write separation feature between primary and standby databases. It allows users to automatically log in to local primary/standby clusters without changing the login connection string and supports automatic read/write separation across primary/standby clusters. To reduce bandwidth costs across regions, a compression protocol is used between ODP and OceanBase Database.

The read/write separation feature between primary and standby databases is applicable only to the primary/standby tenant architecture of OceanBase Database 4.x and supports the eventual consistency of weak read requests.

Enhanced routing capabilities

OceanBase Database Proxy (ODP) V4.3.3 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. The SQL proxy allows an on-cloud user to enable read/write splitting between the primary and standby tenants by using one connection string, thus enriching the capabilities of the primary and standby tenants. Routing capabilities are improved in the following ways: replicated table-based routing and routing for weak-consistency reads within a transaction are optimized to meet your requirements for routing of special tables in specific scenarios; more character sets and collations such as utf16le, sjis, dec8, utf8mb4_german2_ci, and HKSCS are supported; accurate routing is realized for the TO_DAYS() and TIMESTAMP expressions. Abundant monitoring information such as the prepared statement (PS) cache and routing information improves the usability of diagnostics. Several protocol-related issues are fixed to improve stability. ODP V4.3.3 is fully compatible with Rocky Linux 9.

ODP V4.3.3 supports the correct routing of SQL requests in the utf16le, sjis, dec8, utf8mb4_german2_ci, and HKSCS character sets and collations.

  • Optimized replication table routing

    Replication tables are suitable for read-heavy scenarios. Queries and reads on local replicas of replication tables perform best. Therefore, replication tables generally use random routing. However, within a transaction, if a replication table has been modified, random routing to a Follower node may result in reading outdated data. To address this, ODP V4.3.3 optimizes the routing strategy by routing replication table query requests to the Leader node when a replication table has been modified within a transaction.

  • Optimized weak read routing within transactions

    In a transaction, if a write statement or SELECT FOR UPDATE statement has been executed, subsequent read statements that want to read the uncommitted modifications of the current transaction must use strong read routing, where ODP routes the read request to the Leader node. If the read request is set to weak read, it will be randomly routed to a Follower node. ODP V4.3.3 optimizes this logic by routing weak read statements after write requests in a transaction using the strong read strategy, i.e., routing to the Leader node.

  • Expanded support for accurate routing of more expressions: to_days() function, timestamp 'xxxxx' expression, and not in expression.

BINLOG support
  • Compatibility with log_bin_basename variable and support for show master logs syntax

  • Support for configuring login credentials for the binglog service

Enhanced diagnostic usability
  • PS cache monitoring

    In the PS protocol scenario, if clients use a large amount of PS cache without closing it promptly, it can occupy a significant amount of memory and potentially lead to performance issues. These issues are also difficult to troubleshoot. To improve the efficiency of troubleshooting PS protocol issues, ODP adds PS cache information to Prometheus monitoring, including the number and size of allocated PS caches. It periodically outputs this monitoring data externally and supports the internal SHOW PROXYPS command for SQL-based queries of PS-related SQL, parsing results, and memory usage, enhancing usability.

    For more information about the SHOW PROXYPS command, see SHOW PROXYPS.

  • Routing information monitoring

    ODP adds statistics on various routing scenarios to Prometheus monitoring, including the number of requests for routing within transactions, secondary routing, random routing after failed partition calculation, and routing requests for global index tables. This helps in troubleshooting routing issues.

RPC proxy

  • Enhanced OBKV-Redis commands

Compatibility changes

  • Fixed the issue where a PS cache was not created for a COM_STMT_PREPARE_EXECUTE request.
Parameter
Change type
Description
enable_standby_read_write_split New Specifies whether to enable read/write splitting between the primary and standby tenants. Default value: false. The setting takes effect only for new connections.
enable_check_cluster_name New Specifies whether to verify the cluster name in a three-segment string used for login.
rootservice_cluster_name Modified Specifies the cluster where the standby tenant to which the service name is to be mapped resides when multiple standby tenants exist across multiple clusters.
  • Fixed the issue where COM_STMT_SEND_LONG_DATA requests exceeding 16 MB could not be forwarded.

  • Fixed the issue where ODP could not process two consecutive MySQL packets, leading to request errors.

  • Fixed the issue where ODP would hang after calling the mysql_change_user interface when forwarding the AuthSwitchResponse failed.

  • Fixed the issue where a MySQL 8.0.22 client could not connect to an OceanBase Database instance with a password through ODP.

  • Fixed the issue where ODP did not randomly disperse SQL requests when the partition key was missing in a partitioned table.

  • Fixed the issue where routing was inaccurate when the tablet_id was the same for different tenants in the same cluster.

  • Fixed the issue where remote SQL requests were not routed through distributed transaction routing in the PS protocol.

  • Fixed the issue where a disconnection occurred when a retry failed to validate the distributed transaction routing in an anonymous block.

  • Fixed the issue where the client would hang after the BMSQL test ended, preventing the test from ending normally.

  • Fixed the issue where an error occurred when sending data exceeding 16 MB through the send_long_data method in the GO client.

  • Fixed the issue where routing calculation hangs when the character set or data type is not supported.

  • Fixed the issue where the detected transaction status is inaccurate when a cross-server transaction request handling exception occurs in distributed transaction routing.

  • Fixed the issue where no PS cache is created when a COM_STMT_PREPARE_EXECUTE request is executed.

  • Fixed the issue where an existing prepared statement is dropped by mistake when the PREPARE statement attempts to create a statement with the same name but fails, leading to an error during the execution of the DEALLOCATE PREPARE statement.

  • Fixed the issue where a COM_STMT_SEND_LONG_DATA request exceeding 16 MB in size cannot be forwarded.

  • Fixed the issue where an error is returned because ODP does not support two consecutive requests in the MySQL packet format.

  • Fixed the issue where the driver hangs after calling the mysql_change_user() operation when ODP fails to forward the AuthSwitchResponse packet.

  • Fixed the issue where a MySQL 8.0.22 client fails to connect to OceanBase Database with a password from ODP.

  • Fixed the issue where ODP does not randomly distribute SQL requests when the partitioning key of a partitioned table is missing.

  • Fixed the issue where routing is inaccurate when the tablet IDs of partitioned tables of different tenants in one cluster are the same.

  • Fixed the issue where SQL requests are executed in remote mode because distributed transaction routing is not enabled for routing requests when the PreparedStatement and PrepareExecute protocols are enabled.

  • Fixed the issue where distributed transaction routing for SQL requests in anonymous blocks fails, causing a disconnection after retry validation failure.

  • Fixed the issue where the client hangs after the BenchmarkSQL test is completed.

  • Fixed the issue where an error is returned when the GO client sends data larger than 16 MB through a send_long_data request.

Previous topic

ODP Enterprise Edition V3.2.3.5
Last

Next topic

ODP Community Edition V4.3.2
Next
on this page
Version location
Key features
Compatibility changes