[CP] [BUG.FIX] fix slow release of memtable

This commit is contained in:
Tyshawn
2024-02-05 08:42:15 +00:00
committed by ob-robot
parent e528c0a005
commit 125e50ecfa
2 changed files with 3 additions and 1 deletions

View File

@ -723,6 +723,8 @@ int ObTenantMetaMemMgr::gc_tablet(ObTablet *tablet)
LOG_WARN("unexpected null tablet pointer", K(ret), K(key), K(ptr_handle));
} else if (OB_FAIL(tablet_ptr->remove_tablet_from_old_version_chain(tablet))) {
LOG_WARN("fail to remove tablet from old version chain", K(ret), K(key), KPC(tablet));
} else {
tablet->reset_memtable();
}
}
if (OB_SUCC(ret) && OB_FAIL(push_tablet_into_gc_queue(tablet))) {

View File

@ -388,6 +388,7 @@ public:
// 2. If a tablet may be being accessed, shouldn't call this function.
int rebuild_memtables(const share::SCN scn);
void reset_memtable();
// ATTENTION!!! The following two interfaces only release memtable from memtable manager.
int release_memtables(const share::SCN scn);
// force release all memtables
@ -809,7 +810,6 @@ private:
bool exist_memtable_with_end_scn(const ObITable *table, const share::SCN &end_scn);
int assign_memtables(memtable::ObIMemtable * const *memtables, const int64_t memtable_count);
int assign_ddl_kvs(ObDDLKV * const *ddl_kvs, const int64_t ddl_kv_count);
void reset_memtable();
int pull_ddl_memtables(ObArenaAllocator &allocator, ObDDLKV **&ddl_kvs_addr, int64_t &ddl_kv_count);
void reset_ddl_memtables();
int wait_release_memtables_();