Reset some fileds when tx data table offline

This commit is contained in:
obdev
2022-11-03 00:40:53 +00:00
committed by wangzelin.wzl
parent aaa27113bc
commit a74002424b
3 changed files with 19 additions and 1 deletions

View File

@ -86,6 +86,18 @@ void ObTxDataMemtableMgr::destroy()
is_inited_ = false;
}
int ObTxDataMemtableMgr::offline()
{
int ret = OB_SUCCESS;
if (OB_FAIL(release_memtables())) {
STORAGE_LOG(WARN, "release tx data memtables failed", KR(ret));
} else {
memtable_head_ = 0;
memtable_tail_ = 0;
}
return ret;
}
int ObTxDataMemtableMgr::release_head_memtable_(memtable::ObIMemtable *imemtable,
const bool force)
{

View File

@ -48,6 +48,10 @@ public: // ObTxDataMemtableMgr
ObFreezer *freezer,
ObTenantMetaMemMgr *t3m) override;
virtual void destroy() override;
int offline();
/**
* @brief This function do the following operations:
* 1. check some parameters which is required by freeze;

View File

@ -200,12 +200,14 @@ int ObTxDataTable::offline()
if (IS_NOT_INIT) {
ret = OB_NOT_INIT;
STORAGE_LOG(WARN, "tx data table is not inited", KR(ret), KPC(this));
} else if (get_memtable_mgr_()->release_memtables()) {
} else if (get_memtable_mgr_()->offline()) {
STORAGE_LOG(WARN, "release memtables failed", KR(ret));
} else if (OB_FAIL(clean_memtables_cache_())) {
STORAGE_LOG(WARN, "clean memtables cache failed", KR(ret), KPC(this));
} else {
min_start_log_ts_in_ctx_ = 0;
last_update_min_start_log_ts_ = 0;
calc_upper_trans_version_cache_.reset();
}
return ret;
}