This is an automated email from the ASF dual-hosted git repository. jlli pushed a commit to branch clean-up-task-manager-for-tables in repository https://gitbox.apache.org/repos/asf/pinot.git
commit 7068a246e9851329a7580cbba4479b8599aa64a2 Author: jlli_LinkedIn <j...@linkedin.com> AuthorDate: Mon Apr 15 15:39:13 2024 -0700 Do task related cleanup for non-controller leader --- .../controller/helix/core/minion/PinotTaskManager.java | 16 +++++++++++++++- .../helix/core/minion/generator/PinotTaskGenerator.java | 7 +++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/PinotTaskManager.java b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/PinotTaskManager.java index 2cdbf8c1df..a96e550738 100644 --- a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/PinotTaskManager.java +++ b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/PinotTaskManager.java @@ -693,11 +693,25 @@ public class PinotTaskManager extends ControllerPeriodicTask<Void> { scheduleTasks(tableNamesWithType, true); } + @Override + protected void nonLeaderCleanup(List<String> tableNamesWithType) { + LOGGER.info("Cleaning up all task generators for tables: " + tableNamesWithType); + for (String taskType : _taskGeneratorRegistry.getAllTaskTypes()) { + PinotTaskGenerator pinotTaskGenerator = _taskGeneratorRegistry.getTaskGenerator(taskType); + if (pinotTaskGenerator != null) { + pinotTaskGenerator.nonLeaderCleanUp(tableNamesWithType); + } + } + } + @Override public void cleanUpTask() { LOGGER.info("Cleaning up all task generators"); for (String taskType : _taskGeneratorRegistry.getAllTaskTypes()) { - _taskGeneratorRegistry.getTaskGenerator(taskType).nonLeaderCleanUp(); + PinotTaskGenerator pinotTaskGenerator = _taskGeneratorRegistry.getTaskGenerator(taskType); + if (pinotTaskGenerator != null) { + pinotTaskGenerator.nonLeaderCleanUp(); + } } } diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/generator/PinotTaskGenerator.java b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/generator/PinotTaskGenerator.java index ad42135886..fe98e971f8 100644 --- a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/generator/PinotTaskGenerator.java +++ b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/generator/PinotTaskGenerator.java @@ -86,6 +86,13 @@ public interface PinotTaskGenerator { default void nonLeaderCleanUp() { } + /** + * Given the list of table names, performs necessary cleanups (e.g. remove metrics) when the controller leadership + * changes. + */ + default void nonLeaderCleanUp(List<String> tableNameWithType) { + } + /** * Gets the minionInstanceTag for the tableConfig */ --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org