abhishekrb19 opened a new pull request, #19094:
URL: https://github.com/apache/druid/pull/19094

   ### Summary
   
   Adds two new Broker `TierSelectorStrategy` implementations to provide finer 
control over how Brokers select Historical and Realtime servers for query 
execution. 
   
   - **strict** – Only selects servers whose priorities match the configured 
list.  
     Unlike other existing strategies, there is no fallback to servers with 
other priorities if the configured priorities are unavailable. This also 
addresses a current limitation with watched tiers: when multiple tiers are 
configured, Brokers can still retain visibility into the state of the cluster, 
while enforcing query isolation at the time of server selection rather than 
filtering things at the time of server view.
   
   - **pooled** – Pools servers across the configured priorities and selects 
among them, allowing queries to utilize multiple priority tiers for improved 
availability. This is particularly useful for querying realtime servers where 
the number of task replicas per tier may be limited for cost reasons.
   
   Both strategies require the configured set of priorities to be non-empty. 
Similar to queries routed to tiers that are not part of the watched tiers, 
these strategies may result in queries returning no data if the configured 
priorities are unavailable.
   
   ### Release note
   
   Operators can now configure two new Broker `TierSelectorStrategy` 
implementations:
   
   - strict:  Only selects servers whose priorities match the configured list.  
Example configuration: `druid.broker.select.tier=strict` and 
`druid.broker.select.tier.strict.priorities=[1]`. 
   - pooled: Pools servers across the configured priorities and selects among 
them, allowing queries to utilize multiple priority tiers for improved 
availability. Example configuration: `druid.broker.select.tier=pooled` and 
`druid.broker.select.tier.pooled.priorities=[2,1]`. 
   These strategies can also be configured for Realtime servers using 
`druid.broker.realtime.select.tier`.
   
   This PR has:
   
   - [x] been self-reviewed.
   - [ ] added documentation for new or modified features or behaviors.  (Will 
add docs in a follow up along with previous realtime tier configuration)
   - [x] a release note entry in the PR description.
   - [x] added Javadocs for most classes and all non-trivial methods. Linked 
related entities via Javadoc links.
   - [x] added unit tests or modified existing tests to cover new code paths, 
ensuring the threshold for [code 
coverage](https://github.com/apache/druid/blob/master/dev/code-review/code-coverage.md)
 is met.
   - [x] been tested in a test Druid cluster.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to