wait user ls end scn when switchover
This commit is contained in:
		@ -7409,16 +7409,18 @@ OB_SERIALIZE_MEMBER(ObGetLSAccessModeInfoArg, tenant_id_, ls_id_);
 | 
			
		||||
bool ObLSAccessModeInfo::is_valid() const
 | 
			
		||||
{
 | 
			
		||||
  return OB_INVALID_TENANT_ID != tenant_id_
 | 
			
		||||
         && ls_id_.is_valid()
 | 
			
		||||
         && palf::INVALID_PROPOSAL_ID != mode_version_
 | 
			
		||||
         && palf::AccessMode::INVALID_ACCESS_MODE != access_mode_
 | 
			
		||||
         && ref_scn_.is_valid();
 | 
			
		||||
      && ls_id_.is_valid()
 | 
			
		||||
      && palf::INVALID_PROPOSAL_ID != mode_version_
 | 
			
		||||
      && palf::AccessMode::INVALID_ACCESS_MODE != access_mode_
 | 
			
		||||
      && ref_scn_.is_valid();
 | 
			
		||||
    // only check sys_ls_end_scn when it's needed
 | 
			
		||||
}
 | 
			
		||||
int ObLSAccessModeInfo::init(
 | 
			
		||||
    uint64_t tenant_id, const ObLSID &ls_id,
 | 
			
		||||
    const int64_t mode_version,
 | 
			
		||||
    const palf::AccessMode &access_mode,
 | 
			
		||||
    const SCN &ref_scn)
 | 
			
		||||
    const SCN &ref_scn,
 | 
			
		||||
    const share::SCN &sys_ls_end_scn)
 | 
			
		||||
{
 | 
			
		||||
  int ret = OB_SUCCESS;
 | 
			
		||||
  if (OB_UNLIKELY(OB_INVALID_TENANT_ID == tenant_id
 | 
			
		||||
@ -7426,15 +7428,18 @@ int ObLSAccessModeInfo::init(
 | 
			
		||||
                  || palf::AccessMode::INVALID_ACCESS_MODE == access_mode
 | 
			
		||||
                  || palf::INVALID_PROPOSAL_ID == mode_version
 | 
			
		||||
                  || !ref_scn.is_valid())) {
 | 
			
		||||
    // only check sys_ls_end_scn when it's needed
 | 
			
		||||
    ret = OB_INVALID_ARGUMENT;
 | 
			
		||||
    LOG_WARN("invalid argument", KR(ret), K(tenant_id), K(ls_id),
 | 
			
		||||
    K(mode_version), K(access_mode), K(ref_scn));
 | 
			
		||||
    K(mode_version), K(access_mode), K(ref_scn), K(sys_ls_end_scn));
 | 
			
		||||
 | 
			
		||||
  } else {
 | 
			
		||||
    tenant_id_ = tenant_id;
 | 
			
		||||
    ls_id_ = ls_id;
 | 
			
		||||
    mode_version_ = mode_version;
 | 
			
		||||
    access_mode_ = access_mode;
 | 
			
		||||
    ref_scn_ = ref_scn;
 | 
			
		||||
    sys_ls_end_scn_ = sys_ls_end_scn;
 | 
			
		||||
  }
 | 
			
		||||
  return ret;
 | 
			
		||||
}
 | 
			
		||||
@ -7447,10 +7452,11 @@ int ObLSAccessModeInfo::assign(const ObLSAccessModeInfo &other)
 | 
			
		||||
    mode_version_ = other.mode_version_;
 | 
			
		||||
    access_mode_ = other.access_mode_;
 | 
			
		||||
    ref_scn_ = other.ref_scn_;
 | 
			
		||||
    sys_ls_end_scn_ = other.sys_ls_end_scn_;
 | 
			
		||||
  }
 | 
			
		||||
  return ret;
 | 
			
		||||
}
 | 
			
		||||
OB_SERIALIZE_MEMBER(ObLSAccessModeInfo, tenant_id_, ls_id_, mode_version_, access_mode_, ref_scn_, addr_);
 | 
			
		||||
OB_SERIALIZE_MEMBER(ObLSAccessModeInfo, tenant_id_, ls_id_, mode_version_, access_mode_, ref_scn_, addr_, sys_ls_end_scn_);
 | 
			
		||||
 | 
			
		||||
bool ObChangeLSAccessModeRes::is_valid() const
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user