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

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

commit a8f4c5a6bfb6e6823b74c1c4f7abdbe461ffe9ac
Author: Tian Jiang <[email protected]>
AuthorDate: Mon Jun 29 16:01:42 2026 +0800

    rename class
---
 .../impl/DataNodeInternalRPCServiceImpl.java       |  4 +-
 .../db/queryengine/plan/analyze/AnalyzeUtils.java  | 31 ++++-----
 .../iotdb/db/storageengine/StorageEngine.java      | 20 +++---
 .../db/storageengine/dataregion/DataRegion.java    |  8 +--
 .../compaction/execute/utils/CompactionUtils.java  |  2 +-
 .../dataregion/modification/DeletionPredicate.java | 46 ++++++-------
 .../modification/TableDeletionEntry.java           |  6 +-
 .../{IDPredicate.java => TagPredicate.java}        | 76 +++++++++++-----------
 .../file/UnsealedTsFileRecoverPerformer.java       |  2 +-
 .../iotdb/db/metadata/path/PatternTreeMapTest.java |  2 +-
 .../db/pipe/consensus/DeletionRecoverTest.java     |  2 +-
 .../db/pipe/consensus/DeletionResourceTest.java    |  2 +-
 .../PipePlanTablePatternParseVisitorTest.java      |  8 +--
 .../node/write/RelationalDeleteDataNodeTest.java   |  8 +--
 .../iotdb/db/storageengine/StorageEngineTest.java  | 68 +++----------------
 .../storageengine/dataregion/DataRegionTest.java   |  2 +-
 .../tablemodel/CompactionWithAllNullRowsTest.java  | 12 ++--
 .../modification/ModificationFileTest.java         |  6 +-
 .../modification/TableDeletionEntryTest.java       | 10 +--
 19 files changed, 134 insertions(+), 181 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
index c588c94c7b5..42e69fd3ec7 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
@@ -212,8 +212,8 @@ import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.Compacti
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.settle.SettleRequestHandler;
 import org.apache.iotdb.db.storageengine.dataregion.flush.CompressionRatio;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.DeletionPredicate;
-import org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TableDeletionEntry;
+import org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate;
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileManager;
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
 import 
org.apache.iotdb.db.storageengine.rescon.quotas.DataNodeSpaceQuotaManager;
@@ -2148,7 +2148,7 @@ public class DataNodeInternalRPCServiceImpl implements 
IDataNodeRPCService.Iface
                             new TableDeletionEntry(
                                 new DeletionPredicate(
                                     req.getTableName(),
-                                    new IDPredicate.NOP(),
+                                    new TagPredicate.NOP(),
                                     
Collections.singletonList(req.getColumnName())),
                                 new TimeRange(Long.MIN_VALUE, Long.MAX_VALUE)),
                             // the request is only sent to associated region
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java
index 6d619914c09..3b5b664def6 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java
@@ -55,10 +55,10 @@ import 
org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement
 import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache;
 import org.apache.iotdb.db.schemaengine.table.DataNodeTreeViewSchemaUtils;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.DeletionPredicate;
-import org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.And;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.SegmentExactMatch;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TableDeletionEntry;
+import org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.And;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.SegmentExactMatch;
 import org.apache.iotdb.rpc.RpcUtils;
 import org.apache.iotdb.rpc.TSStatusCode;
 
