Class StrictTierSelectorStrategy
- All Implemented Interfaces:
TierSelectorStrategy
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.
-
Field Summary
FieldsFields inherited from class org.apache.druid.client.selector.AbstractTierSelectorStrategy
serverSelectorStrategy -
Constructor Summary
ConstructorsConstructorDescriptionStrictTierSelectorStrategy(ServerSelectorStrategy serverSelectorStrategy, StrictTierSelectorStrategyConfig config, ServiceEmitter emitter) -
Method Summary
Modifier and TypeMethodDescription<T> List<QueryableDruidServer>pick(Query<T> query, it.unimi.dsi.fastutil.ints.Int2ObjectRBTreeMap<Set<QueryableDruidServer>> prioritizedServers, DataSegment segment, int numServersToPick) toString()Methods inherited from class org.apache.druid.client.selector.AbstractTierSelectorStrategy
pickMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.druid.client.selector.TierSelectorStrategy
pick, pick
-
Field Details
-
TYPE
- See Also:
-
-
Constructor Details
-
StrictTierSelectorStrategy
public StrictTierSelectorStrategy(ServerSelectorStrategy serverSelectorStrategy, StrictTierSelectorStrategyConfig config, ServiceEmitter emitter)
-
-
Method Details
-
pick
public <T> List<QueryableDruidServer> pick(@Nullable Query<T> query, it.unimi.dsi.fastutil.ints.Int2ObjectRBTreeMap<Set<QueryableDruidServer>> prioritizedServers, DataSegment segment, int numServersToPick) - Specified by:
pickin interfaceTierSelectorStrategy- Overrides:
pickin classAbstractTierSelectorStrategy
-
getComparator
-
getConfig
-
toString
-