gc scheam mgr

This commit is contained in:
obdev
2023-07-14 03:48:28 +00:00
committed by ob-robot
parent 6ee7993ae8
commit 4d8adbc94b

View File

@ -3446,13 +3446,15 @@ int ObMultiVersionSchemaService::try_gc_tenant_schema_mgr(ObSchemaMemMgr *&mem_m
} else { } else {
ObSchemaMgr *eli_schema_mgr = NULL; ObSchemaMgr *eli_schema_mgr = NULL;
uint64_t tenant_id = mem_mgr->get_tenant_id(); uint64_t tenant_id = mem_mgr->get_tenant_id();
bool need_gc_schema_mgr = false;
do { do {
if (OB_FAIL(schema_mgr_cache->try_gc_tenant_schema_mgr(eli_schema_mgr))) { if (OB_FAIL(schema_mgr_cache->try_gc_tenant_schema_mgr(eli_schema_mgr))) {
LOG_WARN("fail to eliminate schema mgr", K(ret), K(tenant_id)); LOG_WARN("fail to eliminate schema mgr", K(ret), K(tenant_id));
} else if (FALSE_IT(need_gc_schema_mgr = OB_NOT_NULL(eli_schema_mgr))) {
} else if (OB_FAIL(mem_mgr->free_schema_mgr(eli_schema_mgr))) { } else if (OB_FAIL(mem_mgr->free_schema_mgr(eli_schema_mgr))) {
LOG_ERROR("free eli schema mgr falied", KR(ret), K(tenant_id)); LOG_ERROR("free eli schema mgr falied", KR(ret), K(tenant_id));
} }
} while (OB_SUCC(ret) && OB_NOT_NULL(eli_schema_mgr)); } while (OB_SUCC(ret) && need_gc_schema_mgr);
if (OB_FAIL(ret)) { if (OB_FAIL(ret)) {
} else if (OB_FAIL(mem_mgr->try_reset_allocator())) { } else if (OB_FAIL(mem_mgr->try_reset_allocator())) {