Allowing users to pass minionInstanceTag as a param in /tasks/schedule API
label:
API
feature
This patch accepts a minionInstanceTag string in /tasks/schedule API to allow users to schedule the tasks on that particular instance-tag nodes. This overwrites the values provided in the table configs.
We can use /tasks/execute too as that honors this tag in the config but using an API param seems more intuitive and uses pretty much all the configs of the already-defined table-tasks anyways.
Usecase:
- If users want to schedule their backlog table tasks on adhoc nodes, this param will be useful.
cc @vvivekiyer
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 46.64%. Comparing base (
59551e4) to head (2b26373). Report is 314 commits behind head on master.
Additional details and impacted files
@@ Coverage Diff @@
## master #12786 +/- ##
=============================================
- Coverage 61.75% 46.64% -15.11%
- Complexity 207 953 +746
=============================================
Files 2436 1903 -533
Lines 133233 99964 -33269
Branches 20636 16126 -4510
=============================================
- Hits 82274 46629 -35645
- Misses 44911 49940 +5029
+ Partials 6048 3395 -2653
| Flag | Coverage Δ | |
|---|---|---|
| custom-integration1 | ? |
|
| integration | ? |
|
| integration1 | ? |
|
| integration2 | ? |
|
| java-11 | 46.64% <ø> (-15.07%) |
:arrow_down: |
| java-21 | ? |
|
| skip-bytebuffers-false | 46.64% <ø> (-15.11%) |
:arrow_down: |
| skip-bytebuffers-true | ? |
|
| temurin | 46.64% <ø> (-15.11%) |
:arrow_down: |
| unittests | 46.64% <ø> (-15.11%) |
:arrow_down: |
| unittests1 | 46.64% <ø> (-0.25%) |
:arrow_down: |
| unittests2 | ? |
Flags with carried forward coverage won't be shown. Click here to find out more.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
@tibrewalpratik17 - can you please rebase ?
@siddharthteotia @vvivekiyer rebased with master. Sorry for the delay as I was on PTO.
Hey @tibrewalpratik17 the changes that went into this PR may create unexpected damage as the behaviour for the method
PinotTaskManager#scheduleTask(String, String) has been changed from scheduleTask(taskType, tableNameWithType) to scheduleTask(taskType, minionInstanceTag).
This may break the systems that consume this method, for instance https://github.com/apache/pinot/blob/master/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/CronJobScheduleJob.java#L68
Hey @shounakmk219 thanks for pointing this out! Let me raise a fix shortly.
@shounakmk219 please refer #12964