@@ -457,7 +457,7 @@ public class AnalyzeUtils {
     Queue<Expression> expressionQueue = new LinkedList<>();
     expressionQueue.add(expression);
     DeletionPredicate predicate = new DeletionPredicate(table.getTableName());
-    IDPredicate tagPredicate = null;
+    TagPredicate tagPredicate = null;
     TimeRange timeRange = new TimeRange(Long.MIN_VALUE, Long.MAX_VALUE, true);
     while (!expressionQueue.isEmpty()) {
       Expression currExp = expressionQueue.remove();
@@ -474,7 +474,7 @@ public class AnalyzeUtils {
       }
     }
     if (tagPredicate != null) {
-      predicate.setIdPredicate(tagPredicate);
+      predicate.setTagPredicate(tagPredicate);
     }
     if (timeRange.getStartTime() > timeRange.getEndTime()) {
       throw new SemanticException(
@@ -494,8 +494,8 @@ public class AnalyzeUtils {
     expressionQueue.addAll(expression.getTerms());
   }
 
-  private static IDPredicate parseIsNull(
-      IsNullPredicate isNullPredicate, IDPredicate oldPredicate, TsTable 
table) {
+  private static TagPredicate parseIsNull(
+      IsNullPredicate isNullPredicate, TagPredicate oldPredicate, TsTable 
table) {
     Expression leftHandExp = isNullPredicate.getValue();
     if (!(leftHandExp instanceof Identifier)) {
       throw new SemanticException(
@@ -509,25 +509,26 @@ public class AnalyzeUtils {
     }
 
     // the first segment is the table name, so + 1
-    IDPredicate newPredicate = new SegmentExactMatch(null, tagColumnOrdinal + 
1);
+    TagPredicate newPredicate = new SegmentExactMatch(null, tagColumnOrdinal + 
1);
     return combinePredicates(oldPredicate, newPredicate);
   }
 
-  private static IDPredicate combinePredicates(IDPredicate oldPredicate, 
IDPredicate newPredicate) {
+  private static TagPredicate combinePredicates(
+      TagPredicate oldPredicate, TagPredicate newPredicate) {
     if (oldPredicate == null) {
       return newPredicate;
     }
-    if (oldPredicate instanceof IDPredicate.And) {
+    if (oldPredicate instanceof TagPredicate.And) {
       ((And) oldPredicate).add(newPredicate);
       return oldPredicate;
     }
-    return new IDPredicate.And(oldPredicate, newPredicate);
+    return new TagPredicate.And(oldPredicate, newPredicate);
   }
 
-  private static IDPredicate parseComparison(
+  private static TagPredicate parseComparison(
       ComparisonExpression comparisonExpression,
       TimeRange timeRange,
-      IDPredicate oldPredicate,
+      TagPredicate oldPredicate,
       TsTable table) {
     Expression left = comparisonExpression.getLeft();
     Expression right = comparisonExpression.getRight();
@@ -580,7 +581,7 @@ public class AnalyzeUtils {
           "The column '" + columnName + "' does not exist or is not a tag 
column");
     }
 
-    IDPredicate newPredicate = getTagPredicate(comparisonExpression, right, 
tagColumnOrdinal);
+    TagPredicate newPredicate = getTagPredicate(comparisonExpression, right, 
tagColumnOrdinal);
     return combinePredicates(oldPredicate, newPredicate);
   }
 
@@ -595,7 +596,7 @@ public class AnalyzeUtils {
     return timeColumnSchema.getColumnName();
   }
 
-  private static IDPredicate getTagPredicate(
+  private static TagPredicate getTagPredicate(
       ComparisonExpression comparisonExpression, Expression right, int 
tagColumnOrdinal) {
     if (comparisonExpression.getOperator() != 
ComparisonExpression.Operator.EQUAL) {
       throw new SemanticException(
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
index 389297ac401..44d5397c7bb 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
@@ -259,14 +259,7 @@ public class StorageEngine implements IService {
               try {
                 dataRegion = buildNewDataRegion(sgName, dataRegionId);
               } catch (DataRegionException e) {
-                LOGGER.error(
-                    "Failed to recover data region {}[{}]", sgName, 
dataRegionId.getId(), e);
-                WALRecoverManager.getInstance()
-                    .getAllDataRegionScannedLatch()
-                    .countDownWithException(e.getMessage());
-                if (e instanceof DirectBufferMemoryAllocationException) {
-                  throw e;
-                }
+                handleDataRegionRecoverFailure(sgName, dataRegionId, e);
                 return null;
               }
               dataRegionMap.put(dataRegionId, dataRegion);
@@ -281,6 +274,17 @@ public class StorageEngine implements IService {
     }
   }
 
+  void handleDataRegionRecoverFailure(
+      String sgName, DataRegionId dataRegionId, DataRegionException e) throws 
DataRegionException {
+    LOGGER.error("Failed to recover data region {}[{}]", sgName, 
dataRegionId.getId(), e);
+    WALRecoverManager.getInstance()
+        .getAllDataRegionScannedLatch()
+        .countDownWithException(e.getMessage());
+    if (e instanceof DirectBufferMemoryAllocationException) {
+      throw e;
+    }
+  }
+
   /** get StorageGroup -> DataRegionIdList map from data/system directory. */
   public Map<String, List<DataRegionId>> getLocalDataRegionInfo() {
     File system = SystemFileFactory.INSTANCE.getFile(systemDir);
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
index f98ba5ad577..e41dea4f774 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
@@ -120,10 +120,10 @@ import 
org.apache.iotdb.db.storageengine.dataregion.flush.TsFileFlushPolicy;
 import org.apache.iotdb.db.storageengine.dataregion.memtable.IMemTable;
 import org.apache.iotdb.db.storageengine.dataregion.memtable.TsFileProcessor;
 import 
org.apache.iotdb.db.storageengine.dataregion.memtable.TsFileProcessorInfo;
-import org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate;
 import org.apache.iotdb.db.storageengine.dataregion.modification.ModEntry;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.ModificationFile;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TableDeletionEntry;
+import org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TreeDeletionEntry;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.v1.ModificationFileV1;
 import org.apache.iotdb.db.storageengine.dataregion.read.IQueryDataSource;
@@ -3487,12 +3487,12 @@ public class DataRegion implements IDataRegionForQuery {
     List<TsFileResource> deletedByMods = new ArrayList<>();
     List<TsFileResource> deletedByFiles = new ArrayList<>();
     boolean isDropMeasurementExist = false;
-    IDPredicate.IDPredicateType idPredicateType = null;
+    TagPredicate.TagPredicateType tagPredicateType = null;
 
     if (deletion instanceof TableDeletionEntry) {
       TableDeletionEntry tableDeletionEntry = (TableDeletionEntry) deletion;
       isDropMeasurementExist = 
!tableDeletionEntry.getPredicate().getMeasurementNames().isEmpty();
-      idPredicateType = tableDeletionEntry.getPredicate().getIdPredicateType();
+      tagPredicateType = 
tableDeletionEntry.getPredicate().getTagPredicateType();
     }
 
     for (TsFileResource sealedTsFile : sealedTsFiles) {
@@ -3565,7 +3565,7 @@ public class DataRegion implements IDataRegionForQuery {
                   fileEndTime);
             }
             if (isFileFullyMatchedByTime(deletion, fileStartTime, fileEndTime)
-                && idPredicateType.equals(IDPredicate.IDPredicateType.NOP)
+                && tagPredicateType.equals(TagPredicate.TagPredicateType.NOP)
                 && !isDropMeasurementExist) {
               ++matchSize;
             } else {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/CompactionUtils.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/CompactionUtils.java
index 7bdd492fa74..72ac3f544c8 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/CompactionUtils.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/CompactionUtils.java
@@ -39,11 +39,11 @@ import org.apache.iotdb.db.service.metrics.FileMetrics;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.constant.CompactionTaskType;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionTaskManager;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.DeletionPredicate;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.FullExactMatch;
 import org.apache.iotdb.db.storageengine.dataregion.modification.ModEntry;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.ModFileManagement;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.ModificationFile;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TableDeletionEntry;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.FullExactMatch;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TreeDeletionEntry;
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
 import 
org.apache.iotdb.db.storageengine.dataregion.tsfile.timeindex.ArrayDeviceTimeIndex;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/DeletionPredicate.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/DeletionPredicate.java
index fcccaecc60f..b8722f6b414 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/DeletionPredicate.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/DeletionPredicate.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.storageengine.dataregion.modification;
 
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.NOP;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.NOP;
 import org.apache.iotdb.db.utils.io.BufferSerializable;
 import org.apache.iotdb.db.utils.io.StreamSerializable;
 
@@ -42,7 +42,7 @@ public class DeletionPredicate implements StreamSerializable, 
BufferSerializable
   public static final long SHALLOW_SIZE =
       RamUsageEstimator.shallowSizeOfInstance(DeletionPredicate.class);
   private String tableName;
-  private IDPredicate idPredicate = new NOP();
+  private TagPredicate tagPredicate = new NOP();
   // an empty list means affecting all columns
   private List<String> measurementNames = Collections.emptyList();
 
@@ -52,32 +52,32 @@ public class DeletionPredicate implements 
StreamSerializable, BufferSerializable
     this.tableName = tableName;
   }
 
-  public DeletionPredicate(String tableName, IDPredicate idPredicate) {
+  public DeletionPredicate(String tableName, TagPredicate tagPredicate) {
     this.tableName = tableName;
-    this.idPredicate = idPredicate;
+    this.tagPredicate = tagPredicate;
   }
 
   public DeletionPredicate(
-      String tableName, IDPredicate idPredicate, List<String> 
measurementNames) {
+      String tableName, TagPredicate tagPredicate, List<String> 
measurementNames) {
     this.tableName = tableName;
-    this.idPredicate = idPredicate;
+    this.tagPredicate = tagPredicate;
     this.measurementNames = measurementNames;
   }
 
   public boolean matches(IDeviceID deviceID) {
-    return tableName.equals(deviceID.getTableName()) && 
idPredicate.matches(deviceID);
+    return tableName.equals(deviceID.getTableName()) && 
tagPredicate.matches(deviceID);
   }
 
-  public void setIdPredicate(IDPredicate idPredicate) {
-    this.idPredicate = idPredicate;
+  public void setTagPredicate(TagPredicate tagPredicate) {
+    this.tagPredicate = tagPredicate;
   }
 
-  public IDPredicate getIdPredicate() {
-    return idPredicate;
+  public TagPredicate getTagPredicate() {
+    return tagPredicate;
   }
 
-  public IDPredicate.IDPredicateType getIdPredicateType() {
-    return this.idPredicate.type;
+  public TagPredicate.TagPredicateType getTagPredicateType() {
+    return this.tagPredicate.type;
   }
 
   public String getTableName() {
@@ -95,7 +95,7 @@ public class DeletionPredicate implements StreamSerializable, 
BufferSerializable
   @Override
   public long serialize(OutputStream stream) throws IOException {
     long size = ReadWriteIOUtils.writeVar(tableName, stream);
-    size += idPredicate.serialize(stream);
+    size += tagPredicate.serialize(stream);
     size += ReadWriteForEncodingUtils.writeVarInt(measurementNames.size(), 
stream);
     for (String measurementName : measurementNames) {
       size += ReadWriteIOUtils.writeVar(measurementName, stream);
@@ -106,7 +106,7 @@ public class DeletionPredicate implements 
StreamSerializable, BufferSerializable
   @Override
   public long serialize(ByteBuffer buffer) {
     long size = ReadWriteIOUtils.writeVar(tableName, buffer);
-    size += idPredicate.serialize(buffer);
+    size += tagPredicate.serialize(buffer);
     size += ReadWriteForEncodingUtils.writeVarInt(measurementNames.size(), 
buffer);
     for (String measurementName : measurementNames) {
       size += ReadWriteIOUtils.writeVar(measurementName, buffer);
@@ -117,7 +117,7 @@ public class DeletionPredicate implements 
StreamSerializable, BufferSerializable
   @Override
   public void deserialize(InputStream stream) throws IOException {
     tableName = ReadWriteIOUtils.readVarIntString(stream);
-    idPredicate = IDPredicate.createFrom(stream);
+    tagPredicate = TagPredicate.createFrom(stream);
 
     int measurementLength = ReadWriteForEncodingUtils.readVarInt(stream);
     if (measurementLength > 0) {
@@ -133,7 +133,7 @@ public class DeletionPredicate implements 
StreamSerializable, BufferSerializable
   @Override
   public void deserialize(ByteBuffer buffer) {
     tableName = ReadWriteIOUtils.readVarIntString(buffer);
-    idPredicate = IDPredicate.createFrom(buffer);
+    tagPredicate = TagPredicate.createFrom(buffer);
 
     int measurementLength = ReadWriteForEncodingUtils.readVarInt(buffer);
     if (measurementLength > 0) {
@@ -150,7 +150,7 @@ public class DeletionPredicate implements 
StreamSerializable, BufferSerializable
     // table name + id predicate + measurement names
     int size =
         ModEntry.sizeToWriteVarString(tableName)
-            + idPredicate.serializedSize()
+            + tagPredicate.serializedSize()
             + ReadWriteForEncodingUtils.varIntSize(measurementNames.size());
     for (String measurementName : measurementNames) {
       size += ModEntry.sizeToWriteVarString(measurementName);
@@ -168,13 +168,13 @@ public class DeletionPredicate implements 
StreamSerializable, BufferSerializable
     }
     DeletionPredicate that = (DeletionPredicate) o;
     return Objects.equals(tableName, that.tableName)
-        && Objects.equals(idPredicate, that.idPredicate)
+        && Objects.equals(tagPredicate, that.tagPredicate)
         && Objects.equals(measurementNames, that.measurementNames);
   }
 
   @Override
   public int hashCode() {
-    return Objects.hash(tableName, idPredicate, measurementNames);
+    return Objects.hash(tableName, tagPredicate, measurementNames);
   }
 
   @Override
@@ -183,8 +183,8 @@ public class DeletionPredicate implements 
StreamSerializable, BufferSerializable
         + "tableName='"
         + tableName
         + '\''
-        + ", idPredicate="
-        + idPredicate
+        + ", tagPredicate="
+        + tagPredicate
         + ", measurementNames="
         + measurementNames
         + '}';
@@ -194,7 +194,7 @@ public class DeletionPredicate implements 
StreamSerializable, BufferSerializable
   public long ramBytesUsed() {
     return SHALLOW_SIZE
         + RamUsageEstimator.sizeOf(tableName)
-        + RamUsageEstimator.sizeOfObject(idPredicate)
+        + RamUsageEstimator.sizeOfObject(tagPredicate)
         + RamUsageEstimator.sizeOfArrayList(measurementNames);
   }
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TableDeletionEntry.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TableDeletionEntry.java
index 952bcc2eaf6..b2c7ccee4e5 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TableDeletionEntry.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TableDeletionEntry.java
@@ -21,7 +21,7 @@ package 
org.apache.iotdb.db.storageengine.dataregion.modification;
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.IDPredicateType;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.TagPredicateType;
 import org.apache.iotdb.db.utils.ModificationUtils;
 
 import org.apache.tsfile.file.metadata.IDeviceID;
@@ -138,8 +138,8 @@ public class TableDeletionEntry extends ModEntry {
   }
 
   public boolean isDroppingTable() {
-    IDPredicate idPredicate = predicate.getIdPredicate();
-    return idPredicate.type == IDPredicateType.NOP
+    TagPredicate tagPredicate = predicate.getTagPredicate();
+    return tagPredicate.type == TagPredicateType.NOP
         && predicate.getMeasurementNames().isEmpty()
         && timeRange.getMin() == Long.MIN_VALUE
         && timeRange.getMax() == Long.MAX_VALUE;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/IDPredicate.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TagPredicate.java
similarity index 82%
rename from 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/IDPredicate.java
rename to 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TagPredicate.java
index 487689d83b9..5af4a9b95fe 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/IDPredicate.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TagPredicate.java
@@ -39,7 +39,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 
-public abstract class IDPredicate implements StreamSerializable, 
BufferSerializable, Accountable {
+public abstract class TagPredicate implements StreamSerializable, 
BufferSerializable, Accountable {
 
   public int serializedSize() {
     // type
@@ -47,7 +47,7 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
   }
 
   @SuppressWarnings("java:S6548")
-  public enum IDPredicateType {
+  public enum TagPredicateType {
     NOP,
     FULL_EXACT_MATCH,
     SEGMENT_EXACT_MATCH,
@@ -63,7 +63,7 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
       return 1;
     }
 
-    public static IDPredicateType deserialize(InputStream stream) throws 
IOException {
+    public static TagPredicateType deserialize(InputStream stream) throws 
IOException {
       int typeNum = stream.read();
       if (typeNum == -1) {
         throw new EOFException();
@@ -71,14 +71,14 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
       return values()[typeNum];
     }
 
-    public static IDPredicateType deserialize(ByteBuffer buffer) {
+    public static TagPredicateType deserialize(ByteBuffer buffer) {
       return values()[buffer.get()];
     }
   }
 
-  protected final IDPredicateType type;
+  protected final TagPredicateType type;
 
-  protected IDPredicate(IDPredicateType type) {
+  protected TagPredicate(TagPredicateType type) {
     this.type = type;
   }
 
@@ -94,16 +94,16 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
     return type.serialize(buffer);
   }
 
-  public static IDPredicate createFrom(ByteBuffer buffer) {
-    IDPredicateType type = IDPredicateType.deserialize(buffer);
-    IDPredicate predicate;
-    if (Objects.requireNonNull(type) == IDPredicateType.NOP) {
+  public static TagPredicate createFrom(ByteBuffer buffer) {
+    TagPredicateType type = TagPredicateType.deserialize(buffer);
+    TagPredicate predicate;
+    if (Objects.requireNonNull(type) == TagPredicateType.NOP) {
       predicate = new NOP();
-    } else if (Objects.requireNonNull(type) == 
IDPredicateType.FULL_EXACT_MATCH) {
+    } else if (Objects.requireNonNull(type) == 
TagPredicateType.FULL_EXACT_MATCH) {
       predicate = new FullExactMatch();
-    } else if (Objects.requireNonNull(type) == 
IDPredicateType.SEGMENT_EXACT_MATCH) {
+    } else if (Objects.requireNonNull(type) == 
TagPredicateType.SEGMENT_EXACT_MATCH) {
       predicate = new SegmentExactMatch();
-    } else if (Objects.requireNonNull(type) == IDPredicateType.AND) {
+    } else if (Objects.requireNonNull(type) == TagPredicateType.AND) {
       predicate = new And();
     } else {
       throw new 
IllegalArgumentException(StorageEngineMessages.UNRECOGNIZED_PREDICATE_TYPE + 
type);
@@ -112,16 +112,16 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
     return predicate;
   }
 
-  public static IDPredicate createFrom(InputStream stream) throws IOException {
-    IDPredicateType type = IDPredicateType.deserialize(stream);
-    IDPredicate predicate;
-    if (Objects.requireNonNull(type) == IDPredicateType.NOP) {
+  public static TagPredicate createFrom(InputStream stream) throws IOException 
{
+    TagPredicateType type = TagPredicateType.deserialize(stream);
+    TagPredicate predicate;
+    if (Objects.requireNonNull(type) == TagPredicateType.NOP) {
       predicate = new NOP();
-    } else if (Objects.requireNonNull(type) == 
IDPredicateType.FULL_EXACT_MATCH) {
+    } else if (Objects.requireNonNull(type) == 
TagPredicateType.FULL_EXACT_MATCH) {
       predicate = new FullExactMatch();
-    } else if (Objects.requireNonNull(type) == 
IDPredicateType.SEGMENT_EXACT_MATCH) {
+    } else if (Objects.requireNonNull(type) == 
TagPredicateType.SEGMENT_EXACT_MATCH) {
       predicate = new SegmentExactMatch();
-    } else if (Objects.requireNonNull(type) == IDPredicateType.AND) {
+    } else if (Objects.requireNonNull(type) == TagPredicateType.AND) {
       predicate = new And();
     } else {
       throw new 
IllegalArgumentException(StorageEngineMessages.UNRECOGNIZED_PREDICATE_TYPE + 
type);
@@ -130,11 +130,11 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
     return predicate;
   }
 
-  public static class NOP extends IDPredicate {
+  public static class NOP extends TagPredicate {
     public static final long SHALLOW_SIZE = 
RamUsageEstimator.shallowSizeOfInstance(NOP.class);
 
     public NOP() {
-      super(IDPredicateType.NOP);
+      super(TagPredicateType.NOP);
     }
 
     @Override
@@ -173,19 +173,19 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
     }
   }
 
-  public static class FullExactMatch extends IDPredicate {
+  public static class FullExactMatch extends TagPredicate {
 
     public static final long SHALLOW_SIZE =
         RamUsageEstimator.shallowSizeOfInstance(FullExactMatch.class);
     private IDeviceID deviceID;
 
     public FullExactMatch(IDeviceID deviceID) {
-      super(IDPredicateType.FULL_EXACT_MATCH);
+      super(TagPredicateType.FULL_EXACT_MATCH);
       this.deviceID = deviceID;
     }
 
     public FullExactMatch() {
-      super(IDPredicateType.FULL_EXACT_MATCH);
+      super(TagPredicateType.FULL_EXACT_MATCH);
     }
 
     @Override
@@ -250,7 +250,7 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
     }
   }
 
-  public static class SegmentExactMatch extends IDPredicate {
+  public static class SegmentExactMatch extends TagPredicate {
 
     public static final long SHALLOW_SIZE =
         RamUsageEstimator.shallowSizeOfInstance(SegmentExactMatch.class);
@@ -258,13 +258,13 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
     private int segmentIndex;
 
     public SegmentExactMatch(String pattern, int segmentIndex) {
-      super(IDPredicateType.SEGMENT_EXACT_MATCH);
+      super(TagPredicateType.SEGMENT_EXACT_MATCH);
       this.pattern = pattern;
       this.segmentIndex = segmentIndex;
     }
 
     public SegmentExactMatch() {
-      super(IDPredicateType.SEGMENT_EXACT_MATCH);
+      super(TagPredicateType.SEGMENT_EXACT_MATCH);
     }
 
     @Override
@@ -341,17 +341,17 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
     }
   }
 
-  public static class And extends IDPredicate {
+  public static class And extends TagPredicate {
 
     public static final long SHALLOW_SIZE = 
RamUsageEstimator.shallowSizeOfInstance(And.class);
-    private final List<IDPredicate> predicates = new ArrayList<>();
+    private final List<TagPredicate> predicates = new ArrayList<>();
 
-    public And(IDPredicate... predicates) {
-      super(IDPredicateType.AND);
+    public And(TagPredicate... predicates) {
+      super(TagPredicateType.AND);
       Collections.addAll(this.predicates, predicates);
     }
 
-    public void add(IDPredicate predicate) {
+    public void add(TagPredicate predicate) {
       predicates.add(predicate);
     }
 
@@ -359,7 +359,7 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
     public int serializedSize() {
       int serializedSize = super.serializedSize();
       serializedSize += 
ReadWriteForEncodingUtils.varIntSize(predicates.size());
-      for (IDPredicate predicate : predicates) {
+      for (TagPredicate predicate : predicates) {
         serializedSize += predicate.serializedSize();
       }
       return serializedSize;
@@ -369,7 +369,7 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
     public long serialize(OutputStream stream) throws IOException {
       long size = super.serialize(stream);
       size += ReadWriteForEncodingUtils.writeVarInt(predicates.size(), stream);
-      for (IDPredicate predicate : predicates) {
+      for (TagPredicate predicate : predicates) {
         size += predicate.serialize(stream);
       }
       return size;
@@ -379,7 +379,7 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
     public long serialize(ByteBuffer buffer) {
       long size = super.serialize(buffer);
       size += ReadWriteForEncodingUtils.writeVarInt(predicates.size(), buffer);
-      for (IDPredicate predicate : predicates) {
+      for (TagPredicate predicate : predicates) {
         size += predicate.serialize(buffer);
       }
       return size;
@@ -389,7 +389,7 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
     public void deserialize(InputStream stream) throws IOException {
       int size = ReadWriteForEncodingUtils.readVarInt(stream);
       for (int i = 0; i < size; i++) {
-        predicates.add(IDPredicate.createFrom(stream));
+        predicates.add(TagPredicate.createFrom(stream));
       }
     }
 
@@ -397,7 +397,7 @@ public abstract class IDPredicate implements 
StreamSerializable, BufferSerializa
     public void deserialize(ByteBuffer buffer) {
       int size = ReadWriteForEncodingUtils.readVarInt(buffer);
       for (int i = 0; i < size; i++) {
-        predicates.add(IDPredicate.createFrom(buffer));
+        predicates.add(TagPredicate.createFrom(buffer));
       }
     }
 
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/UnsealedTsFileRecoverPerformer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/UnsealedTsFileRecoverPerformer.java
index 2effd009ab6..8d09eb2de18 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/UnsealedTsFileRecoverPerformer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/UnsealedTsFileRecoverPerformer.java
@@ -35,9 +35,9 @@ import 
org.apache.iotdb.db.storageengine.dataregion.memtable.IMemTable;
 import org.apache.iotdb.db.storageengine.dataregion.memtable.IWritableMemChunk;
 import 
org.apache.iotdb.db.storageengine.dataregion.memtable.IWritableMemChunkGroup;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.DeletionPredicate;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.FullExactMatch;
 import org.apache.iotdb.db.storageengine.dataregion.modification.ModEntry;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TableDeletionEntry;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.FullExactMatch;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TreeDeletionEntry;
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
 import 
org.apache.iotdb.db.storageengine.dataregion.tsfile.timeindex.FileTimeIndexCacheRecorder;
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/path/PatternTreeMapTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/path/PatternTreeMapTest.java
index 7a7d71bef51..6f14ac86384 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/path/PatternTreeMapTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/path/PatternTreeMapTest.java
@@ -24,9 +24,9 @@ import org.apache.iotdb.commons.path.MeasurementPath;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.commons.path.PatternTreeMap;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.DeletionPredicate;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.NOP;
 import org.apache.iotdb.db.storageengine.dataregion.modification.ModEntry;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TableDeletionEntry;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.NOP;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TreeDeletionEntry;
 import org.apache.iotdb.db.utils.datastructure.PatternTreeMapFactory;
 import 
org.apache.iotdb.db.utils.datastructure.PatternTreeMapFactory.ModsSerializer;
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionRecoverTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionRecoverTest.java
index bcdc84a1fd0..be35ae8c881 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionRecoverTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionRecoverTest.java
@@ -30,8 +30,8 @@ import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.AbstractDele
 import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode;
 import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalDeleteDataNode;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.DeletionPredicate;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.NOP;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TableDeletionEntry;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.NOP;
 
 import org.apache.tsfile.read.common.TimeRange;
 import org.junit.After;
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionResourceTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionResourceTest.java
index 8eb43cab077..da0d02a3311 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionResourceTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionResourceTest.java
@@ -43,8 +43,8 @@ import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.AbstractDele
 import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode;
 import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalDeleteDataNode;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.DeletionPredicate;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.NOP;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TableDeletionEntry;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.NOP;
 import org.apache.iotdb.pipe.api.customizer.parameter.PipeParameters;
 
 import org.apache.tsfile.read.common.TimeRange;
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipePlanTablePatternParseVisitorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipePlanTablePatternParseVisitorTest.java
index 0a7fbfb699d..a4da1fc2fdf 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipePlanTablePatternParseVisitorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipePlanTablePatternParseVisitorTest.java
@@ -29,8 +29,8 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.Creat
 import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceAttributeUpdateNode;
 import org.apache.iotdb.db.storageengine.dataregion.memtable.DeviceIDFactory;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.DeletionPredicate;
-import org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TableDeletionEntry;
+import org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate;
 
 import org.apache.tsfile.read.common.TimeRange;
 import org.junit.Assert;
@@ -115,12 +115,12 @@ public class PipePlanTablePatternParseVisitorTest {
                         new TableDeletionEntry(
                             new DeletionPredicate(
                                 "ac",
-                                new IDPredicate.And(
-                                    new IDPredicate.FullExactMatch(
+                                new TagPredicate.And(
+                                    new TagPredicate.FullExactMatch(
                                         DeviceIDFactory.getInstance()
                                             .getDeviceID(
                                                 new PartialPath(new String[] 
{"ac", "device1"}))),
-                                    new 
IDPredicate.SegmentExactMatch("device2", 1))),
+                                    new 
TagPredicate.SegmentExactMatch("device2", 1))),
                             new TimeRange(0, 1))),
                     "db1"),
                 tablePattern)
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalDeleteDataNodeTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalDeleteDataNodeTest.java
index e97c11c1b47..910c38f44eb 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalDeleteDataNodeTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalDeleteDataNodeTest.java
@@ -24,11 +24,11 @@ import 
org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode;
 import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId;
 import 
org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.DeletionPredicate;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.And;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.FullExactMatch;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.NOP;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.SegmentExactMatch;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TableDeletionEntry;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.And;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.FullExactMatch;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.NOP;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.SegmentExactMatch;
 import 
org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALByteBufferForTest;
 
 import org.apache.tsfile.file.metadata.IDeviceID.Factory;
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/StorageEngineTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/StorageEngineTest.java
index eb38bdff25a..b0b9ce2880a 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/StorageEngineTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/StorageEngineTest.java
@@ -32,21 +32,12 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.ArgumentMatchers;
 import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
 
 @PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", 
"javax.management.*"})
 @RunWith(PowerMockRunner.class)
@@ -100,32 +91,16 @@ public class StorageEngineTest {
 
   @Test
   public void testNotifyWALRecoverManagerWhenDirectBufferAllocationFailed() 
throws Exception {
-    StorageEngine spyStorageEngine = PowerMockito.spy(storageEngine);
     DirectBufferMemoryAllocationException 
directBufferMemoryAllocationException =
         new DirectBufferMemoryAllocationException(2, 1);
-    ExecutorService testThreadPool = Executors.newSingleThreadExecutor();
-    setCachedThreadPool(spyStorageEngine, testThreadPool);
-    PowerMockito.doReturn(
-            Collections.singletonMap("root.sg", Lists.newArrayList(new 
DataRegionId(0))))
-        .when(spyStorageEngine)
-        .getLocalDataRegionInfo();
-    PowerMockito.doThrow(directBufferMemoryAllocationException)
-        .when(spyStorageEngine)
-        .buildNewDataRegion(
-            ArgumentMatchers.eq("root.sg"), 
ArgumentMatchers.any(DataRegionId.class));
-
-    List<Future<Void>> futures = new ArrayList<>();
-    Method asyncRecoverMethod = 
StorageEngine.class.getDeclaredMethod("asyncRecover", List.class);
-    asyncRecoverMethod.setAccessible(true);
+    WALRecoverManager.getInstance().setAllDataRegionScannedLatch(new 
ExceptionalCountDownLatch(1));
     try {
-      asyncRecoverMethod.invoke(spyStorageEngine, futures);
-
-      Assert.assertEquals(1, futures.size());
       try {
-        futures.get(0).get();
+        storageEngine.handleDataRegionRecoverFailure(
+            "root.sg", new DataRegionId(0), 
directBufferMemoryAllocationException);
         Assert.fail("Expected data region recovery to fail.");
-      } catch (ExecutionException e) {
-        Assert.assertSame(directBufferMemoryAllocationException, e.getCause());
+      } catch (DataRegionException e) {
+        Assert.assertSame(directBufferMemoryAllocationException, e);
       }
 
       ExceptionalCountDownLatch latch =
@@ -135,34 +110,16 @@ public class StorageEngineTest {
           directBufferMemoryAllocationException.getMessage(), 
latch.getExceptionMessage());
     } finally {
       WALRecoverManager.getInstance().clear();
-      testThreadPool.shutdownNow();
-      setCachedThreadPool(spyStorageEngine, null);
     }
   }
 
   @Test
   public void 
testNotifyWALRecoverManagerButContinueForOtherDataRegionException() throws 
Exception {
-    StorageEngine spyStorageEngine = PowerMockito.spy(storageEngine);
     DataRegionException dataRegionException = new DataRegionException("other 
recovery failure");
-    ExecutorService testThreadPool = Executors.newSingleThreadExecutor();
-    setCachedThreadPool(spyStorageEngine, testThreadPool);
-    PowerMockito.doReturn(
-            Collections.singletonMap("root.sg", Lists.newArrayList(new 
DataRegionId(0))))
-        .when(spyStorageEngine)
-        .getLocalDataRegionInfo();
-    PowerMockito.doThrow(dataRegionException)
-        .when(spyStorageEngine)
-        .buildNewDataRegion(
-            ArgumentMatchers.eq("root.sg"), 
ArgumentMatchers.any(DataRegionId.class));
-
-    List<Future<Void>> futures = new ArrayList<>();
-    Method asyncRecoverMethod = 
StorageEngine.class.getDeclaredMethod("asyncRecover", List.class);
-    asyncRecoverMethod.setAccessible(true);
+    WALRecoverManager.getInstance().setAllDataRegionScannedLatch(new 
ExceptionalCountDownLatch(1));
     try {
-      asyncRecoverMethod.invoke(spyStorageEngine, futures);
-
-      Assert.assertEquals(1, futures.size());
-      futures.get(0).get();
+      storageEngine.handleDataRegionRecoverFailure(
+          "root.sg", new DataRegionId(0), dataRegionException);
 
       ExceptionalCountDownLatch latch =
           WALRecoverManager.getInstance().getAllDataRegionScannedLatch();
@@ -170,15 +127,6 @@ public class StorageEngineTest {
       Assert.assertEquals(dataRegionException.getMessage(), 
latch.getExceptionMessage());
     } finally {
       WALRecoverManager.getInstance().clear();
-      testThreadPool.shutdownNow();
-      setCachedThreadPool(spyStorageEngine, null);
     }
   }
-
-  private void setCachedThreadPool(StorageEngine storageEngine, 
ExecutorService executorService)
-      throws Exception {
-    Field cachedThreadPoolField = 
StorageEngine.class.getDeclaredField("cachedThreadPool");
-    cachedThreadPoolField.setAccessible(true);
-    cachedThreadPoolField.set(storageEngine, executorService);
-  }
 }
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/DataRegionTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/DataRegionTest.java
index 152189332b5..f2487eed6c9 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/DataRegionTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/DataRegionTest.java
@@ -68,9 +68,9 @@ import 
org.apache.iotdb.db.storageengine.dataregion.flush.TsFileFlushPolicy;
 import org.apache.iotdb.db.storageengine.dataregion.memtable.ReadOnlyMemChunk;
 import org.apache.iotdb.db.storageengine.dataregion.memtable.TsFileProcessor;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.DeletionPredicate;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.NOP;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.ModificationFile;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TableDeletionEntry;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.NOP;
 import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource;
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
 import 
org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResourceStatus;
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/CompactionWithAllNullRowsTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/CompactionWithAllNullRowsTest.java
index 9ff8a401150..69e83e769a3 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/CompactionWithAllNullRowsTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/CompactionWithAllNullRowsTest.java
@@ -35,9 +35,9 @@ import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.impl.ReadPointCompactionPerformer;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.InnerSpaceCompactionTask;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.DeletionPredicate;
-import org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.FullExactMatch;
 import 
org.apache.iotdb.db.storageengine.dataregion.modification.TableDeletionEntry;
+import org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.FullExactMatch;
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
 
 import org.apache.tsfile.exception.write.WriteProcessException;
@@ -333,7 +333,7 @@ public class CompactionWithAllNullRowsTest extends 
AbstractCompactionTest {
             new TableDeletionEntry(
                 new DeletionPredicate(
                     "t1",
-                    new IDPredicate.FullExactMatch(deviceID),
+                    new TagPredicate.FullExactMatch(deviceID),
                     Collections.singletonList("s0")),
                 new TimeRange(Long.MIN_VALUE, 11)));
     resource1
@@ -342,7 +342,7 @@ public class CompactionWithAllNullRowsTest extends 
AbstractCompactionTest {
             new TableDeletionEntry(
                 new DeletionPredicate(
                     "t1",
-                    new IDPredicate.FullExactMatch(deviceID),
+                    new TagPredicate.FullExactMatch(deviceID),
                     Collections.singletonList("s1")),
                 new TimeRange(Long.MIN_VALUE, 11)));
     resource1
@@ -351,7 +351,7 @@ public class CompactionWithAllNullRowsTest extends 
AbstractCompactionTest {
             new TableDeletionEntry(
                 new DeletionPredicate(
                     "t1",
-                    new IDPredicate.FullExactMatch(deviceID),
+                    new TagPredicate.FullExactMatch(deviceID),
                     Collections.singletonList("s2")),
                 new TimeRange(Long.MIN_VALUE, 11)));
     resource1
@@ -360,7 +360,7 @@ public class CompactionWithAllNullRowsTest extends 
AbstractCompactionTest {
             new TableDeletionEntry(
                 new DeletionPredicate(
                     "t1",
-                    new IDPredicate.FullExactMatch(deviceID),
+                    new TagPredicate.FullExactMatch(deviceID),
                     Collections.singletonList("s3")),
                 new TimeRange(Long.MIN_VALUE, 11)));
     resource1.getModFileForWrite().close();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/modification/ModificationFileTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/modification/ModificationFileTest.java
index fb4ce06fc33..65abd59e293 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/modification/ModificationFileTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/modification/ModificationFileTest.java
@@ -23,9 +23,9 @@ import 
org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.MeasurementPath;
 import org.apache.iotdb.db.service.metrics.FileMetrics;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.recover.CompactionRecoverManager;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.FullExactMatch;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.NOP;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.SegmentExactMatch;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.FullExactMatch;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.NOP;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.SegmentExactMatch;
 import org.apache.iotdb.db.utils.constant.TestConstant;
 
 import org.apache.tsfile.file.metadata.IDeviceID.Factory;
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/modification/TableDeletionEntryTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/modification/TableDeletionEntryTest.java
index f4e90957945..315432c03a1 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/modification/TableDeletionEntryTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/modification/TableDeletionEntryTest.java
@@ -18,10 +18,10 @@
  */
 package org.apache.iotdb.db.storageengine.dataregion.modification;
 
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.And;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.FullExactMatch;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.NOP;
-import 
org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.SegmentExactMatch;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.And;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.FullExactMatch;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.NOP;
+import 
org.apache.iotdb.db.storageengine.dataregion.modification.TagPredicate.SegmentExactMatch;
 
 import org.apache.tsfile.file.metadata.IDeviceID;
 import org.apache.tsfile.file.metadata.IDeviceID.Factory;
@@ -69,7 +69,7 @@ public class TableDeletionEntryTest {
   public void testDeserializePredicateTypeFromEmptyStream() {
     assertThrows(
         EOFException.class,
-        () -> IDPredicate.IDPredicateType.deserialize(new 
ByteArrayInputStream(new byte[0])));
+        () -> TagPredicate.TagPredicateType.deserialize(new 
ByteArrayInputStream(new byte[0])));
   }
 
   @Test

Reply via email to