Class AbstractStateModelFactory

java.lang.Object
org.apache.helix.participant.statemachine.StateModelFactory<org.apache.helix.participant.statemachine.StateModel>
com.linkedin.davinci.helix.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 Details

  • Constructor Details

  • Method Details

    • getExecutorService

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

      public ParticipantStateTransitionStats getStateTransitionStats(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(String resourceName, 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.
    • getConfigService

      public VeniceConfigLoader getConfigService()
    • getStoreMetadataRepo

      public ReadOnlyStoreRepository getStoreMetadataRepo()
    • getIngestionBackend

      public IngestionBackend getIngestionBackend()
    • getStateModelID

      public static String getStateModelID(String resourceName, int partitionId)
    • shutDownExecutor

      public void shutDownExecutor()
    • waitExecutorTermination

      public void waitExecutorTermination(long timeout, TimeUnit unit) throws InterruptedException
      Throws:
      InterruptedException