You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by jl...@apache.org on 2024/04/15 22:39:32 UTC
(pinot) 01/01: Do task related cleanup for non-controller leader
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 <jl...@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-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org