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

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


The following commit(s) were added to refs/heads/rel/1.2 by this push:
     new db4a306a27e [To rel/1.2] Accelerate the deletion execution (#10980)
db4a306a27e is described below

commit db4a306a27e979cb2b786c115eb47f928a646ce7
Author: Haonan <[email protected]>
AuthorDate: Tue Aug 29 11:52:37 2023 +0800

    [To rel/1.2] Accelerate the deletion execution (#10980)
---
 .../plan/planner/plan/node/write/DeleteDataNode.java         | 12 +++++++++++-
 .../apache/iotdb/db/storageengine/dataregion/DataRegion.java |  3 +++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/DeleteDataNode.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/DeleteDataNode.java
index 8ec2af696a2..9a60ca04ca5 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/DeleteDataNode.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/DeleteDataNode.java
@@ -270,7 +270,17 @@ public class DeleteDataNode extends WritePlanNode 
implements WALEntryValue {
         .map(
             o ->
                 new DeleteDataNode(
-                    getPlanNodeId(), regionToPatternMap.get(o), 
deleteStartTime, deleteEndTime, o))
+                    getPlanNodeId(),
+                    // Pick the smaller path list to execute the deletion.
+                    // E.g. There is only one path(root.sg.**) in pathList and 
two paths(root.sg.d1,
+                    // root.sg.d2) in a map entry in regionToPatternMap. 
Choose the original path is
+                    // better.
+                    this.pathList.size() < regionToPatternMap.get(o).size()
+                        ? this.pathList
+                        : regionToPatternMap.get(o),
+                    deleteStartTime,
+                    deleteEndTime,
+                    o))
         .collect(Collectors.toList());
   }
 
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 95ffb6264a7..75609c20f93 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
@@ -1935,6 +1935,9 @@ public class DataRegion implements IDataRegionForQuery {
             return true;
           }
         }
+        if (databaseName.contentEquals(device.getDevice())) {
+          return false;
+        }
         Pair<Long, Long> startAndEndTime =
             tsFileResource.getPossibleStartTimeAndEndTime(device, 
deviceMatchInfo);
         if (startAndEndTime == null) {

Reply via email to