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_)) { 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 {

View File

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

View File

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