diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGenerator.java index b0385c8e6420..68bef30462fc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGenerator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGenerator.java @@ -527,7 +527,7 @@ public static CreateAlignedTimeSeriesStatement createStatement(TSCreateAlignedTi final long startTime = System.nanoTime(); // construct create aligned timeseries statement CreateAlignedTimeSeriesStatement statement = new CreateAlignedTimeSeriesStatement(); - statement.setDevicePath(new PartialPath(req.prefixPath)); + statement.setDevicePath(DEVICE_PATH_CACHE.getPartialPath(req.prefixPath)); List dataTypes = new ArrayList<>(); for (Integer dataType : req.dataTypes) { dataTypes.add(TSDataType.deserialize(dataType.byteValue())); 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 64e70aad1bdb..1fda758e7751 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.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 static CreateAlignedTimeSeriesNode deserialize(ByteBuffer byteBuffer) { 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 bda7132fb7bf..57107294f765 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 static InsertRowNode deserialize(ByteBuffer byteBuffer) { 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 @@ protected static InsertRowNode subDeserializeFromWAL(ByteBuffer buffer) { 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 864880fd7749..0ec16ef69c78 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.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 static InsertRowsOfOneDeviceNode deserialize(ByteBuffer byteBuffer) { List 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 6fc61399b353..58f6dd363c73 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 static InsertTabletNode deserialize(ByteBuffer byteBuffer) { 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 static InsertTabletNode deserializeFromWAL(ByteBuffer buffer) { 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); }