standby create ls in trans
This commit is contained in:
@ -969,12 +969,14 @@ int ObTenantLSInfo::gather_all_ls_info_()
|
||||
if (OB_ISNULL(sql_proxy_) || OB_ISNULL(tenant_schema_)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("sql proxy or tenant schema is null", KR(ret), KP(tenant_schema_), KP(sql_proxy_));
|
||||
} else {
|
||||
const uint64_t tenant_id = tenant_schema_->get_tenant_id();
|
||||
} else if (OB_ISNULL(trans_)) {
|
||||
if (OB_FAIL(status_operator_.get_all_ls_status_by_order(
|
||||
tenant_id, status_info_array, *sql_proxy_))) {
|
||||
LOG_WARN("failed to get all ls status by order", KR(ret), K(tenant_id));
|
||||
tenant_id_, status_info_array, *sql_proxy_))) {
|
||||
LOG_WARN("failed to get all ls status by order", KR(ret), K(tenant_id_), KP(trans_));
|
||||
}
|
||||
} else if (OB_FAIL(status_operator_.get_all_ls_status_by_order(
|
||||
tenant_id_, status_info_array, *trans_))) {
|
||||
LOG_WARN("failed to get all ls status by order", KR(ret), K(tenant_id_), KP(trans_));
|
||||
}
|
||||
if (OB_FAIL(ret)) {
|
||||
} else {
|
||||
|
||||
@ -130,7 +130,8 @@ class ObTenantLSInfo
|
||||
public:
|
||||
ObTenantLSInfo(ObMySQLProxy *sql_proxy,
|
||||
const share::schema::ObTenantSchema *tenant_schema,
|
||||
const uint64_t tenant_id)
|
||||
const uint64_t tenant_id,
|
||||
common::ObMySQLTransaction *trans = NULL)
|
||||
: sql_proxy_(sql_proxy),
|
||||
tenant_schema_(tenant_schema),
|
||||
status_operator_(),
|
||||
@ -138,7 +139,8 @@ public:
|
||||
unit_group_array_(),
|
||||
ls_group_array_(),
|
||||
primary_zone_(),
|
||||
tenant_id_(tenant_id) {}
|
||||
tenant_id_(tenant_id),
|
||||
trans_(trans) {}
|
||||
|
||||
virtual ~ObTenantLSInfo(){};
|
||||
void reset();
|
||||
@ -193,6 +195,7 @@ private:
|
||||
ObLSGroupInfoArray ls_group_array_;
|
||||
ObArray<common::ObZone> primary_zone_;
|
||||
uint64_t tenant_id_;
|
||||
ObMySQLTransaction *trans_;
|
||||
};
|
||||
|
||||
class ObLSServiceHelper
|
||||
|
||||
@ -856,7 +856,7 @@ int ObRecoveryLSService::create_new_ls_(const share::ObLSAttr &ls_attr,
|
||||
ret = OB_TENANT_NOT_EXIST;
|
||||
LOG_WARN("tenant not exist", KR(ret), K(tenant_id_));
|
||||
} else {
|
||||
ObTenantLSInfo tenant_stat(GCTX.sql_proxy_, tenant_schema, tenant_id_);
|
||||
ObTenantLSInfo tenant_stat(GCTX.sql_proxy_, tenant_schema, tenant_id_, &trans);
|
||||
ObLSFlag ls_flag = ls_attr.get_ls_flag();
|
||||
if (OB_FAIL(ObLSServiceHelper::create_new_ls_in_trans(ls_attr.get_ls_id(),
|
||||
ls_attr.get_ls_group_id(), ls_attr.get_create_scn(),
|
||||
|
||||
Reference in New Issue
Block a user