diff --git a/src/logservice/archiveservice/ob_ls_task.cpp b/src/logservice/archiveservice/ob_ls_task.cpp index 36af0b892..962f7a5d7 100644 --- a/src/logservice/archiveservice/ob_ls_task.cpp +++ b/src/logservice/archiveservice/ob_ls_task.cpp @@ -304,7 +304,7 @@ int ObLSArchiveTask::get_max_archive_info(const ArchiveKey &key, info.incarnation_ = key.incarnation_; info.start_lsn_ = piece_min_lsn.val_; info.start_scn_ = piece_start_scn; - info.checkpoint_scn_ = scn > piece_start_scn ? scn : piece_start_scn; + info.checkpoint_scn_ = scn; info.lsn_ = lsn.val_; info.input_bytes_ = static_cast(info.lsn_ - info.start_lsn_); info.output_bytes_ = info.input_bytes_; diff --git a/src/share/backup/ob_archive_checkpoint.cpp b/src/share/backup/ob_archive_checkpoint.cpp index b6304148f..4b1b779df 100644 --- a/src/share/backup/ob_archive_checkpoint.cpp +++ b/src/share/backup/ob_archive_checkpoint.cpp @@ -190,6 +190,8 @@ int ObDestRoundCheckpointer::gen_new_round_info_(const ObTenantArchiveRoundAttr } else if (old_round_info.state_.is_beginning()) { if (counter.not_start_cnt_ > 0) { need_checkpoint = false; + } else if (next_checkpoint_scn < old_round_info.start_scn_) { + need_checkpoint = false; } else if (OB_FALSE_IT(new_round_info.checkpoint_scn_ = next_checkpoint_scn)) { } else if (counter.interrupted_cnt_ > 0) { ObSqlString comment; @@ -274,7 +276,7 @@ int ObDestRoundCheckpointer::generate_pieces_(const ObTenantArchiveRoundAttr &ol { int ret = OB_SUCCESS; - if (result.new_round_info_.max_scn_ == old_round_info.start_scn_) { + if (old_round_info.state_ == result.new_round_info_.state_ && result.new_round_info_.max_scn_ == old_round_info.start_scn_) { // No log stream started archive before disable archive, then no piece generated in the round. LOG_INFO("no piece generated.", K(old_round_info), K(result)); } else { diff --git a/src/share/backup/ob_archive_persist_helper.cpp b/src/share/backup/ob_archive_persist_helper.cpp index 320595010..d74e97d98 100644 --- a/src/share/backup/ob_archive_persist_helper.cpp +++ b/src/share/backup/ob_archive_persist_helper.cpp @@ -288,32 +288,6 @@ int ObArchivePersistHelper::get_binding(common::ObISQLClient &proxy, const bool return ret; } -int ObArchivePersistHelper::get_lag_target(common::ObISQLClient &proxy, const bool need_lock, const int64_t dest_no, - int64_t &lag_target) const -{ - int ret = OB_SUCCESS; - common::ObSqlString value; - const common::ObString str(OB_STR_LAG_TARGET); - ObLogArchiveDestAtrr dest_attr; - if (IS_NOT_INIT) { - ret = OB_NOT_INIT; - LOG_WARN("ObArchivePersistHelper not init", K(ret)); - } else if (OB_FAIL(get_string_value(proxy, dest_no, need_lock, str, value))) { - if (OB_ENTRY_NOT_EXIST == ret) { - // not exist, use default - lag_target = OB_DEFAULT_LAG_TARGET; - ret = OB_SUCCESS; - } else { - LOG_WARN("fail to get string value", K(ret)); - } - } else if (OB_FAIL(dest_attr.set_lag_target(value.ptr()))) { - LOG_WARN("fail to set checkpoint interval", K(ret), K(value)); - } else { - lag_target = dest_attr.lag_target_; - } - return ret; -} - int ObArchivePersistHelper::get_dest_state( common::ObISQLClient &proxy, const bool need_lock, diff --git a/src/share/backup/ob_archive_persist_helper.h b/src/share/backup/ob_archive_persist_helper.h index 6e49f0f82..cd3127b83 100644 --- a/src/share/backup/ob_archive_persist_helper.h +++ b/src/share/backup/ob_archive_persist_helper.h @@ -85,8 +85,6 @@ public: int get_binding(common::ObISQLClient &proxy, const bool need_lock, const int64_t dest_no, ObLogArchiveDestAtrr::Binding &binding) const; - int get_lag_target(common::ObISQLClient &proxy, const bool need_lock, const int64_t dest_no, - int64_t &lag_target) const; int get_dest_state(common::ObISQLClient &proxy, const bool need_lock, const int64_t dest_no, ObLogArchiveDestState &state) const; diff --git a/src/share/backup/ob_backup_config.cpp b/src/share/backup/ob_backup_config.cpp index 88155af9f..1380a7938 100644 --- a/src/share/backup/ob_backup_config.cpp +++ b/src/share/backup/ob_backup_config.cpp @@ -687,10 +687,6 @@ int ObLogArchiveDestConfigParser::do_parse_sub_config_(const common::ObString &c if (OB_FAIL(do_parse_piece_switch_interval_(token, saveptr))) { LOG_WARN("fail to do parse piece switch interval", K(ret), K(token), K(saveptr)); } - } else if (0 == STRCASECMP(token, OB_STR_LAG_TARGET)) { - if (OB_FAIL(do_parse_lag_target_(token, saveptr))) { - LOG_WARN("fail to do parse lag target", K(ret), K(token), K(saveptr)); - } } else if (0 == STRCASECMP(token, OB_STR_COMPRESSION)) { if (OB_FAIL(do_parse_compression_(token, saveptr))) { LOG_WARN("fail to do parse compression", K(ret), K(token), K(saveptr)); @@ -753,21 +749,6 @@ int ObLogArchiveDestConfigParser::do_parse_piece_switch_interval_(const common:: return ret; } -int ObLogArchiveDestConfigParser::do_parse_lag_target_(const common::ObString &name, const common::ObString &value) -{ - int ret = OB_SUCCESS; - if (name.empty() || value.empty()) { - ret = OB_INVALID_ARGUMENT; - LOG_WARN("invalid log archve dest config", K(ret), K(name), K(value)); - } else if (OB_FAIL(archive_dest_.set_lag_target(value.ptr()))) { - LOG_WARN("fail to set piece switch interval", K(ret), K(value)); - } else if (!archive_dest_.is_lag_target_valid()) { - ret = OB_INVALID_ARGUMENT; - LOG_WARN("piece switch interval is not valid", K(ret), K(value)); - } - return ret; -} - int ObLogArchiveDestConfigParser::do_parse_compression_(const common::ObString &name, const common::ObString &value) { int ret = OB_SUCCESS; diff --git a/src/share/backup/ob_backup_config.h b/src/share/backup/ob_backup_config.h index 7433827a5..37f65f106 100644 --- a/src/share/backup/ob_backup_config.h +++ b/src/share/backup/ob_backup_config.h @@ -192,7 +192,6 @@ protected: virtual int do_parse_sub_config_(const common::ObString &config_str); int do_parse_log_archive_dest_(const common::ObString &dest_type_str, const common::ObString &url); int do_parse_piece_switch_interval_(const common::ObString &name, const common::ObString &value); - int do_parse_lag_target_(const common::ObString &name, const common::ObString &value); int do_parse_compression_(const common::ObString &name, const common::ObString &value); int do_parse_log_archive_mode_(const common::ObString &name, const common::ObString &value); int update_archive_dest_config_(common::ObISQLClient &trans); diff --git a/src/share/backup/ob_backup_struct.cpp b/src/share/backup/ob_backup_struct.cpp index 9ba2710f9..5c67bec5f 100755 --- a/src/share/backup/ob_backup_struct.cpp +++ b/src/share/backup/ob_backup_struct.cpp @@ -4259,7 +4259,6 @@ ObLogArchiveDestAtrr::ObLogArchiveDestAtrr() binding_ = Binding::OPTIONAL; dest_id_ = 0; piece_switch_interval_ = OB_DEFAULT_PIECE_SWITCH_INTERVAL; - lag_target_ = OB_DEFAULT_LAG_TARGET; state_.set_enable(); } @@ -4279,22 +4278,6 @@ int ObLogArchiveDestAtrr::set_piece_switch_interval(const char *buf) return ret; } -int ObLogArchiveDestAtrr::set_lag_target(const char *buf) -{ - int ret = OB_SUCCESS; - bool is_valid = false; - if (OB_ISNULL(buf)) { - ret = OB_INVALID_ARGUMENT; - LOG_WARN("invalid args", K(ret), KP(buf)); - } else if (OB_FALSE_IT(lag_target_ = ObConfigTimeParser::get(buf, is_valid))) { - } else if (!is_valid || !is_lag_target_valid()) { - ret = OB_INVALID_ARGUMENT; - lag_target_ = 0; - LOG_WARN("invalid lag_target", K(ret), K(buf)); - } - return ret; -} - int ObLogArchiveDestAtrr::set_log_archive_dest(const common::ObString &str) { int ret = OB_SUCCESS; @@ -4339,7 +4322,6 @@ bool ObLogArchiveDestAtrr::is_valid() const return is_dest_valid() && dest_id_ > 0 && is_piece_switch_interval_valid() - && is_lag_target_valid() && state_.is_valid(); }; @@ -4353,12 +4335,6 @@ bool ObLogArchiveDestAtrr::is_piece_switch_interval_valid() const return piece_switch_interval_ >= OB_MIN_LOG_ARCHIVE_PIECE_SWITH_INTERVAL; } -bool ObLogArchiveDestAtrr::is_lag_target_valid() const -{ - return lag_target_ >= OB_MIN_LAG_TARGET - && lag_target_ <= OB_MAX_LAG_TARGET; -} - int ObLogArchiveDestAtrr::gen_config_items(common::ObIArray &items) const { int ret = OB_SUCCESS; @@ -4415,18 +4391,6 @@ int ObLogArchiveDestAtrr::gen_config_items(common::ObIArray &items) const; int gen_path_config_items(common::ObIArray &items) const; int assign(const ObLogArchiveDestAtrr& that); - TO_STRING_KV(K_(dest), K_(binding), K_(dest_id), K_(piece_switch_interval), K_(lag_target), K_(state)); + TO_STRING_KV(K_(dest), K_(binding), K_(dest_id), K_(piece_switch_interval), K_(state)); share::ObBackupDest dest_; Binding binding_; int64_t dest_id_; int64_t piece_switch_interval_; - int64_t lag_target_; ObLogArchiveDestState state_; };