[MDS] add mds construct sequence to bind async executed DAG and mds_table

This commit is contained in:
fengdeyiji
2023-08-15 03:10:34 +00:00
committed by ob-robot
parent 9b31f8aa03
commit 6283feb96f
20 changed files with 155 additions and 45 deletions

View File

@ -99,6 +99,20 @@ void MdsTableBase::mark_removed_from_t3m(ObTabletPointer *pointer)
}
}
void MdsTableBase::mark_switched_to_empty_shell()
{
if (ATOMIC_LOAD(&debug_info_.switch_to_empty_shell_ts_) != 0) {
MDS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "this MdsTable has been marked switch to empty shell", K(*this));
} else {
ATOMIC_STORE(&debug_info_.switch_to_empty_shell_ts_, ObClockGenerator::getCurrentTime());
}
}
bool MdsTableBase::is_switched_to_empty_shell() const
{
return ATOMIC_LOAD(&debug_info_.switch_to_empty_shell_ts_) != 0;
}
bool MdsTableBase::is_removed_from_t3m() const
{
return ATOMIC_LOAD(&debug_info_.remove_ts_) != 0;
@ -145,13 +159,14 @@ int MdsTableBase::get_ls_max_consequent_callbacked_scn_(share::SCN &max_conseque
return ret;
}
int MdsTableBase::merge(const share::SCN &flushing_scn)
int MdsTableBase::merge(const int64_t construct_sequence, const share::SCN &flushing_scn)
{
int ret = OB_SUCCESS;
ObMdsTableMergeDagParam param;
param.ls_id_ = ls_id_;
param.tablet_id_ = tablet_id_;
param.flush_scn_ = flushing_scn;
param.mds_construct_sequence_ = construct_sequence;
param.generate_ts_ = ObClockGenerator::getClock();
param.merge_type_ = ObMergeType::MDS_TABLE_MERGE;
param.merge_version_ = 0;