Disable reporting ddl checksum from background merge thread
This commit is contained in:
		@ -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",
 | 
			
		||||
 | 
			
		||||
@ -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();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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_;
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user