Fix migration tablet parameter issues

This commit is contained in:
JiahuaChen
2022-11-16 06:36:51 +00:00
committed by wangzelin.wzl
parent 6476060fb9
commit 08432fd243
6 changed files with 29 additions and 17 deletions

View File

@ -176,6 +176,7 @@ public:
TO_STRING_KV(K_(intervals)); TO_STRING_KV(K_(intervals));
private: private:
common::ObSArray<ObTabletAutoincInterval> intervals_; common::ObSArray<ObTabletAutoincInterval> intervals_;
DISALLOW_COPY_AND_ASSIGN(ObTabletAutoincSeq);
}; };
}//end namespace share }//end namespace share

View File

@ -189,7 +189,7 @@ int ObLSRestoreDagNet::init_by_param(const ObIDagInitParam *param)
index_store_param.tenant_id_ = MTL_ID(); index_store_param.tenant_id_ = MTL_ID();
index_store_param.backup_set_id_ = backup_set_file_desc.backup_set_file_.backup_set_id_; index_store_param.backup_set_id_ = backup_set_file_desc.backup_set_file_.backup_set_id_;
index_store_param.ls_id_ = init_param->arg_.ls_id_; index_store_param.ls_id_ = init_param->arg_.ls_id_;
index_store_param.is_tenant_level_ = false; index_store_param.is_tenant_level_ = false;
index_store_param.backup_data_type_ = data_type; index_store_param.backup_data_type_ = data_type;
index_store_param.turn_id_ = backup_set_file_desc.backup_set_file_.data_turn_id_; index_store_param.turn_id_ = backup_set_file_desc.backup_set_file_.data_turn_id_;
backup_set_desc.backup_set_id_ = backup_set_file_desc.backup_set_file_.backup_set_id_; backup_set_desc.backup_set_id_ = backup_set_file_desc.backup_set_file_.backup_set_id_;
@ -202,19 +202,19 @@ int ObLSRestoreDagNet::init_by_param(const ObIDagInitParam *param)
} else if (OB_FAIL(store.get_max_sys_ls_retry_id(backup_path, init_param->arg_.ls_id_, retry_id))) { } else if (OB_FAIL(store.get_max_sys_ls_retry_id(backup_path, init_param->arg_.ls_id_, retry_id))) {
LOG_WARN("failed to get max sys retry id", K(ret), K(backup_path), KPC(init_param)); LOG_WARN("failed to get max sys retry id", K(ret), K(backup_path), KPC(init_param));
} else { } else {
index_store_param.retry_id_ = retry_id; index_store_param.retry_id_ = retry_id;
LOG_INFO("get max sys ls retry id", "arg", init_param->arg_, K(retry_id)); LOG_INFO("get max sys ls retry id", "arg", init_param->arg_, K(retry_id));
} }
} }
share::ObBackupDest dest; share::ObBackupDest dest;
if (OB_FAIL(ret)) { if (OB_FAIL(ret)) {
} else if (OB_FAIL(meta_index_store_.init(mode, index_store_param, } else if (OB_FAIL(meta_index_store_.init(mode, index_store_param,
init_param->arg_.restore_base_info_.backup_dest_, init_param->arg_.restore_base_info_.backup_dest_,
backup_set_desc, false/*is_sec_meta*/, OB_BACKUP_INDEX_CACHE))) { backup_set_desc, false/*is_sec_meta*/, OB_BACKUP_INDEX_CACHE))) {
LOG_WARN("failed to init meta index store", K(ret), KPC(init_param)); LOG_WARN("failed to init meta index store", K(ret), KPC(init_param));
} else if (OB_FAIL(second_meta_index_store_.init(mode, index_store_param, } else if (OB_FAIL(second_meta_index_store_.init(mode, index_store_param,
init_param->arg_.restore_base_info_.backup_dest_, init_param->arg_.restore_base_info_.backup_dest_,
backup_set_desc, true/*is_sec_meta*/, OB_BACKUP_INDEX_CACHE))) { backup_set_desc, true/*is_sec_meta*/, OB_BACKUP_INDEX_CACHE))) {
LOG_WARN("failed to init macro index store", K(ret), KPC(init_param)); LOG_WARN("failed to init macro index store", K(ret), KPC(init_param));
} }
@ -245,7 +245,7 @@ int ObLSRestoreDagNet::init_by_param(const ObIDagInitParam *param)
if (OB_FAIL(ret)) { if (OB_FAIL(ret)) {
LOG_WARN("init ls restore dag param failed", K(ret)); LOG_WARN("init ls restore dag param failed", K(ret));
} }
} }
#endif #endif
return ret; return ret;
} }
@ -871,7 +871,7 @@ int ObStartLSRestoreTask::process()
} else if (OB_FAIL(generate_tablets_restore_dag_())) { } else if (OB_FAIL(generate_tablets_restore_dag_())) {
LOG_WARN("failed to generate tablets retore dag", K(ret), K(*ctx_)); LOG_WARN("failed to generate tablets retore dag", K(ret), K(*ctx_));
} }
if (OB_FAIL(ret)) { if (OB_FAIL(ret)) {
int tmp_ret = OB_SUCCESS; int tmp_ret = OB_SUCCESS;
if (OB_SUCCESS != (tmp_ret = ObStorageHADagUtils::deal_with_fo(ret, this->get_dag()))) { if (OB_SUCCESS != (tmp_ret = ObStorageHADagUtils::deal_with_fo(ret, this->get_dag()))) {
@ -1059,7 +1059,7 @@ int ObStartLSRestoreTask::update_ls_meta_()
} else if (OB_ISNULL(ls = ls_handle.get_ls())) { } else if (OB_ISNULL(ls = ls_handle.get_ls())) {
ret = OB_ERR_UNEXPECTED; ret = OB_ERR_UNEXPECTED;
LOG_WARN("restore ls should not be NULL", K(ret), KPC(ctx_)); LOG_WARN("restore ls should not be NULL", K(ret), KPC(ctx_));
} else if (OB_FAIL(ls->update_ls_meta(false/*don't update restore status*/, } else if (OB_FAIL(ls->update_ls_meta(false/*don't update restore status*/,
ctx_->src_ls_meta_package_.ls_meta_))) { ctx_->src_ls_meta_package_.ls_meta_))) {
LOG_WARN("fail to update ls meta", K(ret), KPC(ls), KPC(ctx_)); LOG_WARN("fail to update ls meta", K(ret), KPC(ls), KPC(ctx_));
} else { } else {
@ -2041,6 +2041,7 @@ int ObTabletGroupMetaRestoreTask::create_or_update_tablet_(
param.ls_id_ = ctx_->arg_.ls_id_; param.ls_id_ = ctx_->arg_.ls_id_;
param.tablet_id_ = tablet_id; param.tablet_id_ = tablet_id;
param.data_tablet_id_ = tablet_id; param.data_tablet_id_ = tablet_id;
param.create_scn_ = ObTabletMeta::INIT_CREATE_SCN;
param.clog_checkpoint_ts_ = OB_INVALID_TIMESTAMP; param.clog_checkpoint_ts_ = OB_INVALID_TIMESTAMP;
param.compat_mode_ = lib::Worker::get_compatibility_mode(); param.compat_mode_ = lib::Worker::get_compatibility_mode();
param.multi_version_start_ = 0; param.multi_version_start_ = 0;

View File

@ -1012,6 +1012,7 @@ int ObCopyTabletInfoObProducer::build_deleted_tablet_info_(
tablet_info.param_.ls_id_ = ls_id; tablet_info.param_.ls_id_ = ls_id;
tablet_info.param_.tablet_id_ = tablet_id; tablet_info.param_.tablet_id_ = tablet_id;
tablet_info.param_.data_tablet_id_ = tablet_id; tablet_info.param_.data_tablet_id_ = tablet_id;
tablet_info.param_.create_scn_ = ObTabletMeta::INIT_CREATE_SCN;
tablet_info.param_.start_scn_ = ObTabletMeta::INIT_CLOG_CHECKPOINT_TS; tablet_info.param_.start_scn_ = ObTabletMeta::INIT_CLOG_CHECKPOINT_TS;
tablet_info.param_.clog_checkpoint_ts_ = ObTabletMeta::INIT_CLOG_CHECKPOINT_TS; tablet_info.param_.clog_checkpoint_ts_ = ObTabletMeta::INIT_CLOG_CHECKPOINT_TS;
tablet_info.param_.compat_mode_ = lib::Worker::get_compatibility_mode(); tablet_info.param_.compat_mode_ = lib::Worker::get_compatibility_mode();
@ -1873,6 +1874,7 @@ int ObCopySSTableInfoObProducer::fake_deleted_tablet_meta_(
tablet_meta.ls_id_ = ls_id_; tablet_meta.ls_id_ = ls_id_;
tablet_meta.tablet_id_ = tablet_sstable_info_.tablet_id_; tablet_meta.tablet_id_ = tablet_sstable_info_.tablet_id_;
tablet_meta.data_tablet_id_ = tablet_sstable_info_.tablet_id_; tablet_meta.data_tablet_id_ = tablet_sstable_info_.tablet_id_;
tablet_meta.create_scn_ = ObTabletMeta::INIT_CREATE_SCN;
tablet_meta.start_scn_ = ObTabletMeta::INIT_CLOG_CHECKPOINT_TS; tablet_meta.start_scn_ = ObTabletMeta::INIT_CLOG_CHECKPOINT_TS;
tablet_meta.clog_checkpoint_ts_ = INT64_MAX; tablet_meta.clog_checkpoint_ts_ = INT64_MAX;
tablet_meta.compat_mode_ = lib::Worker::get_compatibility_mode(); tablet_meta.compat_mode_ = lib::Worker::get_compatibility_mode();

View File

@ -1797,11 +1797,11 @@ int ObTablet::build_migration_tablet_param(ObMigrationTabletParam &mig_tablet_pa
mig_tablet_param.tablet_id_ = tablet_meta_.tablet_id_; mig_tablet_param.tablet_id_ = tablet_meta_.tablet_id_;
mig_tablet_param.data_tablet_id_ = tablet_meta_.data_tablet_id_; mig_tablet_param.data_tablet_id_ = tablet_meta_.data_tablet_id_;
mig_tablet_param.ref_tablet_id_ = tablet_meta_.ref_tablet_id_; mig_tablet_param.ref_tablet_id_ = tablet_meta_.ref_tablet_id_;
mig_tablet_param.create_scn_ = tablet_meta_.create_scn_;
mig_tablet_param.start_scn_ = tablet_meta_.start_scn_; mig_tablet_param.start_scn_ = tablet_meta_.start_scn_;
mig_tablet_param.clog_checkpoint_ts_ = tablet_meta_.clog_checkpoint_ts_; mig_tablet_param.clog_checkpoint_ts_ = tablet_meta_.clog_checkpoint_ts_;
mig_tablet_param.snapshot_version_ = tablet_meta_.snapshot_version_; mig_tablet_param.snapshot_version_ = tablet_meta_.snapshot_version_;
mig_tablet_param.multi_version_start_ = tablet_meta_.multi_version_start_; mig_tablet_param.multi_version_start_ = tablet_meta_.multi_version_start_;
mig_tablet_param.autoinc_seq_ = tablet_meta_.autoinc_seq_;
mig_tablet_param.compat_mode_ = tablet_meta_.compat_mode_; mig_tablet_param.compat_mode_ = tablet_meta_.compat_mode_;
mig_tablet_param.ha_status_ = tablet_meta_.ha_status_; mig_tablet_param.ha_status_ = tablet_meta_.ha_status_;
mig_tablet_param.tx_data_ = tablet_meta_.tx_data_; mig_tablet_param.tx_data_ = tablet_meta_.tx_data_;
@ -1816,6 +1816,8 @@ int ObTablet::build_migration_tablet_param(ObMigrationTabletParam &mig_tablet_pa
LOG_WARN("failed to copy storage schema", K(ret), K_(tablet_meta)); LOG_WARN("failed to copy storage schema", K(ret), K_(tablet_meta));
} else if (OB_FAIL(mig_tablet_param.ddl_data_.assign(tablet_meta_.ddl_data_))) { } else if (OB_FAIL(mig_tablet_param.ddl_data_.assign(tablet_meta_.ddl_data_))) {
LOG_WARN("failed to assign ddl data", K(ret), K_(tablet_meta)); LOG_WARN("failed to assign ddl data", K(ret), K_(tablet_meta));
} else if (OB_FAIL(mig_tablet_param.autoinc_seq_.assign(tablet_meta_.autoinc_seq_))) {
LOG_WARN("failed to assign autoinc seq", K(ret), K_(tablet_meta));
} }
} }

View File

@ -25,6 +25,10 @@ using namespace blocksstable;
namespace storage namespace storage
{ {
const int64_t ObTabletMeta::INIT_CLOG_CHECKPOINT_TS = 1; const int64_t ObTabletMeta::INIT_CLOG_CHECKPOINT_TS = 1;
const int64_t ObTabletMeta::INVALID_CREATE_SCN = -2;
// multi source transaction leader has no log scn when first time register
// create tablet buffer, so the init create scn for tablet could be -1.
const int64_t ObTabletMeta::INIT_CREATE_SCN = -1;
ObTabletMeta::ObTabletMeta() ObTabletMeta::ObTabletMeta()
: version_(TABLET_META_VERSION), : version_(TABLET_META_VERSION),
@ -34,7 +38,7 @@ ObTabletMeta::ObTabletMeta()
data_tablet_id_(), data_tablet_id_(),
ref_tablet_id_(), ref_tablet_id_(),
has_next_tablet_(false), has_next_tablet_(false),
create_scn_(OB_INVALID_TIMESTAMP), create_scn_(ObTabletMeta::INVALID_CREATE_SCN),
start_scn_(OB_INVALID_TIMESTAMP), start_scn_(OB_INVALID_TIMESTAMP),
clog_checkpoint_ts_(OB_INVALID_TIMESTAMP), clog_checkpoint_ts_(OB_INVALID_TIMESTAMP),
ddl_checkpoint_ts_(OB_INVALID_TIMESTAMP), ddl_checkpoint_ts_(OB_INVALID_TIMESTAMP),
@ -301,7 +305,7 @@ int ObTabletMeta::init(
ddl_start_log_ts_ = old_tablet_meta.ddl_start_log_ts_; ddl_start_log_ts_ = old_tablet_meta.ddl_start_log_ts_;
ddl_snapshot_version_ = old_tablet_meta.ddl_snapshot_version_; ddl_snapshot_version_ = old_tablet_meta.ddl_snapshot_version_;
max_sync_storage_schema_version_ = max_sync_storage_schema_version; max_sync_storage_schema_version_ = max_sync_storage_schema_version;
if (OB_SUCC(ret)) { if (OB_SUCC(ret)) {
is_inited_ = true; is_inited_ = true;
} }
@ -321,7 +325,7 @@ void ObTabletMeta::reset()
data_tablet_id_.reset(); data_tablet_id_.reset();
ref_tablet_id_.reset(); ref_tablet_id_.reset();
has_next_tablet_ = false; has_next_tablet_ = false;
create_scn_ = OB_INVALID_TIMESTAMP; create_scn_ = ObTabletMeta::INVALID_CREATE_SCN;
start_scn_ = OB_INVALID_TIMESTAMP; start_scn_ = OB_INVALID_TIMESTAMP;
clog_checkpoint_ts_ = OB_INVALID_TIMESTAMP; clog_checkpoint_ts_ = OB_INVALID_TIMESTAMP;
ddl_checkpoint_ts_ = OB_INVALID_TIMESTAMP; ddl_checkpoint_ts_ = OB_INVALID_TIMESTAMP;
@ -346,7 +350,7 @@ bool ObTabletMeta::is_valid() const
return ls_id_.is_valid() return ls_id_.is_valid()
&& tablet_id_.is_valid() && tablet_id_.is_valid()
&& data_tablet_id_.is_valid() && data_tablet_id_.is_valid()
//&& create_scn_ > OB_INVALID_TIMESTAMP && create_scn_ >= INIT_CREATE_SCN
&& multi_version_start_ >= 0 && multi_version_start_ >= 0
&& multi_version_start_ <= snapshot_version_ && multi_version_start_ <= snapshot_version_
&& compat_mode_ != lib::Worker::CompatMode::INVALID && compat_mode_ != lib::Worker::CompatMode::INVALID
@ -694,7 +698,7 @@ ObMigrationTabletParam::ObMigrationTabletParam()
tablet_id_(), tablet_id_(),
data_tablet_id_(), data_tablet_id_(),
ref_tablet_id_(), ref_tablet_id_(),
create_scn_(OB_INVALID_TIMESTAMP), create_scn_(ObTabletMeta::INVALID_CREATE_SCN),
start_scn_(OB_INVALID_TIMESTAMP), start_scn_(OB_INVALID_TIMESTAMP),
clog_checkpoint_ts_(OB_INVALID_TIMESTAMP), clog_checkpoint_ts_(OB_INVALID_TIMESTAMP),
ddl_checkpoint_ts_(OB_INVALID_TIMESTAMP), ddl_checkpoint_ts_(OB_INVALID_TIMESTAMP),
@ -720,7 +724,7 @@ bool ObMigrationTabletParam::is_valid() const
return ls_id_.is_valid() return ls_id_.is_valid()
&& tablet_id_.is_valid() && tablet_id_.is_valid()
&& data_tablet_id_.is_valid() && data_tablet_id_.is_valid()
//&& create_scn_ > OB_INVALID_TIMESTAMP && create_scn_ >= ObTabletMeta::INIT_CREATE_SCN
&& multi_version_start_ >= 0 && multi_version_start_ >= 0
&& multi_version_start_ <= snapshot_version_ && multi_version_start_ <= snapshot_version_
&& compat_mode_ != lib::Worker::CompatMode::INVALID && compat_mode_ != lib::Worker::CompatMode::INVALID
@ -895,7 +899,7 @@ void ObMigrationTabletParam::reset()
tablet_id_.reset(); tablet_id_.reset();
data_tablet_id_.reset(); data_tablet_id_.reset();
ref_tablet_id_.reset(); ref_tablet_id_.reset();
create_scn_ = OB_INVALID_TIMESTAMP; create_scn_ = ObTabletMeta::INVALID_CREATE_SCN;
start_scn_ = OB_INVALID_TIMESTAMP; start_scn_ = OB_INVALID_TIMESTAMP;
clog_checkpoint_ts_ = OB_INVALID_TIMESTAMP; clog_checkpoint_ts_ = OB_INVALID_TIMESTAMP;
ddl_checkpoint_ts_ = OB_INVALID_TIMESTAMP; ddl_checkpoint_ts_ = OB_INVALID_TIMESTAMP;

View File

@ -43,6 +43,8 @@ class ObTabletMeta final
{ {
public: public:
static const int64_t INIT_CLOG_CHECKPOINT_TS; static const int64_t INIT_CLOG_CHECKPOINT_TS;
static const int64_t INVALID_CREATE_SCN;
static const int64_t INIT_CREATE_SCN;
public: public:
ObTabletMeta(); ObTabletMeta();
@ -239,7 +241,7 @@ public:
int64_t ddl_start_log_ts_; int64_t ddl_start_log_ts_;
int64_t ddl_snapshot_version_; int64_t ddl_snapshot_version_;
// max_sync_version may less than storage_schema.schema_version_ when major update schema // max_sync_version may less than storage_schema.schema_version_ when major update schema
int64_t max_sync_storage_schema_version_; int64_t max_sync_storage_schema_version_;
}; };
} // namespace storage } // namespace storage