Class BatchedRerouteService
java.lang.Object
org.elasticsearch.cluster.routing.BatchedRerouteService
- All Implemented Interfaces:
RerouteService
public class BatchedRerouteService extends java.lang.Object implements RerouteService
A
BatchedRerouteService
is a RerouteService
that batches together reroute requests to avoid unnecessary extra reroutes.
This component only does meaningful work on the elected master node. Reroute requests will fail with a NotMasterException
on
other nodes.-
Constructor Summary
Constructors Constructor Description BatchedRerouteService(ClusterService clusterService, java.util.function.BiFunction<ClusterState,java.lang.String,ClusterState> reroute)
-
Method Summary
Modifier and Type Method Description void
reroute(java.lang.String reason, Priority priority, ActionListener<ClusterState> listener)
Initiates a reroute.
-
Constructor Details
-
BatchedRerouteService
public BatchedRerouteService(ClusterService clusterService, java.util.function.BiFunction<ClusterState,java.lang.String,ClusterState> reroute)- Parameters:
reroute
- Function that computes the updated cluster state after it has been rerouted.
-
-
Method Details
-
reroute
public final void reroute(java.lang.String reason, Priority priority, ActionListener<ClusterState> listener)Initiates a reroute.- Specified by:
reroute
in interfaceRerouteService
priority
- the (minimum) priority at which to run this reroute. If there is already a pending reroute at a higher priority then this reroute is batched with the pending one; if there is already a pending reroute at a lower priority then the priority of the pending batch is raised to the given priority.
-