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]

Reply via email to