patch 4.0
This commit is contained in:
100
src/rootserver/ob_rootservice_util_checker.cpp
Normal file
100
src/rootserver/ob_rootservice_util_checker.cpp
Normal file
@ -0,0 +1,100 @@
|
||||
/**
|
||||
* Copyright (c) 2021 OceanBase
|
||||
* OceanBase CE is licensed under Mulan PubL v2.
|
||||
* You can use this software according to the terms and conditions of the Mulan PubL v2.
|
||||
* You may obtain a copy of Mulan PubL v2 at:
|
||||
* http://license.coscl.org.cn/MulanPubL-2.0
|
||||
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
* See the Mulan PubL v2 for more details.
|
||||
*/
|
||||
|
||||
#define USING_LOG_PREFIX RS
|
||||
#include "ob_rootservice_util_checker.h"
|
||||
|
||||
using namespace oceanbase;
|
||||
using namespace oceanbase::rootserver;
|
||||
|
||||
ObRootServiceUtilChecker::ObRootServiceUtilChecker(volatile bool &stop)
|
||||
: inited_(false),
|
||||
stop_(stop),
|
||||
migrate_unit_finish_checker_(stop),
|
||||
alter_locality_finish_checker_(stop)
|
||||
{
|
||||
}
|
||||
|
||||
ObRootServiceUtilChecker::~ObRootServiceUtilChecker()
|
||||
{
|
||||
}
|
||||
|
||||
int ObRootServiceUtilChecker::init(
|
||||
ObUnitManager &unit_mgr,
|
||||
ObServerManager &server_mgr,
|
||||
ObZoneManager &zone_mgr,
|
||||
obrpc::ObCommonRpcProxy &common_rpc_proxy,
|
||||
common::ObAddr &self,
|
||||
share::schema::ObMultiVersionSchemaService &schema_service,
|
||||
common::ObMySQLProxy &sql_proxy,
|
||||
share::ObLSTableOperator &lst_operator)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
if (OB_UNLIKELY(inited_)) {
|
||||
ret = OB_INIT_TWICE;
|
||||
LOG_WARN("init twice", KR(ret));
|
||||
} else if (OB_FAIL(migrate_unit_finish_checker_.init(
|
||||
unit_mgr,
|
||||
server_mgr,
|
||||
zone_mgr,
|
||||
schema_service,
|
||||
sql_proxy,
|
||||
lst_operator))) {
|
||||
LOG_WARN("fail to init migrate unit finish checker", KR(ret));
|
||||
} else if (OB_FAIL(alter_locality_finish_checker_.init(
|
||||
schema_service,
|
||||
common_rpc_proxy,
|
||||
self,
|
||||
unit_mgr,
|
||||
server_mgr,
|
||||
zone_mgr,
|
||||
sql_proxy,
|
||||
lst_operator))) {
|
||||
LOG_WARN("fail to init alter locality finish checker", KR(ret));
|
||||
} else {
|
||||
inited_ = true;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObRootServiceUtilChecker::rootservice_util_check()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
if (OB_UNLIKELY(!inited_)) {
|
||||
ret = OB_NOT_INIT;
|
||||
LOG_WARN("not init", KR(ret));
|
||||
} else {
|
||||
int tmp_ret = OB_SUCCESS;
|
||||
// migrate unit finish checker
|
||||
if (OB_SUCCESS != (tmp_ret = migrate_unit_finish_checker_.check())) {
|
||||
LOG_WARN("fail to check migrate unit finish", KR(tmp_ret));
|
||||
}
|
||||
// alter locality finish checker
|
||||
if (OB_SUCCESS != (tmp_ret = alter_locality_finish_checker_.check())) {
|
||||
LOG_WARN("fail to check alter locality finish", KR(tmp_ret));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObRootServiceUtilChecker::check_stop() const
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
if (OB_UNLIKELY(!inited_)) {
|
||||
ret = OB_NOT_INIT;
|
||||
LOG_WARN("ObRootServiceUtilChecker not init", KR(ret));
|
||||
} else if (stop_) {
|
||||
ret = OB_CANCELED;
|
||||
LOG_WARN("ObRootServiceUtilChecker stopped", KR(ret), K(stop_));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
Reference in New Issue
Block a user