From 0a68dd023b131c5fd4c2cf2de46a080f3369ef87 Mon Sep 17 00:00:00 2001 From: obdev Date: Mon, 6 Mar 2023 09:41:09 +0000 Subject: [PATCH] deprecate check_majority_integrated in major merge --- .../ob_major_merge_progress_checker.cpp | 148 +----------------- .../freeze/ob_major_merge_progress_checker.h | 15 -- 2 files changed, 1 insertion(+), 162 deletions(-) diff --git a/src/rootserver/freeze/ob_major_merge_progress_checker.cpp b/src/rootserver/freeze/ob_major_merge_progress_checker.cpp index 9bc225eb3..b38103fb8 100644 --- a/src/rootserver/freeze/ob_major_merge_progress_checker.cpp +++ b/src/rootserver/freeze/ob_major_merge_progress_checker.cpp @@ -378,9 +378,7 @@ int ObMajorMergeProgressChecker::check_tablet( LOG_WARN("fail to get ls info", KR(ret), K_(tenant_id), K(ls_id)); } } - if (FAILEDx(check_majority_integrated(schema_guard, tablet_info, ls_info))) { - LOG_WARN("fail to check majority integrated", KR(ret), K(tablet_info), K(ls_info)); - } else if (OB_FAIL(check_tablet_compaction_scn(all_progress, global_broadcast_scn, tablet_info, ls_info))) { + if (FAILEDx(check_tablet_compaction_scn(all_progress, global_broadcast_scn, tablet_info, ls_info))) { LOG_WARN("fail to check data version", KR(ret), K(tablet_info), K(ls_info)); } } @@ -485,109 +483,6 @@ int ObMajorMergeProgressChecker::check_tablet_compaction_scn( return ret; } -int ObMajorMergeProgressChecker::check_majority_integrated( - share::schema::ObSchemaGetterGuard &schema_guard, - const ObTabletInfo &tablet_info, - const share::ObLSInfo &ls_info) -{ - int ret = OB_SUCCESS; - int64_t full_cnt = 0; - int64_t majority = 0; - int64_t all_replica_num = OB_INVALID_COUNT; - int64_t full_replica_num = OB_INVALID_COUNT; - int64_t paxos_replica_num = OB_INVALID_COUNT; - bool is_in_member_list = false; - ObLSReplica::MemberList member_list; - - if (OB_FAIL(get_associated_replica_num(schema_guard, paxos_replica_num, - full_replica_num, all_replica_num, majority))) { - LOG_WARN("fail to get associated replica num", KR(ret), K_(tenant_id)); - } else if (OB_FAIL(get_member_list(ls_info, member_list))) { // member_list of ls leader replica - LOG_WARN("fail to get member_list", KR(ret), K_(tenant_id), K(ls_info)); - } else { - const int64_t tablet_replica_cnt = tablet_info.replica_count(); - int64_t paxos_cnt = 0; - const ObLSReplica *ls_r = nullptr; - FOREACH_CNT_X(r, tablet_info.get_replicas(), OB_SUCC(ret)) { - if (OB_ISNULL(r)) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("invalid replica", KR(ret), K_(tenant_id), K(tablet_info)); - } else if (OB_FAIL(is_replica_in_ls_member_list(*r, member_list, is_in_member_list))) { - LOG_WARN("fail to check if replica is in ls member_list", KR(ret), K_(tenant_id), - KPC(r), K(member_list)); - } else if (!is_in_member_list) { - // Ignore tablet replicas that are not in member list. E.g., after ls replica migration, - // source ls meta has been deleted, but source tablet meta has not been deleted yet. - LOG_INFO("ignore this tablet replica, sicne it is not in ls member_list", K_(tenant_id), - KPC(r), K(member_list)); - } else if (OB_FAIL(ls_info.find(r->get_server(), ls_r))) { - LOG_WARN("fail to find", KR(ret), "addr", r->get_server()); - } else if (OB_UNLIKELY(nullptr == ls_r)) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("invalid ls replica", KR(ret), KPC(r)); - } else if (ObReplicaStatus::REPLICA_STATUS_NORMAL != ls_r->get_replica_status()) { - // nothing - } else if (ObReplicaTypeCheck::is_paxos_replica_V2(ls_r->get_replica_type())) { - paxos_cnt++; - if (REPLICA_TYPE_FULL == ls_r->get_replica_type()) { - full_cnt++; - } - } - } - - if (OB_SUCC(ret)) { - if ((full_cnt <= 0) || (paxos_cnt < majority)) { - ret = OB_ROOT_NOT_INTEGRATED; - if (tablet_replica_cnt < majority) { - LOG_WARN("tablet replica meta may create too late, wait next round check", KR(ret), - K(tablet_replica_cnt), K(majority), K(paxos_cnt), K(ls_info.get_replicas())); - } else { - LOG_ERROR("not integrated", K(full_cnt), K(paxos_cnt), K(majority), K(all_replica_num), - K(full_replica_num), K(paxos_replica_num), K(tablet_info), K(ls_info.get_replicas())); - } - } - } - } - - return ret; -} - -int ObMajorMergeProgressChecker::get_associated_replica_num( - share::schema::ObSchemaGetterGuard &schema_guard, - int64_t &paxos_replica_num, - int64_t &full_replica_num, - int64_t &all_replica_num, - int64_t &majority) -{ - int ret = OB_SUCCESS; - - const ObTenantSchema *tenant_schema = nullptr; - if (OB_FAIL(schema_guard.get_tenant_info(tenant_id_, tenant_schema))) { - LOG_WARN("fail to get tenant info", KR(ret), K_(tenant_id)); - } else if (OB_UNLIKELY(nullptr == tenant_schema)) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("tenant_schema is null", KR(ret), K_(tenant_id)); - } else if (OB_FAIL(tenant_schema->get_paxos_replica_num(schema_guard, paxos_replica_num))) { - LOG_WARN("fail to get table paxos replica num", KR(ret), K_(tenant_id)); - } else { - full_replica_num = tenant_schema->get_full_replica_num(); - all_replica_num = tenant_schema->get_all_replica_num(); - } - - if (OB_FAIL(ret)) { - } else if (OB_UNLIKELY(paxos_replica_num <= 0) - || OB_UNLIKELY(full_replica_num <= 0) - || OB_UNLIKELY(all_replica_num <= 0)) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("unexpected replica num", KR(ret), K(paxos_replica_num), - K(full_replica_num), K(all_replica_num)); - } else { - majority = rootserver::majority(paxos_replica_num); - } - - return ret; -} - int ObMajorMergeProgressChecker::check_verification( const volatile bool &stop, const bool is_primary_service, @@ -624,47 +519,6 @@ int ObMajorMergeProgressChecker::check_verification( return ret; } -int ObMajorMergeProgressChecker::get_member_list( - const share::ObLSInfo &ls_info, - share::ObLSReplica::MemberList &member_list) const -{ - int ret = OB_SUCCESS; - const ObLSReplica *ls_leader_replica = nullptr; - if (IS_NOT_INIT) { - ret = OB_NOT_INIT; - LOG_WARN("not init", KR(ret), K_(tenant_id)); - } else if (OB_FAIL(ls_info.find_leader(ls_leader_replica))) { - LOG_WARN("fail to find ls leader replica", KR(ret), K_(tenant_id), K(ls_info)); - } else if (OB_ISNULL(ls_leader_replica)) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("ls leader replica is null", KR(ret), K_(tenant_id), K(ls_info)); - } else { - member_list = ls_leader_replica->get_member_list(); - } - return ret; -} - -int ObMajorMergeProgressChecker::is_replica_in_ls_member_list( - const share::ObTabletReplica &replica, - const ObLSReplica::MemberList &member_list, - bool &is_in_member_list) const -{ - int ret = OB_SUCCESS; - is_in_member_list = false; - if (IS_NOT_INIT) { - ret = OB_NOT_INIT; - LOG_WARN("not init", KR(ret), K_(tenant_id)); - } else { - for (int i = 0; i < member_list.count(); ++i) { - if (replica.get_server() == member_list.at(i).get_server()) { - is_in_member_list = true; - break; - } - } - } - return ret; -} - int ObMajorMergeProgressChecker::mark_uncompacted_tables_as_verified( const ObIArray &uncompacted_tables) { diff --git a/src/rootserver/freeze/ob_major_merge_progress_checker.h b/src/rootserver/freeze/ob_major_merge_progress_checker.h index ead6df038..e9fdf4334 100644 --- a/src/rootserver/freeze/ob_major_merge_progress_checker.h +++ b/src/rootserver/freeze/ob_major_merge_progress_checker.h @@ -169,21 +169,6 @@ private: const share::SCN &global_broadcast_scn, const share::ObTabletInfo &tablet, const share::ObLSInfo &ls_info); - int check_majority_integrated(share::schema::ObSchemaGetterGuard &schema_guard, - const share::ObTabletInfo &tablet_info, - const share::ObLSInfo &ls_info); - - int get_associated_replica_num(share::schema::ObSchemaGetterGuard &schema_guard, - int64_t &paxos_replica_num, - int64_t &full_replica_num, - int64_t &all_replica_num, - int64_t &majority); - // get member_list of ls leader replica - int get_member_list(const share::ObLSInfo &ls_info, - share::ObLSReplica::MemberList &member_list) const; - int is_replica_in_ls_member_list(const share::ObTabletReplica &replica, - const share::ObLSReplica::MemberList &member_list, - bool &is_in_member_list) const; int mark_uncompacted_tables_as_verified(const common::ObIArray &uncompacted_tables); void reset_uncompacted_tablets();