OceanBase logo

OceanBase

A unified distributed database ready for your transactional, analytical, and AI workloads.

Product Overview
DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Resources

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS

OceanBase Cloud

OceanBase Database

Tools

Connectors and Middleware

QUICK START

OceanBase Cloud

OceanBase Database

BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Company

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

International - English
中国站 - 简体中文
日本 - 日本語
Sign In
Start on Cloud

OceanBase

A unified distributed database ready for your transactional, analytical, and AI workloads.

Product Overview
DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS
OceanBase CloudOceanBase Database
ToolsConnectors and Middleware
QUICK START
OceanBase CloudOceanBase Database
BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

Start on Cloud
编组
All Products
    • Databases
    • iconOceanBase Database
    • iconOceanBase Cloud
    • iconOceanBase Tugraph
    • iconInteractive Tutorials
    • iconOceanBase Best Practices
    • Tools
    • iconOceanBase Cloud Platform
    • iconOceanBase Migration Service
    • iconOceanBase Developer Center
    • iconOceanBase Migration Assessment
    • iconOceanBase Admin Tool
    • iconOceanBase Loader and Dumper
    • iconOceanBase Deployer
    • iconKubernetes operator for OceanBase
    • iconOceanBase Diagnostic Tool
    • iconOceanBase Binlog Service
    • Connectors and Middleware
    • iconOceanBase Database Proxy
    • iconEmbedded SQL in C for OceanBase
    • iconOceanBase Call Interface
    • iconOceanBase Connector/C
    • iconOceanBase Connector/J
    • iconOceanBase Connector/ODBC
    • iconOceanBase Connector/NET
icon

OceanBase Database Proxy

V4.3.3

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

Download PDF

What is ODP? Deployment modes Deploy ODP by using OCP Overview Deploy ODP by using the CLI Deploy ODP by using obd Basic operations Parameter summary View and modify parameters automatic_match_work_thread 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_keepidle client_tcp_user_timeout cluster_count_high_water_mark congestion_fail_window congestion_failure_threshold current_local_config_version default_inactivity_timeout delay_update_entry_interval digest_sql_length enable_async_log enable_binlog_service enable_cached_server enable_congestion enable_connection_diagnosis enable_extra_prometheus_metric enable_flow_control enable_full_username enable_get_rslist_remote enable_global_ps_cache enable_index_route enable_monitor_stat enable_performance_mode enable_primary_zone enable_prometheus enable_qa_mode enable_qos enable_reroute enable_single_leader_node_routing enable_standby enable_stat enable_sync_all_stats enable_syslog_file_compress enable_syslog_wf enable_trace fetch_proxy_bin_random_time fetch_proxy_bin_timeout flow_event_queue_threshold flow_low_water_mark grpc_thread_num hot_upgrade_failure_retries hot_upgrade_rollback_timeout ignore_local_config ip_listen_mode listen_port local_bound_ip log_dir_size_threshold log_file_percentage max_log_file_size max_syslog_file_time metadb_server_state_refresh_interval monitor_cost_ms_unit monitor_item_limit monitor_item_max_idle_period monitor_stat_high_threshold monitor_stat_middle_threshold need_convert_vip_to_tname normal_pl_update_threshold partition_location_expire_relative_time prometheus_listen_port protocol_diagnosis_level proxy_hot_upgrade_check_interval proxy_id qa_mode_mock_public_cloud_slb_addr qos_stat_item_limit refresh_idc_list rpc_enable_congestion rpc_enable_direct_expire_route_entry rpc_enable_global_index rpc_enable_retry_request_info_log rpc_force_srv_black_list rpc_net_timeout_base rpc_redis_operation_timeout rpc_server_entry_expire_time rpc_server_net_invalid_time_us rpc_server_net_handler_expire_time rpc_server_net_max_pending_request rpc_sub_request_isolation_mode rpc_support_key_partition_shard_request rpc_sub_request_weight sequence_entry_expire_time sequence_prefetch_threshold server_detect_fail_threshold server_detect_mode server_routing_mode
OceanBase logo

The Unified Distributed Database for the AI Era.

Follow Us
Products
OceanBase CloudOceanBase EnterpriseOceanBase Community EditionOceanBase seekdb
Resources
DocsBlogLive DemosTraining & CertificationTicket
Company
About OceanBaseTrust CenterLegalPartnerContact Us
Follow Us

© OceanBase 2026. All rights reserved

Cloud Service AgreementPrivacy PolicySecurity
Contact Us
Document Feedback
  1. Documentation Center
  2. OceanBase Database Proxy
  3. V4.3.3
iconOceanBase Database Proxy
V 4.3.3
  • V 4.3.6
  • V 4.3.4
  • V 4.3.3
  • V 4.3.2
  • V 4.3.1
  • V 4.3.0
  • V 4.2.3
  • V 4.2.2
  • V 4.2.0 and earlier

