Class ThrottlingAllocationDecider

java.lang.Object
org.opensearch.cluster.routing.allocation.decider.AllocationDecider
org.opensearch.cluster.routing.allocation.decider.ThrottlingAllocationDecider

public class ThrottlingAllocationDecider
extends AllocationDecider
ThrottlingAllocationDecider controls the recovery process per node in the cluster. It exposes two settings via the cluster update API that allow changes in real-time:
  • cluster.routing.allocation.node_initial_primaries_recoveries - restricts the number of initial primary shard recovery operations on a single node. The default is 4
  • cluster.routing.allocation.node_concurrent_recoveries - restricts the number of total concurrent shards initializing on a single node. The default is 2. Please note that this limit excludes the initial primaries recovery operations per node.

If one of the above thresholds is exceeded per node this allocation decider will return Decision.THROTTLE as a hit to upstream logic to throttle the allocation process to prevent overloading nodes due to too many concurrent recovery processes.