This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch ty/TableModelGrammar in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 4fc150bfacfeba016c5542ee14fdc5b3834f8ae2 Author: shuwenwei <[email protected]> AuthorDate: Tue Jul 23 11:27:03 2024 +0800 Reduce error log when compaction interrupted (#12985) * reduce error log when compaction interrupted * fix thread pool (cherry picked from commit 27c2f13324e293561f8e3f8bb51098e61135d434) --- .../execute/performer/impl/FastCompactionPerformer.java | 9 +++++++-- .../schedule/CompactionScheduleTaskManager.java | 16 ++++++++++------ .../compaction/schedule/CompactionTaskManager.java | 2 ++ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/FastCompactionPerformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/FastCompactionPerformer.java index cb13afa3fc2..be702de8e66 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/FastCompactionPerformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/FastCompactionPerformer.java @@ -44,6 +44,7 @@ import org.apache.iotdb.db.storageengine.dataregion.modification.Modification; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; import org.apache.iotdb.db.utils.datastructure.PatternTreeMapFactory; +import org.apache.tsfile.exception.StopReadTsFileByInterruptException; import org.apache.tsfile.exception.write.PageException; import org.apache.tsfile.file.metadata.IDeviceID; import org.apache.tsfile.read.TsFileSequenceReader; @@ -269,8 +270,12 @@ public class FastCompactionPerformer futures.get(i).get(); subTaskSummary.increase(taskSummaryList.get(i)); } catch (ExecutionException e) { - if (e.getCause() instanceof CompactionLastTimeCheckFailedException) { - throw (CompactionLastTimeCheckFailedException) e.getCause(); + Throwable cause = e.getCause(); + if (cause instanceof CompactionLastTimeCheckFailedException) { + throw (CompactionLastTimeCheckFailedException) cause; + } + if (cause instanceof StopReadTsFileByInterruptException) { + throw (StopReadTsFileByInterruptException) cause; } throw new IOException("[Compaction] SubCompactionTask meet errors ", e); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskManager.java index 8dbcf94fa18..691318a6f4a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskManager.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskManager.java @@ -21,6 +21,7 @@ package org.apache.iotdb.db.storageengine.dataregion.compaction.schedule; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.concurrent.ThreadName; +import org.apache.iotdb.commons.concurrent.threadpool.WrappedThreadPoolExecutor; import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.exception.StartupException; import org.apache.iotdb.commons.service.IService; @@ -42,7 +43,6 @@ import java.util.Set; import java.util.Vector; import java.util.concurrent.CancellationException; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; @@ -55,7 +55,7 @@ public class CompactionScheduleTaskManager implements IService { private final int ttlCheckerNum = IoTDBDescriptor.getInstance().getConfig().getTTlCheckerNum(); - private ExecutorService compactionScheduleTaskThreadPool; + private WrappedThreadPoolExecutor compactionScheduleTaskThreadPool; private static final Logger logger = LoggerFactory.getLogger(IoTDBConstant.COMPACTION_LOGGER_NAME); private static final CompactionScheduleTaskManager INSTANCE = new CompactionScheduleTaskManager(); @@ -179,8 +179,10 @@ public class CompactionScheduleTaskManager implements IService { private void initThreadPool() { this.compactionScheduleTaskThreadPool = - IoTDBThreadPoolFactory.newFixedThreadPool( - compactionSelectorNum + ttlCheckerNum, ThreadName.COMPACTION_SCHEDULE.getName()); + (WrappedThreadPoolExecutor) + IoTDBThreadPoolFactory.newFixedThreadPool( + compactionSelectorNum + ttlCheckerNum, ThreadName.COMPACTION_SCHEDULE.getName()); + this.compactionScheduleTaskThreadPool.disableErrorLog(); init = true; } @@ -189,8 +191,10 @@ public class CompactionScheduleTaskManager implements IService { compactionScheduleTaskThreadPool.shutdownNow(); waitForThreadPoolTerminated(); compactionScheduleTaskThreadPool = - IoTDBThreadPoolFactory.newFixedThreadPool( - compactionSelectorNum + ttlCheckerNum, ThreadName.COMPACTION_SCHEDULE.getName()); + (WrappedThreadPoolExecutor) + IoTDBThreadPoolFactory.newFixedThreadPool( + compactionSelectorNum + ttlCheckerNum, ThreadName.COMPACTION_SCHEDULE.getName()); + compactionScheduleTaskThreadPool.disableErrorLog(); startScheduleTasks(); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionTaskManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionTaskManager.java index 27eadff4874..b04c2a8b7be 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionTaskManager.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionTaskManager.java @@ -138,12 +138,14 @@ public class CompactionTaskManager implements IService { (WrappedThreadPoolExecutor) IoTDBThreadPoolFactory.newFixedThreadPool( compactionThreadNum, ThreadName.COMPACTION_WORKER.getName()); + this.taskExecutionPool.disableErrorLog(); this.subCompactionTaskExecutionPool = (WrappedThreadPoolExecutor) IoTDBThreadPoolFactory.newFixedThreadPool( compactionThreadNum * IoTDBDescriptor.getInstance().getConfig().getSubCompactionTaskNum(), ThreadName.COMPACTION_SUB_TASK.getName()); + this.subCompactionTaskExecutionPool.disableErrorLog(); for (int i = 0; i < compactionThreadNum; ++i) { taskExecutionPool.submit(new CompactionWorker(i, candidateCompactionTaskQueue)); }
