pinot icon indicating copy to clipboard operation
pinot copied to clipboard

Allowing users to pass minionInstanceTag as a param in /tasks/schedule API

Open tibrewalpratik17 opened this issue 1 year ago • 1 comments

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

tibrewalpratik17 avatar Apr 03 '24 17:04 tibrewalpratik17

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.

codecov-commenter avatar Apr 03 '24 18:04 codecov-commenter

@tibrewalpratik17 - can you please rebase ?

siddharthteotia avatar Apr 09 '24 02:04 siddharthteotia

@siddharthteotia @vvivekiyer rebased with master. Sorry for the delay as I was on PTO.

tibrewalpratik17 avatar Apr 17 '24 05:04 tibrewalpratik17

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

shounakmk219 avatar Apr 18 '24 11:04 shounakmk219

Hey @shounakmk219 thanks for pointing this out! Let me raise a fix shortly.

tibrewalpratik17 avatar Apr 18 '24 12:04 tibrewalpratik17

@shounakmk219 please refer #12964

tibrewalpratik17 avatar Apr 18 '24 16:04 tibrewalpratik17