You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by wa...@apache.org on 2022/07/25 03:47:33 UTC

[iotdb] branch master updated: [IOTDB-3848] Clear up thrift defined data structures of cluster tools (#6716)

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

wangchao316 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 3d73b16fbf [IOTDB-3848] Clear up thrift defined data structures of cluster tools (#6716)
3d73b16fbf is described below

commit 3d73b16fbfcd5c12e1b178cef84d405275c644c0
Author: YongzaoDan <33...@users.noreply.github.com>
AuthorDate: Mon Jul 25 11:47:28 2022 +0800

    [IOTDB-3848] Clear up thrift defined data structures of cluster tools (#6716)
    
    [IOTDB-3848] Clear up thrift defined data structures of cluster tools (#6716)
---
 .../response/DataNodeConfigurationResp.java        |  20 +---
 .../consensus/response/RegionInfoListResp.java     |   2 +-
 .../iotdb/confignode/manager/ConfigManager.java    | 120 ++++++++++-----------
 .../apache/iotdb/confignode/manager/IManager.java  |   9 +-
 .../iotdb/confignode/manager/NodeManager.java      |  26 +++--
 .../iotdb/confignode/persistence/NodeInfo.java     |   4 +-
 .../persistence/partition/PartitionInfo.java       |   2 +-
 .../partition/StorageGroupPartitionTable.java      |   2 +-
 .../thrift/ConfigNodeRPCServiceProcessor.java      |  12 +--
 .../thrift/ConfigNodeRPCServiceProcessorTest.java  |   6 +-
 .../apache/iotdb/db/client/ConfigNodeClient.java   |   6 +-
 .../mpp/plan/execution/config/ShowClusterTask.java |   4 +-
 .../plan/execution/config/ShowDataNodesTask.java   |  19 ++--
 .../mpp/plan/execution/config/ShowRegionTask.java  |   2 +-
 .../config/executor/ClusterConfigTaskExecutor.java |   8 +-
 thrift-commons/src/main/thrift/common.thrift       |  21 ----
 .../src/main/thrift/confignode.thrift              |  65 ++++++-----
 17 files changed, 150 insertions(+), 178 deletions(-)

diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/DataNodeConfigurationResp.java b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/DataNodeConfigurationResp.java
index 686839656e..696d3f163c 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/DataNodeConfigurationResp.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/DataNodeConfigurationResp.java
@@ -19,20 +19,17 @@
 package org.apache.iotdb.confignode.consensus.response;
 
 import org.apache.iotdb.common.rpc.thrift.TDataNodeConfiguration;
-import org.apache.iotdb.common.rpc.thrift.TDataNodesInfo;
 import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.confignode.rpc.thrift.TDataNodeConfigurationResp;
 import org.apache.iotdb.consensus.common.DataSet;
 import org.apache.iotdb.rpc.TSStatusCode;
 
-import java.util.List;
 import java.util.Map;
 
 public class DataNodeConfigurationResp implements DataSet {
 
   private TSStatus status;
-  private Map<Integer, TDataNodeConfiguration> dataNodeInfoMap;
-  private List<TDataNodesInfo> dataNodesInfoList;
+  private Map<Integer, TDataNodeConfiguration> dataNodeConfigurationMap;
 
   public DataNodeConfigurationResp() {
     // empty constructor
@@ -46,22 +43,15 @@ public class DataNodeConfigurationResp implements DataSet {
     return status;
   }
 
-  public void setDataNodeInfoMap(Map<Integer, TDataNodeConfiguration> dataNodeInfoMap) {
-    this.dataNodeInfoMap = dataNodeInfoMap;
-  }
-
-  public List<TDataNodesInfo> getDataNodesInfoList() {
-    return dataNodesInfoList;
-  }
-
-  public void setDataNodesInfoList(List<TDataNodesInfo> dataNodesInfoList) {
-    this.dataNodesInfoList = dataNodesInfoList;
+  public void setDataNodeConfigurationMap(
+      Map<Integer, TDataNodeConfiguration> dataNodeConfigurationMap) {
+    this.dataNodeConfigurationMap = dataNodeConfigurationMap;
   }
 
   public void convertToRpcDataNodeLocationResp(TDataNodeConfigurationResp resp) {
     resp.setStatus(status);
     if (status.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
-      resp.setDataNodeConfigurationMap(dataNodeInfoMap);
+      resp.setDataNodeConfigurationMap(dataNodeConfigurationMap);
     }
   }
 }
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/RegionInfoListResp.java b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/RegionInfoListResp.java
index 045f4fdce8..a38d429745 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/RegionInfoListResp.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/RegionInfoListResp.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.confignode.consensus.response;
 
-import org.apache.iotdb.common.rpc.thrift.TRegionInfo;
 import org.apache.iotdb.common.rpc.thrift.TSStatus;
+import org.apache.iotdb.confignode.rpc.thrift.TRegionInfo;
 import org.apache.iotdb.consensus.common.DataSet;
 
 import java.util.List;
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
index 1f905c0258..2dd21cbb3e 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
@@ -23,9 +23,7 @@ import org.apache.iotdb.common.rpc.thrift.TConfigNodeLocation;
 import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType;
 import org.apache.iotdb.common.rpc.thrift.TDataNodeConfiguration;
 import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation;
-import org.apache.iotdb.common.rpc.thrift.TDataNodesInfo;
 import org.apache.iotdb.common.rpc.thrift.TFlushReq;
-import org.apache.iotdb.common.rpc.thrift.TRegionInfo;
 import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot;
 import org.apache.iotdb.commons.conf.CommonDescriptor;
@@ -75,21 +73,24 @@ import org.apache.iotdb.confignode.persistence.ProcedureInfo;
 import org.apache.iotdb.confignode.persistence.UDFInfo;
 import org.apache.iotdb.confignode.persistence.executor.ConfigPlanExecutor;
 import org.apache.iotdb.confignode.persistence.partition.PartitionInfo;
-import org.apache.iotdb.confignode.rpc.thrift.TClusterNodeInfos;
 import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterReq;
 import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterResp;
 import org.apache.iotdb.confignode.rpc.thrift.TCreateSchemaTemplateReq;
+import org.apache.iotdb.confignode.rpc.thrift.TDataNodeInfo;
 import org.apache.iotdb.confignode.rpc.thrift.TDataPartitionResp;
 import org.apache.iotdb.confignode.rpc.thrift.TDataPartitionTableResp;
 import org.apache.iotdb.confignode.rpc.thrift.TGetAllTemplatesResp;
 import org.apache.iotdb.confignode.rpc.thrift.TGetPathsSetTemplatesResp;
 import org.apache.iotdb.confignode.rpc.thrift.TGetTemplateResp;
 import org.apache.iotdb.confignode.rpc.thrift.TPermissionInfoResp;
+import org.apache.iotdb.confignode.rpc.thrift.TRegionInfo;
 import org.apache.iotdb.confignode.rpc.thrift.TRegionRouteMapResp;
 import org.apache.iotdb.confignode.rpc.thrift.TSchemaNodeManagementResp;
 import org.apache.iotdb.confignode.rpc.thrift.TSchemaPartitionResp;
 import org.apache.iotdb.confignode.rpc.thrift.TSchemaPartitionTableResp;
 import org.apache.iotdb.confignode.rpc.thrift.TSetSchemaTemplateReq;
+import org.apache.iotdb.confignode.rpc.thrift.TShowClusterResp;
+import org.apache.iotdb.confignode.rpc.thrift.TShowDataNodesResp;
 import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
 import org.apache.iotdb.consensus.common.DataSet;
 import org.apache.iotdb.db.mpp.common.schematree.PathPatternTree;
@@ -220,27 +221,25 @@ public class ConfigManager implements IManager {
   }
 
   @Override
-  public TClusterNodeInfos getAllClusterNodeInfos() {
+  public TShowClusterResp showCluster() {
     TSStatus status = confirmLeader();
     if (status.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
       List<TConfigNodeLocation> configNodeLocations = getNodeManager().getRegisteredConfigNodes();
-      configNodeLocations.sort(
-          Comparator.comparingInt(configNodeLocation -> configNodeLocation.getConfigNodeId()));
+      configNodeLocations.sort(Comparator.comparingInt(TConfigNodeLocation::getConfigNodeId));
       List<TDataNodeLocation> dataNodeInfoLocations =
           getNodeManager().getRegisteredDataNodes(-1).stream()
               .map(TDataNodeConfiguration::getLocation)
+              .sorted(Comparator.comparingInt(TDataNodeLocation::getDataNodeId))
               .collect(Collectors.toList());
-      dataNodeInfoLocations.sort(
-          Comparator.comparingInt(dataNodeInfoLocation -> dataNodeInfoLocation.getDataNodeId()));
       Map<Integer, String> nodeStatus = new HashMap<>();
       getLoadManager()
           .getNodeCacheMap()
           .forEach(
               (nodeId, heartbeatCache) ->
                   nodeStatus.put(nodeId, heartbeatCache.getNodeStatus().getStatus()));
-      return new TClusterNodeInfos(status, configNodeLocations, dataNodeInfoLocations, nodeStatus);
+      return new TShowClusterResp(status, configNodeLocations, dataNodeInfoLocations, nodeStatus);
     } else {
-      return new TClusterNodeInfos(status, new ArrayList<>(), new ArrayList<>(), new HashMap<>());
+      return new TShowClusterResp(status, new ArrayList<>(), new ArrayList<>(), new HashMap<>());
     }
   }
 
@@ -871,60 +870,55 @@ public class ConfigManager implements IManager {
   }
 
   @Override
-  public DataSet showDataNodes() {
-    TSStatus status = confirmLeader();
-    GetRegionInfoListPlan getRegionsinfoReq = new GetRegionInfoListPlan();
-    DataNodeConfigurationResp dataNodeConfigurationResp = new DataNodeConfigurationResp();
-    if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
-      dataNodeConfigurationResp.setStatus(status);
-      return dataNodeConfigurationResp;
-    }
-    List<TDataNodesInfo> dataNodesInfoList = nodeManager.getRegisteredDataNodesInfoList();
-    RegionInfoListResp regionsInfoDataSet =
-        (RegionInfoListResp) partitionManager.getRegionInfoList(getRegionsinfoReq);
-
-    // Map<DataNodeId, DataRegionNum>
-    Map<Integer, AtomicInteger> dataRegionNumMap = new HashMap<>();
-    // Map<DataNodeId, SchemaRegionNum>
-    Map<Integer, AtomicInteger> schemaRegionNumMap = new HashMap<>();
-
-    List<TRegionInfo> regionInfoList = regionsInfoDataSet.getRegionInfoList();
-    if (CollectionUtils.isNotEmpty(regionInfoList)) {
-
-      regionInfoList.forEach(
-          (regionInfo) -> {
-            int dataNodeId = regionInfo.getDataNodeId();
-            int regionTypeValue = regionInfo.getConsensusGroupId().getType().getValue();
-            int dataRegionNum =
-                regionTypeValue == TConsensusGroupType.DataRegion.getValue() ? 1 : 0;
-            int schemaRegionNum =
-                regionTypeValue == TConsensusGroupType.SchemaRegion.getValue() ? 1 : 0;
-            dataRegionNumMap
-                .computeIfAbsent(dataNodeId, key -> new AtomicInteger())
-                .addAndGet(dataRegionNum);
-            schemaRegionNumMap
-                .computeIfAbsent(dataNodeId, key -> new AtomicInteger())
-                .addAndGet(schemaRegionNum);
-          });
-
-      dataNodesInfoList.forEach(
-          (dataNodesInfo -> {
-            if (dataRegionNumMap.containsKey(dataNodesInfo.getDataNodeId())) {
-              dataNodesInfo.setDataRegionNum(
-                  dataRegionNumMap.get(dataNodesInfo.getDataNodeId()).get());
-            }
-            if (schemaRegionNumMap.containsKey(dataNodesInfo.getDataNodeId())) {
-              dataNodesInfo.setSchemaRegionNum(
-                  schemaRegionNumMap.get(dataNodesInfo.getDataNodeId()).get());
-            }
-          }));
-    }
-
-    dataNodesInfoList.sort(Comparator.comparingInt(TDataNodesInfo::getDataNodeId));
-    dataNodeConfigurationResp.setStatus(regionsInfoDataSet.getStatus());
-    dataNodeConfigurationResp.setDataNodesInfoList(dataNodesInfoList);
+  public TShowDataNodesResp showDataNodes() {
+    TSStatus status = confirmLeader();
+    TShowDataNodesResp resp = new TShowDataNodesResp();
+    if (status.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+      List<TDataNodeInfo> registeredDataNodesInfoList = nodeManager.getRegisteredDataNodeInfoList();
+
+      // Map<DataNodeId, DataRegionNum>
+      Map<Integer, AtomicInteger> dataRegionNumMap = new HashMap<>();
+      // Map<DataNodeId, SchemaRegionNum>
+      Map<Integer, AtomicInteger> schemaRegionNumMap = new HashMap<>();
+
+      List<TRegionInfo> regionInfoList =
+          ((RegionInfoListResp) partitionManager.getRegionInfoList(new GetRegionInfoListPlan()))
+              .getRegionInfoList();
+      if (CollectionUtils.isNotEmpty(regionInfoList)) {
+
+        regionInfoList.forEach(
+            (regionInfo) -> {
+              int dataNodeId = regionInfo.getDataNodeId();
+              int regionTypeValue = regionInfo.getConsensusGroupId().getType().getValue();
+              int dataRegionNum =
+                  regionTypeValue == TConsensusGroupType.DataRegion.getValue() ? 1 : 0;
+              int schemaRegionNum =
+                  regionTypeValue == TConsensusGroupType.SchemaRegion.getValue() ? 1 : 0;
+              dataRegionNumMap
+                  .computeIfAbsent(dataNodeId, key -> new AtomicInteger())
+                  .addAndGet(dataRegionNum);
+              schemaRegionNumMap
+                  .computeIfAbsent(dataNodeId, key -> new AtomicInteger())
+                  .addAndGet(schemaRegionNum);
+            });
+
+        registeredDataNodesInfoList.forEach(
+            (dataNodesInfo -> {
+              if (dataRegionNumMap.containsKey(dataNodesInfo.getDataNodeId())) {
+                dataNodesInfo.setDataRegionNum(
+                    dataRegionNumMap.get(dataNodesInfo.getDataNodeId()).get());
+              }
+              if (schemaRegionNumMap.containsKey(dataNodesInfo.getDataNodeId())) {
+                dataNodesInfo.setSchemaRegionNum(
+                    schemaRegionNumMap.get(dataNodesInfo.getDataNodeId()).get());
+              }
+            }));
+      }
 
-    return dataNodeConfigurationResp;
+      return resp.setStatus(StatusUtils.OK);
+    } else {
+      return resp.setStatus(status);
+    }
   }
 
   @Override
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/IManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/IManager.java
index 79da434580..156d2066bb 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/IManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/IManager.java
@@ -38,7 +38,6 @@ import org.apache.iotdb.confignode.consensus.request.write.SetStorageGroupPlan;
 import org.apache.iotdb.confignode.consensus.request.write.SetTTLPlan;
 import org.apache.iotdb.confignode.consensus.request.write.SetTimePartitionIntervalPlan;
 import org.apache.iotdb.confignode.manager.load.LoadManager;
-import org.apache.iotdb.confignode.rpc.thrift.TClusterNodeInfos;
 import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterReq;
 import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterResp;
 import org.apache.iotdb.confignode.rpc.thrift.TCreateSchemaTemplateReq;
@@ -49,6 +48,8 @@ import org.apache.iotdb.confignode.rpc.thrift.TPermissionInfoResp;
 import org.apache.iotdb.confignode.rpc.thrift.TRegionRouteMapResp;
 import org.apache.iotdb.confignode.rpc.thrift.TSchemaNodeManagementResp;
 import org.apache.iotdb.confignode.rpc.thrift.TSetSchemaTemplateReq;
+import org.apache.iotdb.confignode.rpc.thrift.TShowClusterResp;
+import org.apache.iotdb.confignode.rpc.thrift.TShowDataNodesResp;
 import org.apache.iotdb.consensus.common.DataSet;
 import org.apache.iotdb.db.mpp.common.schematree.PathPatternTree;
 
@@ -138,7 +139,7 @@ public interface IManager {
    */
   DataSet getDataNodeConfiguration(GetDataNodeConfigurationPlan getDataNodeConfigurationPlan);
 
-  TClusterNodeInfos getAllClusterNodeInfos();
+  TShowClusterResp showCluster();
 
   TSStatus setTTL(SetTTLPlan configRequest);
 
@@ -280,8 +281,8 @@ public interface IManager {
   /** Show (data/schema) regions */
   DataSet showRegion(GetRegionInfoListPlan getRegionInfoListPlan);
 
-  /** Show datanodes */
-  DataSet showDataNodes();
+  /** Show DataNodes */
+  TShowDataNodesResp showDataNodes();
 
   /**
    * create schema template
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/NodeManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/NodeManager.java
index 855bc4ec7a..1b18fb6815 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/NodeManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/NodeManager.java
@@ -21,7 +21,6 @@ package org.apache.iotdb.confignode.manager;
 import org.apache.iotdb.common.rpc.thrift.TConfigNodeLocation;
 import org.apache.iotdb.common.rpc.thrift.TDataNodeConfiguration;
 import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation;
-import org.apache.iotdb.common.rpc.thrift.TDataNodesInfo;
 import org.apache.iotdb.common.rpc.thrift.TFlushReq;
 import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.commons.consensus.ConsensusGroupId;
@@ -42,6 +41,7 @@ import org.apache.iotdb.confignode.persistence.NodeInfo;
 import org.apache.iotdb.confignode.procedure.env.DataNodeRemoveHandler;
 import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterReq;
 import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterResp;
+import org.apache.iotdb.confignode.rpc.thrift.TDataNodeInfo;
 import org.apache.iotdb.confignode.rpc.thrift.TGlobalConfig;
 import org.apache.iotdb.consensus.common.DataSet;
 import org.apache.iotdb.consensus.common.Peer;
@@ -216,27 +216,25 @@ public class NodeManager {
     return dataNodeLocations;
   }
 
-  public List<TDataNodesInfo> getRegisteredDataNodesInfoList() {
-    List<TDataNodesInfo> dataNodesLocations = new ArrayList<>();
+  public List<TDataNodeInfo> getRegisteredDataNodeInfoList() {
+    List<TDataNodeInfo> dataNodeInfoList = new ArrayList<>();
     List<TDataNodeConfiguration> registeredDataNodes = this.getRegisteredDataNodes(-1);
     if (registeredDataNodes != null) {
       registeredDataNodes.forEach(
           (dataNodeInfo) -> {
-            TDataNodesInfo tDataNodesLocation = new TDataNodesInfo();
+            TDataNodeInfo info = new TDataNodeInfo();
             int dataNodeId = dataNodeInfo.getLocation().getDataNodeId();
-            tDataNodesLocation.setDataNodeId(dataNodeId);
-            tDataNodesLocation.setStatus(
+            info.setDataNodeId(dataNodeId);
+            info.setStatus(
                 getLoadManager().getNodeCacheMap().get(dataNodeId).getNodeStatus().getStatus());
-            tDataNodesLocation.setRpcAddresss(
-                dataNodeInfo.getLocation().getClientRpcEndPoint().getIp());
-            tDataNodesLocation.setRpcPort(
-                dataNodeInfo.getLocation().getClientRpcEndPoint().getPort());
-            tDataNodesLocation.setDataRegionNum(0);
-            tDataNodesLocation.setSchemaRegionNum(0);
-            dataNodesLocations.add(tDataNodesLocation);
+            info.setRpcAddresss(dataNodeInfo.getLocation().getClientRpcEndPoint().getIp());
+            info.setRpcPort(dataNodeInfo.getLocation().getClientRpcEndPoint().getPort());
+            info.setDataRegionNum(0);
+            info.setSchemaRegionNum(0);
+            dataNodeInfoList.add(info);
           });
     }
-    return dataNodesLocations;
+    return dataNodeInfoList;
   }
   /**
    * Provides ConfigNodeGroup information for the newly registered ConfigNode
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/NodeInfo.java b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/NodeInfo.java
index 4e78dd3e67..5d71b5da60 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/NodeInfo.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/NodeInfo.java
@@ -224,9 +224,9 @@ public class NodeInfo implements SnapshotProcessor {
     dataNodeInfoReadWriteLock.readLock().lock();
     try {
       if (dataNodeId == -1) {
-        result.setDataNodeInfoMap(new HashMap<>(registeredDataNodes));
+        result.setDataNodeConfigurationMap(new HashMap<>(registeredDataNodes));
       } else {
-        result.setDataNodeInfoMap(
+        result.setDataNodeConfigurationMap(
             registeredDataNodes.get(dataNodeId) == null
                 ? new HashMap<>(0)
                 : Collections.singletonMap(dataNodeId, registeredDataNodes.get(dataNodeId)));
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/PartitionInfo.java b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/PartitionInfo.java
index 616023d1eb..1ca8831bf6 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/PartitionInfo.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/PartitionInfo.java
@@ -22,7 +22,6 @@ package org.apache.iotdb.confignode.persistence.partition;
 import org.apache.iotdb.common.rpc.thrift.TConsensusGroupId;
 import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType;
 import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation;
-import org.apache.iotdb.common.rpc.thrift.TRegionInfo;
 import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
 import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot;
@@ -45,6 +44,7 @@ import org.apache.iotdb.confignode.consensus.response.RegionInfoListResp;
 import org.apache.iotdb.confignode.consensus.response.SchemaNodeManagementResp;
 import org.apache.iotdb.confignode.consensus.response.SchemaPartitionResp;
 import org.apache.iotdb.confignode.exception.StorageGroupNotExistsException;
+import org.apache.iotdb.confignode.rpc.thrift.TRegionInfo;
 import org.apache.iotdb.confignode.rpc.thrift.TShowRegionReq;
 import org.apache.iotdb.consensus.common.DataSet;
 import org.apache.iotdb.db.service.metrics.MetricsService;
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/StorageGroupPartitionTable.java b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/StorageGroupPartitionTable.java
index ff41b905bc..418d5c5d79 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/StorageGroupPartitionTable.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/StorageGroupPartitionTable.java
@@ -21,7 +21,6 @@ package org.apache.iotdb.confignode.persistence.partition;
 import org.apache.iotdb.common.rpc.thrift.TConsensusGroupId;
 import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType;
 import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation;
-import org.apache.iotdb.common.rpc.thrift.TRegionInfo;
 import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
 import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot;
 import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot;
@@ -29,6 +28,7 @@ import org.apache.iotdb.commons.cluster.RegionStatus;
 import org.apache.iotdb.commons.partition.DataPartitionTable;
 import org.apache.iotdb.commons.partition.SchemaPartitionTable;
 import org.apache.iotdb.confignode.consensus.request.read.GetRegionInfoListPlan;
+import org.apache.iotdb.confignode.rpc.thrift.TRegionInfo;
 import org.apache.iotdb.confignode.rpc.thrift.TShowRegionReq;
 import org.apache.iotdb.db.service.metrics.MetricsService;
 import org.apache.iotdb.db.service.metrics.enums.Metric;
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
index 1d104f23f7..10773be9c3 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
@@ -60,7 +60,6 @@ import org.apache.iotdb.confignode.rpc.thrift.IConfigNodeRPCService;
 import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerReq;
 import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerResp;
 import org.apache.iotdb.confignode.rpc.thrift.TCheckUserPrivilegesReq;
-import org.apache.iotdb.confignode.rpc.thrift.TClusterNodeInfos;
 import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterReq;
 import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterResp;
 import org.apache.iotdb.confignode.rpc.thrift.TCountStorageGroupResp;
@@ -94,6 +93,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TSetSchemaReplicationFactorReq;
 import org.apache.iotdb.confignode.rpc.thrift.TSetSchemaTemplateReq;
 import org.apache.iotdb.confignode.rpc.thrift.TSetStorageGroupReq;
 import org.apache.iotdb.confignode.rpc.thrift.TSetTimePartitionIntervalReq;
+import org.apache.iotdb.confignode.rpc.thrift.TShowClusterResp;
 import org.apache.iotdb.confignode.rpc.thrift.TShowDataNodesResp;
 import org.apache.iotdb.confignode.rpc.thrift.TShowRegionReq;
 import org.apache.iotdb.confignode.rpc.thrift.TShowRegionResp;
@@ -181,8 +181,8 @@ public class ConfigNodeRPCServiceProcessor implements IConfigNodeRPCService.Ifac
   }
 
   @Override
-  public TClusterNodeInfos getAllClusterNodeInfos() throws TException {
-    return configManager.getAllClusterNodeInfos();
+  public TShowClusterResp showCluster() throws TException {
+    return configManager.showCluster();
   }
 
   @Override
@@ -548,11 +548,7 @@ public class ConfigNodeRPCServiceProcessor implements IConfigNodeRPCService.Ifac
 
   @Override
   public TShowDataNodesResp showDataNodes() throws TException {
-    DataNodeConfigurationResp dataSet = (DataNodeConfigurationResp) configManager.showDataNodes();
-    TShowDataNodesResp showDataNodesResp = new TShowDataNodesResp();
-    showDataNodesResp.setStatus(dataSet.getStatus());
-    showDataNodesResp.setDataNodesInfoList(dataSet.getDataNodesInfoList());
-    return showDataNodesResp;
+    return configManager.showDataNodes();
   }
 
   public void handleClientExit() {}
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessorTest.java b/confignode/src/test/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessorTest.java
index 2aa109e30d..ee81f23bdd 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessorTest.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessorTest.java
@@ -47,7 +47,6 @@ import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerReq;
 import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerResp;
 import org.apache.iotdb.confignode.rpc.thrift.TCheckUserPrivilegesReq;
-import org.apache.iotdb.confignode.rpc.thrift.TClusterNodeInfos;
 import org.apache.iotdb.confignode.rpc.thrift.TCountStorageGroupResp;
 import org.apache.iotdb.confignode.rpc.thrift.TDataNodeConfigurationResp;
 import org.apache.iotdb.confignode.rpc.thrift.TDataNodeRegisterReq;
@@ -64,6 +63,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TSetDataReplicationFactorReq;
 import org.apache.iotdb.confignode.rpc.thrift.TSetSchemaReplicationFactorReq;
 import org.apache.iotdb.confignode.rpc.thrift.TSetStorageGroupReq;
 import org.apache.iotdb.confignode.rpc.thrift.TSetTimePartitionIntervalReq;
+import org.apache.iotdb.confignode.rpc.thrift.TShowClusterResp;
 import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
 import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchemaResp;
 import org.apache.iotdb.db.mpp.common.schematree.PathPatternTree;
@@ -231,10 +231,10 @@ public class ConfigNodeRPCServiceProcessorTest {
   }
 
   @Test
-  public void getAllClusterNodeInfosTest() throws TException {
+  public void showClusterTest() throws TException {
     registerDataNodes();
 
-    TClusterNodeInfos clusterNodes = processor.getAllClusterNodeInfos();
+    TShowClusterResp clusterNodes = processor.showCluster();
 
     List<TDataNodeLocation> dataNodeInfos = clusterNodes.getDataNodeList();
     Assert.assertEquals(3, dataNodeInfos.size());
diff --git a/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java b/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
index e39c00f533..6b773896d8 100644
--- a/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
+++ b/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
@@ -35,7 +35,6 @@ import org.apache.iotdb.confignode.rpc.thrift.IConfigNodeRPCService;
 import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerReq;
 import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerResp;
 import org.apache.iotdb.confignode.rpc.thrift.TCheckUserPrivilegesReq;
-import org.apache.iotdb.confignode.rpc.thrift.TClusterNodeInfos;
 import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterReq;
 import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterResp;
 import org.apache.iotdb.confignode.rpc.thrift.TCountStorageGroupResp;
@@ -69,6 +68,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TSetSchemaReplicationFactorReq;
 import org.apache.iotdb.confignode.rpc.thrift.TSetSchemaTemplateReq;
 import org.apache.iotdb.confignode.rpc.thrift.TSetStorageGroupReq;
 import org.apache.iotdb.confignode.rpc.thrift.TSetTimePartitionIntervalReq;
+import org.apache.iotdb.confignode.rpc.thrift.TShowClusterResp;
 import org.apache.iotdb.confignode.rpc.thrift.TShowDataNodesResp;
 import org.apache.iotdb.confignode.rpc.thrift.TShowRegionReq;
 import org.apache.iotdb.confignode.rpc.thrift.TShowRegionResp;
@@ -325,10 +325,10 @@ public class ConfigNodeClient
   }
 
   @Override
-  public TClusterNodeInfos getAllClusterNodeInfos() throws TException {
+  public TShowClusterResp showCluster() throws TException {
     for (int i = 0; i < RETRY_NUM; i++) {
       try {
-        TClusterNodeInfos resp = client.getAllClusterNodeInfos();
+        TShowClusterResp resp = client.showCluster();
         if (!updateConfigNodeLeader(resp.status)) {
           return resp;
         }
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ShowClusterTask.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ShowClusterTask.java
index 2b1c810e7d..176b3420c4 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ShowClusterTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ShowClusterTask.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.mpp.plan.execution.config;
 
-import org.apache.iotdb.confignode.rpc.thrift.TClusterNodeInfos;
+import org.apache.iotdb.confignode.rpc.thrift.TShowClusterResp;
 import org.apache.iotdb.db.mpp.common.header.DatasetHeader;
 import org.apache.iotdb.db.mpp.common.header.HeaderConstant;
 import org.apache.iotdb.db.mpp.plan.execution.config.executor.IConfigTaskExecutor;
@@ -61,7 +61,7 @@ public class ShowClusterTask implements IConfigTask {
   }
 
   public static void buildTSBlock(
-      TClusterNodeInfos clusterNodeInfos, SettableFuture<ConfigTaskResult> future) {
+      TShowClusterResp clusterNodeInfos, SettableFuture<ConfigTaskResult> future) {
     TsBlockBuilder builder =
         new TsBlockBuilder(HeaderConstant.showClusterHeader.getRespDataTypes());
 
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ShowDataNodesTask.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ShowDataNodesTask.java
index b4f3673ce9..514d9cfe69 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ShowDataNodesTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ShowDataNodesTask.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.mpp.plan.execution.config;
 
-import org.apache.iotdb.common.rpc.thrift.TDataNodesInfo;
+import org.apache.iotdb.confignode.rpc.thrift.TDataNodeInfo;
 import org.apache.iotdb.confignode.rpc.thrift.TShowDataNodesResp;
 import org.apache.iotdb.db.mpp.common.header.DatasetHeader;
 import org.apache.iotdb.db.mpp.common.header.HeaderConstant;
@@ -53,22 +53,19 @@ public class ShowDataNodesTask implements IConfigTask {
     TsBlockBuilder builder =
         new TsBlockBuilder(HeaderConstant.showDataNodesHeader.getRespDataTypes());
     if (showDataNodesResp.getDataNodesInfoList() != null) {
-      for (TDataNodesInfo tDataNodesLocation : showDataNodesResp.getDataNodesInfoList()) {
+      for (TDataNodeInfo dataNodeInfo : showDataNodesResp.getDataNodesInfoList()) {
         builder.getTimeColumnBuilder().writeLong(0L);
-        builder.getColumnBuilder(0).writeInt(tDataNodesLocation.getDataNodeId());
+        builder.getColumnBuilder(0).writeInt(dataNodeInfo.getDataNodeId());
         builder
             .getColumnBuilder(1)
             .writeBinary(
-                Binary.valueOf(
-                    tDataNodesLocation.getStatus() == null ? "" : tDataNodesLocation.getStatus()));
+                Binary.valueOf(dataNodeInfo.getStatus() == null ? "" : dataNodeInfo.getStatus()));
 
-        builder
-            .getColumnBuilder(2)
-            .writeBinary(Binary.valueOf(tDataNodesLocation.getRpcAddresss()));
-        builder.getColumnBuilder(3).writeInt(tDataNodesLocation.getRpcPort());
-        builder.getColumnBuilder(4).writeInt(tDataNodesLocation.getDataRegionNum());
+        builder.getColumnBuilder(2).writeBinary(Binary.valueOf(dataNodeInfo.getRpcAddresss()));
+        builder.getColumnBuilder(3).writeInt(dataNodeInfo.getRpcPort());
+        builder.getColumnBuilder(4).writeInt(dataNodeInfo.getDataRegionNum());
 
-        builder.getColumnBuilder(5).writeInt(tDataNodesLocation.getSchemaRegionNum());
+        builder.getColumnBuilder(5).writeInt(dataNodeInfo.getSchemaRegionNum());
         builder.declarePosition();
       }
     }
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ShowRegionTask.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ShowRegionTask.java
index 25cdb931ca..2c84953129 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ShowRegionTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ShowRegionTask.java
@@ -20,7 +20,7 @@
 package org.apache.iotdb.db.mpp.plan.execution.config;
 
 import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType;
-import org.apache.iotdb.common.rpc.thrift.TRegionInfo;
+import org.apache.iotdb.confignode.rpc.thrift.TRegionInfo;
 import org.apache.iotdb.confignode.rpc.thrift.TShowRegionResp;
 import org.apache.iotdb.db.mpp.common.header.DatasetHeader;
 import org.apache.iotdb.db.mpp.common.header.HeaderConstant;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
index ee8c02b9ce..be2cb3167c 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
@@ -26,13 +26,13 @@ import org.apache.iotdb.commons.client.IClientManager;
 import org.apache.iotdb.commons.consensus.PartitionRegionId;
 import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.confignode.rpc.thrift.TClusterNodeInfos;
 import org.apache.iotdb.confignode.rpc.thrift.TCountStorageGroupResp;
 import org.apache.iotdb.confignode.rpc.thrift.TCreateFunctionReq;
 import org.apache.iotdb.confignode.rpc.thrift.TDeleteStorageGroupsReq;
 import org.apache.iotdb.confignode.rpc.thrift.TDropFunctionReq;
 import org.apache.iotdb.confignode.rpc.thrift.TGetTemplateResp;
 import org.apache.iotdb.confignode.rpc.thrift.TSetStorageGroupReq;
+import org.apache.iotdb.confignode.rpc.thrift.TShowClusterResp;
 import org.apache.iotdb.confignode.rpc.thrift.TShowDataNodesResp;
 import org.apache.iotdb.confignode.rpc.thrift.TShowRegionReq;
 import org.apache.iotdb.confignode.rpc.thrift.TShowRegionResp;
@@ -288,15 +288,15 @@ public class ClusterConfigTaskExecutor implements IConfigTaskExecutor {
   @Override
   public SettableFuture<ConfigTaskResult> showCluster() {
     SettableFuture<ConfigTaskResult> future = SettableFuture.create();
-    TClusterNodeInfos clusterNodeInfos = new TClusterNodeInfos();
+    TShowClusterResp showClusterResp = new TShowClusterResp();
     try (ConfigNodeClient client =
         CONFIG_NODE_CLIENT_MANAGER.borrowClient(ConfigNodeInfo.partitionRegionId)) {
-      clusterNodeInfos = client.getAllClusterNodeInfos();
+      showClusterResp = client.showCluster();
     } catch (TException | IOException e) {
       future.setException(e);
     }
     // build TSBlock
-    ShowClusterTask.buildTSBlock(clusterNodeInfos, future);
+    ShowClusterTask.buildTSBlock(showClusterResp, future);
     return future;
   }
 
diff --git a/thrift-commons/src/main/thrift/common.thrift b/thrift-commons/src/main/thrift/common.thrift
index 8b8b982798..4c2ae8ac04 100644
--- a/thrift-commons/src/main/thrift/common.thrift
+++ b/thrift-commons/src/main/thrift/common.thrift
@@ -88,18 +88,6 @@ struct TDataNodeConfiguration {
   2: required TNodeResource resource
 }
 
-// For show regions
-struct TRegionInfo {
-  1: required TConsensusGroupId consensusGroupId
-  2: required string storageGroup
-  3: required i32 dataNodeId
-  4: required string clientRpcIp
-  5: required i32 clientRpcPort
-  6: required i64 seriesSlots
-  7: required i64 timeSlots
-  8: optional string status
-}
-
 enum TRegionMigrateFailedType {
   AddPeerFailed,
   RemovePeerFailed,
@@ -114,15 +102,6 @@ struct TFlushReq {
    3: optional i32 dataNodeId
 }
 
-struct TDataNodesInfo {
-  1: required i32 dataNodeId
-  2: required string status
-  3: required string rpcAddresss
-  4: required i32 rpcPort
-  5: required i32 dataRegionNum
-  6: required i32 schemaRegionNum
-}
-
 struct TSetTTLReq {
   1: required string storageGroup
   2: required i64 TTL
diff --git a/thrift-confignode/src/main/thrift/confignode.thrift b/thrift-confignode/src/main/thrift/confignode.thrift
index 9f67b2bb4d..4224ee627a 100644
--- a/thrift-confignode/src/main/thrift/confignode.thrift
+++ b/thrift-confignode/src/main/thrift/confignode.thrift
@@ -232,14 +232,6 @@ struct TConfigNodeRegisterResp {
   3: optional list<common.TConfigNodeLocation> configNodeList
 }
 
-// Show cluster
-struct TClusterNodeInfos {
-  1: required common.TSStatus status
-  2: required list<common.TConfigNodeLocation> configNodeList
-  3: required list<common.TDataNodeLocation> dataNodeList
-  4: required map<i32, string> nodeStatus
-}
-
 // UDF
 struct TCreateFunctionReq {
   1: required string udfName
@@ -251,23 +243,52 @@ struct TDropFunctionReq {
   1: required string udfName
 }
 
-// show regions
+// Show cluster
+struct TShowClusterResp {
+  1: required common.TSStatus status
+  2: required list<common.TConfigNodeLocation> configNodeList
+  3: required list<common.TDataNodeLocation> dataNodeList
+  4: required map<i32, string> nodeStatus
+}
+
+// Show datanodes
+struct TDataNodeInfo {
+  1: required i32 dataNodeId
+  2: required string status
+  3: required string rpcAddresss
+  4: required i32 rpcPort
+  5: required i32 dataRegionNum
+  6: required i32 schemaRegionNum
+}
+
+struct TShowDataNodesResp {
+  1: required common.TSStatus status
+  2: optional list<TDataNodeInfo> dataNodesInfoList
+}
+
+// Show regions
 struct TShowRegionReq {
   1: optional common.TConsensusGroupType consensusGroupType;
   2: optional list<string> storageGroups
 }
 
-struct TShowRegionResp {
-  1: required common.TSStatus status
-  2: optional list<common.TRegionInfo> regionInfoList;
+struct TRegionInfo {
+  1: required common.TConsensusGroupId consensusGroupId
+  2: required string storageGroup
+  3: required i32 dataNodeId
+  4: required string clientRpcIp
+  5: required i32 clientRpcPort
+  6: required i64 seriesSlots
+  7: required i64 timeSlots
+  8: optional string status
 }
 
-// show datanodes
-struct TShowDataNodesResp {
+struct TShowRegionResp {
   1: required common.TSStatus status
-  2: optional list<common.TDataNodesInfo> dataNodesInfoList
+  2: optional list<TRegionInfo> regionInfoList;
 }
 
+// Routing
 struct TRegionRouteMapResp {
   1: required common.TSStatus status
   // For version stamp
@@ -277,7 +298,6 @@ struct TRegionRouteMapResp {
   3: optional map<common.TConsensusGroupId, common.TRegionReplicaSet> regionRouteMap
 }
 
-
 // Template
 struct TCreateSchemaTemplateReq {
   1: required string name
@@ -315,9 +335,6 @@ service IConfigNodeRPCService {
 
   common.TSStatus reportRegionMigrateResult(TRegionMigrateResultReportReq req)
 
-  /* Show Cluster */
-  TClusterNodeInfos getAllClusterNodeInfos()
-
   /* StorageGroup */
 
   common.TSStatus setStorageGroup(TSetStorageGroupReq req)
@@ -400,7 +417,11 @@ service IConfigNodeRPCService {
 
   common.TSStatus flush(common.TFlushReq req)
 
-  /* Show Region */
+  /* Cluster Tools */
+
+  TShowClusterResp showCluster()
+
+  TShowDataNodesResp showDataNodes()
 
   TShowRegionResp showRegion(TShowRegionReq req)
 
@@ -412,10 +433,6 @@ service IConfigNodeRPCService {
 
   i64 getConfigNodeHeartBeat(i64 timestamp)
 
-  /* Show DataNodes */
-
-  TShowDataNodesResp showDataNodes()
-
   /* Template */
 
   common.TSStatus createSchemaTemplate(TCreateSchemaTemplateReq req)