[BUG.FIX] fix alloc hash node -4013 for pinned set

This commit is contained in:
Tyshawn
2023-05-22 04:22:36 +00:00
committed by ob-robot
parent 6b3f3631fd
commit 4f762fb2b0

View File

@ -135,6 +135,7 @@ int ObTenantMetaMemMgr::init()
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
lib::ObMemAttr mem_attr(tenant_id_, "MetaAllocator", ObCtxIds::META_OBJ_CTX_ID); lib::ObMemAttr mem_attr(tenant_id_, "MetaAllocator", ObCtxIds::META_OBJ_CTX_ID);
lib::ObMemAttr other_attr(tenant_id_, "T3MOtherMem");
const int64_t bucket_num = cal_adaptive_bucket_num(); const int64_t bucket_num = cal_adaptive_bucket_num();
const int64_t pin_set_bucket_num = common::hash::cal_next_prime(DEFAULT_BUCKET_NUM); const int64_t pin_set_bucket_num = common::hash::cal_next_prime(DEFAULT_BUCKET_NUM);
if (OB_UNLIKELY(is_inited_)) { if (OB_UNLIKELY(is_inited_)) {
@ -149,12 +150,12 @@ int ObTenantMetaMemMgr::init()
} else if (OB_FAIL(tablet_map_.init(bucket_num, tenant_id_, "TabletMap", TOTAL_LIMIT, HOLD_LIMIT, } else if (OB_FAIL(tablet_map_.init(bucket_num, tenant_id_, "TabletMap", TOTAL_LIMIT, HOLD_LIMIT,
common::OB_MALLOC_NORMAL_BLOCK_SIZE))) { common::OB_MALLOC_NORMAL_BLOCK_SIZE))) {
LOG_WARN("fail to initialize tablet map", K(ret), K(bucket_num)); LOG_WARN("fail to initialize tablet map", K(ret), K(bucket_num));
} else if (OB_FAIL(last_min_minor_sstable_set_.create(DEFAULT_MINOR_SSTABLE_SET_COUNT, mem_attr))) { } else if (OB_FAIL(last_min_minor_sstable_set_.create(DEFAULT_MINOR_SSTABLE_SET_COUNT, other_attr))) {
LOG_WARN("fail to create last min minor sstable set", K(ret)); LOG_WARN("fail to create last min minor sstable set", K(ret));
} else if (OB_FAIL(pin_set_lock_.init(pin_set_bucket_num, ObLatchIds::BLOCK_MANAGER_LOCK, "T3MPinLock", } else if (OB_FAIL(pin_set_lock_.init(pin_set_bucket_num, ObLatchIds::BLOCK_MANAGER_LOCK, "T3MPinLock",
tenant_id_))) { tenant_id_))) {
LOG_WARN("fail to init pin set lock", K(ret)); LOG_WARN("fail to init pin set lock", K(ret));
} else if (OB_FAIL(pinned_tablet_set_.create(pin_set_bucket_num, mem_attr))) { } else if (OB_FAIL(pinned_tablet_set_.create(pin_set_bucket_num, other_attr))) {
LOG_WARN("fail to create pinned tablet set", K(ret)); LOG_WARN("fail to create pinned tablet set", K(ret));
} else if (OB_FAIL(gc_memtable_map_.create(10, "GCMemtableMap", "GCMemtableMap", tenant_id_))) { } else if (OB_FAIL(gc_memtable_map_.create(10, "GCMemtableMap", "GCMemtableMap", tenant_id_))) {
LOG_WARN("fail to initialize gc memtable map", K(ret)); LOG_WARN("fail to initialize gc memtable map", K(ret));