Examples

Last Updated:2026-04-14 01:41:30  Updated
share
What is on this page
Example 1: PS/PL statement call
Example 2: Partitioned table query
Inaccurate partitioned table-based routing because partitioning key values are not provided
Inaccurate partitioned table-based routing when partitioning key values are calculated by using an unsupported expression
Strategy-based routing

folded

share

This topic provides several examples to describe how to use the routing diagnostics feature in MySQL mode.

Note

  • For information about diagnostic points, see Overview.

  • The examples assume that route_diagnosis_level is set to 4.

Example 1: PS/PL statement call

If it is difficult to find the actually executed statement when a PS call is inaccurately routed, you can view the corresponding diagnostic logs.

[2023-09-19 18:48:49.079458] [106700][Y0-00007FD892AB64E0] [ROUTE]((*route_diagnosis=
Trans Current Query:"execute stmt"
Route Prompts
--------------
> ROUTE_INFO
  [INFO] Will do table partition location lookup to decide which OBServer to route to
> ROUTE_POLICY
  [INFO] Will route to table's partition leader replica(10.10.10.1:4001) using non route policy because query for STRONG read
Route Plan
--------------
> SQL_PARSE:{cmd:"COM_QUERY", table:"t0"}
> ROUTE_INFO:{route_info_type:"USE_PARTITION_LOCATION_LOOKUP"}
> LOCATION_CACHE_LOOKUP:{mode:"oceanbase"}
  > TABLE_ENTRY_LOOKUP_DONE:{table:"t0", table_id:"500078", table_type:"USER TABLE", partition_num:64, entry_from_remote:false}
  > PARTITION_ID_CALC_START:{}
    > EXPR_PARSE:{col_val:"=88888888,=1111111"}
    > RESOLVE_EXPR:{part_range:"[88888888 ; 88888888]", sub_part_range:"[1111111 ; 1111111]"}
      > RESOLVE_TOKEN:{token_type:"TOKEN_INT_VAL", resolve:"BIGINT:88888888", token:"88888888"}
      > RESOLVE_TOKEN:{token_type:"TOKEN_INT_VAL", resolve:"BIGINT:1111111", token:"1111111"}
    > CALC_PARTITION_ID:{part_description:"partition by hash(INT<binary>) partitions 8 subpartition by hash(INT<binary>) partitions 8"}
  > PARTITION_ID_CALC_DONE:{partition_id:200073, level:2, partitions:"(p0sp7)", parse_sql:"prepare stmt from 'insert into t0 values(88888888,1111111,9999999)'"}
  > PARTITION_ENTRY_LOOKUP_DONE:{leader:"10.10.10.1:4001", entry_from_remote:false}
> ROUTE_POLICY:{chosen_route_type:"ROUTE_TYPE_LEADER"}
> CONGESTION_CONTROL:{svr_addr:"10.10.10.1:4001"}

You can find the output of the executed statement in the parse_sql field of the diagnostic information of the PARTITION_ID_CALC_DONE diagnostic point.

Example 2: Partitioned table query

Inaccurate partitioned table-based routing because partitioning key values are not provided

Assume that t0 is a subpartitioned table and the executed select * from t0 where c1=1 statement is inaccurately routed. Run the following command for routing diagnostics:

obclient> EXPLAIN ROUTE select * from t0 where c1=1\G

The output is as follows:

Trans Current Query:"select * from t0 where c1=1"
Route Prompts
--------------
> ROUTE_INFO
  [INFO] Will do table partition location lookup to decide which OBServer to route to
> PARTITION_ID_CALC_DONE
  [WARN] Fail to use partition key value to calculate sub part idx
Route Plan
--------------
> SQL_PARSE:{cmd:"COM_QUERY", table:"t0"}
> ROUTE_INFO:{route_info_type:"USE_PARTITION_LOCATION_LOOKUP"}
> LOCATION_CACHE_LOOKUP:{mode:"oceanbase"}
  > TABLE_ENTRY_LOOKUP_DONE:{table:"t0", table_id:"500078", table_type:"USER TABLE", partition_num:64, entry_from_remote:false}
  > PARTITION_ID_CALC_START:{}
  > EXPR_PARSE:{col_val:"c1=1"}
  > RESOLVE_EXPR:{part_range:"[1 ; 1]", sub_part_range:"(MIN ; MAX)always true"}
    > RESOLVE_TOKEN:{token_type:"TOKEN_INT_VAL", resolve:"BIGINT:1", token:"1"}
  > CALC_PARTITION_ID:{error:-4002, part_description:"partition by hash(INT<binary>) partitions 8 subpartition by hash(INT<binary>) partitions 8"}
> PARTITION_ID_CALC_DONE:{error:-4002, partition_id:-1, level:2, partitions:"(p1sp-1)"}

Check the diagnostic result.

  1. The PARTITION_ID_CALC_DONE [WARN] Fail to use partition key value to calculate sub part idx information in Route Prompts indicates that subpartition location calculation fails.

  2. Check whether relevant information exists near PARTITION_ID_CALC_DONE in Remote Plan.

  3. The diagnostic information at the diagnostic point RESOLVE_EXPR:{part_range:"[1 ; 1]", sub_part_range:"(MIN ; MAX)always true"} indicates that the subpartition range is MIN:MAX. Therefore, the subpartition location cannot be determined.

  4. It can be deemed that subpartitioning key values are not provided in the Trans Current Query:"select * from t0 where c1=1" statement.

Inaccurate partitioned table-based routing when partitioning key values are calculated by using an unsupported expression

Assume that t0 is a partitioned table and the executed select * from t0 where c1=abs(-100.123); statement is inaccurately routed. View the corresponding diagnostic log.

[2023-09-19 19:43:11.029616] [106683][Y0-00007FD890E544E0] [ROUTE]((*route_diagnosis=
Trans Current Query:"select * from t0 where c1=abs(-100.123)"
Route Prompts
--------------
> ROUTE_INFO
  [INFO] Will do table partition location lookup to decide which OBServer to route to
> RESOLVE_TOKEN
  [WARN] Not support to resolve expr func(abs)
Route Plan
--------------
> SQL_PARSE:{cmd:"COM_QUERY", table:"t0"}
> ROUTE_INFO:{route_info_type:"USE_PARTITION_LOCATION_LOOKUP"}
> LOCATION_CACHE_LOOKUP:{mode:"oceanbase"}
  > TABLE_ENTRY_LOOKUP_DONE:{table:"t0", table_id:"500078", table_type:"USER TABLE", partition_num:64, entry_from_remote:false}
  > PARTITION_ID_CALC_START:{}
    > EXPR_PARSE:{col_val:"c1=abs"}
    > RESOLVE_EXPR:{error:-5055, part_range:"(MIN ; MAX)always true", sub_part_range:"(MIN ; MAX)always true"}
      > RESOLVE_TOKEN:{error:-5055, token_type:"TOKEN_FUNC", token:"abs"}
    > PARTITION_ID_CALC_DONE:{error:-5055, partition_id:-1, level:2, partitions:"(p-1sp-1)"}
> ROUTE_INFO:{route_info_type:"USE_CACHED_SESSION", svr_addr:"10.10.10.1:4001"}
> CONGESTION_CONTROL:{svr_addr:"10.10.10.1:4001"}
> HANDLE_RESPONSE:{is_parititon_hit:"true", send_action:"SERVER_SEND_REQUEST", state:"CMD_COMPLETE"}
)

In the diagnostic result, the information RESOLVE_TOKEN [WARN] Not support to resolve expr func(abs) indicates that the abs expression fails to be parsed. As a result, the partitioning key values cannot be correctly calculated, leading to inaccurate routing.

Strategy-based routing

Assume that the SELECT 100 - max(round(total / mem_limit * 100)) FROM oceanbase.gv$ob_memstore statement is not routed as expected. Run the following command for routing diagnostics:

obclient> EXPLAIN ROUTE SELECT 100 - max(round(total / mem_limit * 100)) FROM oceanbase.gv$ob_memstore\G

The output is as follows:

*************************** 1. row ***************************
Route Plan:
Trans Current Query:"EXPLAIN ROUTE SELECT 100 - max(round(total / mem_limit * 100)) FROM oceanbase.gv$ob_memstore"
Route Prompts
-----------------
> ROUTE_INFO
  [INFO] Will do table partition location lookup to decide which OBServer to route to
> TABLE_ENTRY_LOOKUP_DONE
  [INFO] Non-partition table will be routed by ROUTE_POLICY
> ROUTE_POLICY
  [INFO] All OBServers treated as the SAME_IDC with OBProxy because 'proxy_idc_name' is not configured
  [INFO] Will route to routing type(NONPARTITION_UNMERGE_LOCAL) matched replica(10.10.10.1:4001) using default route policy MERGE_IDC_ORDER because query for STRONG read

The information [INFO] All OBServers treated as the SAME_IDC with OBProxy because 'proxy_idc_name' is not configured indicates that the proxy_idc_name parameter is not configured. Therefore, ODP considers that all OBServer nodes are in the same IDC. As a result, LDC-based routing becomes invalid.

Previous topic

HANDLE_RESPONSE
Last

Next topic

Memory leak diagnostics
Next
What is on this page
Example 1: PS/PL statement call
Example 2: Partitioned table query
Inaccurate partitioned table-based routing because partitioning key values are not provided
Inaccurate partitioned table-based routing when partitioning key values are calculated by using an unsupported expression
Strategy-based routing