You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ma...@apache.org on 2022/11/23 09:16:39 UTC

[iotdb] 01/01: change merge statement to compact

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

marklau99 pushed a commit to branch IOTDB-5029
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 5d8b6e5f2acb4835f69bcde4faca52263241e11f
Author: LiuXuxin <li...@outlook.com>
AuthorDate: Wed Nov 23 17:16:24 2022 +0800

    change merge statement to compact
---
 .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4   |  8 +-
 .../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4  |  4 +-
 .../RewriteCrossSpaceCompactionSelector.java       | 10 +--
 .../ICrossSpaceCompactionFileSelector.java         |  4 +-
 ...ergeException.java => CompactionException.java} |  4 +-
 .../iotdb/db/mpp/plan/constant/StatementType.java  |  2 +-
 .../plan/execution/config/ConfigTaskVisitor.java   |  8 +-
 .../sys/{MergeTask.java => CompactTask.java}       | 12 +--
 .../iotdb/db/mpp/plan/parser/ASTVisitor.java       | 17 ++---
 .../db/mpp/plan/statement/StatementVisitor.java    |  6 +-
 .../{MergeStatement.java => CompactStatement.java} |  4 +-
 .../org/apache/iotdb/db/qp/logical/Operator.java   |  2 +-
 .../{MergeOperator.java => CompactOperator.java}   | 12 +--
 .../apache/iotdb/db/qp/physical/PhysicalPlan.java  |  8 +-
 .../sys/{MergePlan.java => CompactPlan.java}       | 12 +--
 .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java    | 12 +--
 .../cross/CrossSpaceCompactionValidationTest.java  | 88 ++++++++++++----------
 .../engine/compaction/cross/MergeUpgradeTest.java  |  4 +-
 .../cross/RewriteCompactionFileSelectorTest.java   | 31 ++++----
 ...torTest.java => DeviceCompactOperatorTest.java} |  2 +-
 ...Test.java => LastQueryCompactOperatorTest.java} |  2 +-
 ...atorTest.java => CountCompactOperatorTest.java} |  2 +-
 22 files changed, 129 insertions(+), 125 deletions(-)

diff --git a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
index eee28fb877..7288da2ff8 100644
--- a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
+++ b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
@@ -59,7 +59,7 @@ dclStatement
     ;
 
 utilityStatement
-    : merge | fullMerge | flush | clearCache | settle | explain
+    : compact | fullMerge | flush | clearCache | settle | explain
     | setSystemStatus | showVersion | showFlushInfo | showLockInfo | showQueryResource
     | showQueryProcesslist | killQuery | grantWatermarkEmbedding | revokeWatermarkEmbedding
     | loadConfiguration | loadTimeseries | loadFile | removeFile | unloadFile;
@@ -672,13 +672,13 @@ usernameWithRoot
  */
 
 // Merge
-merge
-    : MERGE (ON (LOCAL | CLUSTER))?
+compact
+    : COMPACT (ON (LOCAL | CLUSTER))?
     ;
 
 // Full Merge
 fullMerge
-    : FULL MERGE (ON (LOCAL | CLUSTER))?
+    : FULL COMPACT (ON (LOCAL | CLUSTER))?
     ;
 
 // Flush
diff --git a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
index 5df211d6c1..3b3790463b 100644
--- a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
+++ b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
@@ -350,8 +350,8 @@ LOCK
     : L O C K
     ;
 
-MERGE
-    : M E R G E
+COMPACT
+    : C O M P A C T
     ;
 
 METADATA
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 beaba02e08..fba5410963 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
@@ -28,7 +28,7 @@ import org.apache.iotdb.db.engine.compaction.task.ICompactionSelector;
 import org.apache.iotdb.db.engine.storagegroup.TsFileManager;
 import org.apache.iotdb.db.engine.storagegroup.TsFileNameGenerator;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
-import org.apache.iotdb.db.exception.MergeException;
+import org.apache.iotdb.db.exception.CompactionException;
 import org.apache.iotdb.db.rescon.SystemInfo;
 import org.apache.iotdb.tsfile.utils.Pair;
 
@@ -118,7 +118,7 @@ public class RewriteCrossSpaceCompactionSelector implements ICrossSpaceSelector
    * @return two lists of TsFileResource, the former is selected seqFiles and the latter is selected
    *     unseqFiles or an empty array if there are no proper candidates by the budget.
    */
