This is an automated email from the ASF dual-hosted git repository. jlli pushed a commit to branch add-signiture-to-clean-up-tasks in repository https://gitbox.apache.org/repos/asf/pinot.git
commit 632e15594818b0dc782922d6e00c8f8b373d6fdd Author: jlli_LinkedIn <[email protected]> AuthorDate: Fri Jun 28 15:57:26 2024 -0700 Add nonLeaderCleanUp with tables parameters in PinotTaskGenerator --- .../pinot/controller/helix/core/minion/PinotTaskManager.java | 8 ++++++++ .../helix/core/minion/generator/PinotTaskGenerator.java | 7 +++++++ 2 files changed, 15 insertions(+) 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 1d58496638..1256ff383d 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 @@ -702,6 +702,14 @@ public class PinotTaskManager extends ControllerPeriodicTask<Void> { } } + @Override + protected void nonLeaderCleanup(List<String> tableNamesWithType) { + LOGGER.info("Cleaning up all task generators for tables that the controller is not the leader for."); + for (String taskType : _taskGeneratorRegistry.getAllTaskTypes()) { + _taskGeneratorRegistry.getTaskGenerator(taskType).nonLeaderCleanUp(tableNamesWithType); + } + } + @Nullable public Scheduler getScheduler() { return _scheduler; 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..fd2a4615ed 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() { } + /** + * Performs necessary cleanups (e.g. remove metrics) when the controller leadership changes, + * given a list of tables that the current controller isn't the leader for. + */ + default void nonLeaderCleanUp(List<String> tableNamesWithType) { + } + /** * Gets the minionInstanceTag for the tableConfig */ --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
