@InterfaceAudience.Private public class AddPeerProcedure extends ModifyPeerProcedure
StateMachineProcedure.FlowProcedure.LockStatePeerProcedureInterface.PeerOperationTypeSLEEP_INTERVAL_MS, UPDATE_LAST_SEQ_ID_BATCH_SIZElatch, peerIdstateCountNO_PROC_ID, NO_TIMEOUT| Constructor and Description |
|---|
AddPeerProcedure() |
AddPeerProcedure(String peerId,
ReplicationPeerConfig peerConfig,
boolean enabled) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
deserializeStateData(ProcedureStateSerializer serializer) |
protected boolean |
enablePeerBeforeFinish()
The implementation class should override this method if the procedure may enter the serial
related states.
|
protected ReplicationPeerConfig |
getNewPeerConfig() |
PeerProcedureInterface.PeerOperationType |
getPeerOperationType() |
protected MasterProcedureProtos.PeerModificationState |
nextStateAfterRefresh()
Implementation class can override this method.
|
protected void |
postPeerModification(MasterProcedureEnv env)
Called before we finish the procedure.
|
protected void |
prePeerModification(MasterProcedureEnv env)
Called before we start the actual processing.
|
protected void |
serializeStateData(ProcedureStateSerializer serializer) |
protected void |
updateLastPushedSequenceIdForSerialPeer(MasterProcedureEnv env) |
protected void |
updatePeerStorage(MasterProcedureEnv env) |
enablePeer, executeFromState, getInitialState, getOldPeerConfig, getState, getStateId, reopenRegions, rollbackState, setLastPushedSequenceId, setLastPushedSequenceIdForTable, setTimeoutFailureacquireLock, getLatch, getPeerId, holdLock, releaseLock, waitInitializedabort, addChildProcedure, execute, failIfAborted, getCurrentState, getCurrentStateId, getCycles, isEofState, isRollbackSupported, isYieldAfterExecutionStep, isYieldBeforeExecuteFromState, rollback, setNextState, toStringStateaddStackIndex, afterReplay, beforeReplay, bypass, compareTo, completionCleanup, doExecute, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcedureMetrics, getProcId, getProcIdHashCode, getProcName, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, incChildrenLatch, isBypass, isFailed, isFinished, isInitializing, isLockedWhenLoading, isRunnable, isSuccess, isWaiting, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, shouldWaitClientAck, skipPersistence, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecutedpublic AddPeerProcedure()
public AddPeerProcedure(String peerId, ReplicationPeerConfig peerConfig, boolean enabled)
public PeerProcedureInterface.PeerOperationType getPeerOperationType()
protected MasterProcedureProtos.PeerModificationState nextStateAfterRefresh()
ModifyPeerProcedurenextStateAfterRefresh in class ModifyPeerProcedureprotected void updateLastPushedSequenceIdForSerialPeer(MasterProcedureEnv env) throws IOException, ReplicationException
updateLastPushedSequenceIdForSerialPeer in class ModifyPeerProcedureIOExceptionReplicationExceptionprotected boolean enablePeerBeforeFinish()
ModifyPeerProcedureenablePeerBeforeFinish in class ModifyPeerProcedureprotected ReplicationPeerConfig getNewPeerConfig()
getNewPeerConfig in class ModifyPeerProcedureprotected void prePeerModification(MasterProcedureEnv env) throws IOException, ReplicationException
ModifyPeerProcedureIf an IOException is thrown then we will give up and mark the procedure as failed directly. If all checks passes then the procedure can not be rolled back any more.
prePeerModification in class ModifyPeerProcedureIOExceptionReplicationExceptionprotected void updatePeerStorage(MasterProcedureEnv env) throws ReplicationException
updatePeerStorage in class ModifyPeerProcedureReplicationExceptionprotected void postPeerModification(MasterProcedureEnv env) throws IOException, ReplicationException
ModifyPeerProcedure
Notice that, since we have already done the actual work, throwing IOException here will
not fail this procedure, we will just ignore it and finish the procedure as suceeded. If
ReplicationException is thrown we will retry since this usually means we fails to
update the peer storage.
postPeerModification in class ModifyPeerProcedureIOExceptionReplicationExceptionprotected void serializeStateData(ProcedureStateSerializer serializer) throws IOException
serializeStateData in class AbstractPeerProcedure<MasterProcedureProtos.PeerModificationState>IOExceptionprotected void deserializeStateData(ProcedureStateSerializer serializer) throws IOException
deserializeStateData in class AbstractPeerProcedure<MasterProcedureProtos.PeerModificationState>IOExceptionCopyright © 2007–2020 The Apache Software Foundation. All rights reserved.