diff --git a/src/storage/high_availability/ob_finish_transfer.cpp b/src/storage/high_availability/ob_finish_transfer.cpp index 8cf48058d..900061b27 100644 --- a/src/storage/high_availability/ob_finish_transfer.cpp +++ b/src/storage/high_availability/ob_finish_transfer.cpp @@ -838,6 +838,7 @@ int ObTxFinishTransfer::build_tx_finish_transfer_in_info_(const share::ObLSID &s transfer_in_info.src_ls_id_ = src_ls_id; transfer_in_info.dest_ls_id_ = dest_ls_id; transfer_in_info.start_scn_ = start_scn; + transfer_in_info.data_version_ = DEFAULT_MIN_DATA_VERSION; if (OB_FAIL(transfer_in_info.tablet_list_.assign(tablet_list))) { LOG_WARN("failed to assign tablet list", K(ret), K(tablet_list)); } @@ -858,6 +859,7 @@ int ObTxFinishTransfer::build_tx_finish_transfer_out_info_(const share::ObLSID & transfer_out_info.src_ls_id_ = src_ls_id; transfer_out_info.dest_ls_id_ = dest_ls_id; transfer_out_info.finish_scn_ = finish_scn; + transfer_out_info.data_version_ = DEFAULT_MIN_DATA_VERSION; if (OB_FAIL(transfer_out_info.tablet_list_.assign(tablet_list))) { LOG_WARN("failed to assign tablet list", K(ret), K(tablet_list)); } diff --git a/src/storage/high_availability/ob_transfer_handler.cpp b/src/storage/high_availability/ob_transfer_handler.cpp index 45e8a4043..03bcceb60 100644 --- a/src/storage/high_availability/ob_transfer_handler.cpp +++ b/src/storage/high_availability/ob_transfer_handler.cpp @@ -1300,6 +1300,7 @@ int ObTransferHandler::do_tx_start_transfer_out_( start_transfer_out_info.data_end_scn_ = data_end_scn; // TODO lana optimise transfer_epoch value start_transfer_out_info.transfer_epoch_ = task_info.task_id_.id(); + start_transfer_out_info.data_version_ = DEFAULT_MIN_DATA_VERSION; if (OB_FAIL(start_transfer_out_info.tablet_list_.assign(task_info.tablet_list_))) { LOG_WARN("failed to assign transfer tablet list", K(ret), K(task_info)); } else { @@ -1744,6 +1745,7 @@ int ObTransferHandler::do_tx_start_transfer_in_( start_transfer_in_info.src_ls_id_ = task_info.src_ls_id_; start_transfer_in_info.dest_ls_id_ = task_info.dest_ls_id_; start_transfer_in_info.start_scn_ = start_scn; + start_transfer_in_info.data_version_ = DEFAULT_MIN_DATA_VERSION; if (timeout_ctx.is_timeouted()) { ret = OB_TIMEOUT; diff --git a/src/storage/high_availability/ob_transfer_struct.cpp b/src/storage/high_availability/ob_transfer_struct.cpp index 93be2ee5f..af315637a 100644 --- a/src/storage/high_availability/ob_transfer_struct.cpp +++ b/src/storage/high_availability/ob_transfer_struct.cpp @@ -32,6 +32,7 @@ ObTXStartTransferOutInfo::ObTXStartTransferOutInfo() tablet_list_(), task_id_(), data_end_scn_(), + transfer_epoch_(0), data_version_(DEFAULT_MIN_DATA_VERSION) { } @@ -44,13 +45,15 @@ void ObTXStartTransferOutInfo::reset() task_id_.reset(); data_end_scn_.reset(); transfer_epoch_ = 0; + data_version_ = 0; } bool ObTXStartTransferOutInfo::is_valid() const { return src_ls_id_.is_valid() && dest_ls_id_.is_valid() - && !tablet_list_.empty(); + && !tablet_list_.empty() + && data_version_ > 0; } int ObTXStartTransferOutInfo::assign(const ObTXStartTransferOutInfo &start_transfer_out_info) @@ -99,7 +102,8 @@ bool ObTXStartTransferInInfo::is_valid() const return src_ls_id_.is_valid() && dest_ls_id_.is_valid() && start_scn_.is_valid() - && !tablet_meta_list_.empty(); + && !tablet_meta_list_.empty() + && data_version_ > 0; } int ObTXStartTransferInInfo::assign(const ObTXStartTransferInInfo &start_transfer_in_info) @@ -150,7 +154,8 @@ bool ObTXFinishTransferInInfo::is_valid() const return src_ls_id_.is_valid() && dest_ls_id_.is_valid() && start_scn_.is_valid() - && !tablet_list_.empty(); + && !tablet_list_.empty() + && data_version_ > 0; } int ObTXFinishTransferInInfo::assign(const ObTXFinishTransferInInfo &finish_transfer_in_info) @@ -196,7 +201,8 @@ bool ObTXFinishTransferOutInfo::is_valid() const return src_ls_id_.is_valid() && dest_ls_id_.is_valid() && finish_scn_.is_valid() - && !tablet_list_.empty(); + && !tablet_list_.empty() + && data_version_ > 0; } int ObTXFinishTransferOutInfo::assign(const ObTXFinishTransferOutInfo &finish_transfer_out_info)