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 9e17d0790898ee9dc89a17d58f50cfd4002b009b Author: shuwenwei <[email protected]> AuthorDate: Thu Mar 14 09:50:01 2024 +0800 Random schedule compaction of bound data regions in one compaction schedule worker (#12167) --- .../src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java | 2 +- .../compaction/schedule/CompactionScheduleTaskWorker.java | 7 ++++++- .../src/assembly/resources/conf/iotdb-common.properties | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java index e997b042547..c286a9c6490 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java @@ -535,7 +535,7 @@ public class IoTDBConfig { private boolean enableTsFileValidation = false; /** The size of candidate compaction task queue. */ - private int candidateCompactionTaskQueueSize = 50; + private int candidateCompactionTaskQueueSize = 200; /** * When the size of the mods file corresponding to TsFile exceeds this value, inner compaction 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 b6b438e1b80..e3f8318c63f 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 @@ -27,6 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.concurrent.Callable; @@ -53,11 +54,15 @@ public class CompactionScheduleTaskWorker implements Callable<Void> { continue; } List<DataRegion> dataRegionListSnapshot = new ArrayList<>(dataRegionList); + List<DataRegion> dataRegionsToScheduleCompaction = new ArrayList<>(); for (int i = 0; i < dataRegionListSnapshot.size(); i++) { if (i % workerNum != workerId) { continue; } - DataRegion dataRegion = dataRegionListSnapshot.get(i); + dataRegionsToScheduleCompaction.add(dataRegionListSnapshot.get(i)); + } + Collections.shuffle(dataRegionsToScheduleCompaction); + for (DataRegion dataRegion : dataRegionsToScheduleCompaction) { if (Thread.interrupted()) { throw new InterruptedException(); } diff --git a/iotdb-core/node-commons/src/assembly/resources/conf/iotdb-common.properties b/iotdb-core/node-commons/src/assembly/resources/conf/iotdb-common.properties index 81e0daa33bd..e261d967462 100644 --- a/iotdb-core/node-commons/src/assembly/resources/conf/iotdb-common.properties +++ b/iotdb-core/node-commons/src/assembly/resources/conf/iotdb-common.properties @@ -601,7 +601,7 @@ data_replication_factor=1 # The size of candidate compaction task queue. # Datatype: int -# candidate_compaction_task_queue_size = 50 +# candidate_compaction_task_queue_size = 200 # This parameter is used in two places: # 1. The target tsfile size of inner space compaction.
