This is an automated email from the ASF dual-hosted git repository. haonan pushed a commit to branch opti_delete_speed in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 8f2e4f379c338aca5578c4ee16948d2c188347f6 Author: HTHou <[email protected]> AuthorDate: Mon Aug 28 15:36:54 2023 +0800 Accelerate the deletion execution --- .../queryengine/plan/planner/plan/node/write/DeleteDataNode.java | 9 ++++++++- .../org/apache/iotdb/db/storageengine/dataregion/DataRegion.java | 3 +++ 2 files changed, 11 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..216ebf783dc 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,14 @@ 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 + 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) {
