Class MasterService

All Implemented Interfaces:
Closeable, AutoCloseable, LifecycleComponent, org.elasticsearch.core.Releasable

public class MasterService extends AbstractLifecycleComponent
  • Field Details

    • MASTER_SERVICE_SLOW_TASK_LOGGING_THRESHOLD_SETTING

      public static final Setting<org.elasticsearch.core.TimeValue> MASTER_SERVICE_SLOW_TASK_LOGGING_THRESHOLD_SETTING
    • MASTER_SERVICE_STARVATION_LOGGING_THRESHOLD_SETTING

      public static final Setting<org.elasticsearch.core.TimeValue> MASTER_SERVICE_STARVATION_LOGGING_THRESHOLD_SETTING
    • threadPool

      protected final ThreadPool threadPool
  • Constructor Details

  • Method Details

    • setClusterStatePublisher

      public void setClusterStatePublisher(ClusterStatePublisher publisher)
    • setClusterStateSupplier

      public void setClusterStateSupplier(Supplier<ClusterState> clusterStateSupplier)
    • doStart

      protected void doStart()
      Specified by:
      doStart in class AbstractLifecycleComponent
    • createThreadPoolExecutor

      protected PrioritizedEsThreadPoolExecutor createThreadPoolExecutor()
    • getClusterStateUpdateStats

      public ClusterStateUpdateStats getClusterStateUpdateStats()
    • doStop

      protected void doStop()
      Specified by:
      doStop in class AbstractLifecycleComponent
    • doClose

      protected void doClose()
      Specified by:
      doClose in class AbstractLifecycleComponent
    • isMasterUpdateThread

      public static boolean isMasterUpdateThread()
    • assertNotMasterUpdateThread

      public static boolean assertNotMasterUpdateThread(String reason)
    • publish

      protected void publish(ClusterStatePublicationEvent clusterStatePublicationEvent, org.elasticsearch.cluster.service.MasterService.TaskOutputs taskOutputs)
    • incrementVersion

      public ClusterState.Builder incrementVersion(ClusterState clusterState)
    • submitStateUpdateTask

      public <T extends ClusterStateTaskConfig & ClusterStateTaskExecutor<T> & ClusterStateTaskListener> void submitStateUpdateTask(String source, T updateTask)
      Submits a cluster state update task; unlike submitStateUpdateTask(String, Object, ClusterStateTaskConfig, ClusterStateTaskExecutor, ClusterStateTaskListener), submitted updates will not be batched.
      Parameters:
      source - the source of the cluster state update task
      updateTask - the full context for the cluster state update task
    • submitStateUpdateTask

      public <T> void submitStateUpdateTask(String source, T task, ClusterStateTaskConfig config, ClusterStateTaskExecutor<T> executor, ClusterStateTaskListener listener)
      Submits a cluster state update task; submitted updates will be batched across the same instance of executor. The exact batching semantics depend on the underlying implementation but a rough guideline is that if the update task is submitted while there are pending update tasks for the same executor, these update tasks will all be executed on the executor in a single batch
      Type Parameters:
      T - the type of the cluster state update task state
      Parameters:
      source - the source of the cluster state update task
      task - the state needed for the cluster state update task
      config - the cluster state update task configuration
      executor - the cluster state update task executor; tasks that share the same executor will be executed batches on this executor
      listener - callback after the cluster state update task completes
    • pendingTasks

      public List<PendingClusterTask> pendingTasks()
      Returns the tasks that are pending.
    • numberOfPendingTasks

      public int numberOfPendingTasks()
      Returns the number of currently pending tasks.
    • getMaxTaskWaitTime

      public org.elasticsearch.core.TimeValue getMaxTaskWaitTime()
      Returns the maximum wait time for tasks in the queue
      Returns:
      A zero time value if the queue is empty, otherwise the time value oldest task waiting in the queue
    • submitStateUpdateTasks

      public <T> void submitStateUpdateTasks(String source, Map<T,ClusterStateTaskListener> tasks, ClusterStateTaskConfig config, ClusterStateTaskExecutor<T> executor)
      Submits a batch of cluster state update tasks; submitted updates are guaranteed to be processed together, potentially with more tasks of the same executor.
      Type Parameters:
      T - the type of the cluster state update task state
      Parameters:
      source - the source of the cluster state update task
      tasks - a map of update tasks and their corresponding listeners
      config - the cluster state update task configuration
      executor - the cluster state update task executor; tasks that share the same executor will be executed batches on this executor