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.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 interface RerouteService
      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.