-  private List[] select() throws MergeException {
+  private List[] select() throws CompactionException {
     long startTime = System.currentTimeMillis();
     try {
       LOGGER.debug(
@@ -131,12 +131,12 @@ public class RewriteCrossSpaceCompactionSelector implements ICrossSpaceSelector
         return new List[0];
       }
     } catch (IOException e) {
-      throw new MergeException(e);
+      throw new CompactionException(e);
     } finally {
       try {
         compactionEstimator.clear();
       } catch (IOException e) {
-        throw new MergeException(e);
+        throw new CompactionException(e);
       }
     }
     LOGGER.info(
@@ -405,7 +405,7 @@ public class RewriteCrossSpaceCompactionSelector implements ICrossSpaceSelector
         return Collections.singletonList(new Pair<>(mergeFiles[0], mergeFiles[1]));
       }
 
-    } catch (MergeException e) {
+    } catch (CompactionException e) {
       LOGGER.error("{} cannot select file for cross space compaction", logicalStorageGroupName, e);
     }
     return Collections.emptyList();
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/selector/ICrossSpaceCompactionFileSelector.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/selector/ICrossSpaceCompactionFileSelector.java
index 7f25254153..d757334299 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/selector/ICrossSpaceCompactionFileSelector.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/selector/ICrossSpaceCompactionFileSelector.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.cross.rewrite.selector;
 
-import org.apache.iotdb.db.exception.MergeException;
+import org.apache.iotdb.db.exception.CompactionException;
 
 import java.util.List;
 
@@ -29,5 +29,5 @@ import java.util.List;
  */
 public interface ICrossSpaceCompactionFileSelector {
 
-  List[] select() throws MergeException;
+  List[] select() throws CompactionException;
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/MergeException.java b/server/src/main/java/org/apache/iotdb/db/exception/CompactionException.java
similarity index 91%
rename from server/src/main/java/org/apache/iotdb/db/exception/MergeException.java
rename to server/src/main/java/org/apache/iotdb/db/exception/CompactionException.java
index 4b0f7ddf9d..2b5c588a4e 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/MergeException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/CompactionException.java
@@ -22,11 +22,11 @@ package org.apache.iotdb.db.exception;
 import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
-public class MergeException extends IoTDBException {
+public class CompactionException extends IoTDBException {
 
   private static final long serialVersionUID = 5445240999141374140L;
 
-  public MergeException(Throwable cause) {
+  public CompactionException(Throwable cause) {
     super(cause.getMessage(), TSStatusCode.COMPACTION_ERROR.getStatusCode());
   }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/constant/StatementType.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/constant/StatementType.java
index 7e88374da7..607e09fb56 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/constant/StatementType.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/constant/StatementType.java
@@ -99,7 +99,7 @@ public enum StatementType {
   SET_TEMPLATE,
   ACTIVATE_TEMPLATE,
 
-  MERGE,
+  COMPACT,
   FULL_MERGE,
 
   MNODE,
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigTaskVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigTaskVisitor.java
index 5fe55dadcc..82415633d9 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigTaskVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigTaskVisitor.java
@@ -54,9 +54,9 @@ import org.apache.iotdb.db.mpp.plan.execution.config.metadata.template.ShowSchem
 import org.apache.iotdb.db.mpp.plan.execution.config.metadata.template.UnsetSchemaTemplateTask;
 import org.apache.iotdb.db.mpp.plan.execution.config.sys.AuthorizerTask;
 import org.apache.iotdb.db.mpp.plan.execution.config.sys.ClearCacheTask;
+import org.apache.iotdb.db.mpp.plan.execution.config.sys.CompactTask;
 import org.apache.iotdb.db.mpp.plan.execution.config.sys.FlushTask;
 import org.apache.iotdb.db.mpp.plan.execution.config.sys.LoadConfigurationTask;
-import org.apache.iotdb.db.mpp.plan.execution.config.sys.MergeTask;
 import org.apache.iotdb.db.mpp.plan.execution.config.sys.SetSystemStatusTask;
 import org.apache.iotdb.db.mpp.plan.execution.config.sys.sync.CreatePipeSinkTask;
 import org.apache.iotdb.db.mpp.plan.execution.config.sys.sync.CreatePipeTask;
@@ -103,9 +103,9 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.template.ShowSchemaTempla
 import org.apache.iotdb.db.mpp.plan.statement.metadata.template.UnsetSchemaTemplateStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.AuthorStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.ClearCacheStatement;
+import org.apache.iotdb.db.mpp.plan.statement.sys.CompactStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.FlushStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.LoadConfigurationStatement;
-import org.apache.iotdb.db.mpp.plan.statement.sys.MergeStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.SetSystemStatusStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.sync.CreatePipeSinkStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.sync.CreatePipeStatement;
@@ -183,8 +183,8 @@ public class ConfigTaskVisitor
   }
 
   @Override
-  public IConfigTask visitMerge(MergeStatement mergeStatement, TaskContext context) {
-    return new MergeTask(mergeStatement);
+  public IConfigTask visitMerge(CompactStatement compactStatement, TaskContext context) {
+    return new CompactTask(compactStatement);
   }
 
   @Override
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/MergeTask.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/CompactTask.java
similarity index 79%
rename from server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/MergeTask.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/CompactTask.java
index a2b1aa612e..ba57f2146c 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/MergeTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/CompactTask.java
@@ -22,21 +22,21 @@ package org.apache.iotdb.db.mpp.plan.execution.config.sys;
 import org.apache.iotdb.db.mpp.plan.execution.config.ConfigTaskResult;
 import org.apache.iotdb.db.mpp.plan.execution.config.IConfigTask;
 import org.apache.iotdb.db.mpp.plan.execution.config.executor.IConfigTaskExecutor;
-import org.apache.iotdb.db.mpp.plan.statement.sys.MergeStatement;
+import org.apache.iotdb.db.mpp.plan.statement.sys.CompactStatement;
 
 import com.google.common.util.concurrent.ListenableFuture;
 
-public class MergeTask implements IConfigTask {
+public class CompactTask implements IConfigTask {
 
-  private final MergeStatement mergeStatement;
+  private final CompactStatement compactStatement;
 
-  public MergeTask(MergeStatement mergeStatement) {
-    this.mergeStatement = mergeStatement;
+  public CompactTask(CompactStatement compactStatement) {
+    this.compactStatement = compactStatement;
   }
 
   @Override
   public ListenableFuture<ConfigTaskResult> execute(IConfigTaskExecutor configTaskExecutor)
       throws InterruptedException {
-    return configTaskExecutor.merge(mergeStatement.isOnCluster());
+    return configTaskExecutor.merge(compactStatement.isOnCluster());
   }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
index f2557cc6f3..91051fd0b3 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
@@ -139,10 +139,10 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.template.ShowSchemaTempla
 import org.apache.iotdb.db.mpp.plan.statement.metadata.template.UnsetSchemaTemplateStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.AuthorStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.ClearCacheStatement;
+import org.apache.iotdb.db.mpp.plan.statement.sys.CompactStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.ExplainStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.FlushStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.LoadConfigurationStatement;
-import org.apache.iotdb.db.mpp.plan.statement.sys.MergeStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.SetSystemStatusStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.ShowVersionStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.sync.CreatePipeSinkStatement;
@@ -2694,25 +2694,24 @@ public class ASTVisitor extends IoTDBSqlParserBaseVisitor<Statement> {
     }
   }
 
-  // Merge
   @Override
-  public Statement visitMerge(IoTDBSqlParser.MergeContext ctx) {
-    MergeStatement mergeStatement = new MergeStatement(StatementType.MERGE);
+  public Statement visitCompact(IoTDBSqlParser.CompactContext ctx) {
+    CompactStatement compactStatement = new CompactStatement(StatementType.COMPACT);
     if (ctx.CLUSTER() != null && !IoTDBDescriptor.getInstance().getConfig().isClusterMode()) {
       throw new SemanticException("MERGE ON CLUSTER is not supported in standalone mode");
     }
-    mergeStatement.setOnCluster(ctx.LOCAL() == null);
-    return mergeStatement;
+    compactStatement.setOnCluster(ctx.LOCAL() == null);
+    return compactStatement;
   }
 
   @Override
   public Statement visitFullMerge(IoTDBSqlParser.FullMergeContext ctx) {
-    MergeStatement mergeStatement = new MergeStatement(StatementType.FULL_MERGE);
+    CompactStatement compactStatement = new CompactStatement(StatementType.FULL_MERGE);
     if (ctx.CLUSTER() != null && !IoTDBDescriptor.getInstance().getConfig().isClusterMode()) {
       throw new SemanticException("FULL MERGE ON CLUSTER is not supported in standalone mode");
     }
-    mergeStatement.setOnCluster(ctx.LOCAL() == null);
-    return mergeStatement;
+    compactStatement.setOnCluster(ctx.LOCAL() == null);
+    return compactStatement;
   }
 
   // Flush
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java
index bd1d02330a..2951ed1216 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java
@@ -78,10 +78,10 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.template.ShowSchemaTempla
 import org.apache.iotdb.db.mpp.plan.statement.metadata.template.UnsetSchemaTemplateStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.AuthorStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.ClearCacheStatement;
+import org.apache.iotdb.db.mpp.plan.statement.sys.CompactStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.ExplainStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.FlushStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.LoadConfigurationStatement;
-import org.apache.iotdb.db.mpp.plan.statement.sys.MergeStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.SetSystemStatusStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.ShowVersionStatement;
 import org.apache.iotdb.db.mpp.plan.statement.sys.sync.CreatePipeSinkStatement;
@@ -296,8 +296,8 @@ public abstract class StatementVisitor<R, C> {
     return visitStatement(deleteDataStatement, context);
   }
 
-  public R visitMerge(MergeStatement mergeStatement, C context) {
-    return visitStatement(mergeStatement, context);
+  public R visitMerge(CompactStatement compactStatement, C context) {
+    return visitStatement(compactStatement, context);
   }
 
   public R visitFlush(FlushStatement flushStatement, C context) {
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/sys/MergeStatement.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/sys/CompactStatement.java
similarity index 93%
rename from server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/sys/MergeStatement.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/sys/CompactStatement.java
index 9183b45341..200f4c5dd4 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/sys/MergeStatement.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/sys/CompactStatement.java
@@ -29,11 +29,11 @@ import org.apache.iotdb.db.mpp.plan.statement.StatementVisitor;
 import java.util.Collections;
 import java.util.List;
 
-public class MergeStatement extends Statement implements IConfigStatement {
+public class CompactStatement extends Statement implements IConfigStatement {
 
   private boolean onCluster;
 
-  public MergeStatement(StatementType mergeType) {
+  public CompactStatement(StatementType mergeType) {
     this.statementType = mergeType;
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/Operator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/Operator.java
index 32292b5b0d..c19cd48ed7 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/Operator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/Operator.java
@@ -165,7 +165,7 @@ public abstract class Operator {
     SET_TEMPLATE,
     ACTIVATE_TEMPLATE,
 
-    MERGE,
+    COMPACT,
     FULL_MERGE,
 
     MNODE,
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/MergeOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/CompactOperator.java
similarity index 83%
rename from server/src/main/java/org/apache/iotdb/db/qp/logical/sys/MergeOperator.java
rename to server/src/main/java/org/apache/iotdb/db/qp/logical/sys/CompactOperator.java
index 416daa1208..9e0e09bafa 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/MergeOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/CompactOperator.java
@@ -22,23 +22,23 @@ import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.db.qp.logical.Operator;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
-import org.apache.iotdb.db.qp.physical.sys.MergePlan;
+import org.apache.iotdb.db.qp.physical.sys.CompactPlan;
 import org.apache.iotdb.db.qp.strategy.PhysicalGenerator;
 
-public class MergeOperator extends Operator {
+public class CompactOperator extends Operator {
 
-  public MergeOperator(int tokenIntType) {
+  public CompactOperator(int tokenIntType) {
     super(tokenIntType);
-    operatorType = OperatorType.MERGE;
+    operatorType = OperatorType.COMPACT;
   }
 
   @Override
   public PhysicalPlan generatePhysicalPlan(PhysicalGenerator generator)
       throws QueryProcessException {
     if (tokenIntType == SQLConstant.TOK_FULL_MERGE) {
-      return new MergePlan(OperatorType.FULL_MERGE);
+      return new CompactPlan(OperatorType.FULL_MERGE);
     } else {
-      return new MergePlan();
+      return new CompactPlan();
     }
   }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java
index df59500d86..b4d6fc0956 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java
@@ -35,6 +35,7 @@ import org.apache.iotdb.db.qp.physical.sys.AutoCreateDeviceMNodePlan;
 import org.apache.iotdb.db.qp.physical.sys.ChangeAliasPlan;
 import org.apache.iotdb.db.qp.physical.sys.ChangeTagOffsetPlan;
 import org.apache.iotdb.db.qp.physical.sys.ClearCachePlan;
+import org.apache.iotdb.db.qp.physical.sys.CompactPlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateAlignedTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateContinuousQueryPlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateFunctionPlan;
@@ -54,7 +55,6 @@ import org.apache.iotdb.db.qp.physical.sys.LoadConfigurationPlan;
 import org.apache.iotdb.db.qp.physical.sys.LogPlan;
 import org.apache.iotdb.db.qp.physical.sys.MNodePlan;
 import org.apache.iotdb.db.qp.physical.sys.MeasurementMNodePlan;
-import org.apache.iotdb.db.qp.physical.sys.MergePlan;
 import org.apache.iotdb.db.qp.physical.sys.PreDeleteTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.PruneTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.RollbackPreDeleteTimeSeriesPlan;
@@ -432,8 +432,8 @@ public abstract class PhysicalPlan implements IConsensusRequest {
         case DROP_CONTINUOUS_QUERY:
           plan = new DropContinuousQueryPlan();
           break;
-        case MERGE:
-          plan = new MergePlan();
+        case COMPACT:
+          plan = new CompactPlan();
           break;
         case CLEARCACHE:
           plan = new ClearCachePlan();
@@ -518,7 +518,7 @@ public abstract class PhysicalPlan implements IConsensusRequest {
     CREATE_CONTINUOUS_QUERY,
     DROP_CONTINUOUS_QUERY,
     SHOW_CONTINUOUS_QUERIES,
-    MERGE,
+    COMPACT,
     CREATE_SNAPSHOT, // the snapshot feature has been deprecated, this is kept for compatibility
     CLEARCACHE,
     CREATE_FUNCTION,
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/MergePlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CompactPlan.java
similarity index 85%
rename from server/src/main/java/org/apache/iotdb/db/qp/physical/sys/MergePlan.java
rename to server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CompactPlan.java
index 729ae0e157..48488b24f9 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/MergePlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CompactPlan.java
@@ -29,14 +29,14 @@ import java.nio.ByteBuffer;
 import java.util.Collections;
 import java.util.List;
 
-public class MergePlan extends PhysicalPlan {
+public class CompactPlan extends PhysicalPlan {
 
-  public MergePlan(OperatorType operatorType) {
+  public CompactPlan(OperatorType operatorType) {
     super(operatorType);
   }
 
-  public MergePlan() {
-    super(OperatorType.MERGE);
+  public CompactPlan() {
+    super(OperatorType.COMPACT);
   }
 
   @Override
@@ -46,12 +46,12 @@ public class MergePlan extends PhysicalPlan {
 
   @Override
   public void serialize(DataOutputStream stream) throws IOException {
-    stream.writeByte((byte) PhysicalPlanType.MERGE.ordinal());
+    stream.writeByte((byte) PhysicalPlanType.COMPACT.ordinal());
   }
 
   @Override
   public void serializeImpl(ByteBuffer buffer) {
-    buffer.put((byte) PhysicalPlanType.MERGE.ordinal());
+    buffer.put((byte) PhysicalPlanType.COMPACT.ordinal());
   }
 
   @Override
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
index 4a9b7afeb4..3220d36a17 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
@@ -91,6 +91,7 @@ import org.apache.iotdb.db.qp.logical.sys.AlterTimeSeriesOperator.AlterType;
 import org.apache.iotdb.db.qp.logical.sys.AuthorOperator;
 import org.apache.iotdb.db.qp.logical.sys.AuthorOperator.AuthorType;
 import org.apache.iotdb.db.qp.logical.sys.ClearCacheOperator;
+import org.apache.iotdb.db.qp.logical.sys.CompactOperator;
 import org.apache.iotdb.db.qp.logical.sys.CountOperator;
 import org.apache.iotdb.db.qp.logical.sys.CreateAlignedTimeSeriesOperator;
 import org.apache.iotdb.db.qp.logical.sys.CreateContinuousQueryOperator;
@@ -114,7 +115,6 @@ import org.apache.iotdb.db.qp.logical.sys.LoadConfigurationOperator;
 import org.apache.iotdb.db.qp.logical.sys.LoadConfigurationOperator.LoadConfigurationOperatorType;
 import org.apache.iotdb.db.qp.logical.sys.LoadDataOperator;
 import org.apache.iotdb.db.qp.logical.sys.LoadFilesOperator;
-import org.apache.iotdb.db.qp.logical.sys.MergeOperator;
 import org.apache.iotdb.db.qp.logical.sys.RemoveFileOperator;
 import org.apache.iotdb.db.qp.logical.sys.SetStorageGroupOperator;
 import org.apache.iotdb.db.qp.logical.sys.SetSystemModeOperator;
@@ -2129,19 +2129,15 @@ public class IoTDBSqlVisitor extends IoTDBSqlParserBaseVisitor<Operator> {
   }
 
   /** 5. Utility Statements */
-
-  // Merge
-
   @Override
-  public Operator visitMerge(IoTDBSqlParser.MergeContext ctx) {
-    return new MergeOperator(SQLConstant.TOK_MERGE);
+  public Operator visitCompact(IoTDBSqlParser.CompactContext ctx) {
+    return new CompactOperator(SQLConstant.TOK_MERGE);
   }
 
   // Full Merge
-
   @Override
   public Operator visitFullMerge(IoTDBSqlParser.FullMergeContext ctx) {
-    return new MergeOperator(SQLConstant.TOK_FULL_MERGE);
+    return new CompactOperator(SQLConstant.TOK_FULL_MERGE);
   }
 
   // Flush
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionValidationTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionValidationTest.java
index 12f79efa6e..6d6ff5aebe 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionValidationTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionValidationTest.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.db.engine.compaction.cross.rewrite.RewriteCrossSpaceComp
 import org.apache.iotdb.db.engine.storagegroup.TsFileManager;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResourceStatus;
-import org.apache.iotdb.db.exception.MergeException;
+import org.apache.iotdb.db.exception.CompactionException;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.query.control.FileReaderManager;
 import org.apache.iotdb.db.tools.validate.TsFileValidationTool;
@@ -76,7 +76,8 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    * Selected unseq file index: 1, 2
    */
   @Test
-  public void test1() throws MetadataException, IOException, WriteProcessException, MergeException {
+  public void test1()
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(2, 10, 10, 1000, 2100, 2100, 100, 100, true, false);
@@ -120,7 +121,8 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    * Selected unseq file index: 1, 2
    */
   @Test
-  public void test2() throws MetadataException, IOException, WriteProcessException, MergeException {
+  public void test2()
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 5, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 5, 10, 1000, 2100, 2100, 100, 100, true, false);
@@ -168,7 +170,8 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    * Selected unseq file index: 1, 2
    */
   @Test
-  public void test3() throws MetadataException, IOException, WriteProcessException, MergeException {
+  public void test3()
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 5, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 5, 10, 1500, 1500, 1500, 100, 100, true, false);
@@ -217,7 +220,8 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    * Selected unseq file index: 1, 2, 3, 4
    */
   @Test
-  public void test4() throws MetadataException, IOException, WriteProcessException, MergeException {
+  public void test4()
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 5, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 5, 10, 1000, 1500, 1500, 100, 100, true, false);
@@ -273,7 +277,8 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    * Selected unseq file index: 1, 2
    */
   @Test
-  public void test5() throws MetadataException, IOException, WriteProcessException, MergeException {
+  public void test5()
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     IoTDBDescriptor.getInstance().getConfig().setMaxCrossCompactionCandidateFileNum(7);
     registerTimeseriesInMManger(5, 10, true);
     createFiles(7, 5, 10, 1000, 0, 0, 100, 100, true, true);
@@ -325,7 +330,8 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    * Selected unseq file index: 1, 2, 3
    */
   @Test
-  public void test6() throws MetadataException, IOException, WriteProcessException, MergeException {
+  public void test6()
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 5, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 5, 10, 3000, 1100, 1100, 100, 100, true, true);
@@ -376,7 +382,8 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    * Selected unseq file index: 1, 2, 3, 4
    */
   @Test
-  public void test7() throws MetadataException, IOException, WriteProcessException, MergeException {
+  public void test7()
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 5, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 5, 10, 3000, 1100, 1100, 100, 100, true, true);
@@ -430,7 +437,8 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    * Selected unseq file index: 1, 2, 3, 4
    */
   @Test
-  public void test8() throws MetadataException, IOException, WriteProcessException, MergeException {
+  public void test8()
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 5, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 5, 10, 1000, 1500, 1500, 100, 100, true, false);
@@ -488,7 +496,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewAlignedDeviceAndSensorInUnseqFile10()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(2, 10, 10, 1000, 2100, 2100, 100, 100, true, false);
@@ -541,7 +549,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewAlignedDeviceAndSensorInUnseqFile11()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(2, 10, 10, 1000, 2100, 2100, 100, 100, true, false);
@@ -595,7 +603,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewAlignedDeviceAndSensorInUnseqFile12()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(2, 10, 10, 1000, 2100, 2100, 100, 100, true, false);
@@ -649,7 +657,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewAlignedDeviceAndSensorInUnseqFile20()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 10, 10, 1000, 2100, 2100, 100, 100, true, false);
@@ -703,7 +711,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewAlignedDeviceAndSensorInUnseqFile21()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 10, 10, 1000, 2100, 2100, 100, 100, true, false);
@@ -758,7 +766,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewAlignedDeviceAndSensorInUnseqFile22()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 10, 10, 1000, 2100, 2100, 100, 100, true, false);
@@ -814,7 +822,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewAlignedDeviceAndSensorInUnseqFile30()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 5, 5, 1000, 1100, 1100, 100, 100, true, true);
@@ -870,7 +878,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewAlignedDeviceAndSensorInUnseqFile31()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 5, 5, 1000, 1100, 1100, 100, 100, true, true);
@@ -927,7 +935,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewAlignedDeviceAndSensorInUnseqFile32()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 5, 5, 1000, 1100, 1100, 100, 100, true, true);
@@ -981,7 +989,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewAlignedDeviceAndSensorInUnseqFile50()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 6, 6, 1000, 1100, 1100, 100, 100, true, true);
@@ -1039,7 +1047,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewAlignedDeviceAndSensorInUnseqFile51()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 6, 6, 1000, 1100, 1100, 100, 100, true, true);
@@ -1097,7 +1105,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewAlignedDeviceAndSensorInUnseqFile52()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 6, 6, 1000, 1100, 1100, 100, 100, true, true);
@@ -1155,7 +1163,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewAlignedDeviceAndSensorInUnseqFile53()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, true, true);
     createFiles(1, 6, 6, 1000, 1100, 1100, 100, 100, true, true);
@@ -1216,7 +1224,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewDeviceAndSensorInUnseqFile10()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(2, 10, 10, 1000, 2100, 2100, 100, 100, false, false);
@@ -1269,7 +1277,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewDeviceAndSensorInUnseqFile11()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(2, 10, 10, 1000, 2100, 2100, 100, 100, false, false);
@@ -1323,7 +1331,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewDeviceAndSensorInUnseqFile12()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(2, 10, 10, 1000, 2100, 2100, 100, 100, false, false);
@@ -1377,7 +1385,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewDeviceAndSensorInUnseqFile20()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 10, 10, 1000, 2100, 2100, 100, 100, false, false);
@@ -1431,7 +1439,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewDeviceAndSensorInUnseqFile21()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 10, 10, 1000, 2100, 2100, 100, 100, false, false);
@@ -1486,7 +1494,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewDeviceAndSensorInUnseqFile22()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(2, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 10, 10, 1000, 2100, 2100, 100, 100, false, false);
@@ -1542,7 +1550,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewDeviceAndSensorInUnseqFile30()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 5, 5, 1000, 1100, 1100, 100, 100, false, true);
@@ -1598,7 +1606,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewDeviceAndSensorInUnseqFile31()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 5, 5, 1000, 1100, 1100, 100, 100, false, true);
@@ -1655,7 +1663,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewDeviceAndSensorInUnseqFile32()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 5, 5, 1000, 1100, 1100, 100, 100, false, true);
@@ -1709,7 +1717,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewDeviceAndSensorInUnseqFile50()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 6, 6, 1000, 1100, 1100, 100, 100, false, true);
@@ -1767,7 +1775,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewDeviceAndSensorInUnseqFile51()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 6, 6, 1000, 1100, 1100, 100, 100, false, true);
@@ -1825,7 +1833,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewDeviceAndSensorInUnseqFile52()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 6, 6, 1000, 1100, 1100, 100, 100, false, true);
@@ -1883,7 +1891,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithNewDeviceAndSensorInUnseqFile53()
-      throws MetadataException, IOException, WriteProcessException, MergeException {
+      throws MetadataException, IOException, WriteProcessException, CompactionException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(1, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 6, 6, 1000, 1100, 1100, 100, 100, false, true);
@@ -1940,7 +1948,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithUnclosedSeqFile()
-      throws MergeException, IOException, MetadataException, WriteProcessException {
+      throws CompactionException, IOException, MetadataException, WriteProcessException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(5, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 10, 10, 1000, 2500, 2500, 100, 100, false, false);
@@ -1995,7 +2003,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithUnclosedSeqFileAndNewSensorInUnseqFile()
-      throws MergeException, IOException, MetadataException, WriteProcessException {
+      throws CompactionException, IOException, MetadataException, WriteProcessException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(3, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 5, 5, 1000, 3300, 3300, 100, 100, false, true);
@@ -2046,7 +2054,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testUnseqFileOverlapWithUnclosedSeqFile()
-      throws MergeException, IOException, MetadataException, WriteProcessException {
+      throws CompactionException, IOException, MetadataException, WriteProcessException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(5, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 10, 10, 1000, 2500, 2500, 100, 100, false, false);
@@ -2102,7 +2110,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testUnseqFileOverlapWithUnclosedSeqFile2()
-      throws MergeException, IOException, MetadataException, WriteProcessException {
+      throws CompactionException, IOException, MetadataException, WriteProcessException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(5, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 10, 10, 1000, 2500, 2500, 100, 100, false, false);
@@ -2159,7 +2167,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
    */
   @Test
   public void testWithUnclosedUnSeqFile()
-      throws MergeException, IOException, MetadataException, WriteProcessException {
+      throws CompactionException, IOException, MetadataException, WriteProcessException {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(5, 10, 10, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 10, 10, 1000, 2500, 2500, 100, 100, false, false);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeUpgradeTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeUpgradeTest.java
index 559abd7a12..dd8d2f3eaa 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeUpgradeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeUpgradeTest.java
@@ -25,7 +25,7 @@ import org.apache.iotdb.db.engine.compaction.cross.rewrite.RewriteCrossSpaceComp
 import org.apache.iotdb.db.engine.compaction.utils.CompactionConfigRestorer;
 import org.apache.iotdb.db.engine.storagegroup.TsFileManager;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
-import org.apache.iotdb.db.exception.MergeException;
+import org.apache.iotdb.db.exception.CompactionException;
 import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.exception.write.WriteProcessException;
 import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
@@ -79,7 +79,7 @@ public class MergeUpgradeTest {
   }
 
   @Test
-  public void testMergeUpgradeSelect() throws MergeException {
+  public void testMergeUpgradeSelect() throws CompactionException {
     TsFileManager tsFileManager = new TsFileManager("", "", "");
     tsFileManager.addAll(seqResources, true);
     tsFileManager.addAll(unseqResources, true);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCompactionFileSelectorTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCompactionFileSelectorTest.java
index e6417aca11..8e238787be 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCompactionFileSelectorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCompactionFileSelectorTest.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.db.engine.compaction.cross.rewrite.RewriteCrossSpaceComp
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResourceStatus;
 import org.apache.iotdb.db.engine.storagegroup.timeindex.ITimeIndex;
-import org.apache.iotdb.db.exception.MergeException;
+import org.apache.iotdb.db.exception.CompactionException;
 import org.apache.iotdb.db.rescon.SystemInfo;
 import org.apache.iotdb.tsfile.exception.write.WriteProcessException;
 import org.apache.iotdb.tsfile.read.common.Path;
@@ -58,7 +58,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
       LoggerFactory.getLogger(RewriteCompactionFileSelectorTest.class);
 
   @Test
-  public void testFullSelection() throws MergeException, IOException {
+  public void testFullSelection() throws CompactionException, IOException {
     RewriteCrossSpaceCompactionSelector selector =
         new RewriteCrossSpaceCompactionSelector("", "", 0, null);
     List<Pair<List<TsFileResource>, List<TsFileResource>>> selected =
@@ -84,7 +84,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
   }
 
   @Test
-  public void testWithFewMemoryBudgeSelection() throws MergeException, IOException {
+  public void testWithFewMemoryBudgeSelection() throws CompactionException, IOException {
     CrossSpaceCompactionResource resource =
         new CrossSpaceCompactionResource(seqResources, unseqResources);
     RewriteCrossSpaceCompactionSelector selector =
@@ -95,7 +95,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
   }
 
   @Test
-  public void testRestrictedSelection() throws MergeException, IOException {
+  public void testRestrictedSelection() throws CompactionException, IOException {
     CrossSpaceCompactionResource resource =
         new CrossSpaceCompactionResource(seqResources, unseqResources);
     RewriteCrossSpaceCompactionSelector selector =
@@ -115,7 +115,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
    */
   @Test
   public void testFileOpenSelection()
-      throws MergeException, IOException, WriteProcessException, NoSuchFieldException,
+      throws CompactionException, IOException, WriteProcessException, NoSuchFieldException,
           IllegalAccessException {
     File file =
         new File(
@@ -220,7 +220,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
    */
   @Test
   public void testFileSelectionAboutLastSeqFile()
-      throws MergeException, IOException, WriteProcessException {
+      throws CompactionException, IOException, WriteProcessException {
     File file =
         new File(
             TestConstant.BASE_OUTPUT_PATH.concat(
@@ -254,7 +254,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
 
   @Test
   public void testSelectContinuousUnseqFile()
-      throws IOException, WriteProcessException, MergeException {
+      throws IOException, WriteProcessException, CompactionException {
     List<TsFileResource> seqList = new ArrayList<>();
     List<TsFileResource> unseqList = new ArrayList<>();
     try {
@@ -337,7 +337,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
    */
   @Test
   public void testUnseqFilesOverlappedWithOneSeqFile()
-      throws IOException, WriteProcessException, MergeException {
+      throws IOException, WriteProcessException, CompactionException {
     List<TsFileResource> seqList = new ArrayList<>();
     List<TsFileResource> unseqList = new ArrayList<>();
     // 5 seq files [11,11] [12,12] [13,13] ... [15,15]
@@ -410,7 +410,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
    */
   @Test
   public void testOneUnseqFileOverlappedWithOneSeqFile()
-      throws IOException, WriteProcessException, MergeException {
+      throws IOException, WriteProcessException, CompactionException {
     List<TsFileResource> seqList = new ArrayList<>();
     List<TsFileResource> unseqList = new ArrayList<>();
     // 5 seq files [11,11] [12,12] [13,13] ... [15,15]
@@ -482,7 +482,8 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
    * selected unseq file index: 1 2
    */
   @Test
-  public void testUnseqFilesOverlapped() throws IOException, WriteProcessException, MergeException {
+  public void testUnseqFilesOverlapped()
+      throws IOException, WriteProcessException, CompactionException {
     List<TsFileResource> seqList = new ArrayList<>();
     List<TsFileResource> unseqList = new ArrayList<>();
     // 5 seq files [11,11] [12,12] [13,13] ... [15,15]
@@ -558,7 +559,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
    */
   @Test
   public void testAllUnseqFilesOverlapped()
-      throws IOException, WriteProcessException, MergeException {
+      throws IOException, WriteProcessException, CompactionException {
     List<TsFileResource> seqList = new ArrayList<>();
     List<TsFileResource> unseqList = new ArrayList<>();
     // 5 seq files [11,11] [12,12] [13,13] ... [15,15]
@@ -635,7 +636,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
    */
   @Test
   public void testAllUnseqFilesOverlappedWithSeqFileOpen()
-      throws IOException, WriteProcessException, MergeException {
+      throws IOException, WriteProcessException, CompactionException {
     List<TsFileResource> seqList = new ArrayList<>();
     List<TsFileResource> unseqList = new ArrayList<>();
     // 5 seq files [11,11] [12,12] [13,13] ... [15,15]
@@ -707,7 +708,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
 
   @Test
   public void testMultiFileOverlapWithOneFile()
-      throws IOException, WriteProcessException, MergeException {
+      throws IOException, WriteProcessException, CompactionException {
     List<TsFileResource> seqList = new ArrayList<>();
     List<TsFileResource> unseqList = new ArrayList<>();
     // first file [0, 10]
@@ -938,7 +939,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
   }
 
   @Test
-  public void testMaxFileSelection() throws MergeException, IOException {
+  public void testMaxFileSelection() throws CompactionException, IOException {
     int oldMaxCrossCompactionCandidateFileNum =
         IoTDBDescriptor.getInstance().getConfig().getMaxCrossCompactionCandidateFileNum();
     IoTDBDescriptor.getInstance().getConfig().setMaxCrossCompactionCandidateFileNum(5);
@@ -958,7 +959,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
   }
 
   @Test
-  public void testAtLeastOneUnseqFileBeenSelected() throws IOException, MergeException {
+  public void testAtLeastOneUnseqFileBeenSelected() throws IOException, CompactionException {
     int maxCrossFilesNum =
         IoTDBDescriptor.getInstance().getConfig().getMaxCrossCompactionCandidateFileNum();
     IoTDBDescriptor.getInstance().getConfig().setMaxCrossCompactionCandidateFileNum(1);
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/DeviceMergeOperatorTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/DeviceCompactOperatorTest.java
similarity index 99%
rename from server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/DeviceMergeOperatorTest.java
rename to server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/DeviceCompactOperatorTest.java
index e8daf854cf..37a764baa9 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/DeviceMergeOperatorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/DeviceCompactOperatorTest.java
@@ -57,7 +57,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-public class DeviceMergeOperatorTest {
+public class DeviceCompactOperatorTest {
 
   private static final String DEVICE_MERGE_OPERATOR_TEST_SG = "root.DeviceMergeOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/LastQueryMergeOperatorTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/LastQueryCompactOperatorTest.java
similarity index 99%
rename from server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/LastQueryMergeOperatorTest.java
rename to server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/LastQueryCompactOperatorTest.java
index 38d244a13f..69d2fb48c5 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/LastQueryMergeOperatorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/LastQueryCompactOperatorTest.java
@@ -46,7 +46,7 @@ import static org.apache.iotdb.db.mpp.execution.operator.AggregationOperatorTest
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-public class LastQueryMergeOperatorTest {
+public class LastQueryCompactOperatorTest {
 
   private ExecutorService instanceNotificationExecutor;
 
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/schema/CountMergeOperatorTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/schema/CountCompactOperatorTest.java
similarity index 99%
rename from server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/schema/CountMergeOperatorTest.java
rename to server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/schema/CountCompactOperatorTest.java
index aa26bd762c..a5a3f74431 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/schema/CountMergeOperatorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/schema/CountCompactOperatorTest.java
@@ -57,7 +57,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-public class CountMergeOperatorTest {
+public class CountCompactOperatorTest {
   private static final String COUNT_MERGE_OPERATOR_TEST_SG = "root.CountMergeOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
   private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();