java.io.Closeable
, java.lang.AutoCloseable
, LifecycleComponent
, Releasable
public class MasterService extends AbstractLifecycleComponent
Modifier and Type | Class | Description |
---|---|---|
protected class |
MasterService.TaskInputs |
Represents a set of tasks to be processed together with their executor
|
Modifier and Type | Field | Description |
---|---|---|
static java.lang.String |
MASTER_UPDATE_THREAD_NAME |
|
protected ThreadPool |
threadPool |
deprecationLogger, logger, settings
lifecycle
Constructor | Description |
---|---|
MasterService(Settings settings,
ThreadPool threadPool) |
Modifier and Type | Method | Description |
---|---|---|
static boolean |
assertMasterUpdateThread() |
|
static boolean |
assertNotMasterUpdateThread(java.lang.String reason) |
|
org.elasticsearch.cluster.service.MasterService.TaskOutputs |
calculateTaskOutputs(MasterService.TaskInputs taskInputs,
ClusterState previousClusterState,
long startTimeNS) |
|
protected long |
currentTimeInNanos() |
|
protected void |
doClose() |
|
protected void |
doStart() |
|
protected void |
doStop() |
|
protected ClusterStateTaskExecutor.ClusterTasksResult<java.lang.Object> |
executeTasks(MasterService.TaskInputs taskInputs,
long startTimeNS,
ClusterState previousClusterState) |
|
TimeValue |
getMaxTaskWaitTime() |
Returns the maximum wait time for tasks in the queue
|
java.util.List<org.elasticsearch.cluster.service.MasterService.Batcher.UpdateTask> |
getNonFailedTasks(MasterService.TaskInputs taskInputs,
ClusterStateTaskExecutor.ClusterTasksResult<java.lang.Object> clusterTasksResult) |
|
int |
numberOfPendingTasks() |
Returns the number of currently pending tasks.
|
java.util.List<PendingClusterTask> |
pendingTasks() |
Returns the tasks that are pending.
|
protected void |
runTasks(MasterService.TaskInputs taskInputs) |
|
void |
setClusterStatePublisher(java.util.function.BiConsumer<ClusterChangedEvent,Discovery.AckListener> publisher) |
|
void |
setClusterStateSupplier(java.util.function.Supplier<ClusterState> clusterStateSupplier) |
|
void |
setSlowTaskLoggingThreshold(TimeValue slowTaskLoggingThreshold) |
|
<T extends ClusterStateTaskConfig & ClusterStateTaskExecutor<T> & ClusterStateTaskListener> |
submitStateUpdateTask(java.lang.String source,
T updateTask) |
Submits a cluster state update task; unlike
submitStateUpdateTask(String, Object, ClusterStateTaskConfig,
ClusterStateTaskExecutor, ClusterStateTaskListener) , submitted updates will not be batched. |
<T> void |
submitStateUpdateTask(java.lang.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.
|
<T> void |
submitStateUpdateTasks(java.lang.String source,
java.util.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.
|
protected void |
warnAboutSlowTaskIfNeeded(TimeValue executionTime,
java.lang.String source) |
logDeprecatedSetting, logRemovedSetting, nodeName
addLifecycleListener, close, lifecycleState, removeLifecycleListener, start, stop
public static final java.lang.String MASTER_UPDATE_THREAD_NAME
protected final ThreadPool threadPool
public MasterService(Settings settings, ThreadPool threadPool)
public void setSlowTaskLoggingThreshold(TimeValue slowTaskLoggingThreshold)
public void setClusterStatePublisher(java.util.function.BiConsumer<ClusterChangedEvent,Discovery.AckListener> publisher)
public void setClusterStateSupplier(java.util.function.Supplier<ClusterState> clusterStateSupplier)
protected void doStart()
doStart
in class AbstractLifecycleComponent
protected void doStop()
doStop
in class AbstractLifecycleComponent
protected void doClose()
doClose
in class AbstractLifecycleComponent
public static boolean assertMasterUpdateThread()
public static boolean assertNotMasterUpdateThread(java.lang.String reason)
protected void runTasks(MasterService.TaskInputs taskInputs)
public org.elasticsearch.cluster.service.MasterService.TaskOutputs calculateTaskOutputs(MasterService.TaskInputs taskInputs, ClusterState previousClusterState, long startTimeNS)
public <T extends ClusterStateTaskConfig & ClusterStateTaskExecutor<T> & ClusterStateTaskListener> void submitStateUpdateTask(java.lang.String source, T updateTask)
submitStateUpdateTask(String, Object, ClusterStateTaskConfig,
ClusterStateTaskExecutor, ClusterStateTaskListener)
, submitted updates will not be batched.source
- the source of the cluster state update taskupdateTask
- the full context for the cluster state update
taskpublic <T> void submitStateUpdateTask(java.lang.String source, T task, ClusterStateTaskConfig config, ClusterStateTaskExecutor<T> executor, ClusterStateTaskListener listener)
T
- the type of the cluster state update task statesource
- the source of the cluster state update tasktask
- the state needed for the cluster state update taskconfig
- the cluster state update task configurationexecutor
- the cluster state update task executor; tasks
that share the same executor will be executed
batches on this executorlistener
- callback after the cluster state update task
completespublic java.util.List<PendingClusterTask> pendingTasks()
public int numberOfPendingTasks()
public TimeValue getMaxTaskWaitTime()
protected void warnAboutSlowTaskIfNeeded(TimeValue executionTime, java.lang.String source)
protected ClusterStateTaskExecutor.ClusterTasksResult<java.lang.Object> executeTasks(MasterService.TaskInputs taskInputs, long startTimeNS, ClusterState previousClusterState)
public java.util.List<org.elasticsearch.cluster.service.MasterService.Batcher.UpdateTask> getNonFailedTasks(MasterService.TaskInputs taskInputs, ClusterStateTaskExecutor.ClusterTasksResult<java.lang.Object> clusterTasksResult)
public <T> void submitStateUpdateTasks(java.lang.String source, java.util.Map<T,ClusterStateTaskListener> tasks, ClusterStateTaskConfig config, ClusterStateTaskExecutor<T> executor)
T
- the type of the cluster state update task statesource
- the source of the cluster state update tasktasks
- a map of update tasks and their corresponding listenersconfig
- the cluster state update task configurationexecutor
- the cluster state update task executor; tasks
that share the same executor will be executed
batches on this executorprotected long currentTimeInNanos()