This is an automated email from the ASF dual-hosted git repository.
jlli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 9cbc095ab7 Add nonLeaderCleanUp with tables parameters in
PinotTaskGenerator (#13509)
9cbc095ab7 is described below
commit 9cbc095ab73727bb1bcdcff82e21084206ad57b4
Author: Jialiang Li <[email protected]>
AuthorDate: Tue Jul 9 14:19:07 2024 -0700
Add nonLeaderCleanUp with tables parameters in PinotTaskGenerator (#13509)
---
.../controller/helix/core/minion/PinotTaskManager.java | 13 +++++++++++++
.../helix/core/minion/generator/PinotTaskGenerator.java | 7 +++++++
2 files changed, 20 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 4217329a31..f230c5ecce 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
@@ -34,6 +34,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executor;
import javax.annotation.Nullable;
import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
import org.apache.helix.AccessOption;
import org.apache.helix.task.TaskState;
@@ -702,6 +703,18 @@ 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. Number of tables to be"
+ + " cleaned up: {}. Printing at most first 10 table names to be
cleaned up: [{}].",
+ tableNamesWithType.size(),
+ StringUtils.join(tableNamesWithType.stream().limit(10).map(t -> "\"" +
t + "\"").toArray(), ", "));
+ 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]