This is an automated email from the ASF dual-hosted git repository.

haonan pushed a commit to branch rc/1.3.1
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 6def1830b67b8eb51069ed2437fa7fafd578bf0d
Author: shuwenwei <[email protected]>
AuthorDate: Tue Mar 12 09:34:45 2024 +0800

    fix StorageEngine recover slowly (#12151)
---
 .../compaction/schedule/CompactionScheduleTaskWorker.java           | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskWorker.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskWorker.java
index 6c9d68b3c6e..b6b438e1b80 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskWorker.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskWorker.java
@@ -20,6 +20,7 @@
 package org.apache.iotdb.db.storageengine.dataregion.compaction.schedule;
 
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.storageengine.StorageEngine;
 import org.apache.iotdb.db.storageengine.dataregion.DataRegion;
 
 import org.slf4j.Logger;
@@ -47,6 +48,10 @@ public class CompactionScheduleTaskWorker implements 
Callable<Void> {
   public Void call() {
     while (true) {
       try {
+        
Thread.sleep(IoTDBDescriptor.getInstance().getConfig().getCompactionScheduleIntervalInMs());
+        if (!StorageEngine.getInstance().isAllSgReady()) {
+          continue;
+        }
         List<DataRegion> dataRegionListSnapshot = new 
ArrayList<>(dataRegionList);
         for (int i = 0; i < dataRegionListSnapshot.size(); i++) {
           if (i % workerNum != workerId) {
@@ -58,7 +63,6 @@ public class CompactionScheduleTaskWorker implements 
Callable<Void> {
           }
           dataRegion.executeCompaction();
         }
-        
Thread.sleep(IoTDBDescriptor.getInstance().getConfig().getCompactionScheduleIntervalInMs());
       } catch (InterruptedException ignored) {
         logger.info(
             "[CompactionScheduleTaskWorker-{}] compaction schedule is 
interrupted", workerId);

Reply via email to