abhishekrb19 opened a new pull request, #19040: URL: https://github.com/apache/druid/pull/19040
Fixes https://github.com/apache/druid/issues/19018 This change introduces `serverPriorityToReplicaCount` allowing operators to control the number of replicas per server priority. This ties into Druid’s query prioritization and [routing](https://druid.apache.org/docs/latest/configuration/#query-routing) strategies for Peon servers, similar to how it works for Historicals and Brokers. This enables cluster operators to configure and isolate Peon replicas for mixed workload use cases in high SLA environments. For example, some replicas can be configured to handle queries of all priorities, while others may only respond to specific priority ranges. Approach: To support this, a new `serverPriorityToReplicaCount` property is added to the supervisor’s `ioConfig`. The `SeekableStreamSupervisor` assigns priorities to `SeekableStreamIndexTask`s as they are created for a group. Similarly they're removed from internal bookkeeping when the tasks terminate. The `ForkingTaskRunner` then passes the appropriate server priority when initializing the Peon server. In the absence of this configuration, Peons continue to run with the default priority 0. `serverPriorityToReplicaCount` is optional and is compatible with the existing `replicas` property if specified. Note: I’ve intentionally excluded Kinesis and Rabbit supervisors for now to limit the scope and testing. These should be straightforward to add in a follow-up once this implementation is reviewed. TODO: Add additional tests and documentation. This PR has: - [ ] been self-reviewed. - [ ] using the [concurrency checklist](https://github.com/apache/druid/blob/master/dev/code-review/concurrency.md) (Remove this item if the PR doesn't have any relation to concurrency.) - [ ] added documentation for new or modified features or behaviors. - [ ] a release note entry in the PR description. - [ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links. - [ ] added or updated version, license, or notice information in [licenses.yaml](https://github.com/apache/druid/blob/master/dev/license.md) - [ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader. - [ ] 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. - [ ] added integration tests. - [ ] 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]
