standby create ls in trans

This commit is contained in:
maosy
2023-07-06 02:42:09 +00:00
committed by ob-robot
parent a43f5a770a
commit a8269e0e9e
3 changed files with 12 additions and 7 deletions

View File

@ -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 {

View File

@ -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

View File

@ -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(),