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

[iotdb] branch master updated: Remove useless code in schema module (#8084)

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

zyk 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 92c98dddb8 Remove useless code in schema module (#8084)
92c98dddb8 is described below

commit 92c98dddb827fd05e761c45bf81a85c430c6229a
Author: Marcos_Zyk <38...@users.noreply.github.com>
AuthorDate: Tue Nov 22 13:54:48 2022 +0800

    Remove useless code in schema module (#8084)
    
    Remove useless code in schema module (#8084)
---
 .../persistence/schema/ClusterSchemaInfo.java      |   2 +-
 .../schemaregion/rocksdb/RSchemaRegion.java        |  39 +-
 .../schemaregion/rocksdb/mnode/REntityMNode.java   |   5 -
 .../schemaregion/rocksdb/mnode/RInternalMNode.java |   8 -
 .../rocksdb/mnode/RMeasurementMNode.java           |   6 -
 .../rocksdb/mnode/RStorageGroupMNode.java          |   8 -
 .../metadata/tagSchemaRegion/TagSchemaRegion.java  |  17 +-
 .../iotdb/db/localconfignode/LocalConfigNode.java  |  45 +-
 .../iotdb/db/metadata/LocalSchemaProcessor.java    | 193 +--------
 .../idtable/entry/InsertMeasurementMNode.java      |   6 -
 .../iotdb/db/metadata/logfile/MLogTxtReader.java   |  78 ----
 .../iotdb/db/metadata/logfile/MLogTxtWriter.java   | 458 ---------------------
 .../org/apache/iotdb/db/metadata/mnode/IMNode.java |   4 -
 .../iotdb/db/metadata/mnode/InternalMNode.java     |  24 --
 .../iotdb/db/metadata/mnode/MeasurementMNode.java  |  18 -
 .../db/metadata/mnode/StorageGroupEntityMNode.java |  10 -
 .../iotdb/db/metadata/mnode/StorageGroupMNode.java |  19 -
 .../iotdb/db/metadata/mtree/ConfigMTree.java       |   8 +-
 .../iotdb/db/metadata/mtree/IMTreeBelowSG.java     |   7 +-
 .../db/metadata/mtree/MTreeBelowSGCachedImpl.java  |   5 +-
 .../db/metadata/mtree/MTreeBelowSGMemoryImpl.java  |   5 +-
 .../mtree/traverser/collector/MNodeCollector.java  |  18 -
 .../db/metadata/schemaregion/ISchemaRegion.java    |  26 +-
 .../schemaregion/SchemaRegionMemoryImpl.java       |  27 +-
 .../schemaregion/SchemaRegionSchemaFileImpl.java   |  27 +-
 .../storagegroup/IStorageGroupSchemaManager.java   |   7 +-
 .../storagegroup/StorageGroupSchemaManager.java    |   9 +-
 .../schema/NodePathsSchemaScanOperator.java        |   3 +-
 .../plan/analyze/StandalonePartitionFetcher.java   |   2 +-
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |   5 -
 .../db/service/thrift/impl/TSServiceImpl.java      |   2 +-
 .../org/apache/iotdb/db/utils/SchemaUtils.java     |  24 --
 .../apache/iotdb/db/metadata/SchemaBasicTest.java  |  44 --
 .../iotdb/db/metadata/mtree/ConfigMTreeTest.java   |  19 +-
 .../iotdb/db/metadata/mtree/MTreeBelowSGTest.java  |  48 +--
 35 files changed, 36 insertions(+), 1190 deletions(-)

diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ClusterSchemaInfo.java b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ClusterSchemaInfo.java
index 1b93dce687..e16dda2c8a 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ClusterSchemaInfo.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ClusterSchemaInfo.java
@@ -535,7 +535,7 @@ public class ClusterSchemaInfo implements SnapshotProcessor {
         new Pair(new HashSet<>(), new HashSet<>());
     storageGroupReadWriteLock.readLock().lock();
     try {
-      matchedPathsInNextLevel = mTree.getNodesListInGivenLevel(partialPath, level, true, null);
+      matchedPathsInNextLevel = mTree.getNodesListInGivenLevel(partialPath, level, true);
     } catch (MetadataException e) {
       LOGGER.error("Error get matched paths in given level.", e);
     } finally {
diff --git a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaRegion.java b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaRegion.java
index 7fae87633b..c0556ecec1 100644
--- a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaRegion.java
+++ b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaRegion.java
@@ -39,7 +39,6 @@ import org.apache.iotdb.db.exception.metadata.MNodeTypeMismatchException;
 import org.apache.iotdb.db.exception.metadata.PathAlreadyExistException;
 import org.apache.iotdb.db.exception.metadata.PathNotExistException;
 import org.apache.iotdb.db.exception.metadata.SchemaDirCreationFailureException;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor.StorageGroupFilter;
 import org.apache.iotdb.db.metadata.MetadataConstant;
 import org.apache.iotdb.db.metadata.idtable.IDTable;
 import org.apache.iotdb.db.metadata.idtable.IDTableManager;
@@ -48,7 +47,6 @@ import org.apache.iotdb.db.metadata.mnode.IMeasurementMNode;
 import org.apache.iotdb.db.metadata.mnode.IStorageGroupMNode;
 import org.apache.iotdb.db.metadata.mnode.MNodeType;
 import org.apache.iotdb.db.metadata.plan.schemaregion.write.IActivateTemplateInClusterPlan;
-import org.apache.iotdb.db.metadata.plan.schemaregion.write.IAutoCreateDeviceMNodePlan;
 import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateAlignedTimeSeriesPlan;
 import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateTimeSeriesPlan;
 import org.apache.iotdb.db.metadata.plan.schemaregion.write.IDeactivateTemplatePlan;
@@ -846,11 +844,6 @@ public class RSchemaRegion implements ISchemaRegion {
     return node;
   }
 
-  @Override
-  public void autoCreateDeviceMNode(IAutoCreateDeviceMNodePlan plan) throws MetadataException {
-    throw new UnsupportedOperationException();
-  }
-
   @Override
   public boolean isPathExist(PartialPath path) throws MetadataException {
     if (IoTDBConstant.PATH_ROOT.equals(path.getFullPath())) {
@@ -912,35 +905,6 @@ public class RSchemaRegion implements ISchemaRegion {
     return atomicInteger.get();
   }
 
-  @Override
-  public int getNodesCountInGivenLevel(PartialPath pathPattern, int level, boolean isPrefixMatch)
-      throws MetadataException {
-    // todo support wildcard
-    if (pathPattern.getFullPath().contains(IoTDBConstant.ONE_LEVEL_PATH_WILDCARD)) {
-      throw new UnsupportedOperationException(
-          "Wildcards are not currently supported for this operation"
-              + " [COUNT NODES pathPattern].");
-    }
-    String innerNameByLevel =
-        RSchemaUtils.getLevelPath(pathPattern.getNodes(), pathPattern.getNodeLength() - 1, level);
-    AtomicInteger atomicInteger = new AtomicInteger(0);
-    Function<String, Boolean> function =
-        s -> {
-          atomicInteger.incrementAndGet();
-          return true;
-        };
-    Arrays.stream(ALL_NODE_TYPE_ARRAY)
-        .parallel()
-        .forEach(
-            x -> {
-              String getKeyByInnerNameLevel =
-                  x + innerNameByLevel + RSchemaConstants.PATH_SEPARATOR + level;
-              readWriteHandler.getKeyByPrefix(getKeyByInnerNameLevel, function);
-            });
-
-    return atomicInteger.get();
-  }
-
   @Override
   public Map<PartialPath, Integer> getMeasurementCountGroupByLevel(
       PartialPath pathPattern, int level, boolean isPrefixMatch) throws MetadataException {
@@ -1050,8 +1014,7 @@ public class RSchemaRegion implements ISchemaRegion {
 
   @Override
   public List<PartialPath> getNodesListInGivenLevel(
-      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch, StorageGroupFilter filter)
-      throws MetadataException {
+      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch) throws MetadataException {
     if (pathPattern.getFullPath().contains(IoTDBConstant.ONE_LEVEL_PATH_WILDCARD)) {
       throw new UnsupportedOperationException(
           formatNotSupportInfo(Thread.currentThread().getStackTrace()[1].getMethodName()));
diff --git a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/REntityMNode.java b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/REntityMNode.java
index 8d74e21891..4fedc54239 100644
--- a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/REntityMNode.java
+++ b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/REntityMNode.java
@@ -20,7 +20,6 @@
 package org.apache.iotdb.db.metadata.schemaregion.rocksdb.mnode;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.metadata.logfile.MLogWriter;
 import org.apache.iotdb.db.metadata.mnode.IEntityMNode;
 import org.apache.iotdb.db.metadata.mnode.IMeasurementMNode;
 import org.apache.iotdb.db.metadata.mnode.MNodeType;
@@ -31,7 +30,6 @@ import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
 import org.rocksdb.RocksDBException;
 
-import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.Map;
 
@@ -133,7 +131,4 @@ public class REntityMNode extends RInternalMNode implements IEntityMNode {
   public MNodeType getMNodeType(Boolean isConfig) {
     return MNodeType.DEVICE;
   }
-
-  @Override
-  public void serializeTo(MLogWriter logWriter) throws IOException {}
 }
diff --git a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RInternalMNode.java b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RInternalMNode.java
index 4b9680472f..cff6733d21 100644
--- a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RInternalMNode.java
+++ b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RInternalMNode.java
@@ -20,7 +20,6 @@
 package org.apache.iotdb.db.metadata.schemaregion.rocksdb.mnode;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.metadata.logfile.MLogWriter;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
 import org.apache.iotdb.db.metadata.mnode.MNodeType;
 import org.apache.iotdb.db.metadata.mnode.container.IMNodeContainer;
@@ -30,8 +29,6 @@ import org.apache.iotdb.db.metadata.schemaregion.rocksdb.RSchemaUtils;
 
 import org.rocksdb.RocksDBException;
 
-import java.io.IOException;
-
 public class RInternalMNode extends RMNode {
 
   private volatile boolean useTemplate = false;
@@ -171,9 +168,4 @@ public class RInternalMNode extends RMNode {
   public void setUseTemplate(boolean useTemplate) {
     this.useTemplate = useTemplate;
   }
-
-  @Override
-  public void serializeTo(MLogWriter logWriter) throws IOException {
-    throw new UnsupportedOperationException();
-  }
 }
diff --git a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RMeasurementMNode.java b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RMeasurementMNode.java
index 4ad39a9b62..c13879c552 100644
--- a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RMeasurementMNode.java
+++ b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RMeasurementMNode.java
@@ -21,7 +21,6 @@ package org.apache.iotdb.db.metadata.schemaregion.rocksdb.mnode;
 
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.MeasurementPath;
-import org.apache.iotdb.db.metadata.logfile.MLogWriter;
 import org.apache.iotdb.db.metadata.mnode.IEntityMNode;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
 import org.apache.iotdb.db.metadata.mnode.IMeasurementMNode;
@@ -136,11 +135,6 @@ public class RMeasurementMNode extends RMNode implements IMeasurementMNode {
   @Override
   public void setPreDeleted(boolean preDeleted) {}
 
-  @Override
-  public void serializeTo(MLogWriter logWriter) throws IOException {
-    throw new UnsupportedOperationException();
-  }
-
   private void deserialize(byte[] value) {
     ByteBuffer byteBuffer = ByteBuffer.wrap(value);
     // skip the version flag and node type flag
diff --git a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RStorageGroupMNode.java b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RStorageGroupMNode.java
index ccb7cb21df..aac3de5a11 100644
--- a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RStorageGroupMNode.java
+++ b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RStorageGroupMNode.java
@@ -22,7 +22,6 @@ package org.apache.iotdb.db.metadata.schemaregion.rocksdb.mnode;
 import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
-import org.apache.iotdb.db.metadata.logfile.MLogWriter;
 import org.apache.iotdb.db.metadata.mnode.IStorageGroupMNode;
 import org.apache.iotdb.db.metadata.mnode.MNodeType;
 import org.apache.iotdb.db.metadata.schemaregion.rocksdb.RSchemaConstants;
@@ -31,8 +30,6 @@ import org.apache.iotdb.db.metadata.schemaregion.rocksdb.RSchemaUtils;
 
 import org.rocksdb.RocksDBException;
 
-import java.io.IOException;
-
 public class RStorageGroupMNode extends RInternalMNode implements IStorageGroupMNode {
 
   private long dataTTL;
@@ -92,11 +89,6 @@ public class RStorageGroupMNode extends RInternalMNode implements IStorageGroupM
     return MNodeType.STORAGE_GROUP;
   }
 
-  @Override
-  public void serializeTo(MLogWriter logWriter) throws IOException {
-    throw new UnsupportedOperationException();
-  }
-
   @Override
   public long getDataTTL() {
     return dataTTL;
diff --git a/schema-engine-tag/src/main/java/org/apache/iotdb/db/metadata/tagSchemaRegion/TagSchemaRegion.java b/schema-engine-tag/src/main/java/org/apache/iotdb/db/metadata/tagSchemaRegion/TagSchemaRegion.java
index 996e9418cf..0d2260eee5 100644
--- a/schema-engine-tag/src/main/java/org/apache/iotdb/db/metadata/tagSchemaRegion/TagSchemaRegion.java
+++ b/schema-engine-tag/src/main/java/org/apache/iotdb/db/metadata/tagSchemaRegion/TagSchemaRegion.java
@@ -33,7 +33,6 @@ import org.apache.iotdb.db.exception.metadata.AlignedTimeseriesException;
 import org.apache.iotdb.db.exception.metadata.PathAlreadyExistException;
 import org.apache.iotdb.db.exception.metadata.PathNotExistException;
 import org.apache.iotdb.db.exception.metadata.SchemaDirCreationFailureException;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
 import org.apache.iotdb.db.metadata.idtable.entry.DeviceEntry;
 import org.apache.iotdb.db.metadata.idtable.entry.DiskSchemaEntry;
 import org.apache.iotdb.db.metadata.idtable.entry.IDeviceID;
@@ -44,7 +43,6 @@ import org.apache.iotdb.db.metadata.mnode.IMNode;
 import org.apache.iotdb.db.metadata.mnode.IMeasurementMNode;
 import org.apache.iotdb.db.metadata.mnode.IStorageGroupMNode;
 import org.apache.iotdb.db.metadata.plan.schemaregion.write.IActivateTemplateInClusterPlan;
-import org.apache.iotdb.db.metadata.plan.schemaregion.write.IAutoCreateDeviceMNodePlan;
 import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateAlignedTimeSeriesPlan;
 import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateTimeSeriesPlan;
 import org.apache.iotdb.db.metadata.plan.schemaregion.write.IDeactivateTemplatePlan;
@@ -349,9 +347,6 @@ public class TagSchemaRegion implements ISchemaRegion {
     throw new UnsupportedOperationException("deleteTimeseriesInBlackList");
   }
 
-  @Override
-  public void autoCreateDeviceMNode(IAutoCreateDeviceMNodePlan plan) throws MetadataException {}
-
   @Override
   public boolean isPathExist(PartialPath path) throws MetadataException {
     throw new UnsupportedOperationException("isPathExist");
@@ -417,19 +412,9 @@ public class TagSchemaRegion implements ISchemaRegion {
     }
   }
 
-  @Override
-  public int getNodesCountInGivenLevel(PartialPath pathPattern, int level, boolean isPrefixMatch)
-      throws MetadataException {
-    throw new UnsupportedOperationException("getNodesCountInGivenLevel");
-  }
-
   @Override
   public List<PartialPath> getNodesListInGivenLevel(
-      PartialPath pathPattern,
-      int nodeLevel,
-      boolean isPrefixMatch,
-      LocalSchemaProcessor.StorageGroupFilter filter)
-      throws MetadataException {
+      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch) throws MetadataException {
     throw new UnsupportedOperationException("getNodesListInGivenLevel");
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/localconfignode/LocalConfigNode.java b/server/src/main/java/org/apache/iotdb/db/localconfignode/LocalConfigNode.java
index 8198b77005..c52d2b125d 100644
--- a/server/src/main/java/org/apache/iotdb/db/localconfignode/LocalConfigNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/localconfignode/LocalConfigNode.java
@@ -70,7 +70,6 @@ import org.apache.iotdb.db.exception.metadata.StorageGroupAlreadySetException;
 import org.apache.iotdb.db.exception.metadata.StorageGroupNotSetException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.exception.sql.StatementAnalyzeException;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
 import org.apache.iotdb.db.metadata.mnode.IStorageGroupMNode;
 import org.apache.iotdb.db.metadata.schemaregion.ISchemaRegion;
 import org.apache.iotdb.db.metadata.schemaregion.SchemaEngine;
@@ -437,42 +436,6 @@ public class LocalConfigNode {
     return storageGroupSchemaManager.getAllStorageGroupPaths();
   }
 
-  /**
-   * For a path, infer all databases it may belong to. The path can have wildcards. Resolve the path
-   * or path pattern into StorageGroupName-FullPath pairs that FullPath matches the given path.
-   *
-   * <p>Consider the path into two parts: (1) the sub path which can not contain a database name and
-   * (2) the sub path which is substring that begin after the database name.
-   *
-   * <p>(1) Suppose the part of the path can not contain a database name (e.g.,
-   * "root".contains("root.sg") == false), then: For each one level wildcard *, only one level will
-   * be inferred and the wildcard will be removed. For each multi level wildcard **, then the
-   * inference will go on until the databases are found and the wildcard will be kept. (2) Suppose
-   * the part of the path is a substring that begin after the database name. (e.g., For
-   * "root.*.sg1.a.*.b.*" and "root.x.sg1" is a database, then this part is "a.*.b.*"). For this
-   * part, keep what it is.
-   *
-   * <p>Assuming we have three SGs: root.group1, root.group2, root.area1.group3 Eg1: for input
-   * "root.**", returns ("root.group1", "root.group1.**"), ("root.group2", "root.group2.**")
-   * ("root.area1.group3", "root.area1.group3.**") Eg2: for input "root.*.s1", returns
-   * ("root.group1", "root.group1.s1"), ("root.group2", "root.group2.s1")
-   *
-   * <p>Eg3: for input "root.area1.**", returns ("root.area1.group3", "root.area1.group3.**")
-   *
-   * @param path can be a path pattern or a full path.
-   * @return StorageGroupName-FullPath pairs
-   * @apiNote :for cluster
-   */
-  public Map<String, List<PartialPath>> groupPathByStorageGroup(PartialPath path)
-      throws MetadataException {
-    Map<String, List<PartialPath>> sgPathMap =
-        storageGroupSchemaManager.groupPathByStorageGroup(path);
-    if (logger.isDebugEnabled()) {
-      logger.debug("The databases of path {} are {}", path, sgPathMap.keySet());
-    }
-    return sgPathMap;
-  }
-
   /**
    * get all storageGroups ttl
    *
@@ -498,13 +461,9 @@ public class LocalConfigNode {
    * @param isPrefixMatch if true, the path pattern is used to match prefix path
    */
   public Pair<List<PartialPath>, Set<PartialPath>> getNodesListInGivenLevel(
-      PartialPath pathPattern,
-      int nodeLevel,
-      boolean isPrefixMatch,
-      LocalSchemaProcessor.StorageGroupFilter filter)
-      throws MetadataException {
+      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch) throws MetadataException {
     return storageGroupSchemaManager.getNodesListInGivenLevel(
-        pathPattern, nodeLevel, isPrefixMatch, filter);
+        pathPattern, nodeLevel, isPrefixMatch);
   }
 
   /**
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/LocalSchemaProcessor.java b/server/src/main/java/org/apache/iotdb/db/metadata/LocalSchemaProcessor.java
index a7a08c9e9d..9e268f0144 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/LocalSchemaProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/LocalSchemaProcessor.java
@@ -69,7 +69,6 @@ import java.util.TreeSet;
 import java.util.stream.Stream;
 
 import static java.util.stream.Collectors.toList;
-import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR;
 
 /**
  * This class takes the responsibility of serialization of all the metadata info and persistent it
@@ -96,7 +95,6 @@ import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.PATH_SEPARA
  *       </ol>
  *   <li>Interfaces and methods for MNode query
  *   <li>Interfaces for alias and tag/attribute operations
- *   <li>Interfaces only for Cluster module usage
  *   <li>TestOnly Interfaces
  * </ol>
  */
@@ -346,11 +344,6 @@ public class LocalSchemaProcessor {
     }
   }
 
-  /** Get metadata in string */
-  public String getMetadataInString() {
-    return "Doesn't support metadata Tree toString since v0.14";
-  }
-
   // region Interfaces for metadata count
 
   /**
@@ -393,11 +386,6 @@ public class LocalSchemaProcessor {
     return num;
   }
 
-  /** To calculate the count of devices for given path pattern. */
-  public int getDevicesNum(PartialPath pathPattern) throws MetadataException {
-    return getDevicesNum(pathPattern, false);
-  }
-
   /**
    * To calculate the count of database for given path pattern. If using prefix match, the path
    * pattern is used to match prefix path. All timeseries start with the matched prefix path will be
@@ -422,17 +410,6 @@ public class LocalSchemaProcessor {
     return getNodesListInGivenLevel(pathPattern, level, isPrefixMatch).size();
   }
 
-  /**
-   * To calculate the count of nodes in the given level for given path pattern.
-   *
-   * @param pathPattern a path pattern or a full path
-   * @param level the level should match the level of the path
-   */
-  public int getNodesCountInGivenLevel(PartialPath pathPattern, int level)
-      throws MetadataException {
-    return getNodesCountInGivenLevel(pathPattern, level, false);
-  }
-
   public Map<PartialPath, Integer> getMeasurementCountGroupByLevel(
       PartialPath pathPattern, int level, boolean isPrefixMatch) throws MetadataException {
     Map<PartialPath, Integer> result = new HashMap<>();
@@ -463,31 +440,14 @@ public class LocalSchemaProcessor {
    * @param nodeLevel the level should match the level of the path
    * @return A List instance which stores all node at given level
    */
-  public List<PartialPath> getNodesListInGivenLevel(PartialPath pathPattern, int nodeLevel)
-      throws MetadataException {
-    return getNodesListInGivenLevel(pathPattern, nodeLevel, null);
-  }
-
-  public List<PartialPath> getNodesListInGivenLevel(
-      PartialPath pathPattern, int nodeLevel, StorageGroupFilter filter) throws MetadataException {
-    return getNodesListInGivenLevel(pathPattern, nodeLevel, false, filter);
-  }
-
   private List<PartialPath> getNodesListInGivenLevel(
       PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch) throws MetadataException {
-    return getNodesListInGivenLevel(pathPattern, nodeLevel, isPrefixMatch, null);
-  }
-
-  private List<PartialPath> getNodesListInGivenLevel(
-      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch, StorageGroupFilter filter)
-      throws MetadataException {
     Pair<List<PartialPath>, Set<PartialPath>> pair =
-        configManager.getNodesListInGivenLevel(pathPattern, nodeLevel, isPrefixMatch, filter);
+        configManager.getNodesListInGivenLevel(pathPattern, nodeLevel, isPrefixMatch);
     Set<PartialPath> result = new TreeSet<>(pair.left);
     for (PartialPath storageGroup : pair.right) {
       for (ISchemaRegion schemaRegion : getSchemaRegionsByStorageGroup(storageGroup)) {
-        result.addAll(
-            schemaRegion.getNodesListInGivenLevel(pathPattern, nodeLevel, isPrefixMatch, filter));
+        result.addAll(schemaRegion.getNodesListInGivenLevel(pathPattern, nodeLevel, isPrefixMatch));
       }
     }
     return new ArrayList<>(result);
@@ -601,15 +561,6 @@ public class LocalSchemaProcessor {
     return configManager.getAllStorageGroupPaths();
   }
 
-  /**
-   * get all storageGroups ttl
-   *
-   * @return key-> storageGroupPath, value->ttl
-   */
-  public Map<PartialPath, Long> getStorageGroupsTTL() {
-    return configManager.getStorageGroupsTTL();
-  }
-
   // endregion
 
   // region Interfaces for Entity/Device info Query
@@ -849,26 +800,6 @@ public class LocalSchemaProcessor {
       throw new PathNotExistException(fullPath.getFullPath());
     }
   }
-
-  /**
-   * Invoked during insertPlan process. Get target MeasurementMNode from given EntityMNode. If the
-   * result is not null and is not MeasurementMNode, it means a timeseries with same path cannot be
-   * created thus throw PathAlreadyExistException.
-   */
-  protected IMeasurementMNode getMeasurementMNode(IMNode deviceMNode, String measurementName)
-      throws MetadataException {
-    IMNode result = deviceMNode.getChild(measurementName);
-    if (result == null) {
-      return null;
-    }
-
-    if (result.isMeasurement()) {
-      return result.getAsMeasurementMNode();
-    } else {
-      throw new PathAlreadyExistException(
-          deviceMNode.getFullPath() + PATH_SEPARATOR + measurementName);
-    }
-  }
   // endregion
 
   // region Interfaces for alias and tag/attribute operations
@@ -896,17 +827,6 @@ public class LocalSchemaProcessor {
         .upsertTagsAndAttributes(alias, tagsMap, attributesMap, fullPath);
   }
 
-  /**
-   * add new attributes key-value for the timeseries
-   *
-   * @param attributesMap newly added attributes map
-   * @param fullPath timeseries
-   */
-  public void addAttributes(Map<String, String> attributesMap, PartialPath fullPath)
-      throws MetadataException, IOException {
-    getBelongedSchemaRegion(fullPath).addAttributes(attributesMap, fullPath);
-  }
-
   /**
    * add new tags key-value for the timeseries
    *
@@ -917,96 +837,6 @@ public class LocalSchemaProcessor {
       throws MetadataException, IOException {
     getBelongedSchemaRegion(fullPath).addTags(tagsMap, fullPath);
   }
-
-  /**
-   * drop tags or attributes of the timeseries
-   *
-   * @param keySet tags key or attributes key
-   * @param fullPath timeseries path
-   */
-  @SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
-  public void dropTagsOrAttributes(Set<String> keySet, PartialPath fullPath)
-      throws MetadataException, IOException {
-    getBelongedSchemaRegion(fullPath).dropTagsOrAttributes(keySet, fullPath);
-  }
-
-  /**
-   * set/change the values of tags or attributes
-   *
-   * @param alterMap the new tags or attributes key-value
-   * @param fullPath timeseries
-   */
-  @SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
-  public void setTagsOrAttributesValue(Map<String, String> alterMap, PartialPath fullPath)
-      throws MetadataException, IOException {
-    getBelongedSchemaRegion(fullPath).setTagsOrAttributesValue(alterMap, fullPath);
-  }
-
-  /**
-   * rename the tag or attribute's key of the timeseries
-   *
-   * @param oldKey old key of tag or attribute
-   * @param newKey new key of tag or attribute
-   * @param fullPath timeseries
-   */
-  @SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
-  public void renameTagOrAttributeKey(String oldKey, String newKey, PartialPath fullPath)
-      throws MetadataException, IOException {
-    getBelongedSchemaRegion(fullPath).renameTagOrAttributeKey(oldKey, newKey, fullPath);
-  }
-  // endregion
-
-  // region Interfaces only for Cluster module usage
-
-  /**
-   * For a path, infer all databases it may belong to. The path can have wildcards. Resolve the path
-   * or path pattern into StorageGroupName-FullPath pairs that FullPath matches the given path.
-   *
-   * <p>Consider the path into two parts: (1) the sub path which can not contain a database name and
-   * (2) the sub path which is substring that begin after the database name.
-   *
-   * <p>(1) Suppose the part of the path can not contain a database name (e.g.,
-   * "root".contains("root.sg") == false), then: For each one level wildcard *, only one level will
-   * be inferred and the wildcard will be removed. For each multi level wildcard **, then the
-   * inference will go on until the databases are found and the wildcard will be kept. (2) Suppose
-   * the part of the path is a substring that begin after the database name. (e.g., For
-   * "root.*.sg1.a.*.b.*" and "root.x.sg1" is a database, then this part is "a.*.b.*"). For this
-   * part, keep what it is.
-   *
-   * <p>Assuming we have three SGs: root.group1, root.group2, root.area1.group3 Eg1: for input
-   * "root.**", returns ("root.group1", "root.group1.**"), ("root.group2", "root.group2.**")
-   * ("root.area1.group3", "root.area1.group3.**") Eg2: for input "root.*.s1", returns
-   * ("root.group1", "root.group1.s1"), ("root.group2", "root.group2.s1")
-   *
-   * <p>Eg3: for input "root.area1.**", returns ("root.area1.group3", "root.area1.group3.**")
-   *
-   * @param path can be a path pattern or a full path.
-   * @return StorageGroupName-FullPath pairs
-   * @apiNote :for cluster
-   */
-  public Map<String, List<PartialPath>> groupPathByStorageGroup(PartialPath path)
-      throws MetadataException {
-    return configManager.groupPathByStorageGroup(path);
-  }
-
-  /**
-   * if the path is in local mtree, nothing needed to do (because mtree is in the memory); Otherwise
-   * cache the path to mRemoteSchemaCache
-   */
-  public void cacheMeta(
-      PartialPath path, IMeasurementMNode measurementMNode, boolean needSetFullPath) {
-    // do nothing
-  }
-
-  /**
-   * StorageGroupFilter filters unsatisfied databases in metadata queries to speed up and
-   * deduplicate.
-   */
-  @FunctionalInterface
-  public interface StorageGroupFilter {
-
-    boolean satisfy(String storageGroup);
-  }
   // endregion
 
   // region TestOnly Interfaces
@@ -1020,24 +850,5 @@ public class LocalSchemaProcessor {
   public long getTotalSeriesNumber() {
     return SchemaStatisticsManager.getInstance().getTotalSeriesNumber();
   }
-
-  /**
-   * To reduce the String number in memory, use the deviceId from SchemaProcessor instead of the
-   * deviceId read from disk
-   *
-   * @param devicePath read from disk
-   * @return deviceId
-   */
-  @TestOnly
-  public String getDeviceId(PartialPath devicePath) {
-    String device = null;
-    try {
-      IMNode deviceNode = getDeviceNode(devicePath);
-      device = deviceNode.getFullPath();
-    } catch (MetadataException | NullPointerException e) {
-      // Cannot get deviceId from SchemaProcessor, return the input deviceId
-    }
-    return device;
-  }
   // endregion
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/idtable/entry/InsertMeasurementMNode.java b/server/src/main/java/org/apache/iotdb/db/metadata/idtable/entry/InsertMeasurementMNode.java
index f079350c68..285000cda2 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/idtable/entry/InsertMeasurementMNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/idtable/entry/InsertMeasurementMNode.java
@@ -21,7 +21,6 @@ package org.apache.iotdb.db.metadata.idtable.entry;
 
 import org.apache.iotdb.commons.path.MeasurementPath;
 import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.metadata.logfile.MLogWriter;
 import org.apache.iotdb.db.metadata.mnode.IEntityMNode;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
 import org.apache.iotdb.db.metadata.mnode.IMeasurementMNode;
@@ -236,11 +235,6 @@ public class InsertMeasurementMNode implements IMeasurementMNode {
     throw new UnsupportedOperationException("insert measurement mnode doesn't support this method");
   }
 
-  @Override
-  public void serializeTo(MLogWriter logWriter) {
-    throw new UnsupportedOperationException("insert measurement mnode doesn't support this method");
-  }
-
   @Override
   public CacheEntry getCacheEntry() {
     return null;
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/logfile/MLogTxtReader.java b/server/src/main/java/org/apache/iotdb/db/metadata/logfile/MLogTxtReader.java
deleted file mode 100644
index aa881b2510..0000000000
--- a/server/src/main/java/org/apache/iotdb/db/metadata/logfile/MLogTxtReader.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.db.metadata.logfile;
-
-import org.apache.iotdb.commons.file.SystemFileFactory;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-
-/** reader for reading mlog.txt */
-public class MLogTxtReader implements AutoCloseable {
-  private static final Logger logger = LoggerFactory.getLogger(MLogTxtReader.class);
-
-  private BufferedReader bufferedReader;
-  private File logFile;
-  private String cmd;
-
-  public MLogTxtReader(String schemaDir, String logFileName) throws IOException {
-    File metadataDir = SystemFileFactory.INSTANCE.getFile(schemaDir);
-    if (!metadataDir.exists()) {
-      logger.error("no mlog.txt to init SchemaRegion.");
-      throw new IOException("mlog.txt does not exist.");
-    }
-
-    logFile = SystemFileFactory.INSTANCE.getFile(schemaDir + File.separator + logFileName);
-    bufferedReader = new BufferedReader(new FileReader(logFile));
-  }
-
-  public String next() {
-    String ret = cmd;
-    cmd = null;
-    return ret;
-  }
-
-  public boolean hasNext() {
-    if (cmd != null) {
-      return true;
-    }
-    try {
-      return (cmd = bufferedReader.readLine()) != null;
-    } catch (IOException e) {
-      logger.warn("Read mlog error.");
-      cmd = null;
-      return false;
-    }
-  }
-
-  @Override
-  public void close() {
-    try {
-      bufferedReader.close();
-    } catch (IOException e) {
-      logger.error("Failed to close mlog.txt");
-    }
-  }
-}
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
deleted file mode 100644
index 34f35b5efa..0000000000
--- a/server/src/main/java/org/apache/iotdb/db/metadata/logfile/MLogTxtWriter.java
+++ /dev/null
@@ -1,458 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.metadata.logfile;
-
-import org.apache.iotdb.commons.file.SystemFileFactory;
-import org.apache.iotdb.db.metadata.MetadataConstant;
-import org.apache.iotdb.db.qp.physical.sys.ActivateTemplatePlan;
-import org.apache.iotdb.db.qp.physical.sys.AppendTemplatePlan;
-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.CreateTemplatePlan;
-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.DropTemplatePlan;
-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.PruneTemplatePlan;
-import org.apache.iotdb.db.qp.physical.sys.SetTemplatePlan;
-import org.apache.iotdb.db.qp.physical.sys.StorageGroupMNodePlan;
-import org.apache.iotdb.db.qp.physical.sys.UnsetTemplatePlan;
-import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
-import org.apache.iotdb.tsfile.fileSystem.FSFactoryProducer;
-import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.channels.FileChannel;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.stream.Collectors;
-
-public class MLogTxtWriter implements AutoCloseable {
-
-  private static final Logger logger = LoggerFactory.getLogger(MLogTxtWriter.class);
-  private static final String STRING_TYPE = "%s,%s,%s" + System.lineSeparator();
-  private static final String LINE_SEPARATOR = System.lineSeparator();
-  private final File logFile;
-  private FileOutputStream fileOutputStream;
-  private FileChannel channel;
-  private final AtomicInteger lineNumber;
-
-  public MLogTxtWriter(String schemaDir, String logFileName) throws IOException {
-    File metadataDir = SystemFileFactory.INSTANCE.getFile(schemaDir);
-    if (!metadataDir.exists()) {
-      if (metadataDir.mkdirs()) {
-        logger.info("create schema folder {}.", metadataDir);
-      } else {
-        logger.info("create schema folder {} failed.", metadataDir);
-      }
-    }
-
-    logFile = SystemFileFactory.INSTANCE.getFile(schemaDir + File.separator + logFileName);
-    fileOutputStream = new FileOutputStream(logFile, true);
-    channel = fileOutputStream.getChannel();
-    lineNumber = new AtomicInteger(0);
-  }
-
-  public MLogTxtWriter(String logFileName) throws FileNotFoundException {
-    logFile = SystemFileFactory.INSTANCE.getFile(logFileName);
-    fileOutputStream = new FileOutputStream(logFile, true);
-    channel = fileOutputStream.getChannel();
-    lineNumber = new AtomicInteger(0);
-  }
-
-  @Override
-  public void close() throws IOException {
-    fileOutputStream.close();
-  }
-
-  public void createTimeseries(CreateTimeSeriesPlan plan, long offset) throws IOException {
-    StringBuilder buf = new StringBuilder();
-    buf.append(
-        String.format(
-            "%s,%s,%s,%s,%s",
-            MetadataOperationType.CREATE_TIMESERIES,
-            plan.getPath().getFullPath(),
-            plan.getDataType().serialize(),
-            plan.getEncoding().serialize(),
-            plan.getCompressor().serialize()));
-
-    buf.append(",");
-    if (plan.getProps() != null) {
-      boolean first = true;
-      for (Map.Entry<String, String> entry : plan.getProps().entrySet()) {
-        if (first) {
-          buf.append(String.format("%s=%s", entry.getKey(), entry.getValue()));
-          first = false;
-        } else {
-          buf.append(String.format("&%s=%s", entry.getKey(), entry.getValue()));
-        }
-      }
-    }
-
-    buf.append(",");
-    if (plan.getAlias() != null) {
-      buf.append(plan.getAlias());
-    }
-
-    buf.append(",");
-    if (offset >= 0) {
-      buf.append(offset);
-    }
-    buf.append(LINE_SEPARATOR);
-    channel.write(ByteBuffer.wrap(buf.toString().getBytes()));
-    lineNumber.incrementAndGet();
-  }
-
-  public void createAlignedTimeseries(CreateAlignedTimeSeriesPlan plan) throws IOException {
-    StringBuilder buf = new StringBuilder();
-    buf.append(
-        String.format(
-            "%s,%s,%s,%s,%s,%s",
-            MetadataOperationType.CREATE_ALIGNED_TIMESERIES,
-            plan.getDevicePath().getFullPath(),
-            plan.getMeasurements(),
-            plan.getDataTypes().stream().map(TSDataType::serialize).collect(Collectors.toList()),
-            plan.getEncodings().stream().map(TSEncoding::serialize).collect(Collectors.toList()),
-            plan.getCompressors().stream()
-                .map(CompressionType::serialize)
-                .collect(Collectors.toList())));
-
-    buf.append(",[");
-    if (plan.getAliasList() != null) {
-      List<String> aliasList = plan.getAliasList();
-      for (int i = 0; i < aliasList.size(); i++) {
-        buf.append(aliasList.get(i));
-        if (i != aliasList.size() - 1) {
-          buf.append(",");
-        }
-      }
-    }
-    buf.append("]");
-    buf.append(LINE_SEPARATOR);
-    channel.write(ByteBuffer.wrap(buf.toString().getBytes()));
-    lineNumber.incrementAndGet();
-  }
-
-  public void deleteTimeseries(String path) throws IOException {
-    String outputStr = MetadataOperationType.DELETE_TIMESERIES + "," + path + LINE_SEPARATOR;
-    ByteBuffer buff = ByteBuffer.wrap(outputStr.getBytes());
-    channel.write(buff);
-  }
-
-  public void createContinuousQuery(CreateContinuousQueryPlan plan) throws IOException {
-    String buf =
-        String.format(
-                "%s,%s,%s,%s",
-                MetadataOperationType.CREATE_CONTINUOUS_QUERY,
-                plan.getContinuousQueryName(),
-                plan.getQuerySql(),
-                plan.getTargetPath().getFullPath())
-            + LINE_SEPARATOR;
-    channel.write(ByteBuffer.wrap(buf.getBytes()));
-    lineNumber.incrementAndGet();
-  }
-
-  public void dropContinuousQuery(DropContinuousQueryPlan plan) throws IOException {
-
-    String buf =
-        String.format(
-                "%s,%s", MetadataOperationType.DROP_CONTINUOUS_QUERY, plan.getContinuousQueryName())
-            + LINE_SEPARATOR;
-    channel.write(ByteBuffer.wrap(buf.getBytes()));
-    lineNumber.incrementAndGet();
-  }
-
-  public void setStorageGroup(String storageGroup) throws IOException {
-    String outputStr =
-        MetadataOperationType.SET_STORAGE_GROUP + "," + storageGroup + LINE_SEPARATOR;
-    ByteBuffer buff = ByteBuffer.wrap(outputStr.getBytes());
-    channel.write(buff);
-    lineNumber.incrementAndGet();
-  }
-
-  public void deleteStorageGroup(String storageGroup) throws IOException {
-    String outputStr =
-        MetadataOperationType.DELETE_STORAGE_GROUP + "," + storageGroup + LINE_SEPARATOR;
-    ByteBuffer buff = ByteBuffer.wrap(outputStr.getBytes());
-    channel.write(buff);
-    lineNumber.incrementAndGet();
-  }
-
-  public void setTTL(String storageGroup, long ttl) throws IOException {
-    String outputStr = String.format(STRING_TYPE, MetadataOperationType.SET_TTL, storageGroup, ttl);
-    ByteBuffer buff = ByteBuffer.wrap(outputStr.getBytes());
-    channel.write(buff);
-    lineNumber.incrementAndGet();
-  }
-
-  public void changeOffset(String path, long offset) throws IOException {
-    String outputStr =
-        String.format(STRING_TYPE, MetadataOperationType.CHANGE_OFFSET, path, offset);
-    ByteBuffer buff = ByteBuffer.wrap(outputStr.getBytes());
-    channel.write(buff);
-    lineNumber.incrementAndGet();
-  }
-
-  public void changeAlias(String path, String alias) throws IOException {
-    String outputStr = String.format(STRING_TYPE, MetadataOperationType.CHANGE_ALIAS, path, alias);
-    ByteBuffer buff = ByteBuffer.wrap(outputStr.getBytes());
-    channel.write(buff);
-    lineNumber.incrementAndGet();
-  }
-
-  public static void upgradeMLog(String schemaDir, String logFileName) throws IOException {
-    File logFile = SystemFileFactory.INSTANCE.getFile(schemaDir + File.separator + logFileName);
-    File tmpLogFile = SystemFileFactory.INSTANCE.getFile(logFile.getAbsolutePath() + ".tmp");
-
-    // if both old mlog and mlog.tmp do not exist, nothing to do
-    if (!logFile.exists() && !tmpLogFile.exists()) {
-      return;
-    } else if (!logFile.exists() && tmpLogFile.exists()) {
-      // if old mlog doesn't exsit but mlog.tmp exists, rename tmp file to mlog
-      FSFactoryProducer.getFSFactory().moveFile(tmpLogFile, logFile);
-      return;
-    }
-
-    // if both old mlog and mlog.tmp exist, delete mlog tmp, then do upgrading
-    if (tmpLogFile.exists()) {
-      try {
-        Files.delete(Paths.get(tmpLogFile.toURI()));
-      } catch (IOException e) {
-        throw new IOException("Deleting " + tmpLogFile + "failed with exception " + e.getMessage());
-      }
-    }
-    // upgrading
-    try (BufferedReader reader = new BufferedReader(new FileReader(logFile));
-        BufferedWriter writer = new BufferedWriter(new FileWriter(tmpLogFile, true))) {
-      String line;
-      while ((line = reader.readLine()) != null) {
-        StringBuilder buf = new StringBuilder();
-        buf.append(line);
-        if (line.startsWith(MetadataOperationType.CREATE_TIMESERIES)) {
-          buf.append(",,,");
-        }
-        writer.write(buf.toString());
-        writer.newLine();
-        writer.flush();
-      }
-    }
-  }
-
-  public void clear() throws IOException {
-    channel.force(true);
-    channel.close();
-    fileOutputStream.close();
-    Files.delete(logFile.toPath());
-    fileOutputStream = new FileOutputStream(logFile, true);
-    channel = fileOutputStream.getChannel();
-    lineNumber.set(0);
-  }
-
-  public void serializeMNode(MNodePlan plan) throws IOException {
-    StringBuilder s = new StringBuilder(String.valueOf(MetadataConstant.STORAGE_GROUP_MNODE_TYPE));
-    s.append(",").append(plan.getName()).append(",");
-    s.append(plan.getChildSize());
-    s.append(LINE_SEPARATOR);
-    ByteBuffer buff = ByteBuffer.wrap(s.toString().getBytes());
-    channel.write(buff);
-    lineNumber.incrementAndGet();
-  }
-
-  public void serializeMeasurementMNode(MeasurementMNodePlan plan) throws IOException {
-    StringBuilder s = new StringBuilder(String.valueOf(MetadataConstant.MEASUREMENT_MNODE_TYPE));
-    s.append(",").append(plan.getName()).append(",");
-    if (plan.getAlias() != null) {
-      s.append(plan.getAlias());
-    }
-    IMeasurementSchema schema = plan.getSchema();
-    s.append(",").append(schema.getType().ordinal()).append(",");
-    s.append(schema.getEncodingType().ordinal()).append(",");
-    s.append(schema.getCompressor().ordinal()).append(",");
-    if (schema.getProps() != null) {
-      for (Map.Entry<String, String> entry : schema.getProps().entrySet()) {
-        s.append(entry.getKey()).append(":").append(entry.getValue()).append(";");
-      }
-    }
-    s.append(",").append(plan.getOffset()).append(",");
-    s.append(plan.getChildSize());
-    s.append(LINE_SEPARATOR);
-    ByteBuffer buff = ByteBuffer.wrap(s.toString().getBytes());
-    channel.write(buff);
-    lineNumber.incrementAndGet();
-  }
-
-  public void serializeStorageGroupMNode(StorageGroupMNodePlan plan) throws IOException {
-    StringBuilder s = new StringBuilder(String.valueOf(MetadataConstant.STORAGE_GROUP_MNODE_TYPE));
-    s.append(",").append(plan.getName()).append(",");
-    s.append(plan.getDataTTL()).append(",");
-    s.append(plan.getChildSize());
-    s.append(LINE_SEPARATOR);
-    ByteBuffer buff = ByteBuffer.wrap(s.toString().getBytes());
-    channel.write(buff);
-    lineNumber.incrementAndGet();
-  }
-
-  public void setTemplate(SetTemplatePlan plan) throws IOException {
-    StringBuilder buf = new StringBuilder(String.valueOf(MetadataOperationType.SET_TEMPLATE));
-    buf.append(",");
-    buf.append(plan.getTemplateName());
-    buf.append(",");
-    buf.append(plan.getPrefixPath());
-    buf.append(LINE_SEPARATOR);
-    ByteBuffer buff = ByteBuffer.wrap(buf.toString().getBytes());
-    channel.write(buff);
-    lineNumber.incrementAndGet();
-  }
-
-  public void unsetTemplate(UnsetTemplatePlan plan) throws IOException {
-    StringBuilder buf = new StringBuilder(String.valueOf(MetadataOperationType.UNSET_TEMPLATE));
-    buf.append(",");
-    buf.append(plan.getTemplateName());
-    buf.append(",");
-    buf.append(plan.getPrefixPath());
-    buf.append(LINE_SEPARATOR);
-    ByteBuffer buff = ByteBuffer.wrap(buf.toString().getBytes());
-    channel.write(buff);
-    lineNumber.incrementAndGet();
-  }
-
-  public void dropTemplate(DropTemplatePlan plan) throws IOException {
-    StringBuilder buf = new StringBuilder(String.valueOf(MetadataOperationType.DROP_TEMPLATE));
-    buf.append(",");
-    buf.append(plan.getName());
-    buf.append(LINE_SEPARATOR);
-    ByteBuffer buff = ByteBuffer.wrap(buf.toString().getBytes());
-    channel.write(buff);
-    lineNumber.incrementAndGet();
-  }
-
-  public void setUsingTemplate(ActivateTemplatePlan plan) throws IOException {
-    StringBuilder buf = new StringBuilder(String.valueOf(MetadataOperationType.SET_USING_TEMPLATE));
-    buf.append(",");
-    buf.append(plan.getPrefixPath());
-    buf.append(LINE_SEPARATOR);
-    ByteBuffer buff = ByteBuffer.wrap(buf.toString().getBytes());
-    channel.write(buff);
-    lineNumber.incrementAndGet();
-  }
-
-  public void createSchemaTemplate(CreateTemplatePlan plan) throws IOException {
-    // CreateTemplatePlan txt Log be like:
-    // OperationType,templateName[,measurementPath,isAlign,dataType,encoding,compressor]
-    StringBuilder buf = new StringBuilder();
-    buf.append(MetadataOperationType.CREATE_TEMPLATE);
-    buf.append(",");
-    buf.append(plan.getName());
-    for (int i = 0; i < plan.getMeasurements().size(); i++) {
-      for (int j = 0; j < plan.getMeasurements().get(i).size(); j++) {
-        String measurement;
-        boolean isAligned = false;
-        if (plan.getMeasurements().get(i).size() == 1) {
-          measurement = plan.getMeasurements().get(i).get(0);
-        } else {
-          // for aligned timeseries
-          isAligned = true;
-          measurement = plan.getMeasurements().get(i).get(j);
-        }
-        buf.append(
-            String.format(
-                ",%s,%s,%s,%s,%s",
-                measurement,
-                isAligned ? 1 : 0,
-                plan.getDataTypes().get(i).get(j).serialize(),
-                plan.getEncodings().get(i).get(j).serialize(),
-                plan.getCompressors().get(i).get(j).serialize()));
-      }
-    }
-    buf.append(LINE_SEPARATOR);
-    lineNumber.incrementAndGet();
-    ByteBuffer buff = ByteBuffer.wrap(buf.toString().getBytes());
-    channel.write(buff);
-  }
-
-  public void appendTemplate(AppendTemplatePlan plan) throws IOException {
-    // AppendTemplatePlan txt Log be like:
-    // OperationType,templateName,isAlign[,measurementPath,dataType,encoding,compressor]
-    StringBuilder buf = new StringBuilder();
-    buf.append(MetadataOperationType.APPEND_TEMPLATE);
-    buf.append(plan.getName());
-    buf.append(plan.isAligned());
-    for (int i = 0; i < plan.getMeasurements().size(); i++) {
-      buf.append(
-          String.format(
-              ",%s,%s,%s,%s",
-              plan.getMeasurements().get(i),
-              plan.getDataTypes().get(i).serialize(),
-              plan.getEncodings().get(i).serialize(),
-              plan.getCompressors().get(i).serialize()));
-    }
-    buf.append(LINE_SEPARATOR);
-    lineNumber.incrementAndGet();
-    ByteBuffer buff = ByteBuffer.wrap(buf.toString().getBytes());
-    channel.write(buff);
-  }
-
-  public void pruneTemplate(PruneTemplatePlan plan) throws IOException {
-    // PruneTemplatePlan txt Log be like:
-    // OperationType,templateName[,measurementPath]
-    StringBuilder buf = new StringBuilder();
-    buf.append(MetadataOperationType.PRUNE_TEMPLATE);
-    buf.append(plan.getName());
-    for (int i = 0; i < plan.getPrunedMeasurements().size(); i++) {
-      buf.append(plan.getPrunedMeasurements().get(i));
-    }
-    buf.append(LINE_SEPARATOR);
-    lineNumber.incrementAndGet();
-    ByteBuffer buff = ByteBuffer.wrap(buf.toString().getBytes());
-    channel.write(buff);
-  }
-
-  public void autoCreateDeviceNode(String Device) throws IOException {
-    String outputStr = MetadataOperationType.AUTO_CREATE_DEVICE + "," + Device + LINE_SEPARATOR;
-    ByteBuffer buff = ByteBuffer.wrap(outputStr.getBytes());
-    channel.write(buff);
-    lineNumber.incrementAndGet();
-  }
-
-  int getLineNumber() {
-    return lineNumber.get();
-  }
-
-  /** only used for initialize a mlog file writer. */
-  void setLineNumber(int number) {
-    lineNumber.set(number);
-  }
-}
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 a4c4473b8d..a53cc4c6cb 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
@@ -19,12 +19,10 @@
 package org.apache.iotdb.db.metadata.mnode;
 
 import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.metadata.logfile.MLogWriter;
 import org.apache.iotdb.db.metadata.mnode.container.IMNodeContainer;
 import org.apache.iotdb.db.metadata.mnode.visitor.MNodeVisitor;
 import org.apache.iotdb.db.metadata.mtree.store.disk.cache.CacheEntry;
 
-import java.io.IOException;
 import java.io.Serializable;
 
 /** This interface defines a MNode's operation interfaces. */
@@ -95,8 +93,6 @@ public interface IMNode extends Serializable {
 
   IMeasurementMNode getAsMeasurementMNode();
 
-  void serializeTo(MLogWriter logWriter) throws IOException;
-
   CacheEntry getCacheEntry();
 
   void setCacheEntry(CacheEntry cacheEntry);
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 3b34ef08ad..ab1b0cce21 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
@@ -18,13 +18,9 @@
  */
 package org.apache.iotdb.db.metadata.mnode;
 
-import org.apache.iotdb.db.metadata.logfile.MLogWriter;
 import org.apache.iotdb.db.metadata.mnode.container.IMNodeContainer;
 import org.apache.iotdb.db.metadata.mnode.container.MNodeContainers;
 import org.apache.iotdb.db.metadata.mnode.visitor.MNodeVisitor;
-import org.apache.iotdb.db.qp.physical.sys.MNodePlan;
-
-import java.io.IOException;
 
 import static org.apache.iotdb.db.metadata.MetadataConstant.NON_TEMPLATE;
 
@@ -246,28 +242,8 @@ public class InternalMNode extends MNode {
     this.useTemplate = useTemplate;
   }
 
-  @Override
-  public void serializeTo(MLogWriter logWriter) throws IOException {
-    serializeChildren(logWriter);
-
-    logWriter.serializeMNode(this);
-  }
-
   @Override
   public <R, C> R accept(MNodeVisitor<R, C> visitor, C context) {
     return visitor.visitInternalMNode(this, context);
   }
-
-  void serializeChildren(MLogWriter logWriter) throws IOException {
-    if (children == null) {
-      return;
-    }
-    for (IMNode child : children.values()) {
-      child.serializeTo(logWriter);
-    }
-  }
-
-  public static InternalMNode deserializeFrom(MNodePlan plan) {
-    return new InternalMNode(null, plan.getName());
-  }
 }
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 eeab5fff39..9b223ba2fc 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
@@ -19,19 +19,15 @@
 package org.apache.iotdb.db.metadata.mnode;
 
 import org.apache.iotdb.commons.path.MeasurementPath;
-import org.apache.iotdb.db.metadata.logfile.MLogWriter;
 import org.apache.iotdb.db.metadata.mnode.container.IMNodeContainer;
 import org.apache.iotdb.db.metadata.mnode.container.MNodeContainers;
 import org.apache.iotdb.db.metadata.mnode.visitor.MNodeVisitor;
-import org.apache.iotdb.db.qp.physical.sys.MeasurementMNodePlan;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-
 public class MeasurementMNode extends MNode implements IMeasurementMNode {
 
   private static final Logger logger = LoggerFactory.getLogger(MeasurementMNode.class);
@@ -128,25 +124,11 @@ public class MeasurementMNode extends MNode implements IMeasurementMNode {
     this.preDeleted = preDeleted;
   }
 
-  @Override
-  public void serializeTo(MLogWriter logWriter) throws IOException {
-    logWriter.serializeMeasurementMNode(this);
-  }
-
   @Override
   public <R, C> R accept(MNodeVisitor<R, C> visitor, C context) {
     return visitor.visitMeasurementMNode(this, context);
   }
 
-  /** deserialize MeasurementMNode from MeasurementNodePlan */
-  public static IMeasurementMNode deserializeFrom(MeasurementMNodePlan plan) {
-    IMeasurementMNode node =
-        MeasurementMNode.getMeasurementMNode(
-            null, plan.getName(), plan.getSchema(), plan.getAlias());
-    node.setOffset(plan.getOffset());
-    return node;
-  }
-
   @Override
   public String getFullPath() {
     if (fullPath != null) {
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/StorageGroupEntityMNode.java b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/StorageGroupEntityMNode.java
index 384de8aa56..5f9d50cca8 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/StorageGroupEntityMNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/StorageGroupEntityMNode.java
@@ -19,11 +19,8 @@
 package org.apache.iotdb.db.metadata.mnode;
 
 import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
-import org.apache.iotdb.db.metadata.logfile.MLogWriter;
 import org.apache.iotdb.db.metadata.mnode.visitor.MNodeVisitor;
 
-import java.io.IOException;
-
 public class StorageGroupEntityMNode extends EntityMNode implements IStorageGroupMNode {
   /**
    * when the data file in a database is older than dataTTL, it is considered invalid and will be
@@ -86,13 +83,6 @@ public class StorageGroupEntityMNode extends EntityMNode implements IStorageGrou
     return MNodeType.STORAGE_GROUP;
   }
 
-  @Override
-  public void serializeTo(MLogWriter logWriter) throws IOException {
-    serializeChildren(logWriter);
-
-    logWriter.serializeStorageGroupMNode(this);
-  }
-
   @Override
   public <R, C> R accept(MNodeVisitor<R, C> visitor, C context) {
     return visitor.visitStorageGroupEntityMNode(this, context);
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 d14171550c..7fb6e90d03 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
@@ -19,11 +19,7 @@
 package org.apache.iotdb.db.metadata.mnode;
 
 import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
-import org.apache.iotdb.db.metadata.logfile.MLogWriter;
 import org.apache.iotdb.db.metadata.mnode.visitor.MNodeVisitor;
-import org.apache.iotdb.db.qp.physical.sys.StorageGroupMNodePlan;
-
-import java.io.IOException;
 
 public class StorageGroupMNode extends InternalMNode implements IStorageGroupMNode {
 
@@ -99,21 +95,6 @@ public class StorageGroupMNode extends InternalMNode implements IStorageGroupMNo
     return MNodeType.STORAGE_GROUP;
   }
 
-  @Override
-  public void serializeTo(MLogWriter logWriter) throws IOException {
-    serializeChildren(logWriter);
-
-    logWriter.serializeStorageGroupMNode(this);
-  }
-
-  public static StorageGroupMNode deserializeFrom(StorageGroupMNodePlan plan) {
-    return new StorageGroupMNode(null, plan.getName(), plan.getDataTTL());
-  }
-
-  public static StorageGroupMNode deserializeFrom(String[] nodeInfo) {
-    return new StorageGroupMNode(null, nodeInfo[1], Long.parseLong(nodeInfo[2]));
-  }
-
   @Override
   public <R, C> R accept(MNodeVisitor<R, C> visitor, C context) {
     return visitor.visitStorageGroupMNode(this, context);
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/ConfigMTree.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/ConfigMTree.java
index d35e30541a..f90e30ceb1 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/ConfigMTree.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/ConfigMTree.java
@@ -29,7 +29,6 @@ import org.apache.iotdb.commons.utils.ThriftConfigNodeSerDeUtils;
 import org.apache.iotdb.db.exception.metadata.PathNotExistException;
 import org.apache.iotdb.db.exception.metadata.StorageGroupAlreadySetException;
 import org.apache.iotdb.db.exception.metadata.StorageGroupNotSetException;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
 import org.apache.iotdb.db.metadata.mnode.IStorageGroupMNode;
 import org.apache.iotdb.db.metadata.mnode.InternalMNode;
@@ -490,11 +489,7 @@ public class ConfigMTree {
    * path pattern is used to match prefix path.
    */
   public Pair<List<PartialPath>, Set<PartialPath>> getNodesListInGivenLevel(
-      PartialPath pathPattern,
-      int nodeLevel,
-      boolean isPrefixMatch,
-      LocalSchemaProcessor.StorageGroupFilter filter)
-      throws MetadataException {
+      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch) throws MetadataException {
     MNodeAboveSGCollector<List<PartialPath>> collector =
         new MNodeAboveSGCollector<List<PartialPath>>(root, pathPattern, store) {
           @Override
@@ -505,7 +500,6 @@ public class ConfigMTree {
     collector.setResultSet(new LinkedList<>());
     collector.setTargetLevel(nodeLevel);
     collector.setPrefixMatch(isPrefixMatch);
-    collector.setStorageGroupFilter(filter);
     collector.traverse();
 
     return new Pair<>(collector.getResult(), collector.getInvolvedStorageGroupMNodes());
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/IMTreeBelowSG.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/IMTreeBelowSG.java
index 95e7fd58cf..9ce3cc0d13 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/IMTreeBelowSG.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/IMTreeBelowSG.java
@@ -22,7 +22,6 @@ import org.apache.iotdb.common.rpc.thrift.TSchemaNode;
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.MeasurementPath;
 import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
 import org.apache.iotdb.db.metadata.mnode.IEntityMNode;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
 import org.apache.iotdb.db.metadata.mnode.IMeasurementMNode;
@@ -239,11 +238,7 @@ public interface IMTreeBelowSG {
 
   /** Get all paths from root to the given level */
   List<PartialPath> getNodesListInGivenLevel(
-      PartialPath pathPattern,
-      int nodeLevel,
-      boolean isPrefixMatch,
-      LocalSchemaProcessor.StorageGroupFilter filter)
-      throws MetadataException;
+      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch) throws MetadataException;
 
   /**
    * Get the count of timeseries matching the given path.
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGCachedImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGCachedImpl.java
index c4587739d6..6f56317f3b 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGCachedImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGCachedImpl.java
@@ -33,7 +33,6 @@ import org.apache.iotdb.db.exception.metadata.PathAlreadyExistException;
 import org.apache.iotdb.db.exception.metadata.PathNotExistException;
 import org.apache.iotdb.db.exception.metadata.template.TemplateImcompatibeException;
 import org.apache.iotdb.db.exception.metadata.template.TemplateIsInUseException;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor.StorageGroupFilter;
 import org.apache.iotdb.db.metadata.MetadataConstant;
 import org.apache.iotdb.db.metadata.mnode.IEntityMNode;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
@@ -961,8 +960,7 @@ public class MTreeBelowSGCachedImpl implements IMTreeBelowSG {
   /** Get all paths from root to the given level */
   @Override
   public List<PartialPath> getNodesListInGivenLevel(
-      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch, StorageGroupFilter filter)
-      throws MetadataException {
+      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch) throws MetadataException {
     MNodeCollector<List<PartialPath>> collector =
         new MNodeCollector<List<PartialPath>>(storageGroupMNode, pathPattern, store) {
           @Override
@@ -973,7 +971,6 @@ public class MTreeBelowSGCachedImpl implements IMTreeBelowSG {
     collector.setResultSet(new LinkedList<>());
     collector.setTargetLevel(nodeLevel);
     collector.setPrefixMatch(isPrefixMatch);
-    collector.setStorageGroupFilter(filter);
     collector.traverse();
     return collector.getResult();
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGMemoryImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGMemoryImpl.java
index 0664964d8d..69d7efa79d 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGMemoryImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGMemoryImpl.java
@@ -33,7 +33,6 @@ import org.apache.iotdb.db.exception.metadata.PathAlreadyExistException;
 import org.apache.iotdb.db.exception.metadata.PathNotExistException;
 import org.apache.iotdb.db.exception.metadata.template.TemplateImcompatibeException;
 import org.apache.iotdb.db.exception.metadata.template.TemplateIsInUseException;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor.StorageGroupFilter;
 import org.apache.iotdb.db.metadata.MetadataConstant;
 import org.apache.iotdb.db.metadata.mnode.IEntityMNode;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
@@ -902,8 +901,7 @@ public class MTreeBelowSGMemoryImpl implements IMTreeBelowSG {
   /** Get all paths from root to the given level */
   @Override
   public List<PartialPath> getNodesListInGivenLevel(
-      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch, StorageGroupFilter filter)
-      throws MetadataException {
+      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch) throws MetadataException {
     MNodeCollector<List<PartialPath>> collector =
         new MNodeCollector<List<PartialPath>>(storageGroupMNode, pathPattern, store) {
           @Override
@@ -914,7 +912,6 @@ public class MTreeBelowSGMemoryImpl implements IMTreeBelowSG {
     collector.setResultSet(new LinkedList<>());
     collector.setTargetLevel(nodeLevel);
     collector.setPrefixMatch(isPrefixMatch);
-    collector.setStorageGroupFilter(filter);
     collector.traverse();
     return collector.getResult();
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/traverser/collector/MNodeCollector.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/traverser/collector/MNodeCollector.java
index aa70be9b3e..4b7ae272e5 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/traverser/collector/MNodeCollector.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/traverser/collector/MNodeCollector.java
@@ -20,7 +20,6 @@ package org.apache.iotdb.db.metadata.mtree.traverser.collector;
 
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor.StorageGroupFilter;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
 import org.apache.iotdb.db.metadata.mtree.store.IMTreeStore;
 
@@ -37,9 +36,6 @@ import java.util.Set;
  */
 public abstract class MNodeCollector<T> extends CollectorTraverser<T> {
 
-  // traverse for specific database
-  protected StorageGroupFilter storageGroupFilter = null;
-
   // level query option
   protected int targetLevel = -1;
 
@@ -50,16 +46,6 @@ public abstract class MNodeCollector<T> extends CollectorTraverser<T> {
     super(startNode, path, store);
   }
 
-  @Override
-  protected void traverse(IMNode node, int idx, int level) throws MetadataException {
-    if (storageGroupFilter != null
-        && node.isStorageGroup()
-        && !storageGroupFilter.satisfy(node.getFullPath())) {
-      return;
-    }
-    super.traverse(node, idx, level);
-  }
-
   @Override
   protected boolean processInternalMatchedMNode(IMNode node, int idx, int level) {
     return false;
@@ -95,10 +81,6 @@ public abstract class MNodeCollector<T> extends CollectorTraverser<T> {
 
   protected abstract void transferToResult(IMNode node);
 
-  public void setStorageGroupFilter(StorageGroupFilter storageGroupFilter) {
-    this.storageGroupFilter = storageGroupFilter;
-  }
-
   public void setTargetLevel(int targetLevel) {
     this.targetLevel = targetLevel;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/ISchemaRegion.java b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/ISchemaRegion.java
index ed6bea2417..fe70ec7238 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/ISchemaRegion.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/ISchemaRegion.java
@@ -25,11 +25,9 @@ import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.MeasurementPath;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.commons.path.PathPatternTree;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
 import org.apache.iotdb.db.metadata.mnode.IMeasurementMNode;
 import org.apache.iotdb.db.metadata.plan.schemaregion.write.IActivateTemplateInClusterPlan;
-import org.apache.iotdb.db.metadata.plan.schemaregion.write.IAutoCreateDeviceMNodePlan;
 import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateAlignedTimeSeriesPlan;
 import org.apache.iotdb.db.metadata.plan.schemaregion.write.ICreateTimeSeriesPlan;
 import org.apache.iotdb.db.metadata.plan.schemaregion.write.IDeactivateTemplatePlan;
@@ -64,7 +62,6 @@ import java.util.function.Function;
  *   <li>Interfaces for initialization、recover and clear
  *   <li>Interfaces for schema region Info query and operation
  *   <li>Interfaces for Timeseries operation
- *   <li>Interfaces for auto create device
  *   <li>Interfaces for metadata info Query
  *       <ol>
  *         <li>Interfaces for metadata count
@@ -149,11 +146,6 @@ public interface ISchemaRegion {
   void deleteTimeseriesInBlackList(PathPatternTree patternTree) throws MetadataException;
   // endregion
 
-  // region Interfaces for auto create device
-  // auto create a deviceMNode, currently only used for schema sync operation
-  void autoCreateDeviceMNode(IAutoCreateDeviceMNodePlan plan) throws MetadataException;
-  // endregion
-
   // region Interfaces for metadata info Query
   /**
    * Check whether the path exists.
@@ -198,28 +190,12 @@ public interface ISchemaRegion {
    * counted.
    */
   int getDevicesNum(PartialPath pathPattern, boolean isPrefixMatch) throws MetadataException;
-
-  /**
-   * To calculate the count of nodes in the given level for given path pattern. If using prefix
-   * match, the path pattern is used to match prefix path. All nodes start with the matched prefix
-   * path will be counted.
-   *
-   * @param pathPattern a path pattern or a full path
-   * @param level the level should match the level of the path
-   * @param isPrefixMatch if true, the path pattern is used to match prefix path
-   */
-  int getNodesCountInGivenLevel(PartialPath pathPattern, int level, boolean isPrefixMatch)
-      throws MetadataException;
   // endregion
 
   // region Interfaces for level Node info Query
   // Get paths of nodes in given level and matching the pathPattern.
   List<PartialPath> getNodesListInGivenLevel(
-      PartialPath pathPattern,
-      int nodeLevel,
-      boolean isPrefixMatch,
-      LocalSchemaProcessor.StorageGroupFilter filter)
-      throws MetadataException;
+      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch) throws MetadataException;
 
   /**
    * Get child node path in the next level of the given path pattern.
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionMemoryImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionMemoryImpl.java
index 66a9a0b55e..c1ab99392a 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionMemoryImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionMemoryImpl.java
@@ -35,7 +35,6 @@ import org.apache.iotdb.db.exception.metadata.PathNotExistException;
 import org.apache.iotdb.db.exception.metadata.SchemaDirCreationFailureException;
 import org.apache.iotdb.db.exception.metadata.SeriesNumberOverflowException;
 import org.apache.iotdb.db.exception.metadata.SeriesOverflowException;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
 import org.apache.iotdb.db.metadata.MetadataConstant;
 import org.apache.iotdb.db.metadata.idtable.IDTable;
 import org.apache.iotdb.db.metadata.idtable.IDTableManager;
@@ -929,8 +928,7 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
     return node;
   }
 
-  @Override
-  public void autoCreateDeviceMNode(IAutoCreateDeviceMNodePlan plan) throws MetadataException {
+  private void autoCreateDeviceMNode(IAutoCreateDeviceMNodePlan plan) throws MetadataException {
     mtree.getDeviceNodeWithAutoCreating(plan.getPath());
     try {
       writeToMLog(plan);
@@ -1003,21 +1001,6 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
     return getDevicesNum(pathPattern, false);
   }
 
-  /**
-   * To calculate the count of nodes in the given level for given path pattern. If using prefix
-   * match, the path pattern is used to match prefix path. All nodes start with the matched prefix
-   * path will be counted.
-   *
-   * @param pathPattern a path pattern or a full path
-   * @param level the level should match the level of the path
-   * @param isPrefixMatch if true, the path pattern is used to match prefix path
-   */
-  @Override
-  public int getNodesCountInGivenLevel(PartialPath pathPattern, int level, boolean isPrefixMatch)
-      throws MetadataException {
-    return mtree.getNodesCountInGivenLevel(pathPattern, level, isPrefixMatch);
-  }
-
   @Override
   public Map<PartialPath, Integer> getMeasurementCountGroupByLevel(
       PartialPath pathPattern, int level, boolean isPrefixMatch) throws MetadataException {
@@ -1046,12 +1029,8 @@ public class SchemaRegionMemoryImpl implements ISchemaRegion {
   // region Interfaces for level Node info Query
   @Override
   public List<PartialPath> getNodesListInGivenLevel(
-      PartialPath pathPattern,
-      int nodeLevel,
-      boolean isPrefixMatch,
-      LocalSchemaProcessor.StorageGroupFilter filter)
-      throws MetadataException {
-    return mtree.getNodesListInGivenLevel(pathPattern, nodeLevel, isPrefixMatch, filter);
+      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch) throws MetadataException {
+    return mtree.getNodesListInGivenLevel(pathPattern, nodeLevel, isPrefixMatch);
   }
 
   /**
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionSchemaFileImpl.java b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionSchemaFileImpl.java
index e587ae43cb..7065bcae23 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionSchemaFileImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaRegionSchemaFileImpl.java
@@ -34,7 +34,6 @@ import org.apache.iotdb.db.exception.metadata.PathNotExistException;
 import org.apache.iotdb.db.exception.metadata.SchemaDirCreationFailureException;
 import org.apache.iotdb.db.exception.metadata.SeriesNumberOverflowException;
 import org.apache.iotdb.db.exception.metadata.SeriesOverflowException;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
 import org.apache.iotdb.db.metadata.MetadataConstant;
 import org.apache.iotdb.db.metadata.idtable.IDTable;
 import org.apache.iotdb.db.metadata.idtable.IDTableManager;
@@ -1021,8 +1020,7 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
     return node;
   }
 
-  @Override
-  public void autoCreateDeviceMNode(IAutoCreateDeviceMNodePlan plan) throws MetadataException {
+  private void autoCreateDeviceMNode(IAutoCreateDeviceMNodePlan plan) throws MetadataException {
     IMNode node = mtree.getDeviceNodeWithAutoCreating(plan.getPath());
     mtree.unPinMNode(node);
     try {
@@ -1096,21 +1094,6 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
     return getDevicesNum(pathPattern, false);
   }
 
-  /**
-   * To calculate the count of nodes in the given level for given path pattern. If using prefix
-   * match, the path pattern is used to match prefix path. All nodes start with the matched prefix
-   * path will be counted.
-   *
-   * @param pathPattern a path pattern or a full path
-   * @param level the level should match the level of the path
-   * @param isPrefixMatch if true, the path pattern is used to match prefix path
-   */
-  @Override
-  public int getNodesCountInGivenLevel(PartialPath pathPattern, int level, boolean isPrefixMatch)
-      throws MetadataException {
-    return mtree.getNodesCountInGivenLevel(pathPattern, level, isPrefixMatch);
-  }
-
   @Override
   public Map<PartialPath, Integer> getMeasurementCountGroupByLevel(
       PartialPath pathPattern, int level, boolean isPrefixMatch) throws MetadataException {
@@ -1139,12 +1122,8 @@ public class SchemaRegionSchemaFileImpl implements ISchemaRegion {
   // region Interfaces for level Node info Query
   @Override
   public List<PartialPath> getNodesListInGivenLevel(
-      PartialPath pathPattern,
-      int nodeLevel,
-      boolean isPrefixMatch,
-      LocalSchemaProcessor.StorageGroupFilter filter)
-      throws MetadataException {
-    return mtree.getNodesListInGivenLevel(pathPattern, nodeLevel, isPrefixMatch, filter);
+      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch) throws MetadataException {
+    return mtree.getNodesListInGivenLevel(pathPattern, nodeLevel, isPrefixMatch);
   }
 
   /**
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/storagegroup/IStorageGroupSchemaManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/storagegroup/IStorageGroupSchemaManager.java
index 00dc25706f..adee9183cd 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/storagegroup/IStorageGroupSchemaManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/storagegroup/IStorageGroupSchemaManager.java
@@ -22,7 +22,6 @@ import org.apache.iotdb.common.rpc.thrift.TSchemaNode;
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.metadata.StorageGroupNotSetException;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
 import org.apache.iotdb.db.metadata.mnode.IStorageGroupMNode;
 import org.apache.iotdb.tsfile.utils.Pair;
 
@@ -169,11 +168,7 @@ public interface IStorageGroupSchemaManager {
    * @param isPrefixMatch if true, the path pattern is used to match prefix path
    */
   Pair<List<PartialPath>, Set<PartialPath>> getNodesListInGivenLevel(
-      PartialPath pathPattern,
-      int nodeLevel,
-      boolean isPrefixMatch,
-      LocalSchemaProcessor.StorageGroupFilter filter)
-      throws MetadataException;
+      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch) throws MetadataException;
 
   /**
    * Get child node path in the next level of the given path pattern. This method only count in
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/storagegroup/StorageGroupSchemaManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/storagegroup/StorageGroupSchemaManager.java
index 6dd78225fb..ffcbfcfc8a 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/storagegroup/StorageGroupSchemaManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/storagegroup/StorageGroupSchemaManager.java
@@ -26,7 +26,6 @@ import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.metadata.StorageGroupAlreadySetException;
 import org.apache.iotdb.db.exception.metadata.StorageGroupNotSetException;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
 import org.apache.iotdb.db.metadata.mnode.IStorageGroupMNode;
 import org.apache.iotdb.db.metadata.mtree.ConfigMTree;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
@@ -261,12 +260,8 @@ public class StorageGroupSchemaManager implements IStorageGroupSchemaManager {
 
   @Override
   public Pair<List<PartialPath>, Set<PartialPath>> getNodesListInGivenLevel(
-      PartialPath pathPattern,
-      int nodeLevel,
-      boolean isPrefixMatch,
-      LocalSchemaProcessor.StorageGroupFilter filter)
-      throws MetadataException {
-    return mtree.getNodesListInGivenLevel(pathPattern, nodeLevel, isPrefixMatch, filter);
+      PartialPath pathPattern, int nodeLevel, boolean isPrefixMatch) throws MetadataException {
+    return mtree.getNodesListInGivenLevel(pathPattern, nodeLevel, isPrefixMatch);
   }
 
   @Override
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/NodePathsSchemaScanOperator.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/NodePathsSchemaScanOperator.java
index 6d1eea794e..23f3f5fe2b 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/NodePathsSchemaScanOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/NodePathsSchemaScanOperator.java
@@ -95,8 +95,7 @@ public class NodePathsSchemaScanOperator implements SourceOperator {
         Set<String> childNodes;
         childNodes =
             ((SchemaDriverContext) operatorContext.getInstanceContext().getDriverContext())
-                .getSchemaRegion().getNodesListInGivenLevel(partialPath, level, false, null)
-                    .stream()
+                .getSchemaRegion().getNodesListInGivenLevel(partialPath, level, false).stream()
                     .map(PartialPath::getFullPath)
                     .collect(Collectors.toSet());
 
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/StandalonePartitionFetcher.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/StandalonePartitionFetcher.java
index e300a272dd..07ff4497c2 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/StandalonePartitionFetcher.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/StandalonePartitionFetcher.java
@@ -109,7 +109,7 @@ public class StandalonePartitionFetcher implements IPartitionFetcher {
       } else {
         for (PartialPath pathPattern : patternTree.getAllPathPatterns()) {
           Pair<List<PartialPath>, Set<PartialPath>> result =
-              localConfigNode.getNodesListInGivenLevel(pathPattern, level, false, null);
+              localConfigNode.getNodesListInGivenLevel(pathPattern, level, false);
           matchedNodes.addAll(
               result.left.stream()
                   .map(
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 3c002f3eef..20ac93109b 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
@@ -374,11 +374,6 @@ public class PlanExecutor implements IPlanExecutor {
     return IoTDB.schemaProcessor.getMeasurementPaths(path);
   }
 
-  protected List<PartialPath> getNodesList(PartialPath schemaPattern, int level)
-      throws MetadataException {
-    return IoTDB.schemaProcessor.getNodesListInGivenLevel(schemaPattern, level);
-  }
-
   private Map<PartialPath, Integer> getTimeseriesCountGroupByLevel(CountPlan countPlan)
       throws MetadataException {
     return IoTDB.schemaProcessor.getMeasurementCountGroupByLevel(
diff --git a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
index 3a524b0fe1..bc1a81a8a1 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
@@ -320,7 +320,7 @@ public class TSServiceImpl implements IClientRPCServiceWithHandler {
     try {
       switch (req.getType()) {
         case "METADATA_IN_JSON":
-          resp.setMetadataInJson(IoTDB.schemaProcessor.getMetadataInString());
+          resp.setMetadataInJson("{}");
           status = RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);
           break;
         case "COLUMN":
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java
index 4954639fb4..f6c322f3e4 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java
@@ -18,15 +18,12 @@
  */
 package org.apache.iotdb.db.utils;
 
-import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.MeasurementPath;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.metadata.PathAlreadyExistException;
 import org.apache.iotdb.db.exception.metadata.PathNotExistException;
 import org.apache.iotdb.db.exception.metadata.StorageGroupNotSetException;
-import org.apache.iotdb.db.metadata.mnode.IMeasurementMNode;
-import org.apache.iotdb.db.metadata.mnode.MeasurementMNode;
 import org.apache.iotdb.db.mpp.plan.statement.component.Ordering;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.db.query.aggregation.AggregationType;
@@ -34,8 +31,6 @@ import org.apache.iotdb.db.service.IoTDB;
 import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
-import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
 import org.apache.iotdb.tsfile.write.schema.TimeseriesSchema;
 
 import org.slf4j.Logger;
@@ -113,25 +108,6 @@ public class SchemaUtils {
     }
   }
 
-  public static void cacheTimeseriesSchema(TimeseriesSchema schema) {
-    PartialPath path;
-    try {
-      path = new PartialPath(schema.getFullPath());
-    } catch (IllegalPathException e) {
-      logger.error("Cannot cache an illegal path {}", schema.getFullPath());
-      return;
-    }
-    TSDataType dataType = schema.getType();
-    TSEncoding encoding = schema.getEncodingType();
-    CompressionType compressionType = schema.getCompressor();
-    IMeasurementSchema measurementSchema =
-        new MeasurementSchema(path.getMeasurement(), dataType, encoding, compressionType);
-
-    IMeasurementMNode measurementMNode =
-        MeasurementMNode.getMeasurementMNode(null, path.getMeasurement(), measurementSchema, null);
-    IoTDB.schemaProcessor.cacheMeta(path, measurementMNode, true);
-  }
-
   public static List<TSDataType> getSeriesTypesByPaths(Collection<? extends PartialPath> paths) {
     List<TSDataType> dataTypes = new ArrayList<>();
     for (PartialPath path : paths) {
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/SchemaBasicTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/SchemaBasicTest.java
index 27755c8c3c..b1ef35b409 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/SchemaBasicTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/SchemaBasicTest.java
@@ -1292,48 +1292,4 @@ public abstract class SchemaBasicTest {
     resultTag = results.get(0).getTag();
     assertEquals("newValue", resultTag.get("description"));
   }
-
-  @Test
-  public void testCountNodesWithLevel() throws Exception {
-    LocalSchemaProcessor schemaProcessor = IoTDB.schemaProcessor;
-    schemaProcessor.createTimeseries(
-        new PartialPath("root.sgcc.wf03.wt01.temperature"),
-        TSDataType.valueOf("INT32"),
-        TSEncoding.valueOf("RLE"),
-        compressionType,
-        Collections.emptyMap());
-    schemaProcessor.createTimeseries(
-        new PartialPath("root.sgcc.wf03.t01.status"),
-        TSDataType.valueOf("INT32"),
-        TSEncoding.valueOf("RLE"),
-        compressionType,
-        Collections.emptyMap());
-    schemaProcessor.createTimeseries(
-        new PartialPath("root.ln.wf01.wt01.temperature"),
-        TSDataType.valueOf("INT32"),
-        TSEncoding.valueOf("RLE"),
-        compressionType,
-        Collections.emptyMap());
-    schemaProcessor.createTimeseries(
-        new PartialPath("root.ln.wf01.wt01.status"),
-        TSDataType.valueOf("INT32"),
-        TSEncoding.valueOf("RLE"),
-        compressionType,
-        Collections.emptyMap());
-    schemaProcessor.createTimeseries(
-        new PartialPath("root.ln.wf02.wt02.status"),
-        TSDataType.valueOf("INT32"),
-        TSEncoding.valueOf("RLE"),
-        compressionType,
-        Collections.emptyMap());
-    schemaProcessor.createTimeseries(
-        new PartialPath("root.ln.wf02.wt02.hardware"),
-        TSDataType.valueOf("INT32"),
-        TSEncoding.valueOf("RLE"),
-        compressionType,
-        Collections.emptyMap());
-
-    Assert.assertEquals(
-        2, schemaProcessor.getNodesCountInGivenLevel(new PartialPath("root.**.temperature"), 3));
-  }
 }
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/mtree/ConfigMTreeTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/mtree/ConfigMTreeTest.java
index 913309ba3f..3da6457b63 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/mtree/ConfigMTreeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/mtree/ConfigMTreeTest.java
@@ -22,7 +22,6 @@ import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
 import org.apache.iotdb.db.metadata.mnode.IStorageGroupMNode;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
@@ -270,33 +269,23 @@ public class ConfigMTreeTest {
     root.setStorageGroup(new PartialPath("root.sg1"));
 
     root.setStorageGroup(new PartialPath("root.sg2"));
-    LocalSchemaProcessor.StorageGroupFilter filter =
-        storageGroup -> storageGroup.equals("root.sg1");
 
     Pair<List<PartialPath>, Set<PartialPath>> result =
-        root.getNodesListInGivenLevel(new PartialPath("root.**"), 3, false, null);
+        root.getNodesListInGivenLevel(new PartialPath("root.**"), 3, false);
     Assert.assertEquals(0, result.left.size());
     Assert.assertEquals(2, result.right.size());
 
-    result = root.getNodesListInGivenLevel(new PartialPath("root.**"), 1, false, null);
+    result = root.getNodesListInGivenLevel(new PartialPath("root.**"), 1, false);
     Assert.assertEquals(2, result.left.size());
     Assert.assertEquals(2, result.right.size());
 
-    result = root.getNodesListInGivenLevel(new PartialPath("root.*.*"), 2, false, null);
+    result = root.getNodesListInGivenLevel(new PartialPath("root.*.*"), 2, false);
     Assert.assertEquals(0, result.left.size());
     Assert.assertEquals(2, result.right.size());
 
-    result = root.getNodesListInGivenLevel(new PartialPath("root.*.*"), 1, false, null);
+    result = root.getNodesListInGivenLevel(new PartialPath("root.*.*"), 1, false);
     Assert.assertEquals(0, result.left.size());
     Assert.assertEquals(2, result.right.size());
-
-    result = root.getNodesListInGivenLevel(new PartialPath("root.**"), 3, false, filter);
-    Assert.assertEquals(0, result.left.size());
-    Assert.assertEquals(1, result.right.size());
-
-    result = root.getNodesListInGivenLevel(new PartialPath("root.*.**"), 2, false, filter);
-    Assert.assertEquals(0, result.left.size());
-    Assert.assertEquals(1, result.right.size());
   }
 
   @Test
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGTest.java
index e47f39f59d..bb086c8bf4 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSGTest.java
@@ -24,7 +24,6 @@ import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.metadata.AliasAlreadyExistException;
 import org.apache.iotdb.db.exception.metadata.PathAlreadyExistException;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
 import org.apache.iotdb.db.metadata.mnode.MeasurementMNode;
 import org.apache.iotdb.db.metadata.schemaregion.SchemaEngineMode;
@@ -644,7 +643,6 @@ public abstract class MTreeBelowSGTest {
 
   @Test
   public void testGetNodeListInLevel() throws MetadataException {
-    LocalSchemaProcessor.StorageGroupFilter filter = sg -> sg.equals("root.sg1");
 
     storageGroup = getStorageGroup(new PartialPath("root.sg1"));
     storageGroup.createTimeseries(
@@ -663,29 +661,14 @@ public abstract class MTreeBelowSGTest {
         null);
 
     Assert.assertEquals(
-        2,
-        storageGroup.getNodesListInGivenLevel(new PartialPath("root.**"), 3, false, null).size());
+        2, storageGroup.getNodesListInGivenLevel(new PartialPath("root.**"), 3, false).size());
 
     Assert.assertEquals(
-        1,
-        storageGroup.getNodesListInGivenLevel(new PartialPath("root.*.*"), 2, false, null).size());
-    Assert.assertEquals(
-        1,
-        storageGroup.getNodesListInGivenLevel(new PartialPath("root.*.*"), 1, false, null).size());
-    Assert.assertEquals(
-        1,
-        storageGroup
-            .getNodesListInGivenLevel(new PartialPath("root.*.*.s1"), 2, false, null)
-            .size());
-
+        1, storageGroup.getNodesListInGivenLevel(new PartialPath("root.*.*"), 2, false).size());
     Assert.assertEquals(
-        2,
-        storageGroup.getNodesListInGivenLevel(new PartialPath("root.**"), 3, false, filter).size());
+        1, storageGroup.getNodesListInGivenLevel(new PartialPath("root.*.*"), 1, false).size());
     Assert.assertEquals(
-        1,
-        storageGroup
-            .getNodesListInGivenLevel(new PartialPath("root.*.**"), 2, false, filter)
-            .size());
+        1, storageGroup.getNodesListInGivenLevel(new PartialPath("root.*.*.s1"), 2, false).size());
 
     storageGroup = getStorageGroup(new PartialPath("root.sg2"));
     storageGroup.createTimeseries(
@@ -704,29 +687,14 @@ public abstract class MTreeBelowSGTest {
         null);
 
     Assert.assertEquals(
-        2,
-        storageGroup.getNodesListInGivenLevel(new PartialPath("root.**"), 3, false, null).size());
+        2, storageGroup.getNodesListInGivenLevel(new PartialPath("root.**"), 3, false).size());
 
     Assert.assertEquals(
-        2,
-        storageGroup.getNodesListInGivenLevel(new PartialPath("root.*.*"), 2, false, null).size());
+        2, storageGroup.getNodesListInGivenLevel(new PartialPath("root.*.*"), 2, false).size());
     Assert.assertEquals(
-        1,
-        storageGroup.getNodesListInGivenLevel(new PartialPath("root.*.*"), 1, false, null).size());
+        1, storageGroup.getNodesListInGivenLevel(new PartialPath("root.*.*"), 1, false).size());
     Assert.assertEquals(
-        2,
-        storageGroup
-            .getNodesListInGivenLevel(new PartialPath("root.*.*.s1"), 2, false, null)
-            .size());
-
-    Assert.assertEquals(
-        0,
-        storageGroup.getNodesListInGivenLevel(new PartialPath("root.**"), 3, false, filter).size());
-    Assert.assertEquals(
-        0,
-        storageGroup
-            .getNodesListInGivenLevel(new PartialPath("root.*.**"), 2, false, filter)
-            .size());
+        2, storageGroup.getNodesListInGivenLevel(new PartialPath("root.*.*.s1"), 2, false).size());
   }
 
   @Test