[IOTDB-1511] Rename DeviceTemplate to SchemaTemplate (#3656)

diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/coordinator/Coordinator.java b/cluster/src/main/java/org/apache/iotdb/cluster/coordinator/Coordinator.java
index b46273a..aedb080 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/coordinator/Coordinator.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/coordinator/Coordinator.java
@@ -52,7 +52,7 @@
 import org.apache.iotdb.db.qp.physical.crud.InsertPlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertRowsPlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertTabletPlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateAlignedTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateMultiTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateTimeSeriesPlan;
@@ -205,10 +205,10 @@
 
   public void createSchemaIfNecessary(PhysicalPlan plan)
       throws MetadataException, CheckConsistencyException {
-    if (plan instanceof SetDeviceTemplatePlan) {
+    if (plan instanceof SetSchemaTemplatePlan) {
       try {
         IoTDB.metaManager.getStorageGroupPath(
-            new PartialPath(((SetDeviceTemplatePlan) plan).getPrefixPath()));
+            new PartialPath(((SetSchemaTemplatePlan) plan).getPrefixPath()));
       } catch (IllegalPathException e) {
         // the plan has been checked
       } catch (StorageGroupNotSetException e) {
@@ -314,7 +314,7 @@
             status);
       }
       if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()
-          && !(plan instanceof SetDeviceTemplatePlan
+          && !(plan instanceof SetSchemaTemplatePlan
               && status.getCode() == TSStatusCode.DUPLICATED_TEMPLATE.getStatusCode())
           && !(plan instanceof DeleteTimeSeriesPlan
               && status.getCode() == TSStatusCode.TIMESERIES_NOT_EXIST.getStatusCode())) {
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CMManager.java b/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CMManager.java
index a88ab25..1b10399 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CMManager.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CMManager.java
@@ -57,7 +57,7 @@
 import org.apache.iotdb.db.qp.physical.crud.InsertRowPlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertRowsPlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertTabletPlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateAlignedTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateMultiTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateTimeSeriesPlan;
@@ -572,11 +572,11 @@
       storageGroups.addAll(
           getStorageGroups(
               Collections.singletonList(((CreateAlignedTimeSeriesPlan) plan).getPrefixPath())));
-    } else if (plan instanceof SetDeviceTemplatePlan) {
+    } else if (plan instanceof SetSchemaTemplatePlan) {
       storageGroups.addAll(
           getStorageGroups(
               Collections.singletonList(
-                  new PartialPath(((SetDeviceTemplatePlan) plan).getPrefixPath()))));
+                  new PartialPath(((SetSchemaTemplatePlan) plan).getPrefixPath()))));
     } else {
       storageGroups.addAll(getStorageGroups(plan.getPaths()));
     }
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/utils/PartitionUtils.java b/cluster/src/main/java/org/apache/iotdb/cluster/utils/PartitionUtils.java
index 69e60da..f1bf3ef 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/utils/PartitionUtils.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/utils/PartitionUtils.java
@@ -26,7 +26,7 @@
 import org.apache.iotdb.db.qp.physical.crud.CreateTemplatePlan;
 import org.apache.iotdb.db.qp.physical.crud.DeletePlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertTabletPlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.AuthorPlan;
 import org.apache.iotdb.db.qp.physical.sys.ClearCachePlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateFunctionPlan;
@@ -110,7 +110,7 @@
         || plan instanceof DeleteTimeSeriesPlan
         || plan instanceof MergePlan
         || plan instanceof FlushPlan
-        || plan instanceof SetDeviceTemplatePlan
+        || plan instanceof SetSchemaTemplatePlan
         || plan instanceof ClearCachePlan;
   }
 
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 472c347..a435829 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
@@ -46,7 +46,7 @@
 import org.apache.iotdb.db.qp.physical.crud.InsertPlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertRowPlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertTabletPlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.AutoCreateDeviceMNodePlan;
 import org.apache.iotdb.db.qp.physical.sys.ChangeAliasPlan;
 import org.apache.iotdb.db.qp.physical.sys.ChangeTagOffsetPlan;
@@ -58,7 +58,7 @@
 import org.apache.iotdb.db.qp.physical.sys.DropContinuousQueryPlan;
 import org.apache.iotdb.db.qp.physical.sys.SetStorageGroupPlan;
 import org.apache.iotdb.db.qp.physical.sys.SetTTLPlan;
-import org.apache.iotdb.db.qp.physical.sys.SetUsingDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.sys.SetUsingSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.ShowDevicesPlan;
 import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
 import org.apache.iotdb.db.query.context.QueryContext;
@@ -384,15 +384,15 @@
         break;
       case CREATE_TEMPLATE:
         CreateTemplatePlan createTemplatePlan = (CreateTemplatePlan) plan;
-        createDeviceTemplate(createTemplatePlan);
+        createSchemaTemplate(createTemplatePlan);
         break;
       case SET_DEVICE_TEMPLATE:
-        SetDeviceTemplatePlan setDeviceTemplatePlan = (SetDeviceTemplatePlan) plan;
-        setDeviceTemplate(setDeviceTemplatePlan);
+        SetSchemaTemplatePlan setSchemaTemplatePlan = (SetSchemaTemplatePlan) plan;
+        setSchemaTemplate(setSchemaTemplatePlan);
         break;
       case SET_USING_DEVICE_TEMPLATE:
-        SetUsingDeviceTemplatePlan setUsingDeviceTemplatePlan = (SetUsingDeviceTemplatePlan) plan;
-        setUsingDeviceTemplate(setUsingDeviceTemplatePlan);
+        SetUsingSchemaTemplatePlan setUsingSchemaTemplatePlan = (SetUsingSchemaTemplatePlan) plan;
+        setUsingSchemaTemplate(setUsingSchemaTemplatePlan);
         break;
       case AUTO_CREATE_DEVICE_MNODE:
         AutoCreateDeviceMNodePlan autoCreateDeviceMNodePlan = (AutoCreateDeviceMNodePlan) plan;
