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

xingtanzjr pushed a commit to branch xingtanzjr/refine_cross_selection
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit a9669f5c08220fd042459c86b2bdac88b3e6a5ce
Author: Jinrui.Zhang <[email protected]>
AuthorDate: Thu Dec 22 14:59:44 2022 +0800

    add at least 1 unseqFile be selected
---
 .../cross/rewrite/RewriteCrossSpaceCompactionSelector.java           | 5 +++++
 1 file changed, 5 insertions(+)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/RewriteCrossSpaceCompactionSelector.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/RewriteCrossSpaceCompactionSelector.java
index 9900d5cab6..5a6e248acc 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/RewriteCrossSpaceCompactionSelector.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/RewriteCrossSpaceCompactionSelector.java
@@ -186,6 +186,11 @@ public class RewriteCrossSpaceCompactionSelector 
implements ICrossSpaceSelector
       TsFileResource unseqFile,
       List<TsFileResource> seqFiles,
       long memoryCost) {
+    // currently, we must allow at least one unseqFile be selected to handle 
the situation that
+    // an unseqFile has huge time range but few data points.
+    if (taskResource.getUnseqFiles().size() == 0) {
+      return true;
+    }
     long totalFileSize = unseqFile.getTsFileSize();
     for (TsFileResource f : seqFiles) {
       totalFileSize += f.getTsFileSize();

Reply via email to