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]

Reply via email to