From fd3296d7729da0a4c5d532229325a0a7c5d17316 Mon Sep 17 00:00:00 2001 From: maosy <630014370@qq.com> Date: Thu, 2 Mar 2023 16:10:30 +0000 Subject: [PATCH] fix incorrectly use while update sys_recovery_scn --- src/rootserver/ob_ls_recovery_reportor.cpp | 5 +++-- src/rootserver/ob_ls_service_helper.cpp | 4 ++-- src/rootserver/ob_primary_ls_service.cpp | 2 +- src/rootserver/ob_tenant_info_report.cpp | 2 +- src/share/ob_tenant_info_proxy.cpp | 3 ++- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/rootserver/ob_ls_recovery_reportor.cpp b/src/rootserver/ob_ls_recovery_reportor.cpp index b9a964e01f..c810486a3c 100644 --- a/src/rootserver/ob_ls_recovery_reportor.cpp +++ b/src/rootserver/ob_ls_recovery_reportor.cpp @@ -56,7 +56,7 @@ int ObLSRecoveryReportor::init() } else if (OB_ISNULL(GCTX.sql_proxy_)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("sql proxy is null", KR(ret)); - } else if (OB_FAIL(create(thread_cnt, "TeRec"))) { + } else if (OB_FAIL(create(thread_cnt, "LSRecRep"))) { LOG_WARN("failed to create tenant recovery stat thread", KR(ret), K(thread_cnt)); } @@ -122,7 +122,8 @@ void ObLSRecoveryReportor::run2() LOG_WARN("not init", KR(ret)); } else { ObThreadCondGuard guard(get_cond()); - const int64_t idle_time = ObTenantRoleTransitionConstants::TENANT_INFO_REFRESH_TIME_US; + //const int64_t idle_time = ObTenantRoleTransitionConstants::TENANT_INFO_REFRESH_TIME_US; + const int64_t idle_time = 500 * 1000; const uint64_t meta_tenant_id = gen_meta_tenant_id(tenant_id_); while (!stop_) { if (OB_ISNULL(GCTX.schema_service_)) { diff --git a/src/rootserver/ob_ls_service_helper.cpp b/src/rootserver/ob_ls_service_helper.cpp index 561ff0b8c2..5bdfd20610 100755 --- a/src/rootserver/ob_ls_service_helper.cpp +++ b/src/rootserver/ob_ls_service_helper.cpp @@ -1793,9 +1793,9 @@ int ObRecoveryLSHelper::report_tenant_sys_recovery_scn_trans_(const share::SCN & } else if (OB_FAIL(tenant_report->get_tenant_info(tenant_info))) { LOG_WARN("failed to get tenant info", KR(ret)); } else if (OB_FAIL(ObAllTenantInfoProxy::update_tenant_sys_recovery_scn_in_trans( - tenant_id_, sys_recovery_scn, true, trans))) { + tenant_id_, sys_recovery_scn, update_sys_recovery_scn, trans))) { LOG_WARN("failed to update tenant sys recovery scn", KR(ret), K(tenant_id_), - K(sys_recovery_scn), K(tenant_info)); + K(sys_recovery_scn), K(tenant_info), K(update_sys_recovery_scn)); } else { //double check sync can not fallback //log will be truncated during the flashback. diff --git a/src/rootserver/ob_primary_ls_service.cpp b/src/rootserver/ob_primary_ls_service.cpp index 237f48af8c..662c1ea255 100755 --- a/src/rootserver/ob_primary_ls_service.cpp +++ b/src/rootserver/ob_primary_ls_service.cpp @@ -72,7 +72,7 @@ void ObPrimaryLSService::do_work() } else if (OB_FAIL(wait_tenant_schema_and_version_ready_(tenant_id_, DATA_VERSION_4_1_0_0))) { LOG_WARN("failed to wait tenant schema version ready", KR(ret), K(tenant_id_), K(DATA_CURRENT_VERSION)); } else { - int64_t idle_time_us = 100 * 1000L; + int64_t idle_time_us = 500 * 1000L; int tmp_ret = OB_SUCCESS; const uint64_t thread_idx = get_thread_idx(); share::schema::ObTenantSchema tenant_schema; diff --git a/src/rootserver/ob_tenant_info_report.cpp b/src/rootserver/ob_tenant_info_report.cpp index 39948d395c..51237bfd82 100755 --- a/src/rootserver/ob_tenant_info_report.cpp +++ b/src/rootserver/ob_tenant_info_report.cpp @@ -64,7 +64,7 @@ void ObTenantInfoReportor::do_work() ret = OB_NOT_INIT; LOG_WARN("not init", K(ret)); } else { - int64_t idle_time_us = 100 * 1000L; + int64_t idle_time_us = 500 * 1000L; while (!has_set_stop()) { ObCurTraceId::init(GCONF.self_addr_); if (is_sys_tenant(tenant_id_)) { diff --git a/src/share/ob_tenant_info_proxy.cpp b/src/share/ob_tenant_info_proxy.cpp index 71188b2f95..ab758bc511 100644 --- a/src/share/ob_tenant_info_proxy.cpp +++ b/src/share/ob_tenant_info_proxy.cpp @@ -833,7 +833,8 @@ int ObAllTenantInfoProxy::update_tenant_sys_recovery_scn_in_trans( "update %s set sys_recovery_scn = %lu ", OB_ALL_TENANT_INFO_TNAME, sys_recovery_scn.get_val_for_inner_table_field()))) { LOG_WARN("failed to assign sql", KR(ret), K(tenant_id), K(sys_recovery_scn), K(sql)); - } else if (update_sync_scn && OB_FAIL(sql.append_fmt(", sync_scn = %lu ", + } else if (update_sync_scn && OB_FAIL(sql.append_fmt(", sync_scn = %lu, replayable_scn = %lu ", + sys_recovery_scn.get_val_for_inner_table_field(), sys_recovery_scn.get_val_for_inner_table_field()))) { LOG_WARN("failed to append sql", KR(ret), K(sys_recovery_scn), K(sql)); } else if (OB_FAIL(trans.write(exec_tenant_id, sql.ptr(), affected_rows))) {