Disable reporting ddl checksum from background merge thread

This commit is contained in:
Hongqin-Li
2023-05-04 10:11:45 +00:00
committed by ob-robot
parent fadedfe50b
commit 75dac1ab3b
3 changed files with 16 additions and 24 deletions

View File

@ -1121,7 +1121,6 @@ int ObDDLSSTableRedoWriter::end_ddl_redo_and_create_ddl_sstable(
LOG_WARN("get tablet failed", K(ret));
} else if (OB_FAIL(tablet_handle.get_obj()->get_ddl_kv_mgr(ddl_kv_mgr_handle))) {
LOG_WARN("get ddl kv manager failed", K(ret), K(ls_id), K(tablet_id));
} else if (OB_FALSE_IT(ddl_kv_mgr_handle.get_obj()->prepare_info_for_checksum_report(table_id, ddl_task_id))) {
} else if (OB_FAIL(write_commit_log(tablet_handle, ddl_kv_mgr_handle, true, table_key, table_id, execution_id, ddl_task_id, commit_scn))) {
if (OB_TASK_EXPIRED == ret) {
LOG_INFO("ddl task expired", K(ret), K(table_key), K(table_id), K(execution_id), K(ddl_task_id));
@ -1153,7 +1152,7 @@ int ObDDLSSTableRedoWriter::end_ddl_redo_and_create_ddl_sstable(
} else {
LOG_WARN("failed to do ddl kv commit", K(ret), K(ddl_start_scn), K(commit_scn));
}
} else if (OB_FAIL(ddl_kv_mgr_handle.get_obj()->wait_ddl_merge_success(ddl_start_scn, commit_scn))) {
} else if (OB_FAIL(ddl_kv_mgr_handle.get_obj()->wait_ddl_merge_success(ddl_start_scn, commit_scn, table_id, ddl_task_id))) {
if (OB_TASK_EXPIRED == ret) {
LOG_INFO("ddl task expired, but return success", K(ret), K(ls_id), K(tablet_id),
K(ddl_start_scn), "new_ddl_start_scn",

View File

@ -32,7 +32,7 @@ using namespace oceanbase::storage;
ObTabletDDLKvMgr::ObTabletDDLKvMgr()
: is_inited_(false), success_start_scn_(SCN::min_scn()), ls_id_(), tablet_id_(), table_key_(), data_format_version_(0),
start_scn_(SCN::min_scn()), commit_scn_(SCN::min_scn()), max_freeze_scn_(SCN::min_scn()),
table_id_(0), execution_id_(-1), ddl_task_id_(0), head_(0), tail_(0), lock_(), ref_cnt_(0)
execution_id_(-1), head_(0), tail_(0), lock_(), ref_cnt_(0)
{
}
@ -64,9 +64,7 @@ void ObTabletDDLKvMgr::destroy()
start_scn_.set_min();
commit_scn_.set_min();
max_freeze_scn_.set_min();
table_id_ = 0;
execution_id_ = -1;
ddl_task_id_ = 0;
success_start_scn_.set_min();
is_inited_ = false;
}
@ -206,8 +204,6 @@ int ObTabletDDLKvMgr::ddl_commit(const SCN &start_scn,
usleep(1000L);
}
}
table_id_ = table_id;
ddl_task_id_ = ddl_task_id;
ObDDLTableMergeDagParam param;
param.ls_id_ = ls_id_;
@ -217,7 +213,7 @@ int ObTabletDDLKvMgr::ddl_commit(const SCN &start_scn,
param.start_scn_ = start_scn;
param.table_id_ = table_id;
param.execution_id_ = execution_id_;
param.ddl_task_id_ = ddl_task_id_;
param.ddl_task_id_ = ddl_task_id;
const int64_t start_ts = ObTimeUtility::fast_current_time();
while (OB_SUCC(ret) && is_started()) {
@ -242,7 +238,7 @@ int ObTabletDDLKvMgr::ddl_commit(const SCN &start_scn,
return ret;
}
int ObTabletDDLKvMgr::schedule_ddl_merge_task(const SCN &start_scn, const SCN &commit_scn, const bool is_replay)
int ObTabletDDLKvMgr::schedule_ddl_merge_task(const SCN &start_scn, const SCN &commit_scn, const bool is_replay, const uint64_t table_id, const int64_t ddl_task_id)
{
int ret = OB_SUCCESS;
ObLSHandle ls_handle;
@ -264,9 +260,9 @@ int ObTabletDDLKvMgr::schedule_ddl_merge_task(const SCN &start_scn, const SCN &c
param.rec_scn_ = commit_scn;
param.is_commit_ = true;
param.start_scn_ = start_scn;
param.table_id_ = table_id_;
param.table_id_ = table_id;
param.execution_id_ = execution_id_;
param.ddl_task_id_ = ddl_task_id_;
param.ddl_task_id_ = ddl_task_id;
// retry submit dag in case of the previous dag failed
if (OB_FAIL(compaction::ObScheduleDagFunc::schedule_ddl_table_merge_dag(param))) {
if (OB_SIZE_OVERFLOW == ret || OB_EAGAIN == ret) {
@ -291,7 +287,7 @@ int ObTabletDDLKvMgr::schedule_ddl_merge_task(const SCN &start_scn, const SCN &c
return ret;
}
int ObTabletDDLKvMgr::wait_ddl_merge_success(const SCN &start_scn, const SCN &commit_scn)
int ObTabletDDLKvMgr::wait_ddl_merge_success(const SCN &start_scn, const SCN &commit_scn, const uint64_t table_id, const int64_t ddl_task_id)
{
int ret = OB_SUCCESS;
if (OB_UNLIKELY(!is_inited_)) {
@ -311,7 +307,7 @@ int ObTabletDDLKvMgr::wait_ddl_merge_success(const SCN &start_scn, const SCN &co
while (OB_SUCC(ret)) {
if (OB_FAIL(THIS_WORKER.check_status())) {
LOG_WARN("check status failed", K(ret));
} else if (OB_FAIL(schedule_ddl_merge_task(start_scn, commit_scn, false/*is_replay*/))) {
} else if (OB_FAIL(schedule_ddl_merge_task(start_scn, commit_scn, false/*is_replay*/, table_id, ddl_task_id))) {
if (OB_EAGAIN == ret) {
ob_usleep(10L * 1000L);
ret = OB_SUCCESS; // retry
@ -340,9 +336,11 @@ int ObTabletDDLKvMgr::get_ddl_major_merge_param(const ObTabletMeta &tablet_meta,
param.rec_scn_ = get_commit_scn_nolock(tablet_meta);
param.is_commit_ = true;
param.start_scn_ = start_scn_;
param.table_id_ = table_id_;
param.execution_id_ = execution_id_;
param.ddl_task_id_ = ddl_task_id_;
// no checksum report
param.table_id_ = 0;
param.execution_id_ = -1;
param.ddl_task_id_ = 0;
} else {
ret = OB_EAGAIN;
}
@ -546,9 +544,7 @@ void ObTabletDDLKvMgr::cleanup_unlock()
start_scn_.set_min();
commit_scn_.set_min();
max_freeze_scn_.set_min();
table_id_ = 0;
execution_id_ = -1;
ddl_task_id_ = 0;
success_start_scn_.set_min();
}

View File

@ -39,8 +39,8 @@ public:
int ddl_start_nolock(const ObITable::TableKey &table_key, const share::SCN &start_scn, const int64_t data_format_version, const int64_t execution_id, const share::SCN &checkpoint_scn);
int ddl_start(ObTablet &tablet, const ObITable::TableKey &table_key, const share::SCN &start_scn, const int64_t data_format_version, const int64_t execution_id, const share::SCN &checkpoint_scn);
int ddl_commit(const share::SCN &start_scn, const share::SCN &commit_scn, const uint64_t table_id = 0, const int64_t ddl_task_id = 0); // schedule build a major sstable
int schedule_ddl_merge_task(const share::SCN &start_scn, const share::SCN &commit_scn, const bool is_replay); // try wait build major sstable
int wait_ddl_merge_success(const share::SCN &start_scn, const share::SCN &commit_scn);
int schedule_ddl_merge_task(const share::SCN &start_scn, const share::SCN &commit_scn, const bool is_replay, const uint64_t table_id, const int64_t ddl_task_id); // try wait build major sstable
int wait_ddl_merge_success(const share::SCN &start_scn, const share::SCN &commit_scn, const uint64_t table_id, const int64_t ddl_task_id);
int get_ddl_param(ObTabletDDLParam &ddl_param);
int get_or_create_ddl_kv(const share::SCN &start_scn, const share::SCN &scn, ObTableHandleV2 &kv_handle); // used in active ddl kv guard
int get_freezed_ddl_kv(const share::SCN &freeze_scn, ObTableHandleV2 &kv_handle); // locate ddl kv with exeact freeze log ts
@ -79,10 +79,9 @@ public:
bool can_schedule_major_compaction_nolock(const ObTabletMeta &tablet_meta);
int get_ddl_major_merge_param(const ObTabletMeta &tablet_meta, ObDDLTableMergeDagParam &merge_param);
int get_rec_scn(share::SCN &rec_scn);
void prepare_info_for_checksum_report(const uint64_t table_id, const int64_t ddl_task_id) { table_id_ = table_id; ddl_task_id_ = ddl_task_id; }
TO_STRING_KV(K_(is_inited), K_(success_start_scn), K_(ls_id), K_(tablet_id), K_(table_key),
K_(data_format_version), K_(start_scn), K_(commit_scn), K_(max_freeze_scn),
K_(table_id), K_(execution_id), K_(ddl_task_id), K_(head), K_(tail), K_(ref_cnt));
K_(execution_id), K_(head), K_(tail), K_(ref_cnt));
private:
int64_t get_idx(const int64_t pos) const;
@ -110,9 +109,7 @@ private:
share::SCN start_scn_;
share::SCN commit_scn_;
share::SCN max_freeze_scn_;
uint64_t table_id_; // used for ddl checksum
int64_t execution_id_; // used for ddl checksum
int64_t ddl_task_id_; // used for ddl checksum
ObTableHandleV2 ddl_kv_handles_[MAX_DDL_KV_CNT_IN_STORAGE];
int64_t head_;
int64_t tail_;