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 9877c206e [AMORO-3110] Avoid optimization status blocking in running
(#3113)
9877c206e is described below
commit 9877c206e5a44b1b274fb9084765758b10fa333f
Author: rfyu <[email protected]>
AuthorDate: Sat Sep 14 16:42:00 2024 +0800
[AMORO-3110] Avoid optimization status blocking in running (#3113)
* [AMORO-3110] Avoid optimization status blocking in running
* format
* Ignore the exception when it occurs and do not perform a rollback
---
.../apache/amoro/server/optimizing/OptimizingQueue.java | 2 --
.../apache/amoro/server/persistence/PersistentBase.java | 16 ++++++++++++++++
.../java/org/apache/amoro/server/table/TableRuntime.java | 2 +-
3 files changed, 17 insertions(+), 3 deletions(-)
diff --git
a/amoro-ams/src/main/java/org/apache/amoro/server/optimizing/OptimizingQueue.java
b/amoro-ams/src/main/java/org/apache/amoro/server/optimizing/OptimizingQueue.java
index 6b3d92fcf..47a3f401e 100644
---
a/amoro-ams/src/main/java/org/apache/amoro/server/optimizing/OptimizingQueue.java
+++
b/amoro-ams/src/main/java/org/apache/amoro/server/optimizing/OptimizingQueue.java
@@ -466,8 +466,6 @@ public class OptimizingQueue extends PersistentBase {
persistProcessCompleted(false);
}
}
- } catch (Exception e) {
- LOG.error("accept result error:", e);
} finally {
lock.unlock();
}
diff --git
a/amoro-ams/src/main/java/org/apache/amoro/server/persistence/PersistentBase.java
b/amoro-ams/src/main/java/org/apache/amoro/server/persistence/PersistentBase.java
index 8c9d00389..4a2d6fb26 100644
---
a/amoro-ams/src/main/java/org/apache/amoro/server/persistence/PersistentBase.java
+++
b/amoro-ams/src/main/java/org/apache/amoro/server/persistence/PersistentBase.java
@@ -23,6 +23,8 @@ import org.apache.amoro.server.exception.PersistenceException;
import
org.apache.amoro.shade.guava32.com.google.common.annotations.VisibleForTesting;
import org.apache.amoro.shade.guava32.com.google.common.base.Preconditions;
import org.apache.ibatis.session.TransactionIsolationLevel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.Arrays;
import java.util.function.Consumer;
@@ -31,6 +33,8 @@ import java.util.function.Supplier;
public abstract class PersistentBase {
+ private static final Logger LOG =
LoggerFactory.getLogger(PersistentBase.class);
+
protected PersistentBase() {}
@VisibleForTesting
@@ -69,6 +73,18 @@ public abstract class PersistentBase {
}
}
+ protected final <T> void doAsIgnoreError(Class<T> mapperClz, Consumer<T>
consumer) {
+ try (NestedSqlSession session = beginSession()) {
+ try {
+ T mapper = getMapper(session, mapperClz);
+ consumer.accept(mapper);
+ session.commit();
+ } catch (Throwable t) {
+ LOG.error("Ignore error in doAsIgnoreError", t);
+ }
+ }
+ }
+
protected final void doAsTransaction(Runnable... operations) {
try (NestedSqlSession session = beginSession()) {
try {
diff --git
a/amoro-ams/src/main/java/org/apache/amoro/server/table/TableRuntime.java
b/amoro-ams/src/main/java/org/apache/amoro/server/table/TableRuntime.java
index 73855d3a0..e70adfa80 100644
--- a/amoro-ams/src/main/java/org/apache/amoro/server/table/TableRuntime.java
+++ b/amoro-ams/src/main/java/org/apache/amoro/server/table/TableRuntime.java
@@ -413,7 +413,7 @@ public class TableRuntime extends StatedPersistentBase {
}
public void addTaskQuota(TaskRuntime.TaskQuota taskQuota) {
- doAs(OptimizingMapper.class, mapper -> mapper.insertTaskQuota(taskQuota));
+ doAsIgnoreError(OptimizingMapper.class, mapper ->
mapper.insertTaskQuota(taskQuota));
taskQuotas.add(taskQuota);
long validTime = System.currentTimeMillis() -
AmoroServiceConstants.QUOTA_LOOK_BACK_TIME;
this.taskQuotas.removeIf(task -> task.checkExpired(validTime));