From e8d485cbfad84b22c9e0cc11a7ef7b56300e0695 Mon Sep 17 00:00:00 2001 From: maosy <630014370@qq.com> Date: Tue, 7 Nov 2023 07:39:42 +0000 Subject: [PATCH] =?UTF-8?q?[CP]=20=E4=BF=AE=E5=A4=8D=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E8=BF=87=E7=A8=8B=E4=B8=AD=E7=94=A8=E6=88=B7=E7=A7=9F=E6=88=B7?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=8E=A8=E5=88=B0=E6=8C=87=E5=AE=9A=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=B8=8D=E9=9C=80=E8=A6=81=E6=A3=80=E6=9F=A5balance?= =?UTF-8?q?=5Ftask?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ob_tenant_role_transition_service.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/rootserver/ob_tenant_role_transition_service.cpp b/src/rootserver/ob_tenant_role_transition_service.cpp index 0dc124f08..6e63f00a0 100644 --- a/src/rootserver/ob_tenant_role_transition_service.cpp +++ b/src/rootserver/ob_tenant_role_transition_service.cpp @@ -502,17 +502,27 @@ int ObTenantRoleTransitionService::get_tenant_ref_scn_(const share::SCN &sync_sc int ObTenantRoleTransitionService::wait_ls_balance_task_finish_() { int ret = OB_SUCCESS; - uint64_t compat_version = 0; if (OB_FAIL(check_inner_stat())) { LOG_WARN("error unexpected", KR(ret), K(tenant_id_), KP(sql_proxy_), KP(rpc_proxy_)); } else { + uint64_t meta_compat_version = 0; + uint64_t user_compat_version = 0; + ObGlobalStatProxy global_proxy(*sql_proxy_, gen_meta_tenant_id(tenant_id_)); - if (OB_FAIL(global_proxy.get_current_data_version(compat_version))) { + ObGlobalStatProxy user_global_proxy(*sql_proxy_, tenant_id_); + if (OB_FAIL(global_proxy.get_current_data_version(meta_compat_version))) { LOG_WARN("failed to get current data version", KR(ret), K(tenant_id_)); - } else if (compat_version < DATA_VERSION_4_2_0_0) { + } else if (meta_compat_version < DATA_VERSION_4_2_0_0) { //if tenant version is less than 4200, no need check //Regardless of the data_version change and switchover concurrency scenario + LOG_INFO("data version is smaller than 4200, no need check", K(meta_compat_version)); + } else if (OB_FAIL(user_global_proxy.get_current_data_version(user_compat_version))) { + LOG_WARN("failed to get current data version", KR(ret), K(tenant_id_)); + } else if (user_compat_version < DATA_VERSION_4_2_0_0) { + //if tenant version is less than 4200, no need check + //Ignore the situation where the accurate version is not obtained because the readable_scn is behind. + LOG_INFO("data version is smaller than 4200, no need check", K(user_compat_version)); } else { bool is_finish = false; ObBalanceTaskHelper ls_balance_task;