replace ts related to ddl with scn.

This commit is contained in:
obdev
2022-11-28 02:21:13 +00:00
committed by ob-robot
parent bbec6aff49
commit 8a4d14122f
539 changed files with 17685 additions and 173434 deletions

View File

@ -35,10 +35,9 @@ int ObLockMemtableMgr::init(
const common::ObTabletID &tablet_id,
const ObLSID &ls_id,
ObFreezer *freezer,
ObTenantMetaMemMgr *t3m,
ObTabletDDLKvMgr *ddl_kv_mgr)
ObTenantMetaMemMgr *t3m)
{
UNUSEDx(tablet_id, ddl_kv_mgr);
UNUSEDx(tablet_id);
int ret = OB_SUCCESS;
if (IS_INIT) {
ret = OB_INIT_TWICE;
@ -52,6 +51,7 @@ int ObLockMemtableMgr::init(
ls_id_ = ls_id;
freezer_ = freezer;
t3m_ = t3m;
table_type_ = ObITable::TableType::LOCK_MEMTABLE;
is_inited_ = true;
LOG_INFO("lock memtable mgr init successfully", K(ls_id), K(tablet_id), K(this));
}
@ -65,15 +65,9 @@ void ObLockMemtableMgr::destroy()
void ObLockMemtableMgr::reset()
{
TCWLockGuard lock_guard(lock_);
for (int64_t pos = memtable_head_; pos < memtable_tail_; pos++) {
memtables_[get_memtable_idx_(pos)].reset();
}
memtable_head_ = 0;
memtable_tail_ = 0;
SpinWLockGuard lock_guard(lock_);
reset_tables();
freezer_ = NULL;
t3m_ = NULL;
is_inited_ = false;
}
@ -92,7 +86,7 @@ int ObLockMemtableMgr::create_memtable(const palf::SCN clog_checkpoint_scn,
ObLockMemtable *memtable = nullptr;
ObLSTxService *ls_tx_svr = nullptr;
TCWLockGuard lock_guard(lock_);
SpinWLockGuard lock_guard(lock_);
table_key.table_type_ = ObITable::LOCK_MEMTABLE;
table_key.tablet_id_ = LS_LOCK_TABLET;
@ -119,7 +113,7 @@ int ObLockMemtableMgr::create_memtable(const palf::SCN clog_checkpoint_scn,
} else if (OB_FAIL(ls_tx_svr->register_common_checkpoint(checkpoint::LOCK_MEMTABLE_TYPE, memtable))) {
LOG_WARN("lock memtable register_common_checkpoint failed", K(ret), K(ls_id_));
} else {
LOG_INFO("create lock memtable successfully", K_(ls_id), K(this), K(memtable));
LOG_INFO("create lock memtable successfully", K_(ls_id), K(memtable));
}
return ret;
@ -128,10 +122,16 @@ int ObLockMemtableMgr::create_memtable(const palf::SCN clog_checkpoint_scn,
const ObLockMemtable *ObLockMemtableMgr::get_memtable_(const int64_t pos) const
{
int ret = OB_SUCCESS;
const ObIMemtable *imemtable = tables_[get_memtable_idx(pos)];
const ObLockMemtable *memtable = nullptr;
if (OB_FAIL(memtables_[get_memtable_idx_(pos)].get_lock_memtable(memtable))) {
LOG_WARN("fail to get memtable", K(ret));
if (OB_ISNULL(imemtable)) {
ret = OB_NOT_INIT;
STORAGE_LOG(WARN, "not inited", K(ret));
} else if (!imemtable->is_lock_memtable()) {
ret = OB_ENTRY_NOT_EXIST;
STORAGE_LOG(WARN, "not lock memtable", K(ret), K(imemtable->get_key()));
} else {
memtable = static_cast<const ObLockMemtable*>(imemtable);
}
return memtable;
@ -143,7 +143,6 @@ int64_t ObLockMemtableMgr::to_string(char *buf, const int64_t buf_len) const
if (OB_ISNULL(buf) || buf_len <= 0) {
} else {
TCRLockGuard lock_guard(lock_);
J_OBJ_START();
J_ARRAY_START();
for (int64_t i = memtable_head_; i < memtable_tail_; ++i) {
@ -172,7 +171,7 @@ int ObLockMemtableMgr::unregister_from_common_checkpoint_(const ObLockMemtable *
memtable))) {
LOG_WARN("lock memtable unregister_common_checkpoint failed", K(ret), K(ls_id_), K(memtable));
} else {
LOG_INFO("unregister from common checkpoint successfully", K_(ls_id), K(this), K(memtable));
LOG_INFO("unregister from common checkpoint successfully", K_(ls_id), K(memtable));
}
return ret;
}
@ -187,14 +186,13 @@ int ObLockMemtableMgr::release_head_memtable_(memtable::ObIMemtable *imemtable,
ObLockMemtable *memtable = static_cast<ObLockMemtable *>(imemtable);
if (get_memtable_count_() > 0 && force) {
// for force
const int64_t idx = get_memtable_idx_(memtable_head_);
if (memtables_[idx].is_valid() && memtable == memtables_[idx].get_table()) {
const int64_t idx = get_memtable_idx(memtable_head_);
if (nullptr != tables_[idx] && memtable == tables_[idx]) {
LOG_INFO("release head memtable", K(ret), K_(ls_id), KP(memtable));
if (OB_TMP_FAIL(unregister_from_common_checkpoint_(memtable))) {
LOG_WARN("unregister from common checkpoint failed", K(tmp_ret), K_(ls_id), K(memtable));
}
memtables_[idx].reset();
++memtable_head_;
release_head_memtable();
FLOG_INFO("succeed to release head lock table memtable", K(ret), K_(ls_id), KP(imemtable));
}
} else if (!force) {