[SCN] modify missing scenes
This commit is contained in:
@ -508,5 +508,37 @@ int ObTabletAutoincSeqRpcHandler::batch_set_tablet_autoinc_seq(
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObTabletAutoincSeqRpcHandler::replay_update_tablet_autoinc_seq(
|
||||
const ObLS *ls,
|
||||
const ObTabletID &tablet_id,
|
||||
const uint64_t autoinc_seq,
|
||||
const palf::SCN &replay_scn)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
if (OB_UNLIKELY(ls == nullptr || !tablet_id.is_valid() || autoinc_seq == 0 || !replay_scn.is_valid_and_not_min())) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("invalid argument", K(ret), K(tablet_id), K(autoinc_seq), K(replay_scn));
|
||||
} else {
|
||||
ObTabletHandle tablet_handle;
|
||||
ObBucketHashWLockGuard guard(bucket_lock_, tablet_id.hash());
|
||||
if (OB_FAIL(ls->replay_get_tablet(tablet_id,
|
||||
replay_scn,
|
||||
tablet_handle))) {
|
||||
if (OB_TABLET_NOT_EXIST == ret) {
|
||||
LOG_INFO("tablet may be deleted, skip this log", K(ret), K(tablet_id), K(replay_scn));
|
||||
ret = OB_SUCCESS;
|
||||
} else if (OB_EAGAIN == ret) {
|
||||
// retry replay again
|
||||
} else {
|
||||
LOG_WARN("fail to replay get tablet, retry again", K(ret), K(tablet_id), K(replay_scn));
|
||||
ret = OB_EAGAIN;
|
||||
}
|
||||
} else if (OB_FAIL(tablet_handle.get_obj()->update_tablet_autoinc_seq(autoinc_seq, replay_scn))) {
|
||||
LOG_WARN("failed to update tablet auto inc seq", K(ret), K(autoinc_seq), K(replay_scn));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user