diff --git a/src/storage/ddl/ob_ddl_redo_log_writer.cpp b/src/storage/ddl/ob_ddl_redo_log_writer.cpp index 0d8394ad90..e9de6d6661 100644 --- a/src/storage/ddl/ob_ddl_redo_log_writer.cpp +++ b/src/storage/ddl/ob_ddl_redo_log_writer.cpp @@ -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", diff --git a/src/storage/ddl/ob_tablet_ddl_kv_mgr.cpp b/src/storage/ddl/ob_tablet_ddl_kv_mgr.cpp index ab9ad88d04..2392904ad2 100644 --- a/src/storage/ddl/ob_tablet_ddl_kv_mgr.cpp +++ b/src/storage/ddl/ob_tablet_ddl_kv_mgr.cpp @@ -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(); } diff --git a/src/storage/ddl/ob_tablet_ddl_kv_mgr.h b/src/storage/ddl/ob_tablet_ddl_kv_mgr.h index 0837fddd2f..487b31ab95 100644 --- a/src/storage/ddl/ob_tablet_ddl_kv_mgr.h +++ b/src/storage/ddl/ob_tablet_ddl_kv_mgr.h @@ -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_;