This is an automated email from the ASF dual-hosted git repository.
jinsongzhou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/amoro.git
The following commit(s) were added to refs/heads/master by this push:
new a8b2ff577 [AMORO-3141] When a master/backup switch occurs, close the
`planExecutor` thread pool (#3142)
a8b2ff577 is described below
commit a8b2ff577e277f843c851fc083b47ae96fead225
Author: rfyu <[email protected]>
AuthorDate: Fri Aug 30 11:07:34 2024 +0800
[AMORO-3141] When a master/backup switch occurs, close the `planExecutor`
thread pool (#3142)
---
.../main/java/org/apache/amoro/server/AmoroServiceContainer.java | 6 +++++-
.../main/java/org/apache/amoro/server/DefaultOptimizingService.java | 5 +++--
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/AmoroServiceContainer.java
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/AmoroServiceContainer.java
index ef76e24c6..92f0dff2b 100644
---
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/AmoroServiceContainer.java
+++
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/AmoroServiceContainer.java
@@ -201,7 +201,11 @@ public class AmoroServiceContainer {
terminalManager.dispose();
terminalManager = null;
}
- optimizingService = null;
+ if (optimizingService != null) {
+ LOG.info("Stopping optimizing service...");
+ optimizingService.dispose();
+ optimizingService = null;
+ }
if (amsServiceMetrics != null) {
amsServiceMetrics.unregister();
diff --git
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/DefaultOptimizingService.java
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/DefaultOptimizingService.java
index 3a51b30b4..d77b7f917 100644
---
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/DefaultOptimizingService.java
+++
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/DefaultOptimizingService.java
@@ -69,7 +69,7 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.DelayQueue;
import java.util.concurrent.Delayed;
-import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
@@ -99,7 +99,7 @@ public class DefaultOptimizingService extends
StatedPersistentBase
private final OptimizerKeeper optimizerKeeper = new OptimizerKeeper();
private final TableService tableService;
private final RuntimeHandlerChain tableHandlerChain;
- private final Executor planExecutor;
+ private final ExecutorService planExecutor;
public DefaultOptimizingService(Configurations serviceConfig,
DefaultTableService tableService) {
this.optimizerTouchTimeout =
serviceConfig.getLong(AmoroManagementConf.OPTIMIZER_HB_TIMEOUT);
@@ -385,6 +385,7 @@ public class DefaultOptimizingService extends
StatedPersistentBase
optimizingQueueByGroup.clear();
optimizingQueueByToken.clear();
authOptimizers.clear();
+ planExecutor.shutdown();
}
public boolean canDeleteResourceGroup(String name) {