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

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


The following commit(s) were added to refs/heads/vector_refactor by this push:
     new aef4b70  create aligned timeseries
aef4b70 is described below

commit aef4b70044fe4189dfed0108cdfd7590a27664c7
Author: samperson1997 <[email protected]>
AuthorDate: Mon May 31 17:37:06 2021 +0800

    create aligned timeseries
---
 .../iotdb/cluster/query/ClusterPlanRouter.java     |  2 +-
 .../org/apache/iotdb/VectorSessionExample.java     | 58 +++++++++++++++-------
 .../org/apache/iotdb/db/conf/IoTDBConstant.java    |  1 -
 .../apache/iotdb/db/metadata/MLogTxtWriter.java    |  2 +-
 .../org/apache/iotdb/db/metadata/MManager.java     |  2 +-
 .../java/org/apache/iotdb/db/metadata/MTree.java   |  9 +---
 .../iotdb/db/metadata/logfile/MLogWriter.java      |  8 +--
 .../iotdb/db/metadata/mnode/StorageGroupMNode.java | 26 +---------
 .../physical/sys/CreateAlignedTimeSeriesPlan.java  | 28 +++++------
 .../db/qp/physical/sys/StorageGroupMNodePlan.java  |  4 +-
 .../org/apache/iotdb/db/service/TSServiceImpl.java |  6 +--
 .../db/engine/memtable/MemTableTestUtils.java      |  4 +-
 .../db/engine/memtable/PrimitiveMemTableTest.java  |  8 ++-
 .../iotdb/db/metadata/MManagerBasicTest.java       | 20 --------
 .../java/org/apache/iotdb/session/Session.java     |  8 +--
 .../apache/iotdb/session/IoTDBSessionSimpleIT.java |  1 +
 thrift/src/main/thrift/rpc.thrift                  |  2 +-
 .../write/schema/VectorMeasurementSchema.java      |  5 +-
 18 files changed, 81 insertions(+), 113 deletions(-)

