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

tanxinyu pushed a commit to branch optimize-insertnode-device-init-performance
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 9502f7e926051b9fef712a35db3053fc88bf1f07
Author: OneSizeFitQuorum <[email protected]>
AuthorDate: Mon Jun 17 18:12:32 2024 +0800

    finish
    
    Signed-off-by: OneSizeFitQuorum <[email protected]>
---
 .../plan/node/metedata/write/CreateAlignedTimeSeriesNode.java     | 3 ++-
 .../queryengine/plan/planner/plan/node/write/InsertRowNode.java   | 8 ++++++--
 .../plan/planner/plan/node/write/InsertRowsOfOneDeviceNode.java   | 5 ++++-
 .../plan/planner/plan/node/write/InsertTabletNode.java            | 8 ++++++--
 4 files changed, 18 insertions(+), 6 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metedata/write/CreateAlignedTimeSeriesNode.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metedata/write/CreateAlignedTimeSeriesNode.java
index 64e70aad1bd..1fda758e775 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metedata/write/CreateAlignedTimeSeriesNode.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metedata/write/CreateAlignedTimeSeriesNode.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis;
+import 
org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeDevicePathCache;
 import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
 import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId;
 import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType;
@@ -211,7 +212,7 @@ public class CreateAlignedTimeSeriesNode extends 
WritePlanNode
     byte[] bytes = new byte[length];
     byteBuffer.get(bytes);
     try {
-      devicePath = new PartialPath(new String(bytes));
+      devicePath = DataNodeDevicePathCache.getInstance().getPartialPath(new 
String(bytes));
     } catch (IllegalPathException e) {
       throw new IllegalArgumentException("Can not deserialize 
CreateAlignedTimeSeriesNode", e);
     }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowNode.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowNode.java
index bda7132fb7b..57107294f76 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowNode.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowNode.java
@@ -417,7 +417,9 @@ public class InsertRowNode extends InsertNode implements 
WALEntryValue {
   void subDeserialize(ByteBuffer byteBuffer) {
     time = byteBuffer.getLong();
     try {
-      devicePath = new PartialPath(ReadWriteIOUtils.readString(byteBuffer));
+      devicePath =
+          DataNodeDevicePathCache.getInstance()
+              .getPartialPath(ReadWriteIOUtils.readString(byteBuffer));
     } catch (IllegalPathException e) {
       throw new IllegalArgumentException(DESERIALIZE_ERROR, e);
     }
@@ -741,7 +743,9 @@ public class InsertRowNode extends InsertNode implements 
WALEntryValue {
     InsertRowNode insertNode = new InsertRowNode(new PlanNodeId(""));
     insertNode.setTime(buffer.getLong());
     try {
-      insertNode.setDevicePath(new 
PartialPath(ReadWriteIOUtils.readString(buffer)));
+      insertNode.setDevicePath(
+          DataNodeDevicePathCache.getInstance()
+              .getPartialPath(ReadWriteIOUtils.readString(buffer)));
     } catch (IllegalPathException e) {
       throw new IllegalArgumentException(DESERIALIZE_ERROR, e);
     }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowsOfOneDeviceNode.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowsOfOneDeviceNode.java
index 864880fd774..0ec16ef69c7 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowsOfOneDeviceNode.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowsOfOneDeviceNode.java
@@ -27,6 +27,7 @@ import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.commons.utils.StatusUtils;
 import org.apache.iotdb.commons.utils.TimePartitionUtils;
 import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis;
+import 
org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeDevicePathCache;
 import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
 import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId;
 import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType;
@@ -228,7 +229,9 @@ public class InsertRowsOfOneDeviceNode extends InsertNode {
     List<Integer> insertRowNodeIndex = new ArrayList<>();
 
     try {
-      devicePath = new PartialPath(ReadWriteIOUtils.readString(byteBuffer));
+      devicePath =
+          DataNodeDevicePathCache.getInstance()
+              .getPartialPath((ReadWriteIOUtils.readString(byteBuffer)));
     } catch (IllegalPathException e) {
       throw new IllegalArgumentException("Cannot deserialize 
InsertRowsOfOneDeviceNode", e);
     }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertTabletNode.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertTabletNode.java
index 6fc61399b35..58f6dd363c7 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertTabletNode.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertTabletNode.java
@@ -638,7 +638,9 @@ public class InsertTabletNode extends InsertNode implements 
WALEntryValue {
 
   public void subDeserialize(ByteBuffer buffer) {
     try {
-      devicePath = new PartialPath(ReadWriteIOUtils.readString(buffer));
+      devicePath =
+          DataNodeDevicePathCache.getInstance()
+              .getPartialPath((ReadWriteIOUtils.readString(buffer)));
     } catch (IllegalPathException e) {
       throw new IllegalArgumentException("Cannot deserialize 
InsertTabletNode", e);
     }
@@ -929,7 +931,9 @@ public class InsertTabletNode extends InsertNode implements 
WALEntryValue {
   private void subDeserializeFromWAL(ByteBuffer buffer) {
     searchIndex = buffer.getLong();
     try {
-      devicePath = new PartialPath(ReadWriteIOUtils.readString(buffer));
+      devicePath =
+          DataNodeDevicePathCache.getInstance()
+              .getPartialPath((ReadWriteIOUtils.readString(buffer)));
     } catch (IllegalPathException e) {
       throw new IllegalArgumentException("Cannot deserialize 
InsertTabletNode", e);
     }

Reply via email to