Fix migration tablet parameter issues
This commit is contained in:
		
				
					committed by
					
						
						wangzelin.wzl
					
				
			
			
				
	
			
			
			
						parent
						
							6476060fb9
						
					
				
				
					commit
					08432fd243
				
			@ -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
 | 
				
			||||||
 | 
				
			|||||||
@ -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;
 | 
				
			||||||
 | 
				
			|||||||
@ -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();
 | 
				
			||||||
 | 
				
			|||||||
@ -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));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -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),
 | 
				
			||||||
@ -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;
 | 
				
			||||||
 | 
				
			|||||||
@ -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();
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user