You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ro...@apache.org on 2022/05/10 10:05:04 UTC

[iotdb] branch master updated: [IOTDB-3071] change siganature of getDeviceIdString in Path (#5852)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 636394caf0 [IOTDB-3071] change siganature of getDeviceIdString in Path (#5852)
636394caf0 is described below

commit 636394caf0e5596b93873eed8483160c0db4d2e8
Author: Liao Lanyu <48...@users.noreply.github.com>
AuthorDate: Tue May 10 18:04:59 2022 +0800

    [IOTDB-3071] change siganature of getDeviceIdString in Path (#5852)
---
 .../iotdb/cluster/metadata/CSchemaProcessor.java   |  6 ++----
 .../cluster/query/ClusterDataQueryExecutor.java    |  6 +++---
 .../query/aggregate/ClusterAggregateExecutor.java  |  2 +-
 .../cluster/query/fill/ClusterFillExecutor.java    |  2 +-
 .../groupby/ClusterGroupByVFilterDataSet.java      |  2 +-
 .../cluster/query/reader/ClusterReaderFactory.java |  3 +--
 .../cluster/query/reader/ClusterTimeGenerator.java |  4 ++--
 .../org/apache/iotdb/DataMigrationExample.java     |  2 +-
 .../org/apache/iotdb/commons/path/PartialPath.java |  6 +++---
 .../utils/SingleSeriesCompactionExecutor.java      |  2 +-
 .../iotdb/db/engine/modification/Modification.java |  2 +-
 .../selectinto/InsertTabletPlansIterator.java      |  2 +-
 .../db/metadata/idtable/IDTableHashmapImpl.java    |  9 +++------
 .../apache/iotdb/db/metadata/path/AlignedPath.java |  6 +++---
 .../iotdb/db/metadata/path/MeasurementPath.java    |  7 +++----
 .../apache/iotdb/db/metadata/utils/MetaUtils.java  |  6 +++---
 .../db/metadata/utils/ResourceByPathUtils.java     |  7 +++----
 .../iotdb/db/mpp/execution/driver/DataDriver.java  |  2 +-
 .../execution/operator/source/SeriesScanUtil.java  | 23 +++++++++-------------
 .../apache/iotdb/db/mpp/plan/analyze/Analysis.java |  2 +-
 .../db/mpp/plan/analyze/ExpressionAnalyzer.java    |  2 +-
 .../db/mpp/plan/planner/LocalExecutionPlanner.java |  4 ++--
 .../node/metedata/write/AlterTimeSeriesNode.java   |  2 +-
 .../node/metedata/write/CreateTimeSeriesNode.java  |  2 +-
 .../plan/node/source/AlignedSeriesScanNode.java    |  2 +-
 .../db/protocol/influxdb/handler/QueryHandler.java |  2 +-
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |  2 +-
 .../db/qp/physical/crud/AlignByDevicePlan.java     |  2 +-
 .../db/qp/physical/crud/RawDataQueryPlan.java      |  9 ++++-----
 .../db/query/control/QueryResourceManager.java     |  6 +++---
 .../groupby/GroupByWithValueFilterDataSet.java     |  2 +-
 .../groupby/GroupByWithoutValueFilterDataSet.java  |  2 +-
 .../db/query/executor/AggregationExecutor.java     |  6 +++---
 .../iotdb/db/query/executor/FillQueryExecutor.java |  4 ++--
 .../iotdb/db/query/executor/LastQueryExecutor.java |  2 +-
 .../db/query/executor/RawDataQueryExecutor.java    |  4 ++--
 .../db/query/executor/fill/LastPointReader.java    |  6 +++---
 .../iotdb/db/query/reader/series/SeriesReader.java | 18 ++++++++---------
 .../query/timegenerator/ServerTimeGenerator.java   |  2 +-
 .../org/apache/iotdb/db/tools/TsFileSplitTool.java |  2 +-
 .../org/apache/iotdb/db/utils/FileLoaderUtils.java |  4 ++--
 .../file/UnsealedTsFileRecoverPerformer.java       |  2 +-
 .../compaction/utils/CompactionCheckerUtils.java   |  2 +-
 .../utils/CompactionFileGeneratorUtils.java        |  6 ++----
 .../iotdb/db/mpp/plan/plan/LogicalPlannerTest.java |  4 ++--
 .../apache/iotdb/spark/tsfile/DefaultSource.scala  |  2 +-
 .../iotdb/spark/tsfile/NarrowConverter.scala       |  2 +-
 .../apache/iotdb/spark/tsfile/WideConverter.scala  |  4 ++--
 .../iotdb/tsfile/read/TsFileSequenceReader.java    | 10 +++++-----
 .../org/apache/iotdb/tsfile/read/common/Path.java  |  2 +-
 .../read/controller/MetadataQuerierByFileImpl.java |  8 ++++----
 .../tsfile/v2/read/TsFileSequenceReaderForV2.java  |  7 ++-----
 .../apache/iotdb/tsfile/write/TsFileWriter.java    |  8 ++++----
 .../iotdb/tsfile/write/writer/TsFileIOWriter.java  |  2 +-
 .../apache/iotdb/tsfile/read/TsFileReaderTest.java |  2 +-
 .../apache/iotdb/tsfile/read/common/PathTest.java  | 10 +++++-----
 .../org/apache/iotdb/tsfile/write/WriteTest.java   |  6 +++---
 57 files changed, 122 insertions(+), 141 deletions(-)

diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CSchemaProcessor.java b/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CSchemaProcessor.java
index 7bef7e1803..87b490b8de 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CSchemaProcessor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CSchemaProcessor.java
@@ -236,9 +236,7 @@ public class CSchemaProcessor extends LocalSchemaProcessor {
         if (measurementSchema instanceof VectorMeasurementSchema) {
           for (String subMeasurement : measurementSchema.getSubMeasurementsList()) {
             cacheMeta(
-                new AlignedPath(fullPath.getDeviceIdString(), subMeasurement),
-                measurementMNode,
-                false);
+                new AlignedPath(fullPath.getDevice(), subMeasurement), measurementMNode, false);
           }
         } else {
           cacheMeta(fullPath, measurementMNode, true);
@@ -382,7 +380,7 @@ public class CSchemaProcessor extends LocalSchemaProcessor {
         getMNodesLocally(plan.getDevicePath(), plan.getMeasurements(), measurementMNodes);
     if (nonExistSchemaIndex == -1) {
       plan.setMeasurementMNodes(measurementMNodes);
-      return new InternalMNode(null, plan.getDevicePath().getDeviceIdString());
+      return new InternalMNode(null, plan.getDevicePath().getDevice());
     }
     // auto-create schema in IoTDBConfig is always disabled in the cluster version, and we have
     // another config in ClusterConfig to do this
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/query/ClusterDataQueryExecutor.java b/cluster/src/main/java/org/apache/iotdb/cluster/query/ClusterDataQueryExecutor.java
index 5ff70f2100..95f1e8f3c2 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/query/ClusterDataQueryExecutor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/query/ClusterDataQueryExecutor.java
@@ -167,7 +167,7 @@ public class ClusterDataQueryExecutor extends RawDataQueryExecutor {
         reader =
             readerFactory.getSeriesReader(
                 path,
-                queryPlan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+                queryPlan.getAllMeasurementsInDevice(path.getDevice()),
                 dataType,
                 timeFilter,
                 null,
@@ -278,7 +278,7 @@ public class ClusterDataQueryExecutor extends RawDataQueryExecutor {
               IReaderByTimestamp readerByTimestamp =
                   readerFactory.getReaderByTimestamp(
                       path,
-                      queryPlan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+                      queryPlan.getAllMeasurementsInDevice(path.getDevice()),
                       dataType,
                       context,
                       dataGroupMember,
@@ -293,7 +293,7 @@ public class ClusterDataQueryExecutor extends RawDataQueryExecutor {
               IPointReader pointReader =
                   readerFactory.getSeriesPointReader(
                       path,
-                      queryPlan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+                      queryPlan.getAllMeasurementsInDevice(path.getDevice()),
                       dataType,
                       timeFilter,
                       null,
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/query/aggregate/ClusterAggregateExecutor.java b/cluster/src/main/java/org/apache/iotdb/cluster/query/aggregate/ClusterAggregateExecutor.java
index 0c38dc7871..434825d901 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/query/aggregate/ClusterAggregateExecutor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/query/aggregate/ClusterAggregateExecutor.java
@@ -98,7 +98,7 @@ public class ClusterAggregateExecutor extends AggregationExecutor {
       throws StorageEngineException, QueryProcessException {
     return readerFactory.getReaderByTimestamp(
         path,
-        dataQueryPlan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+        dataQueryPlan.getAllMeasurementsInDevice(path.getDevice()),
         dataType,
         context,
         dataQueryPlan.isAscending(),
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/query/fill/ClusterFillExecutor.java b/cluster/src/main/java/org/apache/iotdb/cluster/query/fill/ClusterFillExecutor.java
index f82f994a4d..c0fe38d6f8 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/query/fill/ClusterFillExecutor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/query/fill/ClusterFillExecutor.java
@@ -85,7 +85,7 @@ public class ClusterFillExecutor extends FillQueryExecutor {
       IReaderByTimestamp reader =
           clusterReaderFactory.getReaderByTimestamp(
               path,
-              plan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+              plan.getAllMeasurementsInDevice(path.getDevice()),
               dataTypes.get(i),
               context,
               plan.isAscending(),
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/query/groupby/ClusterGroupByVFilterDataSet.java b/cluster/src/main/java/org/apache/iotdb/cluster/query/groupby/ClusterGroupByVFilterDataSet.java
index 594da1176d..f3db01153d 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/query/groupby/ClusterGroupByVFilterDataSet.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/query/groupby/ClusterGroupByVFilterDataSet.java
@@ -66,7 +66,7 @@ public class ClusterGroupByVFilterDataSet extends GroupByWithValueFilterDataSet
       throws StorageEngineException, QueryProcessException {
     return readerFactory.getReaderByTimestamp(
         path,
-        dataQueryPlan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+        dataQueryPlan.getAllMeasurementsInDevice(path.getDevice()),
         path.getSeriesType(),
         context,
         dataQueryPlan.isAscending(),
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/query/reader/ClusterReaderFactory.java b/cluster/src/main/java/org/apache/iotdb/cluster/query/reader/ClusterReaderFactory.java
index 519de94655..28fb6dae1a 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/query/reader/ClusterReaderFactory.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/query/reader/ClusterReaderFactory.java
@@ -277,8 +277,7 @@ public class ClusterReaderFactory {
       partialPaths.forEach(
           partialPath -> {
             Set<String> measurements =
-                deviceMeasurements.getOrDefault(
-                    partialPath.getDeviceIdString(), Collections.emptySet());
+                deviceMeasurements.getOrDefault(partialPath.getDevice(), Collections.emptySet());
             partitionGroupDeviceMeasurements.put(partialPath.getFullPath(), measurements);
             partitionGroupTSDataType.add(dataTypes.get(paths.lastIndexOf(partialPath)));
           });
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/query/reader/ClusterTimeGenerator.java b/cluster/src/main/java/org/apache/iotdb/cluster/query/reader/ClusterTimeGenerator.java
index 1a22e3da40..ac22ad23a6 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/query/reader/ClusterTimeGenerator.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/query/reader/ClusterTimeGenerator.java
@@ -115,7 +115,7 @@ public class ClusterTimeGenerator extends ServerTimeGenerator {
       mergeReader =
           readerFactory.getSeriesReader(
               path,
-              queryPlan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+              queryPlan.getAllMeasurementsInDevice(path.getDevice()),
               dataType,
               timeFilter,
               filter,
@@ -187,7 +187,7 @@ public class ClusterTimeGenerator extends ServerTimeGenerator {
           IPointReader pointReader =
               readerFactory.getSeriesPointReader(
                   path,
-                  queryPlan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+                  queryPlan.getAllMeasurementsInDevice(path.getDevice()),
                   dataType,
                   timeFilter,
                   filter,
diff --git a/example/session/src/main/java/org/apache/iotdb/DataMigrationExample.java b/example/session/src/main/java/org/apache/iotdb/DataMigrationExample.java
index c8d03df1cf..e880ba93eb 100644
--- a/example/session/src/main/java/org/apache/iotdb/DataMigrationExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/DataMigrationExample.java
@@ -117,7 +117,7 @@ public class DataMigrationExample {
 
     public LoadThread(int i, Path series, TSDataType dataType) {
       this.i = i;
-      this.device = series.getDeviceIdString();
+      this.device = series.getDevice();
       this.measurement = series.getMeasurement();
       this.dataType = dataType;
       this.series = series;
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/path/PartialPath.java b/node-commons/src/main/java/org/apache/iotdb/commons/path/PartialPath.java
index e29822ff4d..89aeecb6bc 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/path/PartialPath.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/path/PartialPath.java
@@ -365,7 +365,7 @@ public class PartialPath extends Path implements Comparable<Path>, Cloneable {
   }
 
   @Override
-  public String getDeviceIdString() {
+  public String getDevice() {
     if (device != null) {
       return device;
     } else {
@@ -448,7 +448,7 @@ public class PartialPath extends Path implements Comparable<Path>, Cloneable {
 
   @TestOnly
   public Path toTSFilePath() {
-    return new Path(getDeviceIdString(), getMeasurement());
+    return new Path(getDevice(), getMeasurement());
   }
 
   public static List<String> toStringList(List<PartialPath> pathList) {
@@ -513,7 +513,7 @@ public class PartialPath extends Path implements Comparable<Path>, Cloneable {
     }
     partialPath.nodes = nodes;
     partialPath.setMeasurement(path.getMeasurement());
-    partialPath.device = path.getDeviceIdString();
+    partialPath.device = path.getDevice();
     partialPath.fullPath = path.getFullPath();
     return partialPath;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/SingleSeriesCompactionExecutor.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/SingleSeriesCompactionExecutor.java
index d4433bba71..dd1dbea024 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/SingleSeriesCompactionExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/SingleSeriesCompactionExecutor.java
@@ -79,7 +79,7 @@ public class SingleSeriesCompactionExecutor {
       LinkedList<Pair<TsFileSequenceReader, List<ChunkMetadata>>> readerAndChunkMetadataList,
       TsFileIOWriter fileWriter,
       TsFileResource targetResource) {
-    this.device = series.getDeviceIdString();
+    this.device = series.getDevice();
     this.readerAndChunkMetadataList = readerAndChunkMetadataList;
     this.fileWriter = fileWriter;
     this.schema = measurementSchema;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/modification/Modification.java b/server/src/main/java/org/apache/iotdb/db/engine/modification/Modification.java
index dd8f69bd05..55815240ca 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/modification/Modification.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/modification/Modification.java
@@ -45,7 +45,7 @@ public abstract class Modification {
   }
 
   public String getDevice() {
-    return path.getDeviceIdString();
+    return path.getDevice();
   }
 
   public String getMeasurement() {
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/selectinto/InsertTabletPlansIterator.java b/server/src/main/java/org/apache/iotdb/db/engine/selectinto/InsertTabletPlansIterator.java
index 8a67c6159f..fd309d667d 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/selectinto/InsertTabletPlansIterator.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/selectinto/InsertTabletPlansIterator.java
@@ -102,7 +102,7 @@ public class InsertTabletPlansIterator {
 
     Map<String, InsertTabletPlanGenerator> deviceToPlanGeneratorMap = new HashMap<>();
     for (int i = 0, intoPathsSize = intoPaths.size(); i < intoPathsSize; i++) {
-      String device = intoPaths.get(i).getDeviceIdString();
+      String device = intoPaths.get(i).getDevice();
       if (!deviceToPlanGeneratorMap.containsKey(device)) {
         deviceToPlanGeneratorMap.put(
             device, new InsertTabletPlanGenerator(device, tabletRowLimit, isIntoPathsAligned));
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/idtable/IDTableHashmapImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/idtable/IDTableHashmapImpl.java
index 4f671d96cd..149620e9e3 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/idtable/IDTableHashmapImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/idtable/IDTableHashmapImpl.java
@@ -114,8 +114,7 @@ public class IDTableHashmapImpl implements IDTable {
    * @throws MetadataException if the device is aligned, throw it
    */
   public synchronized void createTimeseries(CreateTimeSeriesPlan plan) throws MetadataException {
-    DeviceEntry deviceEntry =
-        getDeviceEntryWithAlignedCheck(plan.getPath().getDeviceIdString(), false);
+    DeviceEntry deviceEntry = getDeviceEntryWithAlignedCheck(plan.getPath().getDevice(), false);
     SchemaEntry schemaEntry =
         new SchemaEntry(
             plan.getDataType(),
@@ -204,8 +203,7 @@ public class IDTableHashmapImpl implements IDTable {
   public synchronized void registerTrigger(PartialPath fullPath, IMeasurementMNode measurementMNode)
       throws MetadataException {
     boolean isAligned = measurementMNode.getParent().isAligned();
-    DeviceEntry deviceEntry =
-        getDeviceEntryWithAlignedCheck(fullPath.getDeviceIdString(), isAligned);
+    DeviceEntry deviceEntry = getDeviceEntryWithAlignedCheck(fullPath.getDevice(), isAligned);
 
     deviceEntry.getSchemaEntry(fullPath.getMeasurement()).setUsingTrigger();
   }
@@ -220,8 +218,7 @@ public class IDTableHashmapImpl implements IDTable {
   public synchronized void deregisterTrigger(
       PartialPath fullPath, IMeasurementMNode measurementMNode) throws MetadataException {
     boolean isAligned = measurementMNode.getParent().isAligned();
-    DeviceEntry deviceEntry =
-        getDeviceEntryWithAlignedCheck(fullPath.getDeviceIdString(), isAligned);
+    DeviceEntry deviceEntry = getDeviceEntryWithAlignedCheck(fullPath.getDevice(), isAligned);
 
     deviceEntry.getSchemaEntry(fullPath.getMeasurement()).setUnUsingTrigger();
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/path/AlignedPath.java b/server/src/main/java/org/apache/iotdb/db/metadata/path/AlignedPath.java
index 8222d13dbb..615fed6a47 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/path/AlignedPath.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/path/AlignedPath.java
@@ -101,7 +101,7 @@ public class AlignedPath extends PartialPath {
   }
 
   @Override
-  public String getDeviceIdString() {
+  public String getDevice() {
     return getFullPath();
   }
 
@@ -231,7 +231,7 @@ public class AlignedPath extends PartialPath {
     try {
       alignedPath =
           new AlignedPath(
-              this.getDeviceIdString(),
+              this.getDevice(),
               new ArrayList<>(this.measurementList),
               new ArrayList<>(this.schemaList));
     } catch (IllegalPathException e) {
@@ -288,7 +288,7 @@ public class AlignedPath extends PartialPath {
     alignedPath.measurementList = measurements;
     alignedPath.schemaList = measurementSchemas;
     alignedPath.nodes = partialPath.getNodes();
-    alignedPath.device = partialPath.getDeviceIdString();
+    alignedPath.device = partialPath.getDevice();
     alignedPath.fullPath = partialPath.getFullPath();
     return alignedPath;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/path/MeasurementPath.java b/server/src/main/java/org/apache/iotdb/db/metadata/path/MeasurementPath.java
index 5b105fd618..7b9cd9a3c0 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/path/MeasurementPath.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/path/MeasurementPath.java
@@ -112,7 +112,7 @@ public class MeasurementPath extends PartialPath {
 
   @Override
   public String getFullPathWithAlias() {
-    return getDeviceIdString() + IoTDBConstant.PATH_SEPARATOR + measurementAlias;
+    return getDevice() + IoTDBConstant.PATH_SEPARATOR + measurementAlias;
   }
 
   public boolean isUnderAlignedEntity() {
@@ -148,8 +148,7 @@ public class MeasurementPath extends PartialPath {
     MeasurementPath newMeasurementPath = null;
     try {
       newMeasurementPath =
-          new MeasurementPath(
-              this.getDeviceIdString(), this.getMeasurement(), this.getMeasurementSchema());
+          new MeasurementPath(this.getDevice(), this.getMeasurement(), this.getMeasurementSchema());
       newMeasurementPath.setUnderAlignedEntity(this.isUnderAlignedEntity);
     } catch (IllegalPathException e) {
       logger.warn("path is illegal: {}", this.getFullPath(), e);
@@ -191,7 +190,7 @@ public class MeasurementPath extends PartialPath {
     measurementPath.isUnderAlignedEntity = ReadWriteIOUtils.readBool(byteBuffer);
     measurementPath.measurementAlias = ReadWriteIOUtils.readString(byteBuffer);
     measurementPath.nodes = partialPath.getNodes();
-    measurementPath.device = partialPath.getDeviceIdString();
+    measurementPath.device = partialPath.getDevice();
     measurementPath.fullPath = partialPath.getFullPath();
     return measurementPath;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/utils/MetaUtils.java b/server/src/main/java/org/apache/iotdb/db/metadata/utils/MetaUtils.java
index 755bb668c3..e231c174d0 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/utils/MetaUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/utils/MetaUtils.java
@@ -79,7 +79,7 @@ public class MetaUtils {
         result.add(measurementPath);
         alignedPath = null;
       } else {
-        if (alignedPath == null || !alignedPath.equals(measurementPath.getDeviceIdString())) {
+        if (alignedPath == null || !alignedPath.equals(measurementPath.getDevice())) {
           alignedPath = new AlignedPath(measurementPath);
           result.add(alignedPath);
         } else {
@@ -171,10 +171,10 @@ public class MetaUtils {
       } else if (((MeasurementPath) seriesPath).isUnderAlignedEntity()) {
         // for without value filter
         List<Integer> indexes = pathToAggrIndexesMap.remove(seriesPath);
-        AlignedPath groupPath = temp.get(seriesPath.getDeviceIdString());
+        AlignedPath groupPath = temp.get(seriesPath.getDevice());
         if (groupPath == null) {
           groupPath = new AlignedPath((MeasurementPath) seriesPath);
-          temp.put(seriesPath.getDeviceIdString(), groupPath);
+          temp.put(seriesPath.getDevice(), groupPath);
           alignedPathToAggrIndexesMap
               .computeIfAbsent(groupPath, key -> new ArrayList<>())
               .add(indexes);
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/utils/ResourceByPathUtils.java b/server/src/main/java/org/apache/iotdb/db/metadata/utils/ResourceByPathUtils.java
index b3f46a7968..74b8c0b59d 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/utils/ResourceByPathUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/utils/ResourceByPathUtils.java
@@ -381,13 +381,12 @@ class AlignedResourceByPathUtils extends ResourceByPathUtils {
 
     List<AlignedChunkMetadata> chunkMetadataList = new ArrayList<>();
     List<ChunkMetadata> timeChunkMetadataList =
-        writer.getVisibleMetadataList(
-            partialPath.getDeviceIdString(), "", partialPath.getSeriesType());
+        writer.getVisibleMetadataList(partialPath.getDevice(), "", partialPath.getSeriesType());
     List<List<ChunkMetadata>> valueChunkMetadataList = new ArrayList<>();
     for (int i = 0; i < partialPath.getMeasurementList().size(); i++) {
       valueChunkMetadataList.add(
           writer.getVisibleMetadataList(
-              partialPath.getDeviceIdString(),
+              partialPath.getDevice(),
               partialPath.getMeasurementList().get(i),
               partialPath.getSchemaList().get(i).getType()));
     }
@@ -595,7 +594,7 @@ class MeasurementResourceByPathUtils extends ResourceByPathUtils {
     List<IChunkMetadata> chunkMetadataList =
         new ArrayList<>(
             writer.getVisibleMetadataList(
-                partialPath.getDeviceIdString(),
+                partialPath.getDevice(),
                 partialPath.getMeasurement(),
                 partialPath.getSeriesType()));
 
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/DataDriver.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/DataDriver.java
index 035dbc8d4c..17bdb9faf5 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/DataDriver.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/DataDriver.java
@@ -129,7 +129,7 @@ public class DataDriver extends Driver {
       // when all the selected series are under the same device, the QueryDataSource will be
       // filtered according to timeIndex
       Set<String> selectedDeviceIdSet =
-          pathList.stream().map(PartialPath::getDeviceIdString).collect(Collectors.toSet());
+          pathList.stream().map(PartialPath::getDevice).collect(Collectors.toSet());
 
       QueryDataSource dataSource =
           dataRegion.query(
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/SeriesScanUtil.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/SeriesScanUtil.java
index 189221af6d..5bde17b84b 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/SeriesScanUtil.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/SeriesScanUtil.java
@@ -158,8 +158,7 @@ public class SeriesScanUtil {
   }
 
   public void initQueryDataSource(QueryDataSource dataSource) {
-    QueryUtils.fillOrderIndexes(
-        dataSource, seriesPath.getDeviceIdString(), orderUtils.getAscending());
+    QueryUtils.fillOrderIndexes(dataSource, seriesPath.getDevice(), orderUtils.getAscending());
     this.dataSource = dataSource;
     orderUtils.setCurSeqFileIndex(dataSource);
   }
@@ -1197,7 +1196,7 @@ public class SeriesScanUtil {
 
     @Override
     public long getOrderTime(TsFileResource fileResource) {
-      return fileResource.getEndTime(seriesPath.getDeviceIdString());
+      return fileResource.getEndTime(seriesPath.getDevice());
     }
 
     @Override
@@ -1217,7 +1216,7 @@ public class SeriesScanUtil {
 
     @Override
     public boolean isOverlapped(long time, TsFileResource right) {
-      return time <= right.getEndTime(seriesPath.getDeviceIdString());
+      return time <= right.getEndTime(seriesPath.getDevice());
     }
 
     @Override
@@ -1259,8 +1258,7 @@ public class SeriesScanUtil {
       while (dataSource.hasNextSeqResource(curSeqFileIndex, getAscending())) {
         TsFileResource tsFileResource = dataSource.getSeqResourceByIndex(curSeqFileIndex);
         if (tsFileResource != null
-            && tsFileResource.isSatisfied(
-                seriesPath.getDeviceIdString(), timeFilter, null, true, false)) {
+            && tsFileResource.isSatisfied(seriesPath.getDevice(), timeFilter, null, true, false)) {
           break;
         }
         curSeqFileIndex--;
@@ -1273,8 +1271,7 @@ public class SeriesScanUtil {
       while (dataSource.hasNextUnseqResource(curUnseqFileIndex)) {
         TsFileResource tsFileResource = dataSource.getUnseqResourceByIndex(curUnseqFileIndex);
         if (tsFileResource != null
-            && tsFileResource.isSatisfied(
-                seriesPath.getDeviceIdString(), timeFilter, null, false, false)) {
+            && tsFileResource.isSatisfied(seriesPath.getDevice(), timeFilter, null, false, false)) {
           break;
         }
         curUnseqFileIndex++;
@@ -1315,7 +1312,7 @@ public class SeriesScanUtil {
 
     @Override
     public long getOrderTime(TsFileResource fileResource) {
-      return fileResource.getStartTime(seriesPath.getDeviceIdString());
+      return fileResource.getStartTime(seriesPath.getDevice());
     }
 
     @Override
@@ -1335,7 +1332,7 @@ public class SeriesScanUtil {
 
     @Override
     public boolean isOverlapped(long time, TsFileResource right) {
-      return time >= right.getStartTime(seriesPath.getDeviceIdString());
+      return time >= right.getStartTime(seriesPath.getDevice());
     }
 
     @Override
@@ -1377,8 +1374,7 @@ public class SeriesScanUtil {
       while (dataSource.hasNextSeqResource(curSeqFileIndex, getAscending())) {
         TsFileResource tsFileResource = dataSource.getSeqResourceByIndex(curSeqFileIndex);
         if (tsFileResource != null
-            && tsFileResource.isSatisfied(
-                seriesPath.getDeviceIdString(), timeFilter, null, true, false)) {
+            && tsFileResource.isSatisfied(seriesPath.getDevice(), timeFilter, null, true, false)) {
           break;
         }
         curSeqFileIndex++;
@@ -1391,8 +1387,7 @@ public class SeriesScanUtil {
       while (dataSource.hasNextUnseqResource(curUnseqFileIndex)) {
         TsFileResource tsFileResource = dataSource.getUnseqResourceByIndex(curUnseqFileIndex);
         if (tsFileResource != null
-            && tsFileResource.isSatisfied(
-                seriesPath.getDeviceIdString(), timeFilter, null, false, false)) {
+            && tsFileResource.isSatisfied(seriesPath.getDevice(), timeFilter, null, false, false)) {
           break;
         }
         curUnseqFileIndex++;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analysis.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analysis.java
index 1c007470d6..3c1f8b3b64 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analysis.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analysis.java
@@ -92,7 +92,7 @@ public class Analysis {
 
   public List<TRegionReplicaSet> getPartitionInfo(PartialPath seriesPath, Filter timefilter) {
     // TODO: (xingtanzjr) implement the calculation of timePartitionIdList
-    return dataPartition.getDataRegionReplicaSet(seriesPath.getDeviceIdString(), null);
+    return dataPartition.getDataRegionReplicaSet(seriesPath.getDevice(), null);
   }
 
   public Statement getStatement() {
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionAnalyzer.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionAnalyzer.java
index 97e9e11794..324ad66949 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionAnalyzer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionAnalyzer.java
@@ -807,7 +807,7 @@ public class ExpressionAnalyzer {
 
   public static String getDeviceNameInSourceExpression(Expression expression) {
     if (expression instanceof TimeSeriesOperand) {
-      return ((TimeSeriesOperand) expression).getPath().getDeviceIdString();
+      return ((TimeSeriesOperand) expression).getPath().getDevice();
     } else if (expression instanceof FunctionExpression) {
       return getDeviceNameInSourceExpression(expression.getExpressions().get(0));
     } else {
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java
index 3f3c1515f5..ac215e0727 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java
@@ -192,7 +192,7 @@ public class LocalExecutionPlanner {
           new SeriesScanOperator(
               node.getPlanNodeId(),
               seriesPath,
-              context.getAllSensors(seriesPath.getDeviceIdString(), seriesPath.getMeasurement()),
+              context.getAllSensors(seriesPath.getDevice(), seriesPath.getMeasurement()),
               seriesPath.getSeriesType(),
               operatorContext,
               node.getTimeFilter(),
@@ -378,7 +378,7 @@ public class LocalExecutionPlanner {
           new SeriesAggregateScanOperator(
               node.getPlanNodeId(),
               seriesPath,
-              context.getAllSensors(seriesPath.getDeviceIdString(), seriesPath.getMeasurement()),
+              context.getAllSensors(seriesPath.getDevice(), seriesPath.getMeasurement()),
               operatorContext,
               aggregators,
               node.getTimeFilter(),
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/metedata/write/AlterTimeSeriesNode.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/metedata/write/AlterTimeSeriesNode.java
index ba17bce6b6..ed32f6b9cf 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/metedata/write/AlterTimeSeriesNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/metedata/write/AlterTimeSeriesNode.java
@@ -291,7 +291,7 @@ public class AlterTimeSeriesNode extends WritePlanNode {
   @Override
   public List<WritePlanNode> splitByPartition(Analysis analysis) {
     TRegionReplicaSet regionReplicaSet =
-        analysis.getSchemaPartitionInfo().getSchemaRegionReplicaSet(path.getDeviceIdString());
+        analysis.getSchemaPartitionInfo().getSchemaRegionReplicaSet(path.getDevice());
     setRegionReplicaSet(regionReplicaSet);
     return ImmutableList.of(this);
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/metedata/write/CreateTimeSeriesNode.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/metedata/write/CreateTimeSeriesNode.java
index e91c78f607..9a0c170b91 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/metedata/write/CreateTimeSeriesNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/metedata/write/CreateTimeSeriesNode.java
@@ -321,7 +321,7 @@ public class CreateTimeSeriesNode extends WritePlanNode {
   @Override
   public List<WritePlanNode> splitByPartition(Analysis analysis) {
     TRegionReplicaSet regionReplicaSet =
-        analysis.getSchemaPartitionInfo().getSchemaRegionReplicaSet(path.getDeviceIdString());
+        analysis.getSchemaPartitionInfo().getSchemaRegionReplicaSet(path.getDevice());
     setRegionReplicaSet(regionReplicaSet);
     return ImmutableList.of(this);
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/source/AlignedSeriesScanNode.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/source/AlignedSeriesScanNode.java
index 5d7d4d6aa2..fd1df944d3 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/source/AlignedSeriesScanNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/source/AlignedSeriesScanNode.java
@@ -165,7 +165,7 @@ public class AlignedSeriesScanNode extends SourceNode {
   @Override
   public List<String> getOutputColumnNames() {
     List<String> outputColumnNames = new ArrayList<>();
-    String deviceName = alignedPath.getDeviceIdString();
+    String deviceName = alignedPath.getDevice();
     for (String measurement : alignedPath.getMeasurementList()) {
       outputColumnNames.add(deviceName.concat(TsFileConstant.PATH_SEPARATOR + measurement));
     }
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/handler/QueryHandler.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/handler/QueryHandler.java
index 5170ce1a26..12f78ccde2 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/handler/QueryHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/handler/QueryHandler.java
@@ -647,7 +647,7 @@ public class QueryHandler {
                       String.format(
                           "select %s from %s where %s=%s",
                           function.getParmaName(),
-                          paths.get(i).getDeviceIdString(),
+                          paths.get(i).getDevice(),
                           paths.get(i).getFullPath(),
                           o);
                   QueryPlan queryPlanNew =
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index cedfdaf645..4da54921cb 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@ -1563,7 +1563,7 @@ public class PlanExecutor implements IPlanExecutor {
         if (!registeredSeries.contains(series)) {
           registeredSeries.add(series);
           IMeasurementSchema schema =
-              knownSchemas.get(new Path(series.getDeviceIdString(), series.getMeasurement()));
+              knownSchemas.get(new Path(series.getDevice(), series.getMeasurement()));
           if (schema == null) {
             throw new MetadataException(
                 String.format(
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AlignByDevicePlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AlignByDevicePlan.java
index 7f2090b6f4..35a22188e4 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AlignByDevicePlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AlignByDevicePlan.java
@@ -124,7 +124,7 @@ public class AlignByDevicePlan extends QueryPlan {
           deduplicatedAggregations.add(this.aggregations.get(i));
         }
         deviceToPathIndex
-            .computeIfAbsent(path.getDeviceIdString(), k -> new ArrayList<>())
+            .computeIfAbsent(path.getDevice(), k -> new ArrayList<>())
             .add(deduplicatePaths.size() - 1);
       }
     }
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java
index c4239e2a45..2f9dce7afc 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java
@@ -130,7 +130,7 @@ public class RawDataQueryPlan extends QueryPlan {
     if (expression instanceof SingleSeriesExpression) {
       Path path = ((SingleSeriesExpression) expression).getSeriesPath();
       deviceToMeasurements
-          .computeIfAbsent(path.getDeviceIdString(), key -> new HashSet<>())
+          .computeIfAbsent(path.getDevice(), key -> new HashSet<>())
           .add(path.getMeasurement());
     } else if (expression instanceof IBinaryExpression) {
       updateDeviceMeasurementsUsingExpression(((IBinaryExpression) expression).getLeft());
@@ -144,7 +144,7 @@ public class RawDataQueryPlan extends QueryPlan {
 
   public void addDeduplicatedPaths(PartialPath path) {
     deviceToMeasurements
-        .computeIfAbsent(path.getDeviceIdString(), key -> new HashSet<>())
+        .computeIfAbsent(path.getDevice(), key -> new HashSet<>())
         .add(path.getMeasurement());
     this.deduplicatedPaths.add(path);
   }
@@ -162,8 +162,7 @@ public class RawDataQueryPlan extends QueryPlan {
     deduplicatedPaths.forEach(
         path -> {
           Set<String> set =
-              deviceToMeasurements.computeIfAbsent(
-                  path.getDeviceIdString(), key -> new HashSet<>());
+              deviceToMeasurements.computeIfAbsent(path.getDevice(), key -> new HashSet<>());
           if (path instanceof AlignedPath) {
             set.addAll(((AlignedPath) path).getMeasurementList());
           } else {
@@ -183,7 +182,7 @@ public class RawDataQueryPlan extends QueryPlan {
 
   public void addFilterPathInDeviceToMeasurements(Path path) {
     deviceToMeasurements
-        .computeIfAbsent(path.getDeviceIdString(), key -> new HashSet<>())
+        .computeIfAbsent(path.getDevice(), key -> new HashSet<>())
         .add(path.getMeasurement());
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/control/QueryResourceManager.java b/server/src/main/java/org/apache/iotdb/db/query/control/QueryResourceManager.java
index 9d33484781..5dd6e0a648 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/control/QueryResourceManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/control/QueryResourceManager.java
@@ -134,7 +134,7 @@ public class QueryResourceManager {
       // when all the selected series are under the same device, the QueryDataSource will be
       // filtered according to timeIndex
       Set<String> selectedDeviceIdSet =
-          pathList.stream().map(PartialPath::getDeviceIdString).collect(Collectors.toSet());
+          pathList.stream().map(PartialPath::getDevice).collect(Collectors.toSet());
 
       long queryId = context.getQueryId();
       String storageGroupPath = processor.getStorageGroupPath();
@@ -162,7 +162,7 @@ public class QueryResourceManager {
 
     long queryId = context.getQueryId();
     String storageGroupPath = StorageEngine.getInstance().getStorageGroupPath(selectedPath);
-    String deviceId = selectedPath.getDeviceIdString();
+    String deviceId = selectedPath.getDevice();
 
     // get cached QueryDataSource
     QueryDataSource cachedQueryDataSource;
@@ -176,7 +176,7 @@ public class QueryResourceManager {
       cachedQueryDataSource =
           processor.query(
               Collections.singletonList(translatedPath),
-              translatedPath.getDeviceIdString(),
+              translatedPath.getDevice(),
               context,
               filePathsManager,
               timeFilter);
diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithValueFilterDataSet.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithValueFilterDataSet.java
index fd88fada22..808fdab14c 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithValueFilterDataSet.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithValueFilterDataSet.java
@@ -180,7 +180,7 @@ public class GroupByWithValueFilterDataSet extends GroupByTimeEngineDataSet {
       throws StorageEngineException, QueryProcessException {
     return new SeriesReaderByTimestamp(
         path,
-        queryPlan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+        queryPlan.getAllMeasurementsInDevice(path.getDevice()),
         path.getSeriesType(),
         context,
         QueryResourceManager.getInstance()
diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithoutValueFilterDataSet.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithoutValueFilterDataSet.java
index 99698546e4..cc04f377d0 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithoutValueFilterDataSet.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithoutValueFilterDataSet.java
@@ -140,7 +140,7 @@ public class GroupByWithoutValueFilterDataSet extends GroupByTimeEngineDataSet {
             path,
             getGroupByExecutor(
                 path,
-                groupByTimePlan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+                groupByTimePlan.getAllMeasurementsInDevice(path.getDevice()),
                 context,
                 timeFilter.copy(),
                 null,
diff --git a/server/src/main/java/org/apache/iotdb/db/query/executor/AggregationExecutor.java b/server/src/main/java/org/apache/iotdb/db/query/executor/AggregationExecutor.java
index 699d971c30..2f8d2efde1 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/executor/AggregationExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/executor/AggregationExecutor.java
@@ -148,7 +148,7 @@ public class AggregationExecutor {
       aggregateOneSeries(
           seriesPath,
           entry.getValue(),
-          aggregationPlan.getAllMeasurementsInDevice(seriesPath.getDeviceIdString()),
+          aggregationPlan.getAllMeasurementsInDevice(seriesPath.getDevice()),
           timeFilter);
     }
     for (Map.Entry<AlignedPath, List<List<Integer>>> entry :
@@ -157,7 +157,7 @@ public class AggregationExecutor {
       aggregateOneAlignedSeries(
           alignedPath,
           entry.getValue(),
-          aggregationPlan.getAllMeasurementsInDevice(alignedPath.getDeviceIdString()),
+          aggregationPlan.getAllMeasurementsInDevice(alignedPath.getDevice()),
           timeFilter);
     }
 
@@ -703,7 +703,7 @@ public class AggregationExecutor {
       throws StorageEngineException, QueryProcessException {
     return new SeriesReaderByTimestamp(
         path,
-        queryPlan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+        queryPlan.getAllMeasurementsInDevice(path.getDevice()),
         dataType,
         context,
         QueryResourceManager.getInstance().getQueryDataSource(path, context, null, ascending),
diff --git a/server/src/main/java/org/apache/iotdb/db/query/executor/FillQueryExecutor.java b/server/src/main/java/org/apache/iotdb/db/query/executor/FillQueryExecutor.java
index 34bf99ff73..0c0beca368 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/executor/FillQueryExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/executor/FillQueryExecutor.java
@@ -189,7 +189,7 @@ public class FillQueryExecutor {
               path,
               dataType,
               queryTime,
-              plan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+              plan.getAllMeasurementsInDevice(path.getDevice()),
               context);
       fillExecutors[i] = fill;
 
@@ -257,7 +257,7 @@ public class FillQueryExecutor {
       ManagedSeriesReader reader =
           new SeriesRawDataBatchReader(
               path,
-              plan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+              plan.getAllMeasurementsInDevice(path.getDevice()),
               dataType,
               context,
               queryDataSource,
diff --git a/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java b/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java
index 29e782fc7b..62773b5ed9 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java
@@ -288,7 +288,7 @@ public class LastQueryExecutor {
               .createLastPointReader(
                   dataTypes.get(i),
                   deviceMeasurementsMap.getOrDefault(
-                      seriesPaths.get(i).getDeviceIdString(), new HashSet<>()),
+                      seriesPaths.get(i).getDevice(), new HashSet<>()),
                   context,
                   dataSource,
                   Long.MAX_VALUE,
diff --git a/server/src/main/java/org/apache/iotdb/db/query/executor/RawDataQueryExecutor.java b/server/src/main/java/org/apache/iotdb/db/query/executor/RawDataQueryExecutor.java
index 44bd4a7f3e..945c5aa0f0 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/executor/RawDataQueryExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/executor/RawDataQueryExecutor.java
@@ -141,7 +141,7 @@ public class RawDataQueryExecutor {
         ManagedSeriesReader reader =
             new SeriesRawDataBatchReader(
                 path,
-                queryPlan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+                queryPlan.getAllMeasurementsInDevice(path.getDevice()),
                 dataType,
                 context,
                 queryDataSource,
@@ -278,7 +278,7 @@ public class RawDataQueryExecutor {
       IReaderByTimestamp seriesReaderByTimestamp =
           getReaderByTimestamp(
               path,
-              queryPlan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+              queryPlan.getAllMeasurementsInDevice(path.getDevice()),
               queryPlan.getDeduplicatedDataTypes().get(i),
               context);
       readersOfSelectedSeries.add(seriesReaderByTimestamp);
diff --git a/server/src/main/java/org/apache/iotdb/db/query/executor/fill/LastPointReader.java b/server/src/main/java/org/apache/iotdb/db/query/executor/fill/LastPointReader.java
index d99c2ca078..4b70e7a736 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/executor/fill/LastPointReader.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/executor/fill/LastPointReader.java
@@ -149,7 +149,7 @@ public class LastPointReader {
         sortUnSeqFileResourcesInDecendingOrder(dataSource.getUnseqResources());
 
     while (!unseqFileResource.isEmpty()
-        && (lBoundTime <= unseqFileResource.peek().getEndTime(seriesPath.getDeviceIdString()))) {
+        && (lBoundTime <= unseqFileResource.peek().getEndTime(seriesPath.getDevice()))) {
       ITimeSeriesMetadata timeseriesMetadata =
           loadTimeSeriesMetadata(
               unseqFileResource.poll(), seriesPath, context, timeFilter, measurements);
@@ -219,8 +219,8 @@ public class LastPointReader {
     PriorityQueue<TsFileResource> unseqTsFilesSet =
         new PriorityQueue<>(
             (o1, o2) -> {
-              long maxTimeOfO1 = o1.getEndTime(seriesPath.getDeviceIdString());
-              long maxTimeOfO2 = o2.getEndTime(seriesPath.getDeviceIdString());
+              long maxTimeOfO1 = o1.getEndTime(seriesPath.getDevice());
+              long maxTimeOfO2 = o2.getEndTime(seriesPath.getDevice());
               return Long.compare(maxTimeOfO2, maxTimeOfO1);
             });
     unseqTsFilesSet.addAll(tsFileResources);
diff --git a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java
index 38a545f21c..5a16e4392a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java
@@ -187,7 +187,7 @@ public class SeriesReader {
     this.dataType = dataType;
     this.context = context;
     this.dataSource = new QueryDataSource(seqFileResource, unseqFileResource);
-    QueryUtils.fillOrderIndexes(dataSource, seriesPath.getDeviceIdString(), ascending);
+    QueryUtils.fillOrderIndexes(dataSource, seriesPath.getDevice(), ascending);
     this.timeFilter = timeFilter;
     this.valueFilter = valueFilter;
     this.fileFilter = null;
@@ -1241,7 +1241,7 @@ public class SeriesReader {
 
     @Override
     public long getOrderTime(TsFileResource fileResource) {
-      return fileResource.getEndTime(seriesPath.getDeviceIdString());
+      return fileResource.getEndTime(seriesPath.getDevice());
     }
 
     @Override
@@ -1261,7 +1261,7 @@ public class SeriesReader {
 
     @Override
     public boolean isOverlapped(long time, TsFileResource right) {
-      return time <= right.getEndTime(seriesPath.getDeviceIdString());
+      return time <= right.getEndTime(seriesPath.getDevice());
     }
 
     @Override
@@ -1304,7 +1304,7 @@ public class SeriesReader {
         TsFileResource tsFileResource = dataSource.getSeqResourceByIndex(curSeqFileIndex);
         if (tsFileResource != null
             && tsFileResource.isSatisfied(
-                seriesPath.getDeviceIdString(), timeFilter, fileFilter, true, context.isDebug())) {
+                seriesPath.getDevice(), timeFilter, fileFilter, true, context.isDebug())) {
           break;
         }
         curSeqFileIndex--;
@@ -1318,7 +1318,7 @@ public class SeriesReader {
         TsFileResource tsFileResource = dataSource.getUnseqResourceByIndex(curUnseqFileIndex);
         if (tsFileResource != null
             && tsFileResource.isSatisfied(
-                seriesPath.getDeviceIdString(), timeFilter, fileFilter, false, context.isDebug())) {
+                seriesPath.getDevice(), timeFilter, fileFilter, false, context.isDebug())) {
           break;
         }
         curUnseqFileIndex++;
@@ -1360,7 +1360,7 @@ public class SeriesReader {
 
     @Override
     public long getOrderTime(TsFileResource fileResource) {
-      return fileResource.getStartTime(seriesPath.getDeviceIdString());
+      return fileResource.getStartTime(seriesPath.getDevice());
     }
 
     @Override
@@ -1380,7 +1380,7 @@ public class SeriesReader {
 
     @Override
     public boolean isOverlapped(long time, TsFileResource right) {
-      return time >= right.getStartTime(seriesPath.getDeviceIdString());
+      return time >= right.getStartTime(seriesPath.getDevice());
     }
 
     @Override
@@ -1423,7 +1423,7 @@ public class SeriesReader {
         TsFileResource tsFileResource = dataSource.getSeqResourceByIndex(curSeqFileIndex);
         if (tsFileResource != null
             && tsFileResource.isSatisfied(
-                seriesPath.getDeviceIdString(), timeFilter, fileFilter, true, context.isDebug())) {
+                seriesPath.getDevice(), timeFilter, fileFilter, true, context.isDebug())) {
           break;
         }
         curSeqFileIndex++;
@@ -1437,7 +1437,7 @@ public class SeriesReader {
         TsFileResource tsFileResource = dataSource.getUnseqResourceByIndex(curUnseqFileIndex);
         if (tsFileResource != null
             && tsFileResource.isSatisfied(
-                seriesPath.getDeviceIdString(), timeFilter, fileFilter, false, context.isDebug())) {
+                seriesPath.getDevice(), timeFilter, fileFilter, false, context.isDebug())) {
           break;
         }
         curUnseqFileIndex++;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/timegenerator/ServerTimeGenerator.java b/server/src/main/java/org/apache/iotdb/db/query/timegenerator/ServerTimeGenerator.java
index 6db195a92c..0764d2a013 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/timegenerator/ServerTimeGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/timegenerator/ServerTimeGenerator.java
@@ -166,7 +166,7 @@ public class ServerTimeGenerator extends TimeGenerator {
 
     return new SeriesRawDataBatchReader(
         path,
-        queryPlan.getAllMeasurementsInDevice(path.getDeviceIdString()),
+        queryPlan.getAllMeasurementsInDevice(path.getDevice()),
         dataType,
         context,
         queryDataSource,
diff --git a/server/src/main/java/org/apache/iotdb/db/tools/TsFileSplitTool.java b/server/src/main/java/org/apache/iotdb/db/tools/TsFileSplitTool.java
index 0926bcc775..336a5681c6 100644
--- a/server/src/main/java/org/apache/iotdb/db/tools/TsFileSplitTool.java
+++ b/server/src/main/java/org/apache/iotdb/db/tools/TsFileSplitTool.java
@@ -118,7 +118,7 @@ public class TsFileSplitTool {
 
       while (pathIterator.hasNext()) {
         for (Path path : pathIterator.next()) {
-          String deviceId = path.getDeviceIdString();
+          String deviceId = path.getDevice();
           if (devices.add(deviceId)) {
             if (writer != null && writer.getPos() < targetSplitFileSize) {
               writer.endChunkGroup();
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/FileLoaderUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/FileLoaderUtils.java
index 2d75c34976..96b14d0c3a 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/FileLoaderUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/FileLoaderUtils.java
@@ -107,7 +107,7 @@ public class FileLoaderUtils {
               .get(
                   new TimeSeriesMetadataCache.TimeSeriesMetadataCacheKey(
                       resource.getTsFilePath(),
-                      seriesPath.getDeviceIdString(),
+                      seriesPath.getDevice(),
                       seriesPath.getMeasurement()),
                   allSensors,
                   resource.getTimeIndexType() != 1,
@@ -167,7 +167,7 @@ public class FileLoaderUtils {
       allSensors.add("");
       boolean isDebug = context.isDebug();
       String filePath = resource.getTsFilePath();
-      String deviceId = vectorPath.getDeviceIdString();
+      String deviceId = vectorPath.getDevice();
 
       // when resource.getTimeIndexType() == 1, TsFileResource.timeIndexType is deviceTimeIndex
       // we should not ignore the non-exist of device in TsFileMetadata
diff --git a/server/src/main/java/org/apache/iotdb/db/wal/recover/file/UnsealedTsFileRecoverPerformer.java b/server/src/main/java/org/apache/iotdb/db/wal/recover/file/UnsealedTsFileRecoverPerformer.java
index 48014ef4ff..56e5e09b59 100644
--- a/server/src/main/java/org/apache/iotdb/db/wal/recover/file/UnsealedTsFileRecoverPerformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/wal/recover/file/UnsealedTsFileRecoverPerformer.java
@@ -163,7 +163,7 @@ public class UnsealedTsFileRecoverPerformer extends AbstractTsFileRecoverPerform
       List<Modification> modifications = (List<Modification>) modificationFile.getModifications();
       for (Modification modification : modifications) {
         if (modification.getType().equals(Modification.Type.DELETION)) {
-          String deviceId = modification.getPath().getDeviceIdString();
+          String deviceId = modification.getPath().getDevice();
           String measurementId = modification.getPath().getMeasurement();
           Map<String, List<Deletion>> measurementModsMap =
               modificationsForResource.computeIfAbsent(deviceId, n -> new HashMap<>());
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionCheckerUtils.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionCheckerUtils.java
index 75f6ddebf2..b5f7bee02f 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionCheckerUtils.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionCheckerUtils.java
@@ -312,7 +312,7 @@ public class CompactionCheckerUtils {
     Map<String, long[]> devicePointNumMap = new HashMap<>();
     for (Entry<String, List<TimeValuePair>> dataEntry : sourceData.entrySet()) {
       PartialPath partialPath = new PartialPath(dataEntry.getKey());
-      String device = partialPath.getDeviceIdString();
+      String device = partialPath.getDevice();
       long[] statistics =
           devicePointNumMap.computeIfAbsent(
               device, k -> new long[] {Long.MAX_VALUE, Long.MIN_VALUE});
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionFileGeneratorUtils.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionFileGeneratorUtils.java
index bd5981f4f0..ad23d081d2 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionFileGeneratorUtils.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionFileGeneratorUtils.java
@@ -182,8 +182,7 @@ public class CompactionFileGeneratorUtils {
     for (String fullPath : fullPaths) {
       PartialPath partialPath = new PartialPath(fullPath);
       List<String> sensors =
-          deviceMeasurementMap.computeIfAbsent(
-              partialPath.getDeviceIdString(), (s) -> new ArrayList<>());
+          deviceMeasurementMap.computeIfAbsent(partialPath.getDevice(), (s) -> new ArrayList<>());
       sensors.add(partialPath.getMeasurement());
     }
     for (Entry<String, List<String>> deviceMeasurementEntry : deviceMeasurementMap.entrySet()) {
@@ -240,8 +239,7 @@ public class CompactionFileGeneratorUtils {
     for (String fullPath : fullPaths) {
       PartialPath partialPath = new PartialPath(fullPath);
       List<String> sensors =
-          deviceMeasurementMap.computeIfAbsent(
-              partialPath.getDeviceIdString(), (s) -> new ArrayList<>());
+          deviceMeasurementMap.computeIfAbsent(partialPath.getDevice(), (s) -> new ArrayList<>());
       sensors.add(partialPath.getMeasurement());
     }
     int currChunksIndex = 0;
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/LogicalPlannerTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/LogicalPlannerTest.java
index 16cee709a4..dec4924081 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/LogicalPlannerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/LogicalPlannerTest.java
@@ -388,7 +388,7 @@ public class LogicalPlannerTest {
       Assert.assertNotNull(showTimeSeriesNode);
       Assert.assertEquals(
           new PartialPath("root.ln.wf01.wt01.status"), showTimeSeriesNode.getPath());
-      Assert.assertEquals("root.ln.wf01.wt01", showTimeSeriesNode.getPath().getDeviceIdString());
+      Assert.assertEquals("root.ln.wf01.wt01", showTimeSeriesNode.getPath().getDevice());
       Assert.assertTrue(showTimeSeriesNode.isOrderByHeat());
       Assert.assertFalse(showTimeSeriesNode.isContains());
       Assert.assertEquals("tagK", showTimeSeriesNode.getKey());
@@ -406,7 +406,7 @@ public class LogicalPlannerTest {
       Assert.assertNotNull(showTimeSeriesNode2);
       Assert.assertEquals(
           new PartialPath("root.ln.wf01.wt01.status"), showTimeSeriesNode2.getPath());
-      Assert.assertEquals("root.ln.wf01.wt01", showTimeSeriesNode2.getPath().getDeviceIdString());
+      Assert.assertEquals("root.ln.wf01.wt01", showTimeSeriesNode2.getPath().getDevice());
       Assert.assertTrue(showTimeSeriesNode2.isOrderByHeat());
       Assert.assertFalse(showTimeSeriesNode2.isContains());
       Assert.assertEquals("tagK", showTimeSeriesNode2.getKey());
diff --git a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/DefaultSource.scala b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/DefaultSource.scala
index 0789f4000c..8f581ac5d3 100755
--- a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/DefaultSource.scala
+++ b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/DefaultSource.scala
@@ -157,7 +157,7 @@ private[tsfile] class DefaultSource extends FileFormat with DataSourceRegister {
             }
             queryDataSet = queryDataSets.remove(queryDataSets.size() - 1)
           }
-          deviceName = queryDataSet.getPaths.get(0).getDeviceIdString
+          deviceName = queryDataSet.getPaths.get(0).getDevice
           true
         }
 
diff --git a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/NarrowConverter.scala b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/NarrowConverter.scala
index e9f92c1ed1..2af440b934 100644
--- a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/NarrowConverter.scala
+++ b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/NarrowConverter.scala
@@ -225,7 +225,7 @@ object NarrowConverter extends Converter {
       paths.add(new Path(path, true))
     })
 
-    val deviceName = paths.get(0).getDeviceIdString
+    val deviceName = paths.get(0).getDevice
     var finalFilter: IExpression = null
     if (timeFilter != null) {
       finalFilter = transformFilterToExpression(schema, timeFilter, deviceName)
diff --git a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/WideConverter.scala b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/WideConverter.scala
index f6c8895c86..945ff17d5e 100755
--- a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/WideConverter.scala
+++ b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/WideConverter.scala
@@ -138,7 +138,7 @@ object WideConverter extends Converter {
       requiredSchema.foreach(f => {
         if (!QueryConstant.RESERVED_TIME.equals(f.name)) {
           val path = new org.apache.iotdb.tsfile.read.common.Path(f.name, true)
-          if (devices.contains(path.getDeviceIdString) && measurementIds.contains(path.getMeasurement)) {
+          if (devices.contains(path.getDevice) && measurementIds.contains(path.getMeasurement)) {
             queriedSchema = queriedSchema.add(f)
           }
         }
@@ -473,7 +473,7 @@ object WideConverter extends Converter {
     }).foreach(f => {
       val name = f.name
       val fullPath = new Path(name, true)
-      val device = fullPath.getDeviceIdString
+      val device = fullPath.getDevice
       val measurement = fullPath.getMeasurement
 
       if (!deviceToRecord.contains(device)) {
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
index 90f126ba6d..265196ad30 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
@@ -341,12 +341,12 @@ public class TsFileSequenceReader implements AutoCloseable {
     readFileMetadata();
     MetadataIndexNode deviceMetadataIndexNode = tsFileMetaData.getMetadataIndex();
     Pair<MetadataIndexEntry, Long> metadataIndexPair =
-        getMetadataAndEndOffset(deviceMetadataIndexNode, path.getDeviceIdString(), true, true);
+        getMetadataAndEndOffset(deviceMetadataIndexNode, path.getDevice(), true, true);
     if (metadataIndexPair == null) {
       if (ignoreNotExists) {
         return null;
       }
-      throw new IOException("Device {" + path.getDeviceIdString() + "} is not in tsFileMetaData");
+      throw new IOException("Device {" + path.getDevice() + "} is not in tsFileMetaData");
     }
     ByteBuffer buffer = readData(metadataIndexPair.left.getOffset(), metadataIndexPair.right);
     MetadataIndexNode metadataIndexNode = deviceMetadataIndexNode;
@@ -386,12 +386,12 @@ public class TsFileSequenceReader implements AutoCloseable {
     readFileMetadata();
     MetadataIndexNode deviceMetadataIndexNode = tsFileMetaData.getMetadataIndex();
     Pair<MetadataIndexEntry, Long> metadataIndexPair =
-        getMetadataAndEndOffset(deviceMetadataIndexNode, path.getDeviceIdString(), true, true);
+        getMetadataAndEndOffset(deviceMetadataIndexNode, path.getDevice(), true, true);
     if (metadataIndexPair == null) {
       if (ignoreNotExists) {
         return null;
       }
-      throw new IOException("Device {" + path.getDeviceIdString() + "} is not in tsFileMetaData");
+      throw new IOException("Device {" + path.getDevice() + "} is not in tsFileMetaData");
     }
     ByteBuffer buffer = readData(metadataIndexPair.left.getOffset(), metadataIndexPair.right);
     MetadataIndexNode metadataIndexNode;
@@ -468,7 +468,7 @@ public class TsFileSequenceReader implements AutoCloseable {
     readFileMetadata();
     MetadataIndexNode deviceMetadataIndexNode = tsFileMetaData.getMetadataIndex();
     Pair<MetadataIndexEntry, Long> metadataIndexPair =
-        getMetadataAndEndOffset(deviceMetadataIndexNode, path.getDeviceIdString(), true, true);
+        getMetadataAndEndOffset(deviceMetadataIndexNode, path.getDevice(), true, true);
     if (metadataIndexPair == null) {
       return null;
     }
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Path.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Path.java
index f88eccbbb9..5ac56c2473 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Path.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Path.java
@@ -123,7 +123,7 @@ public class Path implements Serializable, Comparable<Path> {
     return fullPath;
   }
 
-  public String getDeviceIdString() {
+  public String getDevice() {
     return device;
   }
 
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/controller/MetadataQuerierByFileImpl.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/controller/MetadataQuerierByFileImpl.java
index 1db21574ad..86c32135da 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/controller/MetadataQuerierByFileImpl.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/controller/MetadataQuerierByFileImpl.java
@@ -96,10 +96,10 @@ public class MetadataQuerierByFileImpl implements IMetadataQuerier {
     // group measurements by device
     TreeMap<String, Set<String>> deviceMeasurementsMap = new TreeMap<>();
     for (Path path : paths) {
-      if (!deviceMeasurementsMap.containsKey(path.getDeviceIdString())) {
-        deviceMeasurementsMap.put(path.getDeviceIdString(), new HashSet<>());
+      if (!deviceMeasurementsMap.containsKey(path.getDevice())) {
+        deviceMeasurementsMap.put(path.getDevice(), new HashSet<>());
       }
-      deviceMeasurementsMap.get(path.getDeviceIdString()).add(path.getMeasurement());
+      deviceMeasurementsMap.get(path.getDevice()).add(path.getMeasurement());
     }
     int count = 0;
     boolean enough = false;
@@ -172,7 +172,7 @@ public class MetadataQuerierByFileImpl implements IMetadataQuerier {
     TreeMap<String, Set<String>> deviceMeasurementsMap = new TreeMap<>();
     for (Path path : paths) {
       deviceMeasurementsMap
-          .computeIfAbsent(path.getDeviceIdString(), key -> new HashSet<>())
+          .computeIfAbsent(path.getDevice(), key -> new HashSet<>())
           .add(path.getMeasurement());
     }
     for (Map.Entry<String, Set<String>> deviceMeasurements : deviceMeasurementsMap.entrySet()) {
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/v2/read/TsFileSequenceReaderForV2.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/v2/read/TsFileSequenceReaderForV2.java
index 6054cfb5a2..c34159f158 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/v2/read/TsFileSequenceReaderForV2.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/v2/read/TsFileSequenceReaderForV2.java
@@ -163,10 +163,7 @@ public class TsFileSequenceReaderForV2 extends TsFileSequenceReader implements A
     MetadataIndexNode deviceMetadataIndexNode = tsFileMetaData.getMetadataIndex();
     Pair<MetadataIndexEntry, Long> metadataIndexPair =
         getMetadataAndEndOffsetV2(
-            deviceMetadataIndexNode,
-            path.getDeviceIdString(),
-            MetadataIndexNodeType.INTERNAL_DEVICE,
-            true);
+            deviceMetadataIndexNode, path.getDevice(), MetadataIndexNodeType.INTERNAL_DEVICE, true);
     if (metadataIndexPair == null) {
       if (ignoreNotExists) {
         return null;
@@ -210,7 +207,7 @@ public class TsFileSequenceReaderForV2 extends TsFileSequenceReader implements A
     readFileMetadata();
     MetadataIndexNode deviceMetadataIndexNode = tsFileMetaData.getMetadataIndex();
     Pair<MetadataIndexEntry, Long> metadataIndexPair =
-        getMetadataAndEndOffset(deviceMetadataIndexNode, path.getDeviceIdString(), true, true);
+        getMetadataAndEndOffset(deviceMetadataIndexNode, path.getDevice(), true, true);
     if (metadataIndexPair == null) {
       return Collections.emptyList();
     }
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/TsFileWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/TsFileWriter.java
index 1a5eee6987..ec2ef2baf5 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/TsFileWriter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/TsFileWriter.java
@@ -163,7 +163,7 @@ public class TsFileWriter implements AutoCloseable {
         if (measurementSchema instanceof VectorMeasurementSchema) {
           MeasurementGroup group =
               measurementGroupMap.getOrDefault(
-                  new Path(entry.getKey().getDeviceIdString()), new MeasurementGroup(true));
+                  new Path(entry.getKey().getDevice()), new MeasurementGroup(true));
           List<String> measurementList = measurementSchema.getSubMeasurementsList();
           for (int i = 0; i < measurementList.size(); i++) {
             group
@@ -175,15 +175,15 @@ public class TsFileWriter implements AutoCloseable {
                         measurementSchema.getSubMeasurementsTSDataTypeList().get(i),
                         measurementSchema.getSubMeasurementsTSEncodingList().get(i)));
           }
-          measurementGroupMap.put(new Path(entry.getKey().getDeviceIdString()), group);
+          measurementGroupMap.put(new Path(entry.getKey().getDevice()), group);
         } else {
           MeasurementGroup group =
               measurementGroupMap.getOrDefault(
-                  new Path(entry.getKey().getDeviceIdString()), new MeasurementGroup(false));
+                  new Path(entry.getKey().getDevice()), new MeasurementGroup(false));
           group
               .getMeasurementSchemaMap()
               .put(measurementSchema.getMeasurementId(), (MeasurementSchema) measurementSchema);
-          measurementGroupMap.put(new Path(entry.getKey().getDeviceIdString()), group);
+          measurementGroupMap.put(new Path(entry.getKey().getDevice()), group);
         }
       }
       this.schema = new Schema(measurementGroupMap);
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
index 8143a6dac2..2f865f297f 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
@@ -354,7 +354,7 @@ public class TsFileIOWriter implements AutoCloseable {
             seriesStatistics,
             publicBAOS);
     deviceTimeseriesMetadataMap
-        .computeIfAbsent(path.getDeviceIdString(), k -> new ArrayList<>())
+        .computeIfAbsent(path.getDevice(), k -> new ArrayList<>())
         .add(timeseriesMetadata);
   }
 
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileReaderTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileReaderTest.java
index ab6f76cb30..92ec1c00f5 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileReaderTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileReaderTest.java
@@ -79,7 +79,7 @@ public class TsFileReaderTest {
 
     Path path = new Path("t", "id");
     tsFileWriter.registerTimeseries(
-        new Path(path.getDeviceIdString()),
+        new Path(path.getDevice()),
         new MeasurementSchema("id", TSDataType.INT32, TSEncoding.PLAIN, CompressionType.LZ4));
 
     for (int i = 0; i < 11000000; i++) {
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/common/PathTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/common/PathTest.java
index 02c77191f0..2cfbcced96 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/common/PathTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/common/PathTest.java
@@ -25,19 +25,19 @@ public class PathTest {
   @Test
   public void testPath() {
     Path a = new Path("", true);
-    Assert.assertEquals("", a.getDeviceIdString());
+    Assert.assertEquals("", a.getDevice());
     Assert.assertEquals("", a.getMeasurement());
     Path b = new Path("root.\"sg\".\"d1\".\"s1\"", true);
-    Assert.assertEquals("root.\"sg\".\"d1\"", b.getDeviceIdString());
+    Assert.assertEquals("root.\"sg\".\"d1\"", b.getDevice());
     Assert.assertEquals("\"s1\"", b.getMeasurement());
     Path c = new Path("root.\"sg\".\"d1\".s1", true);
-    Assert.assertEquals("root.\"sg\".\"d1\"", c.getDeviceIdString());
+    Assert.assertEquals("root.\"sg\".\"d1\"", c.getDevice());
     Assert.assertEquals("s1", c.getMeasurement());
     Path d = new Path("s1", true);
     Assert.assertEquals("s1", d.getMeasurement());
-    Assert.assertEquals("", d.getDeviceIdString());
+    Assert.assertEquals("", d.getDevice());
     Path e = new Path("root.\"s.g\".d1.\"s..\\\"s1\"", true);
-    Assert.assertEquals("root.\"s.g\".d1", e.getDeviceIdString());
+    Assert.assertEquals("root.\"s.g\".d1", e.getDevice());
     Assert.assertEquals("\"s..\\\"s1\"", e.getMeasurement());
   }
 
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/WriteTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/WriteTest.java
index 580083bd62..04bb44cd9c 100755
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/WriteTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/WriteTest.java
@@ -219,7 +219,7 @@ public class WriteTest {
     // add all measurement except the last one at before writing
     for (int i = 0; i < measurementArray.size() - 1; i++) {
       tsFileWriter.registerTimeseries(
-          new Path(pathArray.get(i).getDeviceIdString()), measurementArray.get(i));
+          new Path(pathArray.get(i).getDevice()), measurementArray.get(i));
     }
     while (true) {
       if (lineCount % stageSize == 0) {
@@ -235,7 +235,7 @@ public class WriteTest {
       }
       if (lineCount == ROW_COUNT / 2) {
         tsFileWriter.registerTimeseries(
-            new Path(pathArray.get(measurementArray.size() - 1).getDeviceIdString()),
+            new Path(pathArray.get(measurementArray.size() - 1).getDevice()),
             measurementArray.get(measurementArray.size() - 1));
       }
       strings = getNextRecord(lineCount, stageState);
@@ -252,7 +252,7 @@ public class WriteTest {
     Path path = pathArray.get(measurementArray.size() - 1);
     MeasurementSchema dupTimeseries = measurementArray.get(measurementArray.size() - 1);
     try {
-      tsFileWriter.registerTimeseries(new Path(path.getDeviceIdString()), dupTimeseries);
+      tsFileWriter.registerTimeseries(new Path(path.getDevice()), dupTimeseries);
     } catch (WriteProcessException e) {
       assertEquals("given timeseries has exists! " + path, e.getMessage());
     }