Class DelayedAllocationService
java.lang.Object
org.elasticsearch.common.component.AbstractLifecycleComponent
org.elasticsearch.cluster.routing.DelayedAllocationService
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,ClusterStateListener,LifecycleComponent,org.elasticsearch.common.lease.Releasable
public class DelayedAllocationService extends AbstractLifecycleComponent implements ClusterStateListener
The
DelayedAllocationService listens to cluster state changes and checks
if there are unassigned shards with delayed allocation (unassigned shards that have
the delay marker). These are shards that have become unassigned due to a node leaving
and which were assigned the delay marker based on the index delay setting
UnassignedInfo.INDEX_DELAYED_NODE_LEFT_TIMEOUT_SETTING
(see AllocationService.disassociateDeadNodes(RoutingAllocation).
This class is responsible for choosing the next (closest) delay expiration of a
delayed shard to schedule a reroute to remove the delay marker.
The actual removal of the delay marker happens in
AllocationService.removeDelayMarkers(RoutingAllocation), triggering yet
another cluster change event.-
Field Summary
Fields inherited from class org.elasticsearch.common.component.AbstractLifecycleComponent
lifecycle -
Constructor Summary
Constructors Constructor Description DelayedAllocationService(ThreadPool threadPool, ClusterService clusterService, AllocationService allocationService) -
Method Summary
Modifier and Type Method Description protected voidassertClusterOrMasterStateThread()voidclusterChanged(ClusterChangedEvent event)Called when cluster state changes.protected longcurrentNanoTime()override this to control time based decisions during delayed allocationprotected voiddoClose()protected voiddoStart()protected voiddoStop()Methods inherited from class org.elasticsearch.common.component.AbstractLifecycleComponent
addLifecycleListener, close, lifecycleState, removeLifecycleListener, start, stopMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
DelayedAllocationService
@Inject public DelayedAllocationService(ThreadPool threadPool, ClusterService clusterService, AllocationService allocationService)
-
-
Method Details
-
doStart
protected void doStart()- Specified by:
doStartin classAbstractLifecycleComponent
-
doStop
protected void doStop()- Specified by:
doStopin classAbstractLifecycleComponent
-
doClose
protected void doClose()- Specified by:
doClosein classAbstractLifecycleComponent
-
currentNanoTime
protected long currentNanoTime()override this to control time based decisions during delayed allocation -
clusterChanged
Description copied from interface:ClusterStateListenerCalled when cluster state changes.- Specified by:
clusterChangedin interfaceClusterStateListener
-
assertClusterOrMasterStateThread
protected void assertClusterOrMasterStateThread()
-