@@ -1279,8 +1279,8 @@
     Set<IMeasurementSchema> res = new HashSet<>();
     try {
       Pair<IMNode, Template> mNodeTemplatePair = mNodeCache.get(path);
-      if (mNodeTemplatePair.left.getDeviceTemplate() != null) {
-        mNodeTemplatePair.right = mNodeTemplatePair.left.getDeviceTemplate();
+      if (mNodeTemplatePair.left.getSchemaTemplate() != null) {
+        mNodeTemplatePair.right = mNodeTemplatePair.left.getSchemaTemplate();
       }
 
       for (IMNode IMNode : mNodeTemplatePair.left.getChildren().values()) {
@@ -1709,8 +1709,8 @@
 
     // 1. get device node
     Pair<IMNode, Template> deviceMNode = getDeviceNodeWithAutoCreate(deviceId);
-    if (!(deviceMNode.left.isMeasurement()) && deviceMNode.left.getDeviceTemplate() != null) {
-      deviceMNode.right = deviceMNode.left.getDeviceTemplate();
+    if (!(deviceMNode.left.isMeasurement()) && deviceMNode.left.getSchemaTemplate() != null) {
+      deviceMNode.right = deviceMNode.left.getSchemaTemplate();
     }
 
     // check insert non-aligned InsertPlan for aligned timeseries
@@ -1885,9 +1885,9 @@
       String schemaName = vectorId != null ? vectorId : measurement;
       IMeasurementSchema schema = curTemplateMap.get(schemaName);
       if (!deviceMNode.left.isUseTemplate()) {
-        deviceMNode.left = setUsingDeviceTemplate(deviceMNode.left);
+        deviceMNode.left = setUsingSchemaTemplate(deviceMNode.left);
         try {
-          logWriter.setUsingDeviceTemplate(deviceMNode.left.getPartialPath());
+          logWriter.setUsingSchemaTemplate(deviceMNode.left.getPartialPath());
         } catch (IOException e) {
           throw new MetadataException(e);
         }
@@ -1942,19 +1942,19 @@
     boolean satisfy(String storageGroup);
   }
 
-  public void createDeviceTemplate(CreateTemplatePlan plan) throws MetadataException {
+  public void createSchemaTemplate(CreateTemplatePlan plan) throws MetadataException {
     try {
-      templateManager.createDeviceTemplate(plan);
+      templateManager.createSchemaTemplate(plan);
       // write wal
       if (!isRecovering) {
-        logWriter.createDeviceTemplate(plan);
+        logWriter.createSchemaTemplate(plan);
       }
     } catch (IOException e) {
       throw new MetadataException(e);
     }
   }
 
-  public void setDeviceTemplate(SetDeviceTemplatePlan plan) throws MetadataException {
+  public void setSchemaTemplate(SetSchemaTemplatePlan plan) throws MetadataException {
     try {
       Template template = templateManager.getTemplate(plan.getTemplateName());
 
@@ -1962,12 +1962,12 @@
       synchronized (this) {
         Pair<IMNode, Template> node =
             getDeviceNodeWithAutoCreate(new PartialPath(plan.getPrefixPath()));
-        templateManager.setDeviceTemplate(template, node);
+        templateManager.setSchemaTemplate(template, node);
       }
 
       // write wal
       if (!isRecovering) {
-        logWriter.setDeviceTemplate(plan);
+        logWriter.setSchemaTemplate(plan);
       }
     } catch (IOException e) {
       throw new MetadataException(e);
@@ -1982,19 +1982,19 @@
     mtree.getDeviceNodeWithAutoCreating(plan.getPath(), config.getDefaultStorageGroupLevel());
   }
 
-  private void setUsingDeviceTemplate(SetUsingDeviceTemplatePlan plan) throws MetadataException {
+  private void setUsingSchemaTemplate(SetUsingSchemaTemplatePlan plan) throws MetadataException {
     try {
-      setUsingDeviceTemplate(getDeviceNode(plan.getPrefixPath()));
+      setUsingSchemaTemplate(getDeviceNode(plan.getPrefixPath()));
     } catch (PathNotExistException e) {
-      // the order of SetUsingDeviceTemplatePlan and AutoCreateDeviceMNodePlan cannot be guaranteed
+      // the order of SetUsingSchemaTemplatePlan and AutoCreateDeviceMNodePlan cannot be guaranteed
       // when writing concurrently, so we need a auto-create mechanism here
       mtree.getDeviceNodeWithAutoCreating(
           plan.getPrefixPath(), config.getDefaultStorageGroupLevel());
-      setUsingDeviceTemplate(getDeviceNode(plan.getPrefixPath()));
+      setUsingSchemaTemplate(getDeviceNode(plan.getPrefixPath()));
     }
   }
 
-  IEntityMNode setUsingDeviceTemplate(IMNode node) {
+  IEntityMNode setUsingSchemaTemplate(IMNode node) {
     // this operation may change mtree structure and node type
     // invoke mnode.setUseTemplate is invalid
     IEntityMNode entityMNode = mtree.setToEntity(node);
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 d70a4eb..27ec0e6 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
@@ -288,7 +288,7 @@
     checkTimeseries(path.getFullPath());
     IMNode cur = root;
     boolean hasSetStorageGroup = false;
-    Template upperTemplate = cur.getDeviceTemplate();
+    Template upperTemplate = cur.getSchemaTemplate();
     // e.g, path = root.sg.d1.s1,  create internal nodes and set cur to d1 node
     for (int i = 1; i < nodeNames.length - 1; i++) {
       if (cur.isMeasurement()) {
@@ -310,8 +310,8 @@
       }
       cur = cur.getChild(childName);
 
-      if (cur.getDeviceTemplate() != null) {
-        upperTemplate = cur.getDeviceTemplate();
+      if (cur.getSchemaTemplate() != null) {
+        upperTemplate = cur.getSchemaTemplate();
       }
     }
 
@@ -499,7 +499,7 @@
       throw new IllegalPathException(deviceId.getFullPath());
     }
     IMNode cur = root;
-    Template upperTemplate = cur.getDeviceTemplate();
+    Template upperTemplate = cur.getSchemaTemplate();
     for (int i = 1; i < nodeNames.length; i++) {
       if (!cur.hasChild(nodeNames[i])) {
         if (cur.isUseTemplate() && upperTemplate.hasSchema(nodeNames[i])) {
@@ -517,7 +517,7 @@
       }
       cur = cur.getChild(nodeNames[i]);
       // update upper template
-      upperTemplate = cur.getDeviceTemplate() == null ? upperTemplate : cur.getDeviceTemplate();
+      upperTemplate = cur.getSchemaTemplate() == null ? upperTemplate : cur.getSchemaTemplate();
     }
 
     return new Pair<>(cur, upperTemplate);
@@ -534,7 +534,7 @@
     if (!nodeNames[0].equals(root.getName())) {
       return false;
     }
-    Template upperTemplate = cur.getDeviceTemplate();
+    Template upperTemplate = cur.getSchemaTemplate();
     for (int i = 1; i < nodeNames.length; i++) {
       if (!cur.hasChild(nodeNames[i])) {
         return cur.isUseTemplate() && upperTemplate.hasSchema(nodeNames[i]);
@@ -551,7 +551,7 @@
           return false;
         }
       }
-      upperTemplate = cur.getDeviceTemplate() == null ? upperTemplate : cur.getDeviceTemplate();
+      upperTemplate = cur.getSchemaTemplate() == null ? upperTemplate : cur.getSchemaTemplate();
     }
     return true;
   }
@@ -568,7 +568,7 @@
       throw new IllegalPathException(path.getFullPath());
     }
     IMNode cur = root;
-    Template upperTemplate = cur.getDeviceTemplate();
+    Template upperTemplate = cur.getSchemaTemplate();
     int i = 1;
     // e.g., path = root.a.b.sg, create internal nodes for a, b
     while (i < nodeNames.length - 1) {
@@ -584,7 +584,7 @@
         throw new StorageGroupAlreadySetException(temp.getFullPath());
       }
       cur = cur.getChild(nodeNames[i]);
-      upperTemplate = cur.getDeviceTemplate() == null ? upperTemplate : cur.getDeviceTemplate();
+      upperTemplate = cur.getSchemaTemplate() == null ? upperTemplate : cur.getSchemaTemplate();
       i++;
     }
 
@@ -743,7 +743,7 @@
     Template upperTemplate = null;
 
     for (int i = 1; i < nodes.length; i++) {
-      upperTemplate = cur.getDeviceTemplate() == null ? upperTemplate : cur.getDeviceTemplate();
+      upperTemplate = cur.getSchemaTemplate() == null ? upperTemplate : cur.getSchemaTemplate();
       cur = cur.getChild(nodes[i]);
       if (cur == null) {
         // not find
@@ -813,7 +813,7 @@
       throw new IllegalPathException(path.getFullPath());
     }
     IMNode cur = root;
-    Template upperTemplate = cur.getDeviceTemplate();
+    Template upperTemplate = cur.getSchemaTemplate();
 
     for (int i = 1; i < nodes.length; i++) {
       if (cur.isMeasurement()) {
@@ -824,8 +824,8 @@
           throw new PathNotExistException(path.getFullPath(), true);
         }
       }
-      if (cur.getDeviceTemplate() != null) {
-        upperTemplate = cur.getDeviceTemplate();
+      if (cur.getSchemaTemplate() != null) {
+        upperTemplate = cur.getSchemaTemplate();
       }
       IMNode next = cur.getChild(nodes[i]);
       if (next == null) {
@@ -1380,8 +1380,8 @@
     }
 
     String nodeReg = MetaUtils.getNodeRegByIdx(idx, nodes);
-    if (node.getDeviceTemplate() != null) {
-      upperTemplate = node.getDeviceTemplate();
+    if (node.getSchemaTemplate() != null) {
+      upperTemplate = node.getSchemaTemplate();
     }
 
     // we should use template when all child is measurement or this node has no child
@@ -1741,7 +1741,7 @@
       Set<PartialPath> res,
       boolean hasLimit,
       Template upperTemplate) {
-    upperTemplate = node.getDeviceTemplate() == null ? upperTemplate : node.getDeviceTemplate();
+    upperTemplate = node.getSchemaTemplate() == null ? upperTemplate : node.getSchemaTemplate();
     String nodeReg = MetaUtils.getNodeRegByIdx(idx, nodes);
     // the node path doesn't contains '*'
     if (!nodeReg.contains(PATH_WILDCARD)) {
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/logfile/MLogTxtWriter.java b/server/src/main/java/org/apache/iotdb/db/metadata/logfile/MLogTxtWriter.java
index 5b401eb..044b3ea 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/logfile/MLogTxtWriter.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/logfile/MLogTxtWriter.java
@@ -22,14 +22,14 @@
 import org.apache.iotdb.db.metadata.MetadataConstant;
 import org.apache.iotdb.db.metadata.MetadataOperationType;
 import org.apache.iotdb.db.qp.physical.crud.CreateTemplatePlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateAlignedTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateContinuousQueryPlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.DropContinuousQueryPlan;
 import org.apache.iotdb.db.qp.physical.sys.MNodePlan;
 import org.apache.iotdb.db.qp.physical.sys.MeasurementMNodePlan;
-import org.apache.iotdb.db.qp.physical.sys.SetUsingDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.sys.SetUsingSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.StorageGroupMNodePlan;
 import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
@@ -319,7 +319,7 @@
     lineNumber.incrementAndGet();
   }
 
-  public void setTemplate(SetDeviceTemplatePlan plan) throws IOException {
+  public void setTemplate(SetSchemaTemplatePlan plan) throws IOException {
     StringBuilder buf = new StringBuilder(String.valueOf(MetadataOperationType.SET_TEMPLATE));
     buf.append(",");
     buf.append(plan.getTemplateName());
@@ -331,7 +331,7 @@
     lineNumber.incrementAndGet();
   }
 
-  public void setUsingTemplate(SetUsingDeviceTemplatePlan plan) throws IOException {
+  public void setUsingTemplate(SetUsingSchemaTemplatePlan plan) throws IOException {
     StringBuilder buf = new StringBuilder(String.valueOf(MetadataOperationType.SET_USING_TEMPLATE));
     buf.append(",");
     buf.append(plan.getPrefixPath());
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 b0de7cf..320872c 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
@@ -29,7 +29,7 @@
 import org.apache.iotdb.db.metadata.mnode.IStorageGroupMNode;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
 import org.apache.iotdb.db.qp.physical.crud.CreateTemplatePlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.AutoCreateDeviceMNodePlan;
 import org.apache.iotdb.db.qp.physical.sys.ChangeAliasPlan;
 import org.apache.iotdb.db.qp.physical.sys.ChangeTagOffsetPlan;
@@ -43,7 +43,7 @@
 import org.apache.iotdb.db.qp.physical.sys.MeasurementMNodePlan;
 import org.apache.iotdb.db.qp.physical.sys.SetStorageGroupPlan;
 import org.apache.iotdb.db.qp.physical.sys.SetTTLPlan;
-import org.apache.iotdb.db.qp.physical.sys.SetUsingDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.sys.SetUsingSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.StorageGroupMNodePlan;
 import org.apache.iotdb.db.writelog.io.LogWriter;
 import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
@@ -173,11 +173,11 @@
     putLog(plan);
   }
 
-  public void createDeviceTemplate(CreateTemplatePlan plan) throws IOException {
+  public void createSchemaTemplate(CreateTemplatePlan plan) throws IOException {
     putLog(plan);
   }
 
-  public void setDeviceTemplate(SetDeviceTemplatePlan plan) throws IOException {
+  public void setSchemaTemplate(SetSchemaTemplatePlan plan) throws IOException {
     putLog(plan);
   }
 
@@ -215,8 +215,8 @@
     putLog(plan);
   }
 
-  public void setUsingDeviceTemplate(PartialPath path) throws IOException {
-    SetUsingDeviceTemplatePlan plan = new SetUsingDeviceTemplatePlan(path);
+  public void setUsingSchemaTemplate(PartialPath path) throws IOException {
+    SetUsingSchemaTemplatePlan plan = new SetUsingSchemaTemplatePlan(path);
     putLog(plan);
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/IMNode.java b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/IMNode.java
index 181a83c..e6c5660 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/IMNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/IMNode.java
@@ -66,9 +66,9 @@
 
   Template getUpperTemplate();
 
-  Template getDeviceTemplate();
+  Template getSchemaTemplate();
 
-  void setDeviceTemplate(Template deviceTemplate);
+  void setSchemaTemplate(Template schemaTemplate);
 
   int getMeasurementMNodeCount();
 
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/InternalMNode.java b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/InternalMNode.java
index 479e5bd..72493a1 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/InternalMNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/InternalMNode.java
@@ -50,8 +50,8 @@
   @SuppressWarnings("squid:S3077")
   protected transient volatile Map<String, IMNode> children = null;
 
-  // device template
-  protected Template deviceTemplate = null;
+  // schema template
+  protected Template schemaTemplate = null;
 
   /** Constructor of MNode. */
   public InternalMNode(IMNode parent, String name) {
@@ -168,7 +168,7 @@
       ((IEntityMNode) newChildNode).setUseTemplate(oldChildNode.isUseTemplate());
     }
 
-    newChildNode.setDeviceTemplate(oldChildNode.getDeviceTemplate());
+    newChildNode.setSchemaTemplate(oldChildNode.getSchemaTemplate());
 
     newChildNode.setParent(this);
 
@@ -217,8 +217,8 @@
   public Template getUpperTemplate() {
     IMNode cur = this;
     while (cur != null) {
-      if (cur.getDeviceTemplate() != null) {
-        return cur.getDeviceTemplate();
+      if (cur.getSchemaTemplate() != null) {
+        return cur.getSchemaTemplate();
       }
       cur = cur.getParent();
     }
@@ -227,13 +227,13 @@
   }
 
   @Override
-  public Template getDeviceTemplate() {
-    return deviceTemplate;
+  public Template getSchemaTemplate() {
+    return schemaTemplate;
   }
 
   @Override
-  public void setDeviceTemplate(Template deviceTemplate) {
-    this.deviceTemplate = deviceTemplate;
+  public void setSchemaTemplate(Template schemaTemplate) {
+    this.schemaTemplate = schemaTemplate;
   }
 
   /** get the count of all MeasurementMNode whose ancestor is current node */
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MeasurementMNode.java b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MeasurementMNode.java
index 4d2f49c..27480e8 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MeasurementMNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MeasurementMNode.java
@@ -291,14 +291,14 @@
   }
 
   @Override
-  public Template getDeviceTemplate() {
+  public Template getSchemaTemplate() {
     logger.warn("current node {} is a MeasurementMNode, can not get Device Template", name);
     throw new RuntimeException(
         String.format("current node %s is a MeasurementMNode, can not get Device Template", name));
   }
 
   @Override
-  public void setDeviceTemplate(Template deviceTemplate) {}
+  public void setSchemaTemplate(Template schemaTemplate) {}
 
   @Override
   public boolean isMeasurement() {
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/template/TemplateManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/template/TemplateManager.java
index d119c39..bf4779d 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/template/TemplateManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/template/TemplateManager.java
@@ -57,7 +57,7 @@
 
   private TemplateManager() {}
 
-  public void createDeviceTemplate(CreateTemplatePlan plan) throws MetadataException {
+  public void createSchemaTemplate(CreateTemplatePlan plan) throws MetadataException {
     Template template = new Template(plan);
     if (templateMap.putIfAbsent(plan.getName(), template) != null) {
       // already have template
@@ -73,11 +73,11 @@
     return template;
   }
 
-  public void setDeviceTemplate(Template template, Pair<IMNode, Template> node)
+  public void setSchemaTemplate(Template template, Pair<IMNode, Template> node)
       throws MetadataException {
 
-    if (node.left.getDeviceTemplate() != null) {
-      if (node.left.getDeviceTemplate().equals(template)) {
+    if (node.left.getSchemaTemplate() != null) {
+      if (node.left.getSchemaTemplate().equals(template)) {
         throw new DuplicatedTemplateException(template.getName());
       } else {
         throw new MetadataException("Specified node already has template");
@@ -90,7 +90,7 @@
 
     checkIsTemplateAndMNodeCompatible(template, node.left);
 
-    node.left.setDeviceTemplate(template);
+    node.left.setSchemaTemplate(template);
   }
 
   public boolean isTemplateCompatible(Template upper, Template current) {
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 df47b6c..b092469 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
@@ -78,7 +78,7 @@
 import org.apache.iotdb.db.qp.physical.crud.QueryIndexPlan;
 import org.apache.iotdb.db.qp.physical.crud.QueryPlan;
 import org.apache.iotdb.db.qp.physical.crud.RawDataQueryPlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
 import org.apache.iotdb.db.qp.physical.sys.AlterTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.AuthorPlan;
@@ -360,9 +360,9 @@
         }
         return true;
       case CREATE_TEMPLATE:
-        return createDeviceTemplate((CreateTemplatePlan) plan);
+        return createSchemaTemplate((CreateTemplatePlan) plan);
       case SET_DEVICE_TEMPLATE:
-        return setDeviceTemplate((SetDeviceTemplatePlan) plan);
+        return setSchemaTemplate((SetSchemaTemplatePlan) plan);
       case CREATE_CONTINUOUS_QUERY:
         return operateCreateContinuousQuery((CreateContinuousQueryPlan) plan);
       case DROP_CONTINUOUS_QUERY:
@@ -373,20 +373,20 @@
     }
   }
 
-  private boolean createDeviceTemplate(CreateTemplatePlan createTemplatePlan)
+  private boolean createSchemaTemplate(CreateTemplatePlan createTemplatePlan)
       throws QueryProcessException {
     try {
-      IoTDB.metaManager.createDeviceTemplate(createTemplatePlan);
+      IoTDB.metaManager.createSchemaTemplate(createTemplatePlan);
     } catch (MetadataException e) {
       throw new QueryProcessException(e);
     }
     return true;
   }
 
-  private boolean setDeviceTemplate(SetDeviceTemplatePlan setDeviceTemplatePlan)
+  private boolean setSchemaTemplate(SetSchemaTemplatePlan setSchemaTemplatePlan)
       throws QueryProcessException {
     try {
-      IoTDB.metaManager.setDeviceTemplate(setDeviceTemplatePlan);
+      IoTDB.metaManager.setSchemaTemplate(setSchemaTemplatePlan);
     } catch (MetadataException e) {
       throw new QueryProcessException(e);
     }
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java
index a018f1c..13546d7 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java
@@ -30,7 +30,7 @@
 import org.apache.iotdb.db.qp.physical.crud.InsertRowsPlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertTabletPlan;
 import org.apache.iotdb.db.qp.physical.crud.SelectIntoPlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.AlterTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.AuthorPlan;
 import org.apache.iotdb.db.qp.physical.sys.AutoCreateDeviceMNodePlan;
@@ -60,7 +60,7 @@
 import org.apache.iotdb.db.qp.physical.sys.MergePlan;
 import org.apache.iotdb.db.qp.physical.sys.SetStorageGroupPlan;
 import org.apache.iotdb.db.qp.physical.sys.SetTTLPlan;
-import org.apache.iotdb.db.qp.physical.sys.SetUsingDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.sys.SetUsingSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.ShowDevicesPlan;
 import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.StartTriggerPlan;
@@ -378,10 +378,10 @@
           plan = new CreateTemplatePlan();
           break;
         case SET_DEVICE_TEMPLATE:
-          plan = new SetDeviceTemplatePlan();
+          plan = new SetSchemaTemplatePlan();
           break;
         case SET_USING_DEVICE_TEMPLATE:
-          plan = new SetUsingDeviceTemplatePlan();
+          plan = new SetUsingSchemaTemplatePlan();
           break;
         case AUTO_CREATE_DEVICE_MNODE:
           plan = new AutoCreateDeviceMNodePlan();
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/SetDeviceTemplatePlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/SetSchemaTemplatePlan.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/qp/physical/crud/SetDeviceTemplatePlan.java
rename to server/src/main/java/org/apache/iotdb/db/qp/physical/crud/SetSchemaTemplatePlan.java
index b76703a..23949f7 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/SetDeviceTemplatePlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/SetSchemaTemplatePlan.java
@@ -29,15 +29,15 @@
 import java.nio.ByteBuffer;
 import java.util.List;
 
-public class SetDeviceTemplatePlan extends PhysicalPlan {
+public class SetSchemaTemplatePlan extends PhysicalPlan {
   String templateName;
   String prefixPath;
 
-  public SetDeviceTemplatePlan() {
+  public SetSchemaTemplatePlan() {
     super(false, OperatorType.SET_DEVICE_TEMPLATE);
   }
 
-  public SetDeviceTemplatePlan(String templateName, String prefixPath) {
+  public SetSchemaTemplatePlan(String templateName, String prefixPath) {
     super(false, OperatorType.SET_DEVICE_TEMPLATE);
     this.templateName = templateName;
     this.prefixPath = prefixPath;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/SetUsingDeviceTemplatePlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/SetUsingSchemaTemplatePlan.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/qp/physical/sys/SetUsingDeviceTemplatePlan.java
rename to server/src/main/java/org/apache/iotdb/db/qp/physical/sys/SetUsingSchemaTemplatePlan.java
index 6d20145..107a1fe 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/SetUsingDeviceTemplatePlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/SetUsingSchemaTemplatePlan.java
@@ -33,16 +33,16 @@
 import java.nio.ByteBuffer;
 import java.util.List;
 
-public class SetUsingDeviceTemplatePlan extends PhysicalPlan {
+public class SetUsingSchemaTemplatePlan extends PhysicalPlan {
 
-  private static final Logger logger = LoggerFactory.getLogger(SetUsingDeviceTemplatePlan.class);
+  private static final Logger logger = LoggerFactory.getLogger(SetUsingSchemaTemplatePlan.class);
   PartialPath prefixPath;
 
-  public SetUsingDeviceTemplatePlan() {
+  public SetUsingSchemaTemplatePlan() {
     super(false, OperatorType.SET_USING_DEVICE_TEMPLATE);
   }
 
-  public SetUsingDeviceTemplatePlan(PartialPath prefixPath) {
+  public SetUsingSchemaTemplatePlan(PartialPath prefixPath) {
     super(false, OperatorType.SET_USING_DEVICE_TEMPLATE);
     this.prefixPath = prefixPath;
   }
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 9f79c99..4c45e09 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
@@ -59,7 +59,7 @@
 import org.apache.iotdb.db.qp.physical.crud.MeasurementInfo;
 import org.apache.iotdb.db.qp.physical.crud.QueryPlan;
 import org.apache.iotdb.db.qp.physical.crud.SelectIntoPlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.crud.UDFPlan;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
 import org.apache.iotdb.db.qp.physical.sys.AuthorPlan;
@@ -1985,7 +1985,7 @@
           req.getPrefixPath());
     }
 
-    SetDeviceTemplatePlan plan = new SetDeviceTemplatePlan(req.templateName, req.prefixPath);
+    SetSchemaTemplatePlan plan = new SetSchemaTemplatePlan(req.templateName, req.prefixPath);
 
     TSStatus status = checkAuthority(plan, req.getSessionId());
     return status != null ? status : executeNonQueryPlan(plan);
diff --git a/server/src/main/java/org/apache/iotdb/db/tools/mlog/MLogParser.java b/server/src/main/java/org/apache/iotdb/db/tools/mlog/MLogParser.java
index c91c845..53a7d05 100644
--- a/server/src/main/java/org/apache/iotdb/db/tools/mlog/MLogParser.java
+++ b/server/src/main/java/org/apache/iotdb/db/tools/mlog/MLogParser.java
@@ -23,7 +23,7 @@
 import org.apache.iotdb.db.metadata.logfile.MLogTxtWriter;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
 import org.apache.iotdb.db.qp.physical.crud.CreateTemplatePlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.AutoCreateDeviceMNodePlan;
 import org.apache.iotdb.db.qp.physical.sys.ChangeAliasPlan;
 import org.apache.iotdb.db.qp.physical.sys.ChangeTagOffsetPlan;
@@ -35,7 +35,7 @@
 import org.apache.iotdb.db.qp.physical.sys.MeasurementMNodePlan;
 import org.apache.iotdb.db.qp.physical.sys.SetStorageGroupPlan;
 import org.apache.iotdb.db.qp.physical.sys.SetTTLPlan;
-import org.apache.iotdb.db.qp.physical.sys.SetUsingDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.sys.SetUsingSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.StorageGroupMNodePlan;
 
 import org.apache.commons.cli.CommandLine;
@@ -218,10 +218,10 @@
             mLogTxtWriter.createTemplate((CreateTemplatePlan) plan);
             break;
           case SET_DEVICE_TEMPLATE:
-            mLogTxtWriter.setTemplate((SetDeviceTemplatePlan) plan);
+            mLogTxtWriter.setTemplate((SetSchemaTemplatePlan) plan);
             break;
           case SET_USING_DEVICE_TEMPLATE:
-            mLogTxtWriter.setUsingTemplate((SetUsingDeviceTemplatePlan) plan);
+            mLogTxtWriter.setUsingTemplate((SetUsingSchemaTemplatePlan) plan);
             break;
           case AUTO_CREATE_DEVICE_MNODE:
             mLogTxtWriter.autoCreateDeviceNode(
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 543840e..5c7c652 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
@@ -28,7 +28,7 @@
 import org.apache.iotdb.db.metadata.template.Template;
 import org.apache.iotdb.db.qp.physical.crud.CreateTemplatePlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertRowPlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
 import org.apache.iotdb.db.query.context.QueryContext;
@@ -853,24 +853,24 @@
     CreateTemplatePlan plan = getCreateTemplatePlan();
 
     MManager manager = IoTDB.metaManager;
-    manager.createDeviceTemplate(plan);
+    manager.createSchemaTemplate(plan);
 
     // set device template
-    SetDeviceTemplatePlan setDeviceTemplatePlan =
-        new SetDeviceTemplatePlan("template1", "root.sg1.d1");
+    SetSchemaTemplatePlan setSchemaTemplatePlan =
+        new SetSchemaTemplatePlan("template1", "root.sg1.d1");
 
-    manager.setDeviceTemplate(setDeviceTemplatePlan);
+    manager.setSchemaTemplate(setSchemaTemplatePlan);
 
     IMNode node = manager.getDeviceNode(new PartialPath("root.sg1.d1"));
-    node = manager.setUsingDeviceTemplate(node);
+    node = manager.setUsingSchemaTemplate(node);
 
     MeasurementSchema s11 =
         new MeasurementSchema("s11", TSDataType.INT64, TSEncoding.RLE, CompressionType.SNAPPY);
-    assertNotNull(node.getDeviceTemplate());
-    assertEquals(node.getDeviceTemplate().getSchemaMap().get("s11"), s11);
+    assertNotNull(node.getSchemaTemplate());
+    assertEquals(node.getSchemaTemplate().getSchemaMap().get("s11"), s11);
 
     Set<IMeasurementSchema> allSchema =
-        new HashSet<>(node.getDeviceTemplate().getSchemaMap().values());
+        new HashSet<>(node.getSchemaTemplate().getSchemaMap().values());
     for (IMeasurementSchema schema :
         manager.getAllMeasurementByDevicePath(new PartialPath("root.sg1.d1"))) {
       allSchema.remove(schema);
@@ -1028,32 +1028,32 @@
     assertFalse(manager.isTemplateCompatible(new Template(plan1), new Template(plan4)));
 
     // test manager
-    manager.createDeviceTemplate(plan1);
-    manager.createDeviceTemplate(plan2);
-    manager.createDeviceTemplate(plan4);
+    manager.createSchemaTemplate(plan1);
+    manager.createSchemaTemplate(plan2);
+    manager.createSchemaTemplate(plan4);
 
-    manager.setDeviceTemplate(new SetDeviceTemplatePlan("template1", "root.sg1.d1"));
+    manager.setSchemaTemplate(new SetSchemaTemplatePlan("template1", "root.sg1.d1"));
     try {
-      manager.setDeviceTemplate(new SetDeviceTemplatePlan("template4", "root.sg1.d1.d2"));
+      manager.setSchemaTemplate(new SetSchemaTemplatePlan("template4", "root.sg1.d1.d2"));
       fail("These two templates are incompatible");
     } catch (MetadataException e) {
       assertEquals("Incompatible template", e.getMessage());
     }
 
-    manager.setDeviceTemplate(new SetDeviceTemplatePlan("template2", "root.sg1.d1.d2"));
+    manager.setSchemaTemplate(new SetSchemaTemplatePlan("template2", "root.sg1.d1.d2"));
   }
 
   @Test
   public void testTemplateAndTimeSeriesCompatibility() throws MetadataException {
     CreateTemplatePlan plan = getCreateTemplatePlan();
     MManager manager = IoTDB.metaManager;
-    manager.createDeviceTemplate(plan);
+    manager.createSchemaTemplate(plan);
 
     // set device template
-    SetDeviceTemplatePlan setDeviceTemplatePlan =
-        new SetDeviceTemplatePlan("template1", "root.sg1.d1");
+    SetSchemaTemplatePlan setSchemaTemplatePlan =
+        new SetSchemaTemplatePlan("template1", "root.sg1.d1");
 
-    manager.setDeviceTemplate(setDeviceTemplatePlan);
+    manager.setSchemaTemplate(setSchemaTemplatePlan);
 
     CreateTimeSeriesPlan createTimeSeriesPlan =
         new CreateTimeSeriesPlan(
@@ -1093,11 +1093,11 @@
   public void testTemplateAndNodePathCompatibility() throws MetadataException {
     MManager manager = IoTDB.metaManager;
     CreateTemplatePlan plan = getCreateTemplatePlan();
-    manager.createDeviceTemplate(plan);
+    manager.createSchemaTemplate(plan);
 
     // set device template
-    SetDeviceTemplatePlan setDeviceTemplatePlan =
-        new SetDeviceTemplatePlan("template1", "root.sg1.d1");
+    SetSchemaTemplatePlan setSchemaTemplatePlan =
+        new SetSchemaTemplatePlan("template1", "root.sg1.d1");
 
     CreateTimeSeriesPlan createTimeSeriesPlan =
         new CreateTimeSeriesPlan(
@@ -1113,7 +1113,7 @@
     manager.createTimeseries(createTimeSeriesPlan);
 
     try {
-      manager.setDeviceTemplate(setDeviceTemplatePlan);
+      manager.setSchemaTemplate(setSchemaTemplatePlan);
       fail();
     } catch (PathAlreadyExistException e) {
       assertEquals("Path [root.sg1.d1.s11] already exist", e.getMessage());
@@ -1134,7 +1134,7 @@
     manager.createTimeseries(createTimeSeriesPlan2);
 
     try {
-      manager.setDeviceTemplate(setDeviceTemplatePlan);
+      manager.setSchemaTemplate(setSchemaTemplatePlan);
       fail();
     } catch (PathAlreadyExistException e) {
       assertEquals("Path [root.sg1.d1.vector] already exist", e.getMessage());
@@ -1258,13 +1258,13 @@
             compressionTypes);
     MManager manager = IoTDB.metaManager;
     try {
-      manager.createDeviceTemplate(plan);
+      manager.createSchemaTemplate(plan);
 
       // set device template
-      SetDeviceTemplatePlan setDeviceTemplatePlan =
-          new SetDeviceTemplatePlan("template1", "root.laptop.d1");
-      manager.setDeviceTemplate(setDeviceTemplatePlan);
-      manager.setUsingDeviceTemplate(manager.getDeviceNode(new PartialPath("root.laptop.d1")));
+      SetSchemaTemplatePlan setSchemaTemplatePlan =
+          new SetSchemaTemplatePlan("template1", "root.laptop.d1");
+      manager.setSchemaTemplate(setSchemaTemplatePlan);
+      manager.setUsingSchemaTemplate(manager.getDeviceNode(new PartialPath("root.laptop.d1")));
 
       // show timeseries root.laptop.d1.s0
       ShowTimeSeriesPlan showTimeSeriesPlan =
@@ -1351,13 +1351,13 @@
             compressionTypes);
     MManager manager = IoTDB.metaManager;
     try {
-      manager.createDeviceTemplate(plan);
+      manager.createSchemaTemplate(plan);
 
       // set device template
-      SetDeviceTemplatePlan setDeviceTemplatePlan =
-          new SetDeviceTemplatePlan("template1", "root.laptop.d1");
-      manager.setDeviceTemplate(setDeviceTemplatePlan);
-      manager.setUsingDeviceTemplate(manager.getDeviceNode(new PartialPath("root.laptop.d1")));
+      SetSchemaTemplatePlan setSchemaTemplatePlan =
+          new SetSchemaTemplatePlan("template1", "root.laptop.d1");
+      manager.setSchemaTemplate(setSchemaTemplatePlan);
+      manager.setUsingSchemaTemplate(manager.getDeviceNode(new PartialPath("root.laptop.d1")));
 
       manager.createTimeseries(
           new PartialPath("root.computer.d1.s2"),
@@ -1366,9 +1366,9 @@
           CompressionType.GZIP,
           null);
 
-      setDeviceTemplatePlan = new SetDeviceTemplatePlan("template1", "root.computer");
-      manager.setDeviceTemplate(setDeviceTemplatePlan);
-      manager.setUsingDeviceTemplate(manager.getDeviceNode(new PartialPath("root.computer.d1")));
+      setSchemaTemplatePlan = new SetSchemaTemplatePlan("template1", "root.computer");
+      manager.setSchemaTemplate(setSchemaTemplatePlan);
+      manager.setUsingSchemaTemplate(manager.getDeviceNode(new PartialPath("root.computer.d1")));
 
       Assert.assertEquals(2, manager.getAllTimeseriesCount(new PartialPath("root.laptop.d1")));
       Assert.assertEquals(1, manager.getAllTimeseriesCount(new PartialPath("root.laptop.d1.s1")));
@@ -1418,12 +1418,12 @@
     MManager manager = IoTDB.metaManager;
 
     try {
-      manager.createDeviceTemplate(plan);
+      manager.createSchemaTemplate(plan);
       // set device template
-      SetDeviceTemplatePlan setDeviceTemplatePlan =
-          new SetDeviceTemplatePlan("template1", "root.laptop.d1");
-      manager.setDeviceTemplate(setDeviceTemplatePlan);
-      manager.setUsingDeviceTemplate(manager.getDeviceNode(new PartialPath("root.laptop.d1")));
+      SetSchemaTemplatePlan setSchemaTemplatePlan =
+          new SetSchemaTemplatePlan("template1", "root.laptop.d1");
+      manager.setSchemaTemplate(setSchemaTemplatePlan);
+      manager.setUsingSchemaTemplate(manager.getDeviceNode(new PartialPath("root.laptop.d1")));
 
       manager.createTimeseries(
           new PartialPath("root.laptop.d2.s1"),
diff --git a/server/src/test/java/org/apache/iotdb/db/qp/physical/InsertRowPlanTest.java b/server/src/test/java/org/apache/iotdb/db/qp/physical/InsertRowPlanTest.java
index 56cb484..c5833f6 100644
--- a/server/src/test/java/org/apache/iotdb/db/qp/physical/InsertRowPlanTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/qp/physical/InsertRowPlanTest.java
@@ -30,7 +30,7 @@
 import org.apache.iotdb.db.qp.physical.crud.CreateTemplatePlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertRowPlan;
 import org.apache.iotdb.db.qp.physical.crud.QueryPlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.service.IoTDB;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.tsfile.exception.filter.QueryFilterOptimizationException;
@@ -133,7 +133,7 @@
   }
 
   @Test
-  public void testInsertRowPlanWithDeviceTemplate()
+  public void testInsertRowPlanWithSchemaTemplate()
       throws QueryProcessException, MetadataException, InterruptedException,
           QueryFilterOptimizationException, StorageEngineException, IOException {
     List<List<String>> measurementList = new ArrayList<>();
@@ -191,8 +191,8 @@
             encodingList,
             compressionTypes);
 
-    IoTDB.metaManager.createDeviceTemplate(plan);
-    IoTDB.metaManager.setDeviceTemplate(new SetDeviceTemplatePlan("template1", "root.isp.d1"));
+    IoTDB.metaManager.createSchemaTemplate(plan);
+    IoTDB.metaManager.setSchemaTemplate(new SetSchemaTemplatePlan("template1", "root.isp.d1"));
 
     IoTDBDescriptor.getInstance().getConfig().setAutoCreateSchemaEnabled(false);
 
diff --git a/server/src/test/java/org/apache/iotdb/db/qp/physical/InsertTabletPlanTest.java b/server/src/test/java/org/apache/iotdb/db/qp/physical/InsertTabletPlanTest.java
index 2efaa68..e663d96 100644
--- a/server/src/test/java/org/apache/iotdb/db/qp/physical/InsertTabletPlanTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/qp/physical/InsertTabletPlanTest.java
@@ -30,7 +30,7 @@
 import org.apache.iotdb.db.qp.physical.crud.CreateTemplatePlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertTabletPlan;
 import org.apache.iotdb.db.qp.physical.crud.QueryPlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.service.IoTDB;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.tsfile.exception.filter.QueryFilterOptimizationException;
@@ -170,13 +170,13 @@
   }
 
   @Test
-  public void testInsertTabletPlanWithDeviceTemplate()
+  public void testInsertTabletPlanWithSchemaTemplate()
       throws QueryProcessException, MetadataException, InterruptedException,
           QueryFilterOptimizationException, StorageEngineException, IOException {
     CreateTemplatePlan plan = getCreateTemplatePlan();
 
-    IoTDB.metaManager.createDeviceTemplate(plan);
-    IoTDB.metaManager.setDeviceTemplate(new SetDeviceTemplatePlan("template1", "root.isp"));
+    IoTDB.metaManager.createSchemaTemplate(plan);
+    IoTDB.metaManager.setSchemaTemplate(new SetSchemaTemplatePlan("template1", "root.isp"));
 
     InsertTabletPlan tabletPlan = getInsertTabletPlan();
 
@@ -250,13 +250,13 @@
   }
 
   @Test
-  public void testInsertTabletPlanWithDeviceTemplateAndAutoCreateSchema()
+  public void testInsertTabletPlanWithSchemaTemplateAndAutoCreateSchema()
       throws QueryProcessException, MetadataException, InterruptedException,
           QueryFilterOptimizationException, StorageEngineException, IOException {
     CreateTemplatePlan plan = getCreateTemplatePlan();
 
-    IoTDB.metaManager.createDeviceTemplate(plan);
-    IoTDB.metaManager.setDeviceTemplate(new SetDeviceTemplatePlan("template1", "root.isp"));
+    IoTDB.metaManager.createSchemaTemplate(plan);
+    IoTDB.metaManager.setSchemaTemplate(new SetSchemaTemplatePlan("template1", "root.isp"));
     InsertTabletPlan tabletPlan = getInsertTabletPlan();
 
     PlanExecutor executor = new PlanExecutor();
diff --git a/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTestUtil.java b/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTestUtil.java
index 2a9d808..3ced025 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTestUtil.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTestUtil.java
@@ -172,7 +172,7 @@
     for (MeasurementSchema measurementSchema : measurementSchemas) {
       template.put(measurementSchema.getMeasurementId(), measurementSchema);
     }
-    fileWriter.registerDeviceTemplate("template0", template);
+    fileWriter.registerSchemaTemplate("template0", template);
     for (String deviceId : deviceIds) {
       fileWriter.registerDevice(deviceId, "template0");
     }
diff --git a/server/src/test/java/org/apache/iotdb/db/tools/MLogParserTest.java b/server/src/test/java/org/apache/iotdb/db/tools/MLogParserTest.java
index 0a033fa..751efc0 100644
--- a/server/src/test/java/org/apache/iotdb/db/tools/MLogParserTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/tools/MLogParserTest.java
@@ -24,7 +24,7 @@
 import org.apache.iotdb.db.metadata.MetadataConstant;
 import org.apache.iotdb.db.metadata.PartialPath;
 import org.apache.iotdb.db.qp.physical.crud.CreateTemplatePlan;
-import org.apache.iotdb.db.qp.physical.crud.SetDeviceTemplatePlan;
+import org.apache.iotdb.db.qp.physical.crud.SetSchemaTemplatePlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateTimeSeriesPlan;
 import org.apache.iotdb.db.service.IoTDB;
 import org.apache.iotdb.db.tools.mlog.MLogParser;
@@ -101,10 +101,10 @@
 
     try {
       IoTDB.metaManager.setStorageGroup(new PartialPath("root.sg"));
-      IoTDB.metaManager.createDeviceTemplate(genCreateTemplatePlan());
-      SetDeviceTemplatePlan setDeviceTemplatePlan =
-          new SetDeviceTemplatePlan("template1", "root.sg");
-      IoTDB.metaManager.setDeviceTemplate(setDeviceTemplatePlan);
+      IoTDB.metaManager.createSchemaTemplate(genCreateTemplatePlan());
+      SetSchemaTemplatePlan setSchemaTemplatePlan =
+          new SetSchemaTemplatePlan("template1", "root.sg");
+      IoTDB.metaManager.setSchemaTemplate(setSchemaTemplatePlan);
       IoTDB.metaManager.getDeviceNodeWithAutoCreate(new PartialPath("root.sg.d1"), true, true, 1);
     } catch (MetadataException | IOException e) {
       e.printStackTrace();
diff --git a/server/src/test/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverTest.java b/server/src/test/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverTest.java
index f24f023..c27be17 100644
--- a/server/src/test/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverTest.java
@@ -119,7 +119,7 @@
       template.put(
           "sensor" + i, new MeasurementSchema("sensor" + i, TSDataType.INT64, TSEncoding.PLAIN));
     }
-    schema.registerDeviceTemplate("template1", template);
+    schema.registerSchemaTemplate("template1", template);
     for (int i = 0; i < 10; i++) {
       schema.registerDevice("root.sg.device" + i, "template1");
     }
diff --git a/session/src/test/java/org/apache/iotdb/session/SessionTest.java b/session/src/test/java/org/apache/iotdb/session/SessionTest.java
index f9dae22..ad06d3d 100644
--- a/session/src/test/java/org/apache/iotdb/session/SessionTest.java
+++ b/session/src/test/java/org/apache/iotdb/session/SessionTest.java
@@ -206,7 +206,7 @@
   }
 
   @Test
-  public void createDeviceTemplate() throws IoTDBConnectionException, StatementExecutionException {
+  public void createSchemaTemplate() throws IoTDBConnectionException, StatementExecutionException {
     session = new Session("127.0.0.1", 6667, "root", "root", ZoneId.of("+05:00"));
     session.open();
 
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 490783d..09b8b66 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
@@ -150,9 +150,9 @@
     }
   }
 
-  public void registerDeviceTemplate(
+  public void registerSchemaTemplate(
       String templateName, Map<String, IMeasurementSchema> template) {
-    schema.registerDeviceTemplate(templateName, template);
+    schema.registerSchemaTemplate(templateName, template);
   }
 
   public void registerDevice(String deviceId, String templateName) {
@@ -189,10 +189,10 @@
       Path path = new Path(record.deviceId, measurementId);
       if (schema.containsTimeseries(path)) {
         groupWriter.tryToAddSeriesWriter(schema.getSeriesSchema(path), pageSize);
-      } else if (schema.getDeviceTemplates() != null && schema.getDeviceTemplates().size() == 1) {
+      } else if (schema.getSchemaTemplates() != null && schema.getSchemaTemplates().size() == 1) {
         // use the default template without needing to register device
         Map<String, IMeasurementSchema> template =
-            schema.getDeviceTemplates().entrySet().iterator().next().getValue();
+            schema.getSchemaTemplates().entrySet().iterator().next().getValue();
         if (template.containsKey(path.getMeasurement())) {
           groupWriter.tryToAddSeriesWriter(template.get(path.getMeasurement()), pageSize);
         }
@@ -226,10 +226,10 @@
       Path path = new Path(deviceId, measurementId);
       if (schema.containsTimeseries(path)) {
         groupWriter.tryToAddSeriesWriter(schema.getSeriesSchema(path), pageSize);
-      } else if (schema.getDeviceTemplates() != null && schema.getDeviceTemplates().size() == 1) {
+      } else if (schema.getSchemaTemplates() != null && schema.getSchemaTemplates().size() == 1) {
         // use the default template without needing to register device
         Map<String, IMeasurementSchema> template =
-            schema.getDeviceTemplates().entrySet().iterator().next().getValue();
+            schema.getSchemaTemplates().entrySet().iterator().next().getValue();
         if (template.containsKey(path.getMeasurement())) {
           groupWriter.tryToAddSeriesWriter(template.get(path.getMeasurement()), pageSize);
         }
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/Schema.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/Schema.java
index cf45286..b13d984 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/Schema.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/Schema.java
@@ -27,7 +27,7 @@
 import java.util.Map;
 
 /**
- * The schema of timeseries that exist in this file. The deviceTemplates is a simplified manner to
+ * The schema of timeseries that exist in this file. The schemaTemplates is a simplified manner to
  * batch create schema of timeseries.
  */
 public class Schema implements Serializable {
@@ -39,7 +39,7 @@
   private Map<Path, IMeasurementSchema> registeredTimeseries;
 
   /** template name -> (measurement -> MeasurementSchema) */
-  private Map<String, Map<String, IMeasurementSchema>> deviceTemplates;
+  private Map<String, Map<String, IMeasurementSchema>> schemaTemplates;
 
   public Schema() {
     this.registeredTimeseries = new LinkedHashMap<>();
@@ -53,29 +53,29 @@
     this.registeredTimeseries.put(path, descriptor);
   }
 
-  public void registerDeviceTemplate(
+  public void registerSchemaTemplate(
       String templateName, Map<String, IMeasurementSchema> template) {
-    if (deviceTemplates == null) {
-      deviceTemplates = new HashMap<>();
+    if (schemaTemplates == null) {
+      schemaTemplates = new HashMap<>();
     }
-    this.deviceTemplates.put(templateName, template);
+    this.schemaTemplates.put(templateName, template);
   }
 
   public void extendTemplate(String templateName, IMeasurementSchema descriptor) {
-    if (deviceTemplates == null) {
-      deviceTemplates = new HashMap<>();
+    if (schemaTemplates == null) {
+      schemaTemplates = new HashMap<>();
     }
     Map<String, IMeasurementSchema> template =
-        this.deviceTemplates.getOrDefault(templateName, new HashMap<>());
+        this.schemaTemplates.getOrDefault(templateName, new HashMap<>());
     template.put(descriptor.getMeasurementId(), descriptor);
-    this.deviceTemplates.put(templateName, template);
+    this.schemaTemplates.put(templateName, template);
   }
 
   public void registerDevice(String deviceId, String templateName) {
-    if (!deviceTemplates.containsKey(templateName)) {
+    if (!schemaTemplates.containsKey(templateName)) {
       return;
     }
-    Map<String, IMeasurementSchema> template = deviceTemplates.get(templateName);
+    Map<String, IMeasurementSchema> template = schemaTemplates.get(templateName);
     for (Map.Entry<String, IMeasurementSchema> entry : template.entrySet()) {
       Path path = new Path(deviceId, entry.getKey());
       registerTimeseries(path, entry.getValue());
@@ -93,8 +93,8 @@
     return registeredTimeseries.get(path).getType();
   }
 
-  public Map<String, Map<String, IMeasurementSchema>> getDeviceTemplates() {
-    return deviceTemplates;
+  public Map<String, Map<String, IMeasurementSchema>> getSchemaTemplates() {
+    return schemaTemplates;
   }
 
   /** check if this schema contains a measurement named measurementId. */
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultDeviceTemplateTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultSchemaTemplateTest.java
similarity index 93%
rename from tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultDeviceTemplateTest.java
rename to tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultSchemaTemplateTest.java
index 82f7df8..a304fdd 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultDeviceTemplateTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultSchemaTemplateTest.java
@@ -41,11 +41,11 @@
 import java.util.List;
 import java.util.Map;
 
-public class DefaultDeviceTemplateTest {
+public class DefaultSchemaTemplateTest {
 
   @Test
-  public void testUsingDefaultDeviceTemplate() throws IOException, WriteProcessException {
-    File file = new File("target/defaultDeviceTemplate.tsfile");
+  public void testUsingDefaultSchemaTemplate() throws IOException, WriteProcessException {
+    File file = new File("target/defaultSchemaTemplate.tsfile");
     try (TsFileWriter writer = new TsFileWriter(file)) {
       MeasurementSchema s1 = new MeasurementSchema("s1", TSDataType.INT64, TSEncoding.PLAIN);
       MeasurementSchema s2 = new MeasurementSchema("s2", TSDataType.INT64, TSEncoding.PLAIN);
@@ -58,7 +58,7 @@
       schema.put("s1", s1);
       schema.put("s2", s2);
 
-      writer.registerDeviceTemplate("defaultTemplate", schema);
+      writer.registerSchemaTemplate("defaultTemplate", schema);
 
       Tablet tablet = new Tablet("d1", schemaList);
       long[] timestamps = tablet.timestamps;
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/schema/converter/SchemaBuilderTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/schema/converter/SchemaBuilderTest.java
index a8c0638..b8c993f 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/schema/converter/SchemaBuilderTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/schema/converter/SchemaBuilderTest.java
@@ -77,7 +77,7 @@
         "s5",
         new MeasurementSchema(
             "s5", TSDataType.INT32, TSEncoding.TS_2DIFF, CompressionType.UNCOMPRESSED, null));
-    schema.registerDeviceTemplate("template1", template);
+    schema.registerSchemaTemplate("template1", template);
     schema.registerDevice("d1", "template1");
 
     Collection<IMeasurementSchema> timeseries = schema.getRegisteredTimeseriesMap().values();
@@ -105,7 +105,7 @@
         "s5",
         new MeasurementSchema(
             "s5", TSDataType.INT32, TSEncoding.TS_2DIFF, CompressionType.UNCOMPRESSED, null));
-    schema.registerDeviceTemplate("template1", template);
+    schema.registerSchemaTemplate("template1", template);
 
     schema.extendTemplate(
         "template1",