diff --git 
a/cluster/src/main/java/org/apache/iotdb/cluster/query/ClusterPlanRouter.java 
b/cluster/src/main/java/org/apache/iotdb/cluster/query/ClusterPlanRouter.java
index 5069f60..7086c82 100644
--- 
a/cluster/src/main/java/org/apache/iotdb/cluster/query/ClusterPlanRouter.java
+++ 
b/cluster/src/main/java/org/apache/iotdb/cluster/query/ClusterPlanRouter.java
@@ -165,7 +165,7 @@ public class ClusterPlanRouter {
 
   private Map<PhysicalPlan, PartitionGroup> 
splitAndRoutePlan(CreateAlignedTimeSeriesPlan plan)
       throws MetadataException {
-    PartitionGroup partitionGroup = 
partitionTable.partitionByPathTime(plan.getDevicePath(), 0);
+    PartitionGroup partitionGroup = 
partitionTable.partitionByPathTime(plan.getPrefixPath(), 0);
     return Collections.singletonMap(plan, partitionGroup);
   }
 
diff --git 
a/example/session/src/main/java/org/apache/iotdb/VectorSessionExample.java 
b/example/session/src/main/java/org/apache/iotdb/VectorSessionExample.java
index 12ea749..293a8ab 100644
--- a/example/session/src/main/java/org/apache/iotdb/VectorSessionExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/VectorSessionExample.java
@@ -49,20 +49,21 @@ public class VectorSessionExample {
     // set session fetchSize
     session.setFetchSize(10000);
 
-    createTemplate();
-    insertTabletWithAlignedTimeseriesMethod1();
-    insertTabletWithAlignedTimeseriesMethod2();
-
-    insertNullableTabletWithAlignedTimeseries();
-    selectTest();
-    selectWithValueFilterTest();
-
-    selectWithGroupByTest();
-    selectWithLastTest();
-
-    selectWithAggregationTest();
-
-    selectWithAlignByDeviceTest();
+    createAlignedTimeseries();
+    //    createTemplate();
+    //    insertTabletWithAlignedTimeseriesMethod1();
+    //    insertTabletWithAlignedTimeseriesMethod2();
+    //
+    //    insertNullableTabletWithAlignedTimeseries();
+    //    selectTest();
+    //    selectWithValueFilterTest();
+    //
+    //    selectWithGroupByTest();
+    //    selectWithLastTest();
+    //
+    //    selectWithAggregationTest();
+    //
+    //    selectWithAlignByDeviceTest();
 
     session.close();
   }
@@ -178,6 +179,23 @@ public class VectorSessionExample {
     dataSet.closeOperationHandle();
   }
 
+  private static void createAlignedTimeseries()
+      throws StatementExecutionException, IoTDBConnectionException {
+    List<String> measurements = new ArrayList<>();
+    for (int i = 1; i <= 2; i++) {
+      measurements.add("s" + i);
+    }
+    List<TSDataType> dataTypes = new ArrayList<>();
+    dataTypes.add(TSDataType.INT64);
+    dataTypes.add(TSDataType.INT32);
+    List<TSEncoding> encodings = new ArrayList<>();
+    for (int i = 1; i <= 2; i++) {
+      encodings.add(TSEncoding.RLE);
+    }
+    session.createAlignedTimeseries(
+        ROOT_SG1_D1 + ".vector", measurements, dataTypes, encodings, 
CompressionType.SNAPPY, null);
+  }
+
   // be sure template is coordinate with tablet
   private static void createTemplate()
       throws StatementExecutionException, IoTDBConnectionException {
@@ -220,7 +238,9 @@ public class VectorSessionExample {
     List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(
         new VectorMeasurementSchema(
-            new String[] {"s1", "s2"}, new TSDataType[] {TSDataType.INT64, 
TSDataType.INT32}));
+            "vector",
+            new String[] {"s1", "s2"},
+            new TSDataType[] {TSDataType.INT64, TSDataType.INT32}));
 
     Tablet tablet = new Tablet(ROOT_SG1_D1, schemaList);
     long timestamp = System.currentTimeMillis();
@@ -260,7 +280,9 @@ public class VectorSessionExample {
     List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(
         new VectorMeasurementSchema(
-            new String[] {"s1", "s2"}, new TSDataType[] {TSDataType.INT64, 
TSDataType.INT32}));
+            "vector",
+            new String[] {"s1", "s2"},
+            new TSDataType[] {TSDataType.INT64, TSDataType.INT32}));
 
     Tablet tablet = new Tablet(ROOT_SG1_D1, schemaList);
     long[] timestamps = tablet.timestamps;
