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]