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