[CP] [BUG.FIX] fix slow release of memtable
This commit is contained in:
@ -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))) {
|
||||
|
||||
@ -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_();
|
||||
|
||||
Reference in New Issue
Block a user