@@ -297,7 +319,9 @@ public class VectorSessionExample {
     List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(
         new VectorMeasurementSchema(
-            new String[] {"s1", "s2"}, new TSDataType[] {TSDataType.INT64, 
TSDataType.INT32}));
+            "vector",
+            new String[] {"s1", "s2"},
+            new TSDataType[] {TSDataType.INT64, TSDataType.INT32}));
 
     Tablet tablet = new Tablet(ROOT_SG1_D1, schemaList);
 
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java 
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
index a497437..cb84ca5 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
@@ -110,7 +110,6 @@ public class IoTDBConstant {
 
   public static final String PATH_WILDCARD = "*";
   public static final String TIME = "time";
-  public static final String ALIGN_TIMESERIES_PREFIX = "$#$";
 
   // sdt parameters
   public static final String LOSS = "loss";
diff --git 
a/server/src/main/java/org/apache/iotdb/db/metadata/MLogTxtWriter.java 
b/server/src/main/java/org/apache/iotdb/db/metadata/MLogTxtWriter.java
index f1bc0b6..b7affe5 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MLogTxtWriter.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MLogTxtWriter.java
@@ -130,7 +130,7 @@ public class MLogTxtWriter implements AutoCloseable {
         String.format(
             "%s,%s,%s,%s,%s,%s",
             MetadataOperationType.CREATE_TIMESERIES,
-            plan.getDevicePath().getFullPath(),
+            plan.getPrefixPath().getFullPath(),
             plan.getMeasurements(),
             plan.getDataTypes().stream().map(TSDataType::serialize),
             plan.getEncodings().stream().map(TSEncoding::serialize),
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java 
b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
index 1373fd1..bd0b887 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
@@ -538,7 +538,7 @@ public class MManager {
               + "please increase MAX_HEAP_SIZE in iotdb-env.sh/bat and 
restart");
     }
     try {
-      PartialPath devicePath = plan.getDevicePath();
+      PartialPath devicePath = plan.getPrefixPath();
       List<String> measurements = plan.getMeasurements();
       int alignedSize = measurements.size();
       List<TSDataType> dataTypes = plan.getDataTypes();
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java 
b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
index 3c21e8c..4a1466a 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
@@ -314,7 +314,7 @@ public class MTree implements Serializable {
     boolean hasSetStorageGroup = false;
     StorageGroupMNode storageGroupMNode = null;
     // e.g, devicePath = root.sg.d1, create internal nodes and set cur to d1 
node
-    for (int i = 1; i < deviceNodeNames.length; i++) {
+    for (int i = 1; i < deviceNodeNames.length - 1; i++) {
       String nodeName = deviceNodeNames[i];
       if (cur instanceof StorageGroupMNode) {
         hasSetStorageGroup = true;
@@ -328,12 +328,7 @@ public class MTree implements Serializable {
       }
       cur = cur.getChild(nodeName);
     }
-    int alignedTimeseriesIndex = 0;
-    if (storageGroupMNode != null) {
-      alignedTimeseriesIndex = storageGroupMNode.getAlignedTimeseriesIndex();
-      storageGroupMNode.addAlignedTimeseriesIndex();
-    }
-    String leafName = IoTDBConstant.ALIGN_TIMESERIES_PREFIX + 
alignedTimeseriesIndex;
+    String leafName = deviceNodeNames[deviceNodeNames.length - 1];
 
     // synchronize check and add, we need addChild and add Alias become atomic 
operation
     // only write on mtree will be synchronized
diff --git 
a/server/src/main/java/org/apache/iotdb/db/metadata/logfile/MLogWriter.java 
b/server/src/main/java/org/apache/iotdb/db/metadata/logfile/MLogWriter.java
index afde6dc..851ac89 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/logfile/MLogWriter.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/logfile/MLogWriter.java
@@ -199,8 +199,7 @@ public class MLogWriter implements AutoCloseable {
       childSize = node.getChildren().size();
     }
     StorageGroupMNodePlan plan =
-        new StorageGroupMNodePlan(
-            node.getName(), node.getDataTTL(), childSize, 
node.getAlignedTimeseriesIndex());
+        new StorageGroupMNodePlan(node.getName(), node.getDataTTL(), 
childSize);
     putLog(plan);
   }
 
@@ -438,10 +437,7 @@ public class MLogWriter implements AutoCloseable {
                 CompressionType.values()[Integer.parseInt(words[5])]));
       case "1":
         return new StorageGroupMNodePlan(
-            words[1],
-            Long.parseLong(words[2]),
-            Integer.parseInt(words[3]),
-            words.length == 5 ? Integer.parseInt(words[4]) : 0);
+            words[1], Long.parseLong(words[2]), Integer.parseInt(words[3]));
       case "0":
         return new MNodePlan(words[1], Integer.parseInt(words[2]));
       default:
diff --git 
a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/StorageGroupMNode.java
 
b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/StorageGroupMNode.java
index cfb2a71..8453fcf 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/StorageGroupMNode.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/StorageGroupMNode.java
@@ -33,18 +33,9 @@ public class StorageGroupMNode extends MNode {
    */
   private long dataTTL;
 
-  private int alignedTimeseriesIndex;
-
   public StorageGroupMNode(MNode parent, String name, long dataTTL) {
     super(parent, name);
     this.dataTTL = dataTTL;
-    this.alignedTimeseriesIndex = 0;
-  }
-
-  public StorageGroupMNode(MNode parent, String name, long dataTTL, int 
alignedTimeseriesIndex) {
-    super(parent, name);
-    this.dataTTL = dataTTL;
-    this.alignedTimeseriesIndex = alignedTimeseriesIndex;
   }
 
   public long getDataTTL() {
@@ -55,14 +46,6 @@ public class StorageGroupMNode extends MNode {
     this.dataTTL = dataTTL;
   }
 
-  public int getAlignedTimeseriesIndex() {
-    return alignedTimeseriesIndex;
-  }
-
-  public void addAlignedTimeseriesIndex() {
-    this.alignedTimeseriesIndex++;
-  }
-
   @Override
   public void serializeTo(MLogWriter logWriter) throws IOException {
     serializeChildren(logWriter);
@@ -71,15 +54,10 @@ public class StorageGroupMNode extends MNode {
   }
 
   public static StorageGroupMNode deserializeFrom(StorageGroupMNodePlan plan) {
-    return new StorageGroupMNode(
-        null, plan.getName(), plan.getDataTTL(), 
plan.getAlignedTimeseriesIndex());
+    return new StorageGroupMNode(null, plan.getName(), plan.getDataTTL());
   }
 
   public static StorageGroupMNode deserializeFrom(String[] nodeInfo) {
-    return new StorageGroupMNode(
-        null,
-        nodeInfo[1],
-        Long.parseLong(nodeInfo[2]),
-        nodeInfo.length == 4 ? Integer.parseInt(nodeInfo[3]) : 0);
+    return new StorageGroupMNode(null, nodeInfo[1], 
Long.parseLong(nodeInfo[2]));
   }
 }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateAlignedTimeSeriesPlan.java
 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateAlignedTimeSeriesPlan.java
index 5451860..14c99f1 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateAlignedTimeSeriesPlan.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateAlignedTimeSeriesPlan.java
@@ -42,7 +42,7 @@ public class CreateAlignedTimeSeriesPlan extends PhysicalPlan 
{
 
   private static final Logger logger = 
LoggerFactory.getLogger(CreateAlignedTimeSeriesPlan.class);
 
-  private PartialPath devicePath;
+  private PartialPath prefixPath;
   private List<String> measurements;
   private List<TSDataType> dataTypes;
   private List<TSEncoding> encodings;
@@ -55,14 +55,14 @@ public class CreateAlignedTimeSeriesPlan extends 
PhysicalPlan {
   }
 
   public CreateAlignedTimeSeriesPlan(
-      PartialPath devicePath,
+      PartialPath prefixPath,
       List<String> measurements,
       List<TSDataType> dataTypes,
       List<TSEncoding> encodings,
       CompressionType compressor,
       List<String> aliasList) {
     super(false, Operator.OperatorType.CREATE_ALIGNED_TIMESERIES);
-    this.devicePath = devicePath;
+    this.prefixPath = prefixPath;
     this.measurements = measurements;
     this.dataTypes = dataTypes;
     this.encodings = encodings;
@@ -71,12 +71,12 @@ public class CreateAlignedTimeSeriesPlan extends 
PhysicalPlan {
     this.canBeSplit = false;
   }
 
-  public PartialPath getDevicePath() {
-    return devicePath;
+  public PartialPath getPrefixPath() {
+    return prefixPath;
   }
 
-  public void setDevicePath(PartialPath devicePath) {
-    this.devicePath = devicePath;
+  public void setPrefixPath(PartialPath prefixPath) {
+    this.prefixPath = prefixPath;
   }
 
   public List<String> getMeasurements() {
@@ -123,7 +123,7 @@ public class CreateAlignedTimeSeriesPlan extends 
PhysicalPlan {
   public String toString() {
     return String.format(
         "devicePath: %s, measurements: %s, dataTypes: %s, encodings: %s, 
compression: %s",
-        devicePath, measurements, dataTypes, encodings, compressor);
+        prefixPath, measurements, dataTypes, encodings, compressor);
   }
 
   @Override
@@ -131,7 +131,7 @@ public class CreateAlignedTimeSeriesPlan extends 
PhysicalPlan {
     List<PartialPath> paths = new ArrayList<>();
     for (String measurement : measurements) {
       try {
-        paths.add(new PartialPath(devicePath.getFullPath(), measurement));
+        paths.add(new PartialPath(prefixPath.getFullPath(), measurement));
       } catch (IllegalPathException e) {
         logger.error("Failed to get paths of CreateAlignedTimeSeriesPlan. ", 
e);
       }
@@ -142,7 +142,7 @@ public class CreateAlignedTimeSeriesPlan extends 
PhysicalPlan {
   @Override
   public void serialize(DataOutputStream stream) throws IOException {
     stream.writeByte((byte) 
PhysicalPlanType.CREATE_ALIGNED_TIMESERIES.ordinal());
-    byte[] bytes = devicePath.getFullPath().getBytes();
+    byte[] bytes = prefixPath.getFullPath().getBytes();
     stream.writeInt(bytes.length);
     stream.write(bytes);
 
@@ -173,7 +173,7 @@ public class CreateAlignedTimeSeriesPlan extends 
PhysicalPlan {
   @Override
   public void serialize(ByteBuffer buffer) {
     buffer.put((byte) PhysicalPlanType.CREATE_ALIGNED_TIMESERIES.ordinal());
-    byte[] bytes = devicePath.getFullPath().getBytes();
+    byte[] bytes = prefixPath.getFullPath().getBytes();
     buffer.putInt(bytes.length);
     buffer.put(bytes);
 
@@ -208,7 +208,7 @@ public class CreateAlignedTimeSeriesPlan extends 
PhysicalPlan {
     byte[] bytes = new byte[length];
     buffer.get(bytes);
 
-    devicePath = new PartialPath(new String(bytes));
+    prefixPath = new PartialPath(new String(bytes));
     int size = ReadWriteIOUtils.readInt(buffer);
     measurements = new ArrayList<>();
     for (int i = 0; i < size; i++) {
@@ -245,7 +245,7 @@ public class CreateAlignedTimeSeriesPlan extends 
PhysicalPlan {
     }
     CreateAlignedTimeSeriesPlan that = (CreateAlignedTimeSeriesPlan) o;
 
-    return Objects.equals(devicePath, that.devicePath)
+    return Objects.equals(prefixPath, that.prefixPath)
         && Objects.equals(measurements, that.measurements)
         && Objects.equals(dataTypes, that.dataTypes)
         && Objects.equals(encodings, that.encodings)
@@ -254,6 +254,6 @@ public class CreateAlignedTimeSeriesPlan extends 
PhysicalPlan {
 
   @Override
   public int hashCode() {
-    return Objects.hash(devicePath, measurements, dataTypes, encodings, 
compressor);
+    return Objects.hash(prefixPath, measurements, dataTypes, encodings, 
compressor);
   }
 }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/StorageGroupMNodePlan.java
 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/StorageGroupMNodePlan.java
index 89c00b7..c780569 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/StorageGroupMNodePlan.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/StorageGroupMNodePlan.java
@@ -38,13 +38,11 @@ public class StorageGroupMNodePlan extends MNodePlan {
     super(false, Operator.OperatorType.STORAGE_GROUP_MNODE);
   }
 
-  public StorageGroupMNodePlan(
-      String name, long dataTTL, int childSize, int alignedTimeseriesIndex) {
+  public StorageGroupMNodePlan(String name, long dataTTL, int childSize) {
     super(false, Operator.OperatorType.STORAGE_GROUP_MNODE);
     this.name = name;
     this.dataTTL = dataTTL;
     this.childSize = childSize;
-    this.alignedTimeseriesIndex = alignedTimeseriesIndex;
   }
 
   @Override
diff --git 
a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java 
b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
index cf8f4a7..4ecdbc5 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
@@ -1780,7 +1780,7 @@ public class TSServiceImpl implements TSIService.Iface {
         return createTimeseries(
             new TSCreateTimeseriesReq(
                 req.sessionId,
-                req.devicePath + "." + req.measurements.get(0),
+                req.prefixPath + "." + req.measurements.get(0),
                 req.dataTypes.get(0),
                 req.encodings.get(0),
                 req.compressor));
@@ -1790,7 +1790,7 @@ public class TSServiceImpl implements TSIService.Iface {
         AUDIT_LOGGER.debug(
             "Session-{} create aligned timeseries {}.{}",
             currSessionId.get(),
-            req.getDevicePath(),
+            req.getPrefixPath(),
             req.getMeasurements());
       }
 
@@ -1805,7 +1805,7 @@ public class TSServiceImpl implements TSIService.Iface {
 
       CreateAlignedTimeSeriesPlan plan =
           new CreateAlignedTimeSeriesPlan(
-              new PartialPath(req.devicePath),
+              new PartialPath(req.prefixPath),
               req.measurements,
               dataTypes,
               encodings,
diff --git 
a/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableTestUtils.java
 
b/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableTestUtils.java
index 05b6fbb..9fbc4a2 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableTestUtils.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableTestUtils.java
@@ -18,7 +18,6 @@
  */
 package org.apache.iotdb.db.engine.memtable;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.metadata.PartialPath;
 import org.apache.iotdb.db.metadata.mnode.MeasurementMNode;
@@ -88,8 +87,7 @@ public class MemTableTestUtils {
 
     MeasurementMNode[] mNodes = new MeasurementMNode[2];
     IMeasurementSchema schema =
-        new VectorMeasurementSchema(
-            IoTDBConstant.ALIGN_TIMESERIES_PREFIX, measurements, dataTypes, 
encodings);
+        new VectorMeasurementSchema("$#$0", measurements, dataTypes, 
encodings);
     mNodes[0] = new MeasurementMNode(null, "sensor0", schema, null);
     mNodes[1] = new MeasurementMNode(null, "sensor1", schema, null);
 
diff --git 
a/server/src/test/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTableTest.java
 
b/server/src/test/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTableTest.java
index 330db67..a33f2cf 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTableTest.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTableTest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.iotdb.db.engine.memtable;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.querycontext.ReadOnlyMemChunk;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
@@ -196,7 +195,7 @@ public class PrimitiveMemTableTest {
                 "root.sg.device5",
                 "sensor1",
                 new VectorMeasurementSchema(
-                    IoTDBConstant.ALIGN_TIMESERIES_PREFIX + 0,
+                    "$#$0",
                     new String[] {"sensor1"},
                     new TSDataType[] {TSDataType.INT64},
                     new TSEncoding[] {TSEncoding.GORILLA},
@@ -217,7 +216,7 @@ public class PrimitiveMemTableTest {
                 "root.sg.device5",
                 "$#$1",
                 new VectorMeasurementSchema(
-                    IoTDBConstant.ALIGN_TIMESERIES_PREFIX + 0,
+                    "$#$0",
                     new String[] {"sensor0", "sensor1"},
                     new TSDataType[] {TSDataType.BOOLEAN, TSDataType.INT64},
                     new TSEncoding[] {TSEncoding.PLAIN, TSEncoding.GORILLA},
@@ -323,8 +322,7 @@ public class PrimitiveMemTableTest {
 
     MeasurementMNode[] mNodes = new MeasurementMNode[2];
     IMeasurementSchema schema =
-        new VectorMeasurementSchema(
-            IoTDBConstant.ALIGN_TIMESERIES_PREFIX + 0, measurements, 
dataTypes, encodings);
+        new VectorMeasurementSchema("$#$0", measurements, dataTypes, 
encodings);
     mNodes[0] = new MeasurementMNode(null, "sensor0", schema, null);
     mNodes[1] = new MeasurementMNode(null, "sensor1", schema, null);
 
diff --git 
a/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java 
b/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java
index 33f60e8..3f31c55 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java
@@ -282,16 +282,6 @@ public class MManagerBasicTest {
     assertTrue(manager.isPathExist(new PartialPath("root.laptop.d1.s1")));
     assertTrue(manager.isPathExist(new PartialPath("root.laptop.d1.s2")));
     assertTrue(manager.isPathExist(new PartialPath("root.laptop.d1.s3")));
-    try {
-      assertEquals(
-          1,
-          manager
-              .getStorageGroupNodeByStorageGroupPath(new 
PartialPath("root.laptop"))
-              .getAlignedTimeseriesIndex());
-    } catch (MetadataException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
 
     try {
       manager.deleteTimeseries(new PartialPath("root.laptop.d1.s2"));
@@ -351,16 +341,6 @@ public class MManagerBasicTest {
     assertTrue(manager.isPathExist(new PartialPath("root.laptop.d1.s0")));
     assertTrue(manager.isPathExist(new PartialPath("root.laptop.d1.s2")));
     assertTrue(manager.isPathExist(new PartialPath("root.laptop.d1.s4")));
-    try {
-      assertEquals(
-          2,
-          manager
-              .getStorageGroupNodeByStorageGroupPath(new 
PartialPath("root.laptop"))
-              .getAlignedTimeseriesIndex());
-    } catch (MetadataException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
   }
 
   @Test
diff --git a/session/src/main/java/org/apache/iotdb/session/Session.java 
b/session/src/main/java/org/apache/iotdb/session/Session.java
index bb72013..c219100 100644
--- a/session/src/main/java/org/apache/iotdb/session/Session.java
+++ b/session/src/main/java/org/apache/iotdb/session/Session.java
@@ -378,7 +378,7 @@ public class Session {
   }
 
   public void createAlignedTimeseries(
-      String devicePath,
+      String prefixPath,
       List<String> measurements,
       List<TSDataType> dataTypes,
       List<TSEncoding> encodings,
@@ -387,19 +387,19 @@ public class Session {
       throws IoTDBConnectionException, StatementExecutionException {
     TSCreateAlignedTimeseriesReq request =
         getTSCreateAlignedTimeseriesReq(
-            devicePath, measurements, dataTypes, encodings, compressor, 
measurementAliasList);
+            prefixPath, measurements, dataTypes, encodings, compressor, 
measurementAliasList);
     defaultSessionConnection.createAlignedTimeseries(request);
   }
 
   private TSCreateAlignedTimeseriesReq getTSCreateAlignedTimeseriesReq(
-      String devicePath,
+      String prefixPath,
       List<String> measurements,
       List<TSDataType> dataTypes,
       List<TSEncoding> encodings,
       CompressionType compressor,
       List<String> measurementAliasList) {
     TSCreateAlignedTimeseriesReq request = new TSCreateAlignedTimeseriesReq();
-    request.setDevicePath(devicePath);
+    request.setPrefixPath(prefixPath);
     request.setMeasurements(measurements);
     
request.setDataTypes(dataTypes.stream().map(TSDataType::ordinal).collect(Collectors.toList()));
     
request.setEncodings(encodings.stream().map(TSEncoding::ordinal).collect(Collectors.toList()));
diff --git 
a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java 
b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java
index f239425..3258352 100644
--- a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java
+++ b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java
@@ -382,6 +382,7 @@ public class IoTDBSessionSimpleIT {
     schemaList.add(new MeasurementSchema("s0", TSDataType.INT64));
     schemaList.add(
         new VectorMeasurementSchema(
+            "vector",
             new String[] {"s1", "s2", "s3"},
             new TSDataType[] {TSDataType.INT64, TSDataType.INT32, 
TSDataType.TEXT}));
     schemaList.add(new MeasurementSchema("s4", TSDataType.INT32));
diff --git a/thrift/src/main/thrift/rpc.thrift 
b/thrift/src/main/thrift/rpc.thrift
index 76781ce..93429b9 100644
--- a/thrift/src/main/thrift/rpc.thrift
+++ b/thrift/src/main/thrift/rpc.thrift
@@ -273,7 +273,7 @@ struct TSCreateTimeseriesReq {
 
 struct TSCreateAlignedTimeseriesReq {
   1: required i64 sessionId
-  2: required string devicePath
+  2: required string prefixPath
   3: required list<string> measurements
   4: required list<i32> dataTypes
   5: required list<i32> encodings
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/VectorMeasurementSchema.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/VectorMeasurementSchema.java
index 345c909..f9eb2b6 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/VectorMeasurementSchema.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/VectorMeasurementSchema.java
@@ -78,7 +78,8 @@ public class VectorMeasurementSchema
     this.compressor = compressionType.serialize();
   }
 
-  public VectorMeasurementSchema(String[] measurements, TSDataType[] types) {
+  public VectorMeasurementSchema(String measurementId, String[] measurements, 
TSDataType[] types) {
+    this.vectorMeausurementId = measurementId;
     this.measurementsToIndexMap = new HashMap<>();
     for (int i = 0; i < measurements.length; i++) {
       measurementsToIndexMap.put(measurements[i], i);
@@ -352,7 +353,7 @@ public class VectorMeasurementSchema
   @Override
   public String toString() {
     StringContainer sc = new StringContainer("");
-    sc.addTail(vectorMeausurementId);
+    sc.addTail(vectorMeausurementId, ",");
     // string is not in real order
     for (Map.Entry<String, Integer> entry : measurementsToIndexMap.entrySet()) 
{
       sc.addTail(

Reply via email to