public class ClusterService extends AbstractLifecycleComponent
Modifier and Type | Field and Description |
---|---|
static Setting<TimeValue> |
CLUSTER_SERVICE_SLOW_TASK_LOGGING_THRESHOLD_SETTING |
static java.lang.String |
UPDATE_THREAD_NAME |
lifecycle
deprecationLogger, logger, settings
Constructor and Description |
---|
ClusterService(Settings settings,
ClusterSettings clusterSettings,
ThreadPool threadPool,
org.apache.logging.log4j.util.Supplier<DiscoveryNode> localNodeSupplier) |
Modifier and Type | Method and Description |
---|---|
void |
addHighPriorityApplier(ClusterStateApplier applier)
Adds a high priority applier of updated cluster states.
|
void |
addInitialStateBlock(ClusterBlock block)
Adds an initial block to be set on the first cluster state created.
|
void |
addListener(ClusterStateListener listener)
Add a listener for updated cluster states
|
void |
addLocalNodeMasterListener(LocalNodeMasterListener listener)
Add a listener for on/off local node master events
|
void |
addLowPriorityApplier(ClusterStateApplier applier)
Adds an applier which will be called after all high priority and normal appliers have been called.
|
void |
addStateApplier(ClusterStateApplier applier)
Adds a applier of updated cluster states.
|
void |
addTimeoutListener(TimeValue timeout,
TimeoutClusterStateListener listener)
Adds a cluster state listener that is expected to be removed during a short period of time.
|
static boolean |
assertClusterStateThread()
asserts that the current thread is the cluster state update thread
|
static boolean |
assertNotClusterStateUpdateThread(java.lang.String reason)
asserts that the current thread is NOT the cluster state update thread
|
org.elasticsearch.cluster.service.ClusterService.TaskOutputs |
calculateTaskOutputs(org.elasticsearch.cluster.service.ClusterService.TaskInputs taskInputs,
ClusterState previousClusterState,
long startTimeNS) |
protected long |
currentTimeInNanos() |
protected void |
doClose() |
protected void |
doStart() |
protected void |
doStop() |
ClusterName |
getClusterName() |
ClusterSettings |
getClusterSettings() |
TimeValue |
getMaxTaskWaitTime()
Returns the maximum wait time for tasks in the queue
|
Settings |
getSettings() |
DiscoveryNode |
localNode()
The local node.
|
int |
numberOfPendingTasks()
Returns the number of currently pending tasks.
|
OperationRouting |
operationRouting() |
java.util.List<PendingClusterTask> |
pendingTasks()
Returns the tasks that are pending.
|
void |
removeApplier(ClusterStateApplier applier)
Removes an applier of updated cluster states.
|
void |
removeInitialStateBlock(ClusterBlock block)
Remove an initial block to be set on the first cluster state created.
|
void |
removeInitialStateBlock(int blockId)
Remove an initial block to be set on the first cluster state created.
|
void |
removeListener(ClusterStateListener listener)
Removes a listener for updated cluster states.
|
void |
removeLocalNodeMasterListener(LocalNodeMasterListener listener)
Remove the given listener for on/off local master events
|
void |
removeTimeoutListener(TimeoutClusterStateListener listener)
Removes a timeout listener for updated cluster states.
|
void |
setClusterStatePublisher(java.util.function.BiConsumer<ClusterChangedEvent,Discovery.AckListener> publisher) |
void |
setDiscoverySettings(DiscoverySettings discoverySettings) |
void |
setNodeConnectionsService(NodeConnectionsService nodeConnectionsService) |
ClusterState |
state()
The current cluster state.
|
<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.
|
addLifecycleListener, close, lifecycleState, removeLifecycleListener, start, stop
logDeprecatedSetting, logRemovedSetting, nodeName
public static final Setting<TimeValue> CLUSTER_SERVICE_SLOW_TASK_LOGGING_THRESHOLD_SETTING
public static final java.lang.String UPDATE_THREAD_NAME
public ClusterService(Settings settings, ClusterSettings clusterSettings, ThreadPool threadPool, org.apache.logging.log4j.util.Supplier<DiscoveryNode> localNodeSupplier)
public void setClusterStatePublisher(java.util.function.BiConsumer<ClusterChangedEvent,Discovery.AckListener> publisher)
public void setNodeConnectionsService(NodeConnectionsService nodeConnectionsService)
public void addInitialStateBlock(ClusterBlock block) throws java.lang.IllegalStateException
java.lang.IllegalStateException
public void removeInitialStateBlock(ClusterBlock block) throws java.lang.IllegalStateException
java.lang.IllegalStateException
public void removeInitialStateBlock(int blockId) throws java.lang.IllegalStateException
java.lang.IllegalStateException
protected void doStart()
doStart
in class AbstractLifecycleComponent
protected void doStop()
doStop
in class AbstractLifecycleComponent
protected void doClose()
doClose
in class AbstractLifecycleComponent
public DiscoveryNode localNode()
public OperationRouting operationRouting()
public ClusterState state()
public void addHighPriorityApplier(ClusterStateApplier applier)
public void addLowPriorityApplier(ClusterStateApplier applier)
public void addStateApplier(ClusterStateApplier applier)
public void removeApplier(ClusterStateApplier applier)
public void addListener(ClusterStateListener listener)
public void removeListener(ClusterStateListener listener)
public void removeTimeoutListener(TimeoutClusterStateListener listener)
public void addLocalNodeMasterListener(LocalNodeMasterListener listener)
public void removeLocalNodeMasterListener(LocalNodeMasterListener listener)
public void addTimeoutListener(@Nullable TimeValue timeout, TimeoutClusterStateListener listener)
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 <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 executorpublic java.util.List<PendingClusterTask> pendingTasks()
public int numberOfPendingTasks()
public TimeValue getMaxTaskWaitTime()
public static boolean assertClusterStateThread()
public static boolean assertNotClusterStateUpdateThread(java.lang.String reason)
public ClusterName getClusterName()
public void setDiscoverySettings(DiscoverySettings discoverySettings)
public org.elasticsearch.cluster.service.ClusterService.TaskOutputs calculateTaskOutputs(org.elasticsearch.cluster.service.ClusterService.TaskInputs taskInputs, ClusterState previousClusterState, long startTimeNS)
protected long currentTimeInNanos()
public ClusterSettings getClusterSettings()
public Settings getSettings()