Class AbstractOperateSubscriptionProcedure
java.lang.Object
org.apache.iotdb.confignode.procedure.Procedure<Env>
org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure<ConfigNodeProcedureEnv,TState>
org.apache.iotdb.confignode.procedure.impl.node.AbstractNodeProcedure<OperateSubscriptionState>
org.apache.iotdb.confignode.procedure.impl.subscription.AbstractOperateSubscriptionProcedure
- All Implemented Interfaces:
Comparable<Procedure<ConfigNodeProcedureEnv>>
- Direct Known Subclasses:
AbstractOperateSubscriptionAndPipeProcedure,AlterConsumerGroupProcedure,AlterTopicProcedure,ConsumerGroupMetaSyncProcedure,CreateTopicProcedure,DropTopicProcedure,TopicMetaSyncProcedure
public abstract class AbstractOperateSubscriptionProcedure
extends AbstractNodeProcedure<OperateSubscriptionState>
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure
StateMachineProcedure.Flow -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanprotected booleanprotected AtomicReference<SubscriptionInfo>Fields inherited from class org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure
isGeneratedByPipeFields inherited from class org.apache.iotdb.confignode.procedure.Procedure
NO_PROC_ID, NO_TIMEOUT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected ProcedureLockStateacquireLock(ConfigNodeProcedureEnv configNodeProcedureEnv) Acquire a lock, user should override it if necessary.protected AtomicReference<SubscriptionInfo>acquireLockInternal(ConfigNodeProcedureEnv configNodeProcedureEnv) protected abstract voidprotected abstract voidprotected StateMachineProcedure.FlowCalled to perform a single step of the specified 'state' of the procedure.protected abstract booleanprotected OperateSubscriptionStateReturn the initial state object that will be used for the first call to executeFromState().protected abstract SubscriptionOperationprotected OperateSubscriptionStategetState(int stateId) Convert an ordinal (or state id) to an Enum (or more descriptive) state object.protected intConvert the Enum (or more descriptive) state object to an ordinal (or state id).static booleanprotected Map<Integer,TPushConsumerGroupMetaResp> Pushing all the topicMeta's to all the dataNodes.static booleanprotected Map<Integer,TPushTopicMetaResp> Pushing all the topicMeta's to all the dataNodes.protected voidreleaseLock(ConfigNodeProcedureEnv configNodeProcedureEnv) Release a lock, user should override it if necessary.protected abstract voidprotected abstract voidprotected abstract voidprotected voidCalled to perform the rollback of the specified state.Methods inherited from class org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure
addChildProcedure, deserialize, execute, getCurrentState, getCycles, isEofState, isRollbackSupported, isStateDeserialized, rollback, serialize, setNextState, toStringStateMethods inherited from class org.apache.iotdb.confignode.procedure.Procedure
addStackIndex, compareTo, deserializeTypeInfoForCompatibility, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getParentProcId, getProcId, getProcType, getResult, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isLockedWhenLoading, isRunnable, isSuccess, isWaiting, isYieldAfterExecution, removeStackIndex, restoreLock, setChildrenLatch, setFailure, setFailure, setLastUpdate, setParentProcId, setProcId, setProcRunnable, setResult, setRootProcedureId, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, toString, toStringClassDetails, toStringDetails, toStringSimpleSB, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted
-
Field Details
-
isRollbackFromOperateOnDataNodesSuccessful
protected boolean isRollbackFromOperateOnDataNodesSuccessful -
isRollbackFromValidateSuccessful
protected boolean isRollbackFromValidateSuccessful -
subscriptionInfo
-
-
Constructor Details
-
AbstractOperateSubscriptionProcedure
public AbstractOperateSubscriptionProcedure()
-
-
Method Details
-
acquireLockInternal
protected AtomicReference<SubscriptionInfo> acquireLockInternal(ConfigNodeProcedureEnv configNodeProcedureEnv) -
acquireLock
Description copied from class:ProcedureAcquire a lock, user should override it if necessary.- Overrides:
acquireLockin classAbstractNodeProcedure<OperateSubscriptionState>- Parameters:
configNodeProcedureEnv- environment- Returns:
- state of lock
-
releaseLock
Description copied from class:ProcedureRelease a lock, user should override it if necessary.- Overrides:
releaseLockin classAbstractNodeProcedure<OperateSubscriptionState>- Parameters:
configNodeProcedureEnv- env
-
getOperation
-
executeFromValidate
protected abstract boolean executeFromValidate(ConfigNodeProcedureEnv env) throws SubscriptionException - Throws:
SubscriptionException
-
executeFromOperateOnConfigNodes
protected abstract void executeFromOperateOnConfigNodes(ConfigNodeProcedureEnv env) throws SubscriptionException - Throws:
SubscriptionException
-
executeFromOperateOnDataNodes
protected abstract void executeFromOperateOnDataNodes(ConfigNodeProcedureEnv env) throws SubscriptionException, IOException - Throws:
SubscriptionExceptionIOException
-
executeFromState
protected StateMachineProcedure.Flow executeFromState(ConfigNodeProcedureEnv env, OperateSubscriptionState state) throws InterruptedException Description copied from class:StateMachineProcedureCalled to perform a single step of the specified 'state' of the procedure.- Specified by:
executeFromStatein classStateMachineProcedure<ConfigNodeProcedureEnv,OperateSubscriptionState> state- state to execute- Returns:
- Flow.NO_MORE_STATE if the procedure is completed, Flow.HAS_MORE_STATE if there is another step.
- Throws:
InterruptedException
-
rollbackState
protected void rollbackState(ConfigNodeProcedureEnv env, OperateSubscriptionState state) throws IOException, InterruptedException, ProcedureException Description copied from class:StateMachineProcedureCalled to perform the rollback of the specified state.- Specified by:
rollbackStatein classStateMachineProcedure<ConfigNodeProcedureEnv,OperateSubscriptionState> state- state to rollback- Throws:
IOException- temporary failure, the rollback will retry laterInterruptedExceptionProcedureException
-
rollbackFromValidate
-
rollbackFromOperateOnConfigNodes
protected abstract void rollbackFromOperateOnConfigNodes(ConfigNodeProcedureEnv env) throws SubscriptionException - Throws:
SubscriptionException
-
rollbackFromOperateOnDataNodes
protected abstract void rollbackFromOperateOnDataNodes(ConfigNodeProcedureEnv env) throws SubscriptionException, IOException - Throws:
SubscriptionExceptionIOException
-
pushTopicMetaToDataNodes
protected Map<Integer,TPushTopicMetaResp> pushTopicMetaToDataNodes(ConfigNodeProcedureEnv env) throws IOException Pushing all the topicMeta's to all the dataNodes.- Parameters:
env- ConfigNodeProcedureEnv- Returns:
- The responseMap after pushing topic meta
- Throws:
IOException- Exception when Serializing to byte buffer
-
pushTopicMetaHasException
-
pushConsumerGroupMetaToDataNodes
protected Map<Integer,TPushConsumerGroupMetaResp> pushConsumerGroupMetaToDataNodes(ConfigNodeProcedureEnv env) throws IOException Pushing all the topicMeta's to all the dataNodes.- Parameters:
env- ConfigNodeProcedureEnv- Returns:
- The responseMap after pushing topic meta
- Throws:
IOException- Exception when Serializing to byte buffer
-
pushConsumerGroupMetaHasException
public static boolean pushConsumerGroupMetaHasException(Map<Integer, TPushConsumerGroupMetaResp> respMap) -
getState
Description copied from class:StateMachineProcedureConvert an ordinal (or state id) to an Enum (or more descriptive) state object.- Specified by:
getStatein classStateMachineProcedure<ConfigNodeProcedureEnv,OperateSubscriptionState> - Parameters:
stateId- the ordinal() of the state enum (or state id)- Returns:
- the state enum object
-
getStateId
Description copied from class:StateMachineProcedureConvert the Enum (or more descriptive) state object to an ordinal (or state id).- Specified by:
getStateIdin classStateMachineProcedure<ConfigNodeProcedureEnv,OperateSubscriptionState> - Parameters:
state- the state enum object- Returns:
- stateId the ordinal() of the state enum (or state id)
-
getInitialState
Description copied from class:StateMachineProcedureReturn the initial state object that will be used for the first call to executeFromState().- Specified by:
getInitialStatein classStateMachineProcedure<ConfigNodeProcedureEnv,OperateSubscriptionState> - Returns:
- the initial state enum object
-