[CP] alter server_cpu_quota_max/server_cpu_quota_min dynamic_effective

This commit is contained in:
zhjc1124
2023-09-21 07:40:31 +00:00
committed by ob-robot
parent 968d8f9fca
commit 36af52b8d8
6 changed files with 54 additions and 24 deletions

View File

@ -683,24 +683,39 @@ int ObMultiTenant::create_hidden_sys_tenant()
{
int ret = OB_SUCCESS;
const uint64_t tenant_id = OB_SYS_TENANT_ID;
omt::ObTenant *tenant;
omt::ObTenant *tenant = nullptr;
ObTenantMeta meta;
if (OB_FAIL(construct_meta_for_hidden_sys(meta))) {
LOG_ERROR("fail to construct meta", K(ret));
} else if (OB_FAIL(create_tenant(meta, true /* write_slog */))) {
LOG_ERROR("create hidden sys tenant failed", K(ret));
}
return ret;
}
int ObMultiTenant::update_hidden_sys_tenant()
{
int ret = OB_SUCCESS;
const uint64_t tenant_id = OB_SYS_TENANT_ID;
omt::ObTenant *tenant = nullptr;
ObTenantMeta meta;
if (OB_FAIL(get_tenant(tenant_id, tenant))) { // sys tenant will not be deleted
LOG_WARN("failed to get sys tenant", K(ret));
} else if (OB_FAIL(construct_meta_for_hidden_sys(meta))) {
LOG_ERROR("fail to construct meta", K(ret));
} else {
if (OB_FAIL(get_tenant(tenant_id, tenant))) {
ret = OB_SUCCESS;
if (OB_FAIL(create_tenant(meta, true/* write_slog */))) {
LOG_ERROR("create hidden sys tenant failed", K(ret));
}
LOG_INFO("finish create hidden sys", KR(ret));
} else if(tenant->is_hidden()){
if (OB_SUCC(ret) && !(meta.unit_ == tenant->get_unit())) {
if (OB_FAIL(GCTX.omt_->update_tenant_unit_no_lock(meta.unit_))) {
LOG_WARN("fail to update tenant unit", K(ret), K(tenant_id));
}
}
LOG_INFO("sys tenant has been created, no need create hidden sys");
int64_t bucket_lock_idx = -1;
bool lock_succ = false;
if (OB_FAIL(bucket_lock_.wrlock(bucket_lock_idx = get_tenant_lock_bucket_idx(tenant_id)))) {
LOG_WARN("fail to try_wrlock for update tenant unit", K(ret), K(tenant_id), K(bucket_lock_idx));
} else if (FALSE_IT(lock_succ = true)) {
} else if (!tenant->is_hidden() || meta.unit_ == tenant->get_unit()) {
// do nothing
} else if (OB_FAIL(update_tenant_unit_no_lock(meta.unit_))) {
LOG_WARN("fail to update tenant unit", K(ret), K(tenant_id));
}
if (lock_succ) {
bucket_lock_.unlock(bucket_lock_idx);
}
}
return ret;