Class StrictTierSelectorStrategy

java.lang.Object
org.apache.druid.client.selector.AbstractTierSelectorStrategy
org.apache.druid.client.selector.StrictTierSelectorStrategy
All Implemented Interfaces:
TierSelectorStrategy

public class StrictTierSelectorStrategy extends AbstractTierSelectorStrategy
A TierSelectorStrategy that only considers servers whose priorities are explicitly listed in StrictTierSelectorStrategyConfig.getPriorities().

Unlike other strategies like CustomTierSelectorStrategy that fall back to servers with different priorities, this strategy strictly filters the available servers to the configured priorities. If no servers match the configured priorities, an empty server list is returned from pick(Query, Int2ObjectRBTreeMap, DataSegment, int), which may cause queries to return partial or no data.

When multiple priorities are configured, they are evaluated in the order specified, with earlier priorities preferred over later ones.

Example configuration:

  • druid.broker.select.tier=strict
  • druid.broker.select.tier.strict.priorities=[2,1]
  • With this configuration, servers with priority 2 are preferred over servers with priority 1. Servers with any other tier priority are not considered.

    This strategy is useful when query isolation is required between different server priority tiers. Brokers may still be configured to watch all server tiers, allowing them to retain visibility into the overall cluster state while enforcing isolation at query time.