Class AbstractStateModelFactory

  • Direct Known Subclasses:
    LeaderFollowerPartitionStateModelFactory

    public abstract class AbstractStateModelFactory
    extends org.apache.helix.participant.statemachine.StateModelFactory<org.apache.helix.participant.statemachine.StateModel>
    ModelFactory manages Helix state model creation. createNewStateModel(String, String) is called every time a new resource is created. Since Helix internal maintains a map between model definition and model factory, each factory could only create 1 type of model.
    • Field Detail

      • logger

        protected final org.apache.logging.log4j.Logger logger
      • executorService

        protected final java.util.concurrent.ExecutorService executorService
      • partitionPushStatusAccessorFuture

        protected java.util.concurrent.CompletableFuture<HelixPartitionStatusAccessor> partitionPushStatusAccessorFuture
      • instanceName

        protected final java.lang.String instanceName
    • Method Detail

      • getExecutorService

        public java.util.concurrent.ExecutorService getExecutorService​(java.lang.String resourceName)
        Overrides:
        getExecutorService in class org.apache.helix.participant.statemachine.StateModelFactory<org.apache.helix.participant.statemachine.StateModel>
      • getStateTransitionStats

        public ParticipantStateTransitionStats getStateTransitionStats​(java.lang.String resourceName)
        Use the right state transition stats for the resource. By default, use the regular one; when dual state transition thread pool is enabled, use the future version stats for future version resource.
      • createNewStateModel

        public abstract org.apache.helix.participant.statemachine.StateModel createNewStateModel​(java.lang.String resourceName,
                                                                                                 java.lang.String partitionName)
        This method will be invoked only once per partition per session
        Overrides:
        createNewStateModel in class org.apache.helix.participant.statemachine.StateModelFactory<org.apache.helix.participant.statemachine.StateModel>
        Parameters:
        resourceName - $(topic_name) where state transition is happening
        partitionName - $(topic_name)_$(partition) for which the State Transition Handler is required
        Returns:
        VenicePartitionStateModel for the partition.
      • getExecutorService

        public java.util.concurrent.ExecutorService getExecutorService()
      • getStateModelID

        public static java.lang.String getStateModelID​(java.lang.String resourceName,
                                                       int partitionId)
      • shutDownExecutor

        public void shutDownExecutor()
      • waitExecutorTermination

        public void waitExecutorTermination​(long timeout,
                                            java.util.concurrent.TimeUnit unit)
                                     throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException