From 350df65bbf9b9d153e210785e0855ebfa87459a8 Mon Sep 17 00:00:00 2001 From: pe-99y <315053752@qq.com> Date: Mon, 18 Sep 2023 04:40:20 +0000 Subject: [PATCH] [CP] Disable das retry for rescan. --- src/sql/das/ob_das_task.h | 6 +- src/sql/das/ob_data_access_service.cpp | 6 +- src/sql/engine/table/ob_table_scan_op.cpp | 4 +- test/obproxy_test_config | 10 +++ tools/deploy/mysql_test/psmalltest.py | 90 +++++++++++++++++++++++ 5 files changed, 107 insertions(+), 9 deletions(-) create mode 100644 test/obproxy_test_config create mode 100644 tools/deploy/mysql_test/psmalltest.py diff --git a/src/sql/das/ob_das_task.h b/src/sql/das/ob_das_task.h index 45c25bc3ae..b6ebaecbb4 100644 --- a/src/sql/das/ob_das_task.h +++ b/src/sql/das/ob_das_task.h @@ -211,8 +211,8 @@ public: ObIDASTaskResult *get_op_result() const { return op_result_; } void set_op_result(ObIDASTaskResult *op_result) { op_result_ = op_result; } - bool get_gi_above_and_rescan() { return gi_above_and_rescan_; } - void set_gi_above_and_rescan(bool flag) { gi_above_and_rescan_ = flag; } + bool get_inner_rescan() { return inner_rescan_; } + void set_inner_rescan(bool flag) { inner_rescan_ = flag; } protected: int start_das_task(); @@ -236,7 +236,7 @@ protected: uint16_t in_part_retry_ : 1; uint16_t in_stmt_retry_ : 1; uint16_t need_switch_param_ : 1; //need to switch param in gi table rescan, this parameter has been deprecated - uint16_t gi_above_and_rescan_ : 1; //For partition wise nlj, We need to disable das task retry. + uint16_t inner_rescan_ : 1; //disable das retry for inner_rescan uint16_t status_reserved_ : 11; }; }; diff --git a/src/sql/das/ob_data_access_service.cpp b/src/sql/das/ob_data_access_service.cpp index e2575ef3cf..8e3cf6621b 100644 --- a/src/sql/das/ob_data_access_service.cpp +++ b/src/sql/das/ob_data_access_service.cpp @@ -262,12 +262,12 @@ int ObDataAccessService::retry_das_task(ObDASRef &das_ref, ObIDASTaskOp &task_op "retry_cnt", location_router.get_retry_cnt(), KPC(task_op.get_tablet_loc())); if (need_retry && - task_op.get_gi_above_and_rescan() && + task_op.get_inner_rescan() && location_router.get_retry_cnt() > 100) { //hard code retry 100 times. - //When das scan under px gi with transfor case, we need to disable das retry. + // disable das retry for rescan. need_retry = false; retry_continue = false; - LOG_INFO("[DAS RETRY] The PX task has retried too many times and has exited the DAS retry process"); + LOG_INFO("[DAS RETRY] The rescan task has retried too many times and has exited the DAS retry process"); } if (need_retry) { task_op.in_part_retry_ = true; diff --git a/src/sql/engine/table/ob_table_scan_op.cpp b/src/sql/engine/table/ob_table_scan_op.cpp index 4239886707..fdb3df857a 100644 --- a/src/sql/engine/table/ob_table_scan_op.cpp +++ b/src/sql/engine/table/ob_table_scan_op.cpp @@ -1598,9 +1598,7 @@ int ObTableScanOp::local_iter_rescan() } } if (OB_SUCC(ret)) { - if (MY_SPEC.gi_above_) { - scan_op->set_gi_above_and_rescan(true); - } + scan_op->set_inner_rescan(true); if (OB_FAIL(cherry_pick_range_by_tablet_id(scan_op))) { LOG_WARN("prune query range by partition id failed", K(ret)); } else if (OB_FAIL(init_das_group_range(0, group_size_))) { diff --git a/test/obproxy_test_config b/test/obproxy_test_config new file mode 100644 index 0000000000..43dbf47ed9 --- /dev/null +++ b/test/obproxy_test_config @@ -0,0 +1,10 @@ +# 开关(合法值 yum/wget wget只允许出现与非主流分支 各大主流开发分支请使用yum方式) +obproxy_switch=yum + +# obproxy yum源配置 +obproxy_yum_branch=current +obproxy_yum_version=4.2.1.0 +obproxy_yum_release=20230712162726.el7 + +# 配置obproxy url +wget_url=xxx diff --git a/tools/deploy/mysql_test/psmalltest.py b/tools/deploy/mysql_test/psmalltest.py new file mode 100644 index 0000000000..8b3f493e8f --- /dev/null +++ b/tools/deploy/mysql_test/psmalltest.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +psmall_test=[ +"alter.alter_log_archive_option", +"expr.collation_expr", +"expr.expr_ceil", +"expr.expr_floor", +"expr.expr_instr", +"expr.expr_locate", +"expr.expr_nseq", +"expr.expr_position", +"expr.func_equal", +"expr.func_length", +"expr.func_regexp", +"global_index.global_index_select", +"hierarchical_query.hierarchical_basic_mysql", +"inner_table.all_virtual_data_type", +"inner_table.all_virtual_data_type_class", +"inner_table.all_virtual_engine", +"inner_table.all_virtual_sys_parameter_stat", +"inner_table.all_virtual_upgrade_inspection", +"inner_table.character_sets", +"inner_table.global_status", +"inner_table.global_variables", +"inner_table.inner_table_overall", +"inner_table.session_status", +"inner_table.session_variables", +"inner_table.table_constraints", +"inner_table.tenant_virtual_statname", +"meta_info.meta_build_in_func_test", +"meta_info.meta_const", +"meta_info.meta_func", +"meta_info.meta_func_ceil", +"meta_info.meta_func_floor", +"meta_info.meta_test_func_return_type", +"optimizer.estimate_cost", +"plan_cache.plan_cache_multi_query", +"plan_cache.plan_cache_select_list", +"px.sql_audit", +"static_engine.explicit_cast", +"static_engine.expr_assign", +"static_engine.expr_char_length", +"static_engine.expr_collation", +"static_engine.expr_concat", +"static_engine.expr_conv", +"static_engine.expr_date", +"static_engine.expr_datediff", +"static_engine.expr_des_hex_str", +"static_engine.expr_dump", +"static_engine.expr_empty_arg", +"static_engine.expr_field", +"static_engine.expr_get_sys_var", +"static_engine.expr_get_user_var", +"static_engine.expr_is", +"static_engine.expr_is_serving_tenant", +"static_engine.expr_length", +"static_engine.expr_location", +"static_engine.expr_lower_upper", +"static_engine.expr_nextval", +"static_engine.expr_not", +"static_engine.expr_pad", +"static_engine.expr_part_hash", +"static_engine.expr_part_key", +"static_engine.expr_regexp", +"static_engine.expr_regexp_func", +"static_engine.expr_replace", +"static_engine.expr_sign", +"static_engine.expr_str", +"static_engine.expr_substr", +"static_engine.expr_substring_index", +"static_engine.expr_sys_privilege_check", +"static_engine.expr_time_diff", +"static_engine.expr_todays", +"static_engine.expr_unhex", +"static_engine.expr_unix_timestamp", +"static_engine.merge_set", +"static_engine.static_engine_hash", +"subquery.order_by_subquery", +"transformer.transformer_add_limit_for_union", +"trx.serializable_constrains", +"type_date.add_timestamp_column", +"type_date.datetime_java", +"type_date.daylight_saving_time", +"type_date.expr_date_add_sub", +"type_date.test_select_usec_to_time", +"type_date.timefuncnull", +"type_date.type_create_time", +"type_date.type_modify_time", +"type_date.updaterowkeymoditime", +"window_function.farm" +]