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

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


The following commit(s) were added to refs/heads/master by this push:
     new 175615eb2ba Remove StorageNodeName (#28650)
175615eb2ba is described below

commit 175615eb2ba1c8d312572b3ee08201c18d4ed9fd
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Oct 6 22:14:40 2023 +0800

    Remove StorageNodeName (#28650)
---
 .../DataSourceGeneratedDatabaseConfiguration.java  | 11 ++-
 .../DataSourceProvidedDatabaseConfiguration.java   |  9 ++-
 .../database/resource/ResourceMetaData.java        |  5 +-
 .../database/resource/StorageResource.java         |  3 +-
 .../database/resource/node/StorageNode.java        | 22 +++++-
 .../resource/node/StorageNodeAggregator.java       | 26 +++----
 .../database/resource/node/StorageNodeName.java    | 51 --------------
 .../resource/unit/StorageUnitNodeMapUtils.java     | 12 ++--
 ...taSourceGeneratedDatabaseConfigurationTest.java |  4 +-
 ...ataSourceProvidedDatabaseConfigurationTest.java |  4 +-
 .../infra/metadata/ShardingSphereMetaDataTest.java |  3 +-
 .../datasource/ShardingSphereDataSourceTest.java   |  6 +-
 .../metadata/persist/MetaDataPersistService.java   | 10 +--
 .../single/route/SingleSQLRouterTest.java          |  5 +-
 .../transaction/rule/TransactionRuleTest.java      |  9 ++-
 .../context/ConfigurationContextManager.java       | 11 ++-
 .../manager/switcher/NewResourceSwitchManager.java | 31 ++++-----
 .../manager/switcher/ResourceSwitchManager.java    | 80 ++++++++++------------
 .../mode/manager/ContextManagerTest.java           |  9 ++-
 .../switcher/ResourceSwitchManagerTest.java        | 10 +--
 .../manager/switcher/SwitchingResourceTest.java    |  6 +-
 .../swapper/YamlProxyConfigurationSwapperTest.java |  4 +-
 .../ral/updatable/ImportMetaDataUpdaterTest.java   |  5 +-
 .../UnregisterStorageUnitBackendHandlerTest.java   |  3 +-
 .../version/ShardingSphereProxyVersionTest.java    |  3 +-
 25 files changed, 142 insertions(+), 200 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfiguration.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfiguration.java
index 83b132e3989..715ad0bfdc7 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfiguration.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfiguration.java
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.creator.DataSourceP
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.StorageResource;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnitNodeMapUtils;
 
@@ -54,22 +53,22 @@ public final class DataSourceGeneratedDatabaseConfiguration 
implements DatabaseC
         Map<String, DataSourcePoolProperties> dataSourcePoolPropertiesMap = 
dataSourceConfigs.entrySet().stream()
                 .collect(Collectors.toMap(Entry::getKey, entry -> 
DataSourcePoolPropertiesCreator.create(entry.getValue()), (oldValue, 
currentValue) -> oldValue, LinkedHashMap::new));
         Map<String, StorageNode> storageUnitNodeMap = 
StorageUnitNodeMapUtils.fromDataSourcePoolProperties(dataSourcePoolPropertiesMap);
-        Map<StorageNodeName, DataSource> storageNodeDataSources = 
getStorageNodeDataSourceMap(dataSourcePoolPropertiesMap, storageUnitNodeMap);
+        Map<StorageNode, DataSource> storageNodeDataSources = 
getStorageNodeDataSourceMap(dataSourcePoolPropertiesMap, storageUnitNodeMap);
         storageUnits = new LinkedHashMap<>(dataSourceConfigs.size(), 1F);
         for (Entry<String, DataSourceConfiguration> entry : 
dataSourceConfigs.entrySet()) {
             String storageUnitName = entry.getKey();
             StorageNode storageNode = storageUnitNodeMap.get(storageUnitName);
-            DataSource dataSource = 
storageNodeDataSources.get(storageNode.getName());
+            DataSource dataSource = storageNodeDataSources.get(storageNode);
             StorageUnit storageUnit = new StorageUnit(storageNode, 
dataSourcePoolPropertiesMap.get(storageUnitName), dataSource);
             storageUnits.put(storageUnitName, storageUnit);
         }
         storageResource = new StorageResource(storageNodeDataSources, 
storageUnitNodeMap);
     }
     
-    private Map<StorageNodeName, DataSource> getStorageNodeDataSourceMap(final 
Map<String, DataSourcePoolProperties> dataSourcePoolPropertiesMap, final 
Map<String, StorageNode> storageUnitNodeMap) {
-        Map<StorageNodeName, DataSource> result = new 
LinkedHashMap<>(storageUnitNodeMap.size(), 1F);
+    private Map<StorageNode, DataSource> getStorageNodeDataSourceMap(final 
Map<String, DataSourcePoolProperties> dataSourcePoolPropertiesMap, final 
Map<String, StorageNode> storageUnitNodeMap) {
+        Map<StorageNode, DataSource> result = new 
LinkedHashMap<>(storageUnitNodeMap.size(), 1F);
         for (Entry<String, StorageNode> entry : storageUnitNodeMap.entrySet()) 
{
-            result.computeIfAbsent(entry.getValue().getName(), key -> 
DataSourcePoolCreator.create(entry.getKey(), 
dataSourcePoolPropertiesMap.get(entry.getKey()), true, result.values()));
+            result.computeIfAbsent(entry.getValue(), key -> 
DataSourcePoolCreator.create(entry.getKey(), 
dataSourcePoolPropertiesMap.get(entry.getKey()), true, result.values()));
         }
         return result;
     }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceProvidedDatabaseConfiguration.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceProvidedDatabaseConfiguration.java
index 4da86afb39a..bc450dabfd5 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceProvidedDatabaseConfiguration.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceProvidedDatabaseConfiguration.java
@@ -25,7 +25,6 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 import 
org.apache.shardingsphere.infra.metadata.database.resource.StorageResource;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeAggregator;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnitNodeMapUtils;
 
@@ -51,13 +50,13 @@ public final class DataSourceProvidedDatabaseConfiguration 
implements DatabaseCo
     public DataSourceProvidedDatabaseConfiguration(final Map<String, 
DataSource> dataSources, final Collection<RuleConfiguration> ruleConfigs) {
         this.ruleConfigurations = ruleConfigs;
         Map<String, StorageNode> storageUnitNodeMap = 
StorageUnitNodeMapUtils.fromDataSources(dataSources);
-        Map<StorageNodeName, DataSource> storageNodeDataSources = 
StorageNodeAggregator.aggregateDataSources(dataSources);
+        Map<StorageNode, DataSource> storageNodeDataSources = 
StorageNodeAggregator.aggregateDataSources(dataSources);
         Map<String, DataSourcePoolProperties> dataSourcePoolPropertiesMap = 
createDataSourcePoolPropertiesMap(dataSources);
         storageUnits = new LinkedHashMap<>(dataSourcePoolPropertiesMap.size(), 
1F);
         for (Entry<String, DataSourcePoolProperties> entry : 
dataSourcePoolPropertiesMap.entrySet()) {
             String storageUnitName = entry.getKey();
             StorageNode storageNode = storageUnitNodeMap.get(storageUnitName);
-            StorageUnit storageUnit = new StorageUnit(storageNode, 
dataSourcePoolPropertiesMap.get(storageUnitName), 
storageNodeDataSources.get(storageNode.getName()));
+            StorageUnit storageUnit = new StorageUnit(storageNode, 
dataSourcePoolPropertiesMap.get(storageUnitName), 
storageNodeDataSources.get(storageNode));
             storageUnits.put(storageUnitName, storageUnit);
         }
         storageResource = new StorageResource(storageNodeDataSources, 
storageUnitNodeMap);
@@ -68,12 +67,12 @@ public final class DataSourceProvidedDatabaseConfiguration 
implements DatabaseCo
         this.storageResource = storageResource;
         this.ruleConfigurations = ruleConfigs;
         Map<String, StorageNode> storageUnitNodeMap = 
StorageUnitNodeMapUtils.fromDataSourcePoolProperties(dataSourcePoolPropertiesMap);
-        Map<StorageNodeName, DataSource> storageNodeDataSources = 
storageResource.getDataSources();
+        Map<StorageNode, DataSource> storageNodeDataSources = 
storageResource.getDataSources();
         storageUnits = new LinkedHashMap<>(dataSourcePoolPropertiesMap.size(), 
1F);
         for (Entry<String, DataSourcePoolProperties> entry : 
dataSourcePoolPropertiesMap.entrySet()) {
             String storageUnitName = entry.getKey();
             StorageNode storageNode = storageUnitNodeMap.get(storageUnitName);
-            StorageUnit storageUnit = new StorageUnit(storageNode, 
dataSourcePoolPropertiesMap.get(storageUnitName), 
storageNodeDataSources.get(storageNode.getName()));
+            StorageUnit storageUnit = new StorageUnit(storageNode, 
dataSourcePoolPropertiesMap.get(storageUnitName), 
storageNodeDataSources.get(storageNode));
             storageUnits.put(storageUnitName, storageUnit);
         }
     }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ResourceMetaData.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ResourceMetaData.java
index 0b8871ec912..ba0432523b2 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ResourceMetaData.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ResourceMetaData.java
@@ -23,7 +23,6 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.creator.DataSourceP
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeAggregator;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnitNodeMapUtils;
 
@@ -42,7 +41,7 @@ import java.util.stream.Collectors;
 @Getter
 public final class ResourceMetaData {
     
-    private final Map<StorageNodeName, DataSource> dataSources;
+    private final Map<StorageNode, DataSource> dataSources;
     
     private final Map<String, StorageUnit> storageUnits;
     
@@ -53,7 +52,7 @@ public final class ResourceMetaData {
                 Collectors.toMap(Entry::getKey, entry -> 
DataSourcePoolPropertiesCreator.create(entry.getValue()), (oldValue, 
currentValue) -> oldValue, LinkedHashMap::new));
         storageUnits = new LinkedHashMap<>();
         for (Entry<String, StorageNode> entry : storageNodes.entrySet()) {
-            storageUnits.put(entry.getKey(), new StorageUnit(entry.getValue(), 
dataSourcePoolPropsMap.get(entry.getKey()), 
dataSources.get(entry.getValue().getName().getName())));
+            storageUnits.put(entry.getKey(), new StorageUnit(entry.getValue(), 
dataSourcePoolPropsMap.get(entry.getKey()), 
dataSources.get(entry.getValue().getName())));
         }
     }
     
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/StorageResource.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/StorageResource.java
index 742bb9c7fbe..0dcce77c213 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/StorageResource.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/StorageResource.java
@@ -20,7 +20,6 @@ package 
org.apache.shardingsphere.infra.metadata.database.resource;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 
 import javax.sql.DataSource;
 import java.util.Map;
@@ -32,7 +31,7 @@ import java.util.Map;
 @Getter
 public final class StorageResource {
     
-    private final Map<StorageNodeName, DataSource> dataSources;
+    private final Map<StorageNode, DataSource> dataSources;
     
     private final Map<String, StorageNode> storageUnitNodeMap;
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNode.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNode.java
index 6083df308db..b1b23778720 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNode.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNode.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.infra.metadata.database.resource.node;
 
+import com.google.common.base.Objects;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
@@ -27,5 +28,24 @@ import lombok.RequiredArgsConstructor;
 @Getter
 public final class StorageNode {
     
-    private final StorageNodeName name;
+    private final String name;
+    
+    public StorageNode(final String hostname, final int port, final String 
username) {
+        name = String.format("%s_%s_%s", hostname, port, username);
+    }
+    
+    @Override
+    public boolean equals(final Object obj) {
+        return obj instanceof StorageNode && ((StorageNode) 
obj).name.equalsIgnoreCase(name);
+    }
+    
+    @Override
+    public int hashCode() {
+        return Objects.hashCode(name.toUpperCase());
+    }
+    
+    @Override
+    public String toString() {
+        return name;
+    }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNodeAggregator.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNodeAggregator.java
index 7f4212beea8..6872bb92a67 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNodeAggregator.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNodeAggregator.java
@@ -39,40 +39,40 @@ import java.util.stream.Collectors;
 public final class StorageNodeAggregator {
     
     /**
-     * Aggregate data source map to storage node name grouped.
+     * Aggregate data source map to storage node grouped.
      *
      * @param dataSourceMap storage unit name and data source map
-     * @return storage node name and data source map
+     * @return storage node and data source map
      */
-    public static Map<StorageNodeName, DataSource> aggregateDataSources(final 
Map<String, DataSource> dataSourceMap) {
+    public static Map<StorageNode, DataSource> aggregateDataSources(final 
Map<String, DataSource> dataSourceMap) {
         return dataSourceMap.entrySet().stream().collect(
-                Collectors.toMap(entry -> new StorageNodeName(entry.getKey()), 
Entry::getValue, (oldValue, currentValue) -> currentValue, () -> new 
LinkedHashMap<>(dataSourceMap.size(), 1F)));
+                Collectors.toMap(entry -> new StorageNode(entry.getKey()), 
Entry::getValue, (oldValue, currentValue) -> currentValue, () -> new 
LinkedHashMap<>(dataSourceMap.size(), 1F)));
     }
     
     /**
-     * Aggregate data source pool properties map to storage node name grouped.
+     * Aggregate data source pool properties map to storage node grouped.
      *
      * @param storageUnitDataSourcePoolPropsMap storage unit name and data 
source pool properties map
-     * @return storage node name and data source pool properties map
+     * @return storage node and data source pool properties map
      */
-    public static Map<StorageNodeName, DataSourcePoolProperties> 
aggregateDataSourcePoolProperties(final Map<String, DataSourcePoolProperties> 
storageUnitDataSourcePoolPropsMap) {
-        Map<StorageNodeName, DataSourcePoolProperties> result = new 
LinkedHashMap<>();
+    public static Map<StorageNode, DataSourcePoolProperties> 
aggregateDataSourcePoolProperties(final Map<String, DataSourcePoolProperties> 
storageUnitDataSourcePoolPropsMap) {
+        Map<StorageNode, DataSourcePoolProperties> result = new 
LinkedHashMap<>();
         for (Entry<String, DataSourcePoolProperties> entry : 
storageUnitDataSourcePoolPropsMap.entrySet()) {
             Map<String, Object> standardProps = 
entry.getValue().getConnectionPropertySynonyms().getStandardProperties();
             String url = standardProps.get("url").toString();
             boolean isInstanceConnectionAvailable = new 
DatabaseTypeRegistry(DatabaseTypeFactory.get(url)).getDialectDatabaseMetaData().isInstanceConnectionAvailable();
-            StorageNodeName storageNodeName = 
getStorageNodeName(entry.getKey(), url, 
standardProps.get("username").toString(), isInstanceConnectionAvailable);
-            result.putIfAbsent(storageNodeName, entry.getValue());
+            StorageNode storageNode = getStorageNode(entry.getKey(), url, 
standardProps.get("username").toString(), isInstanceConnectionAvailable);
+            result.putIfAbsent(storageNode, entry.getValue());
         }
         return result;
     }
     
-    private static StorageNodeName getStorageNodeName(final String 
dataSourceName, final String url, final String username, final boolean 
isInstanceConnectionAvailable) {
+    private static StorageNode getStorageNode(final String dataSourceName, 
final String url, final String username, final boolean 
isInstanceConnectionAvailable) {
         try {
             JdbcUrl jdbcUrl = new StandardJdbcUrlParser().parse(url);
-            return isInstanceConnectionAvailable ? new 
StorageNodeName(jdbcUrl.getHostname(), jdbcUrl.getPort(), username) : new 
StorageNodeName(dataSourceName);
+            return isInstanceConnectionAvailable ? new 
StorageNode(jdbcUrl.getHostname(), jdbcUrl.getPort(), username) : new 
StorageNode(dataSourceName);
         } catch (final UnrecognizedDatabaseURLException ex) {
-            return new StorageNodeName(dataSourceName);
+            return new StorageNode(dataSourceName);
         }
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNodeName.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNodeName.java
deleted file mode 100644
index 3ec99ec0e1a..00000000000
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNodeName.java
+++ /dev/null
@@ -1,51 +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.shardingsphere.infra.metadata.database.resource.node;
-
-import com.google.common.base.Objects;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-
-/**
- * Storage node name.
- */
-@RequiredArgsConstructor
-@Getter
-public final class StorageNodeName {
-    
-    private final String name;
-    
-    public StorageNodeName(final String hostname, final int port, final String 
username) {
-        name = String.format("%s_%s_%s", hostname, port, username);
-    }
-    
-    @Override
-    public boolean equals(final Object obj) {
-        return obj instanceof StorageNodeName && ((StorageNodeName) 
obj).name.equalsIgnoreCase(name);
-    }
-    
-    @Override
-    public int hashCode() {
-        return Objects.hashCode(name.toUpperCase());
-    }
-    
-    @Override
-    public String toString() {
-        return name;
-    }
-}
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapUtils.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapUtils.java
index 602574eb62c..2be8758a117 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapUtils.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapUtils.java
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 
 import javax.sql.DataSource;
 import java.util.LinkedHashMap;
@@ -48,7 +47,7 @@ public final class StorageUnitNodeMapUtils {
      */
     public static Map<String, StorageNode> fromDataSources(final Map<String, 
DataSource> dataSources) {
         return dataSources.entrySet().stream()
-                .collect(Collectors.toMap(Entry::getKey, entry -> new 
StorageNode(new StorageNodeName(entry.getKey())), (oldValue, currentValue) -> 
currentValue, LinkedHashMap::new));
+                .collect(Collectors.toMap(Entry::getKey, entry -> new 
StorageNode(entry.getKey()), (oldValue, currentValue) -> currentValue, 
LinkedHashMap::new));
     }
     
     /**
@@ -70,16 +69,15 @@ public final class StorageUnitNodeMapUtils {
         Map<String, Object> standardProps = 
props.getConnectionPropertySynonyms().getStandardProperties();
         String url = standardProps.get("url").toString();
         boolean isInstanceConnectionAvailable = new 
DatabaseTypeRegistry(DatabaseTypeFactory.get(url)).getDialectDatabaseMetaData().isInstanceConnectionAvailable();
-        StorageNodeName storageNodeName = getStorageNodeName(storageUnitName, 
url, standardProps.get("username").toString(), isInstanceConnectionAvailable);
-        return new StorageNode(storageNodeName);
+        return getStorageNode(storageUnitName, url, 
standardProps.get("username").toString(), isInstanceConnectionAvailable);
     }
     
-    private static StorageNodeName getStorageNodeName(final String 
dataSourceName, final String url, final String username, final boolean 
isInstanceConnectionAvailable) {
+    private static StorageNode getStorageNode(final String dataSourceName, 
final String url, final String username, final boolean 
isInstanceConnectionAvailable) {
         try {
             JdbcUrl jdbcUrl = new StandardJdbcUrlParser().parse(url);
-            return isInstanceConnectionAvailable ? new 
StorageNodeName(jdbcUrl.getHostname(), jdbcUrl.getPort(), username) : new 
StorageNodeName(dataSourceName);
+            return isInstanceConnectionAvailable ? new 
StorageNode(jdbcUrl.getHostname(), jdbcUrl.getPort(), username) : new 
StorageNode(dataSourceName);
         } catch (final UnrecognizedDatabaseURLException ex) {
-            return new StorageNodeName(dataSourceName);
+            return new StorageNode(dataSourceName);
         }
     }
 }
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfigurationTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfigurationTest.java
index 36fa57f9d5d..f2180ec3946 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfigurationTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfigurationTest.java
@@ -23,8 +23,8 @@ import 
org.apache.shardingsphere.infra.datasource.pool.config.ConnectionConfigur
 import 
org.apache.shardingsphere.infra.datasource.pool.config.DataSourceConfiguration;
 import 
org.apache.shardingsphere.infra.datasource.pool.config.PoolConfiguration;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import org.apache.shardingsphere.infra.fixture.FixtureRuleConfiguration;
+import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
 import org.junit.jupiter.api.Test;
 
 import javax.sql.DataSource;
@@ -50,7 +50,7 @@ class DataSourceGeneratedDatabaseConfigurationTest {
     @Test
     void assertGetStorageNodes() {
         DataSourceGeneratedDatabaseConfiguration databaseConfig = 
createDataSourceGeneratedDatabaseConfiguration();
-        HikariDataSource hikariDataSource = (HikariDataSource) 
databaseConfig.getStorageResource().getDataSources().get(new 
StorageNodeName("normal_db"));
+        HikariDataSource hikariDataSource = (HikariDataSource) 
databaseConfig.getStorageResource().getDataSources().get(new 
StorageNode("normal_db"));
         assertThat(hikariDataSource.getJdbcUrl(), 
is("jdbc:mock://127.0.0.1/normal_db"));
         assertThat(hikariDataSource.getUsername(), is("root"));
         assertThat(hikariDataSource.getPassword(), is(""));
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceProvidedDatabaseConfigurationTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceProvidedDatabaseConfigurationTest.java
index 241d1c56248..9c49325a45f 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceProvidedDatabaseConfigurationTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceProvidedDatabaseConfigurationTest.java
@@ -19,8 +19,8 @@ package org.apache.shardingsphere.infra.config.database.impl;
 
 import 
org.apache.shardingsphere.infra.datasource.pool.CatalogSwitchableDataSource;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import org.apache.shardingsphere.infra.fixture.FixtureRuleConfiguration;
+import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
 import org.junit.jupiter.api.Test;
 
@@ -45,7 +45,7 @@ class DataSourceProvidedDatabaseConfigurationTest {
     @Test
     void assertGetStorageNodes() {
         DataSourceProvidedDatabaseConfiguration databaseConfig = 
createDataSourceProvidedDatabaseConfiguration();
-        MockedDataSource dataSource = (MockedDataSource) 
databaseConfig.getStorageResource().getDataSources().get(new 
StorageNodeName("foo_ds"));
+        MockedDataSource dataSource = (MockedDataSource) 
databaseConfig.getStorageResource().getDataSources().get(new 
StorageNode("foo_ds"));
         assertThat(dataSource.getUrl(), is("jdbc:mock://127.0.0.1/foo_ds"));
         assertThat(dataSource.getUsername(), is("root"));
         assertThat(dataSource.getPassword(), is("root"));
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
index e2629760467..12f765b559f 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
@@ -23,7 +23,6 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import org.apache.shardingsphere.infra.rule.identifier.type.ResourceHeldRule;
@@ -112,7 +111,7 @@ class ShardingSphereMetaDataTest {
         when(result.getResourceMetaData()).thenReturn(resourceMetaData);
         DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/foo_ds"));
-        StorageUnit storageUnit = new StorageUnit(new 
StorageNode(mock(StorageNodeName.class)), dataSourcePoolProps, dataSource);
+        StorageUnit storageUnit = new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps, dataSource);
         
when(result.getResourceMetaData().getStorageUnits()).thenReturn(Collections.singletonMap("foo_db",
 storageUnit));
         when(result.getRuleMetaData()).thenReturn(new 
RuleMetaData(Collections.singleton(databaseResourceHeldRule)));
         return result;
diff --git 
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSourceTest.java
 
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSourceTest.java
index de2c40f748f..4404425c1cd 100644
--- 
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSourceTest.java
+++ 
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSourceTest.java
@@ -22,8 +22,8 @@ import lombok.SneakyThrows;
 import 
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
 import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
 import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.engine.ConnectionMode;
+import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
 import org.apache.shardingsphere.infra.state.cluster.ClusterState;
 import org.apache.shardingsphere.infra.state.instance.InstanceState;
 import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -132,9 +132,9 @@ class ShardingSphereDataSourceTest {
         try (HikariDataSource dataSource = createHikariDataSource()) {
             ShardingSphereDataSource actual = 
createShardingSphereDataSource(dataSource);
             actual.close();
-            Map<StorageNodeName, DataSource> dataSourceMap = 
getContextManager(actual).getMetaDataContexts().getMetaData()
+            Map<StorageNode, DataSource> dataSourceMap = 
getContextManager(actual).getMetaDataContexts().getMetaData()
                     
.getDatabase(DefaultDatabase.LOGIC_NAME).getResourceMetaData().getDataSources();
-            assertTrue(((HikariDataSource) dataSourceMap.get(new 
StorageNodeName("ds"))).isClosed());
+            assertTrue(((HikariDataSource) dataSourceMap.get(new 
StorageNode("ds"))).isClosed());
         }
     }
     
diff --git 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistService.java
 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistService.java
index 6411201a0e4..0ebdf0a039c 100644
--- 
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistService.java
+++ 
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistService.java
@@ -21,11 +21,11 @@ import lombok.Getter;
 import org.apache.shardingsphere.infra.config.database.DatabaseConfiguration;
 import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
 import 
org.apache.shardingsphere.infra.config.rule.decorator.RuleConfigurationDecorator;
-import 
org.apache.shardingsphere.infra.datasource.pool.destroyer.DataSourcePoolDestroyer;
 import 
org.apache.shardingsphere.infra.datasource.pool.config.DataSourceConfiguration;
-import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
+import 
org.apache.shardingsphere.infra.datasource.pool.destroyer.DataSourcePoolDestroyer;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.creator.DataSourcePoolPropertiesCreator;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
+import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
+import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import 
org.apache.shardingsphere.metadata.persist.data.ShardingSphereDataPersistService;
@@ -121,9 +121,9 @@ public final class MetaDataPersistService implements 
MetaDataBasedPersistService
                 .collect(Collectors.toMap(Entry::getKey, entry -> 
entry.getValue().getDataSourcePoolProperties(), (oldValue, currentValue) -> 
oldValue, LinkedHashMap::new));
     }
     
-    private Map<String, DataSourcePoolProperties> 
getDataSourcePoolPropertiesMap(final Map<StorageNodeName, DataSource> 
storageNodeDataSources) {
+    private Map<String, DataSourcePoolProperties> 
getDataSourcePoolPropertiesMap(final Map<StorageNode, DataSource> 
storageNodeDataSources) {
         Map<String, DataSourcePoolProperties> result = new 
LinkedHashMap<>(storageNodeDataSources.size(), 1F);
-        for (Entry<StorageNodeName, DataSource> entry : 
storageNodeDataSources.entrySet()) {
+        for (Entry<StorageNode, DataSource> entry : 
storageNodeDataSources.entrySet()) {
             result.put(entry.getKey().getName(), 
DataSourcePoolPropertiesCreator.create(entry.getValue()));
         }
         return result;
diff --git 
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
 
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
index a1b7ca3e5dc..3f03c668365 100644
--- 
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
+++ 
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -151,10 +150,10 @@ class SingleSQLRouterTest {
         Map<String, StorageUnit> storageUnits = new HashMap<>(2, 1F);
         DataSourcePoolProperties dataSourcePoolProps0 = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps0.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/ds_0"));
-        storageUnits.put("ds_0", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class)), dataSourcePoolProps0, new 
MockedDataSource()));
+        storageUnits.put("ds_0", new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps0, new MockedDataSource()));
         DataSourcePoolProperties dataSourcePoolProps1 = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps1.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/ds_1"));
-        storageUnits.put("ds_1", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class)), dataSourcePoolProps1, new 
MockedDataSource()));
+        storageUnits.put("ds_1", new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps1, new MockedDataSource()));
         ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, 
RETURNS_DEEP_STUBS);
         
when(result.getResourceMetaData().getStorageUnits()).thenReturn(storageUnits);
         when(result.getName()).thenReturn(DefaultDatabase.LOGIC_NAME);
diff --git 
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
 
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
index ec0aa54fdb0..4bb970a26c1 100644
--- 
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
+++ 
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
@@ -21,7 +21,6 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
 import org.apache.shardingsphere.transaction.api.TransactionType;
@@ -102,10 +101,10 @@ class TransactionRuleTest {
         Map<String, StorageUnit> storageUnits = new HashMap<>(2, 1F);
         DataSourcePoolProperties dataSourcePoolProps0 = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps0.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/ds_0"));
-        storageUnits.put("ds_0", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class)), dataSourcePoolProps0, new 
MockedDataSource()));
+        storageUnits.put("ds_0", new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps0, new MockedDataSource()));
         DataSourcePoolProperties dataSourcePoolProps1 = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps1.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/ds_1"));
-        storageUnits.put("ds_1", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class)), dataSourcePoolProps1, new 
MockedDataSource()));
+        storageUnits.put("ds_1", new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps1, new MockedDataSource()));
         ResourceMetaData result = mock(ResourceMetaData.class, 
RETURNS_DEEP_STUBS);
         when(result.getStorageUnits()).thenReturn(storageUnits);
         return result;
@@ -123,10 +122,10 @@ class TransactionRuleTest {
         Map<String, StorageUnit> storageUnits = new HashMap<>(2, 1F);
         DataSourcePoolProperties dataSourcePoolProps0 = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps0.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/ds_0"));
-        storageUnits.put("ds_0", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class)), dataSourcePoolProps0, new 
MockedDataSource()));
+        storageUnits.put("ds_0", new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps0, new MockedDataSource()));
         DataSourcePoolProperties dataSourcePoolProps1 = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps1.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/ds_1"));
-        storageUnits.put("ds_1", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class)), dataSourcePoolProps1, new 
MockedDataSource()));
+        storageUnits.put("ds_1", new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps1, new MockedDataSource()));
         ResourceMetaData result = mock(ResourceMetaData.class, 
RETURNS_DEEP_STUBS);
         when(result.getStorageUnits()).thenReturn(storageUnits);
         return result;
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
index 389e43a46d9..4d30b5940f8 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
@@ -31,7 +31,6 @@ import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.StorageResource;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import org.apache.shardingsphere.infra.metadata.database.schema.SchemaManager;
@@ -278,15 +277,15 @@ public final class ConfigurationContextManager {
      * @return ShardingSphere databases
      */
     public Map<String, ShardingSphereDatabase> renewDatabase(final 
ShardingSphereDatabase database, final SwitchingResource resource) {
-        Map<StorageNodeName, DataSource> newStorageNodes = 
getNewStorageNodes(database.getResourceMetaData().getDataSources(), resource);
+        Map<StorageNode, DataSource> newStorageNodes = 
getNewStorageNodes(database.getResourceMetaData().getDataSources(), resource);
         Map<String, StorageUnit> newStorageUnits = 
getNewStorageUnits(database.getResourceMetaData().getStorageUnits(), resource);
         return Collections.singletonMap(database.getName().toLowerCase(), new 
ShardingSphereDatabase(database.getName(), database.getProtocolType(),
                 new ResourceMetaData(newStorageNodes, newStorageUnits), 
database.getRuleMetaData(), database.getSchemas()));
     }
     
-    private Map<StorageNodeName, DataSource> getNewStorageNodes(final 
Map<StorageNodeName, DataSource> currentStorageNodes, final SwitchingResource 
resource) {
-        Map<StorageNodeName, DataSource> result = new LinkedHashMap<>();
-        for (Entry<StorageNodeName, DataSource> entry : 
currentStorageNodes.entrySet()) {
+    private Map<StorageNode, DataSource> getNewStorageNodes(final 
Map<StorageNode, DataSource> currentStorageNodes, final SwitchingResource 
resource) {
+        Map<StorageNode, DataSource> result = new LinkedHashMap<>();
+        for (Entry<StorageNode, DataSource> entry : 
currentStorageNodes.entrySet()) {
             if 
(!resource.getStaleStorageResource().getDataSources().containsKey(entry.getKey()))
 {
                 result.put(entry.getKey(), entry.getValue());
             }
@@ -367,7 +366,7 @@ public final class ConfigurationContextManager {
     }
     
     private StorageResource getMergedStorageResource(final ResourceMetaData 
currentResourceMetaData, final SwitchingResource switchingResource) {
-        Map<StorageNodeName, DataSource> storageNodeDataSources = 
currentResourceMetaData.getDataSources();
+        Map<StorageNode, DataSource> storageNodeDataSources = 
currentResourceMetaData.getDataSources();
         Map<String, StorageNode> storageUnitNodeMap = new LinkedHashMap<>(
                 currentResourceMetaData.getStorageUnits().entrySet().stream()
                         .collect(Collectors.toMap(Entry::getKey, entry -> 
entry.getValue().getStorageNode(), (oldValue, currentValue) -> oldValue, 
LinkedHashMap::new)));
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/NewResourceSwitchManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/NewResourceSwitchManager.java
index ce4263a5e7b..347affcf80f 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/NewResourceSwitchManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/NewResourceSwitchManager.java
@@ -22,12 +22,10 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.StorageResource;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeAggregator;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnitNodeMapUtils;
 
 import javax.sql.DataSource;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -52,16 +50,15 @@ public final class NewResourceSwitchManager {
                 .collect(Collectors.toMap(Entry::getKey, entry -> 
entry.getValue().getDataSourcePoolProperties(), (oldValue, currentValue) -> 
oldValue, LinkedHashMap::new)));
         mergedPropsMap.putAll(storageUnitDataSourcePoolPropsMap);
         Map<String, StorageNode> toBeCreatedStorageUintNodeMap = 
StorageUnitNodeMapUtils.fromDataSourcePoolProperties(storageUnitDataSourcePoolPropsMap);
-        Map<StorageNodeName, DataSourcePoolProperties> dataSourcePoolPropsMap 
= 
StorageNodeAggregator.aggregateDataSourcePoolProperties(storageUnitDataSourcePoolPropsMap);
+        Map<StorageNode, DataSourcePoolProperties> dataSourcePoolPropsMap = 
StorageNodeAggregator.aggregateDataSourcePoolProperties(storageUnitDataSourcePoolPropsMap);
         return new SwitchingResource(resourceMetaData, 
getRegisterNewStorageResource(resourceMetaData, toBeCreatedStorageUintNodeMap, 
dataSourcePoolPropsMap),
                 new StorageResource(Collections.emptyMap(), 
Collections.emptyMap()), mergedPropsMap);
     }
     
     private StorageResource getRegisterNewStorageResource(final 
ResourceMetaData resourceMetaData,
-                                                          final Map<String, 
StorageNode> storageUintNodeMap, final Map<StorageNodeName, 
DataSourcePoolProperties> dataSourcePoolPropsMap) {
-        Collection<StorageNodeName> storageNodeNames = 
storageUintNodeMap.values().stream().map(StorageNode::getName).collect(Collectors.toSet());
-        Map<StorageNodeName, DataSource> newStorageNodes = new 
LinkedHashMap<>(storageNodeNames.size(), 1F);
-        for (StorageNodeName each : storageNodeNames) {
+                                                          final Map<String, 
StorageNode> storageUintNodeMap, final Map<StorageNode, 
DataSourcePoolProperties> dataSourcePoolPropsMap) {
+        Map<StorageNode, DataSource> newStorageNodes = new 
LinkedHashMap<>(storageUintNodeMap.size(), 1F);
+        for (StorageNode each : storageUintNodeMap.values()) {
             if (!resourceMetaData.getDataSources().containsKey(each)) {
                 newStorageNodes.put(each, 
DataSourcePoolCreator.create(dataSourcePoolPropsMap.get(each)));
             }
@@ -81,25 +78,23 @@ public final class NewResourceSwitchManager {
                 .collect(Collectors.toMap(Entry::getKey, entry -> 
entry.getValue().getDataSourcePoolProperties(), (oldValue, currentValue) -> 
oldValue, LinkedHashMap::new)));
         mergedDataSourcePoolPropsMap.putAll(propsMap);
         Map<String, StorageNode> toBeAlteredStorageUintNodeMap = 
StorageUnitNodeMapUtils.fromDataSourcePoolProperties(mergedDataSourcePoolPropsMap);
-        Map<StorageNodeName, DataSourcePoolProperties> dataSourcePoolPropsMap 
= 
StorageNodeAggregator.aggregateDataSourcePoolProperties(mergedDataSourcePoolPropsMap);
+        Map<StorageNode, DataSourcePoolProperties> dataSourcePoolPropsMap = 
StorageNodeAggregator.aggregateDataSourcePoolProperties(mergedDataSourcePoolPropsMap);
         return new SwitchingResource(resourceMetaData, 
getAlterNewStorageResource(toBeAlteredStorageUintNodeMap, 
dataSourcePoolPropsMap),
                 getStaleStorageResource(resourceMetaData, 
toBeAlteredStorageUintNodeMap), mergedDataSourcePoolPropsMap);
     }
     
-    private StorageResource getAlterNewStorageResource(final Map<String, 
StorageNode> storageUintNodeMap, final Map<StorageNodeName, 
DataSourcePoolProperties> dataSourcePoolPropsMap) {
-        Collection<StorageNodeName> toBeAlteredStorageNodeNames = 
storageUintNodeMap.values().stream().map(StorageNode::getName).collect(Collectors.toSet());
-        Map<StorageNodeName, DataSource> storageNodes = new 
LinkedHashMap<>(toBeAlteredStorageNodeNames.size(), 1F);
-        for (StorageNodeName each : toBeAlteredStorageNodeNames) {
+    private StorageResource getAlterNewStorageResource(final Map<String, 
StorageNode> storageUintNodeMap, final Map<StorageNode, 
DataSourcePoolProperties> dataSourcePoolPropsMap) {
+        Map<StorageNode, DataSource> storageNodes = new 
LinkedHashMap<>(storageUintNodeMap.size(), 1F);
+        for (StorageNode each : storageUintNodeMap.values()) {
             storageNodes.put(each, 
DataSourcePoolCreator.create(dataSourcePoolPropsMap.get(each)));
         }
         return new StorageResource(storageNodes, storageUintNodeMap);
     }
     
     private StorageResource getStaleStorageResource(final ResourceMetaData 
resourceMetaData, final Map<String, StorageNode> storageUintNodeMap) {
-        Collection<StorageNodeName> toBeAlteredStorageNodeNames = 
storageUintNodeMap.values().stream().map(StorageNode::getName).collect(Collectors.toSet());
-        Map<StorageNodeName, DataSource> storageNodes = new 
LinkedHashMap<>(toBeAlteredStorageNodeNames.size(), 1F);
-        for (Entry<StorageNodeName, DataSource> entry : 
resourceMetaData.getDataSources().entrySet()) {
-            if (toBeAlteredStorageNodeNames.contains(entry.getKey())) {
+        Map<StorageNode, DataSource> storageNodes = new 
LinkedHashMap<>(storageUintNodeMap.size(), 1F);
+        for (Entry<StorageNode, DataSource> entry : 
resourceMetaData.getDataSources().entrySet()) {
+            if (storageUintNodeMap.containsValue(entry.getKey())) {
                 storageNodes.put(entry.getKey(), entry.getValue());
             }
         }
@@ -129,9 +124,9 @@ public final class NewResourceSwitchManager {
         StorageNode storageNode = metaDataMap.remove(storageUnitName);
         Map<String, StorageNode> reservedStorageUintNodeMap = 
resourceMetaData.getStorageUnits().entrySet().stream()
                 .collect(Collectors.toMap(Entry::getKey, entry -> 
entry.getValue().getStorageNode()));
-        Map<StorageNodeName, DataSource> storageNodes = new LinkedHashMap<>(1, 
1F);
+        Map<StorageNode, DataSource> storageNodes = new LinkedHashMap<>(1, 1F);
         if (reservedStorageUintNodeMap.values().stream().noneMatch(each -> 
each.equals(storageNode))) {
-            storageNodes.put(storageNode.getName(), 
resourceMetaData.getDataSources().get(storageNode.getName()));
+            storageNodes.put(storageNode, 
resourceMetaData.getDataSources().get(storageNode));
         }
         return new StorageResource(storageNodes, 
Collections.singletonMap(storageUnitName, storageNode));
     }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
index adef4ddc0fe..1120384feba 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
@@ -23,7 +23,6 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.StorageResource;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeAggregator;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnitNodeMapUtils;
@@ -53,7 +52,7 @@ public final class ResourceSwitchManager {
                 .collect(Collectors.toMap(Entry::getKey, entry -> 
entry.getValue().getDataSourcePoolProperties(), (oldValue, currentValue) -> 
oldValue, LinkedHashMap::new)));
         mergedPropsMap.putAll(toBeChangedPropsMap);
         Map<String, StorageNode> toBeChangedStorageUnitNodeMap = 
StorageUnitNodeMapUtils.fromDataSourcePoolProperties(toBeChangedPropsMap);
-        Map<StorageNodeName, DataSourcePoolProperties> dataSourcePoolPropsMap 
= StorageNodeAggregator.aggregateDataSourcePoolProperties(toBeChangedPropsMap);
+        Map<StorageNode, DataSourcePoolProperties> dataSourcePoolPropsMap = 
StorageNodeAggregator.aggregateDataSourcePoolProperties(toBeChangedPropsMap);
         StorageResource newStorageResource = 
createNewStorageResource(resourceMetaData, toBeChangedStorageUnitNodeMap, 
dataSourcePoolPropsMap);
         StorageResource staleDataSources = 
getStaleDataSources(resourceMetaData, toBeChangedStorageUnitNodeMap, 
mergedPropsMap);
         return new SwitchingResource(resourceMetaData, newStorageResource, 
staleDataSources, mergedPropsMap);
@@ -89,29 +88,27 @@ public final class ResourceSwitchManager {
         mergedDataSourcePoolPropertiesMap.putAll(toBeChangedPropsMap);
         Map<String, StorageNode> toBeChangedStorageUnitNodeMap = 
StorageUnitNodeMapUtils.fromDataSourcePoolProperties(toBeChangedPropsMap);
         StorageResource staleStorageResource = 
getStaleDataSources(resourceMetaData, toBeChangedStorageUnitNodeMap, 
toBeChangedPropsMap);
-        Collection<StorageNodeName> toBeChangedStorageNodeNames = 
toBeChangedStorageUnitNodeMap.values().stream().map(StorageNode::getName).collect(Collectors.toSet());
-        
staleStorageResource.getDataSources().putAll(getToBeDeletedDataSources(resourceMetaData.getDataSources(),
 toBeChangedStorageNodeNames));
+        
staleStorageResource.getDataSources().putAll(getToBeDeletedDataSources(resourceMetaData.getDataSources(),
 toBeChangedStorageUnitNodeMap.values()));
         staleStorageResource.getStorageUnitNodeMap().putAll(
                 
getToBeDeletedStorageUnitNodeMap(resourceMetaData.getStorageUnits(), 
toBeChangedStorageUnitNodeMap.keySet()));
-        Map<StorageNodeName, DataSourcePoolProperties> dataSourcePoolPropsMap 
= StorageNodeAggregator.aggregateDataSourcePoolProperties(toBeChangedPropsMap);
+        Map<StorageNode, DataSourcePoolProperties> dataSourcePoolPropsMap = 
StorageNodeAggregator.aggregateDataSourcePoolProperties(toBeChangedPropsMap);
         return new SwitchingResource(
                 resourceMetaData, createNewStorageResource(resourceMetaData, 
toBeChangedStorageUnitNodeMap, dataSourcePoolPropsMap), staleStorageResource, 
mergedDataSourcePoolPropertiesMap);
     }
     
     private StorageResource createNewStorageResource(final ResourceMetaData 
resourceMetaData,
-                                                     final Map<String, 
StorageNode> toBeChangedStorageUnitNodeMap, final Map<StorageNodeName, 
DataSourcePoolProperties> dataSourcePoolPropsMap) {
-        Collection<StorageNodeName> toBeChangedStorageNodeName = 
toBeChangedStorageUnitNodeMap.values().stream().map(StorageNode::getName).collect(Collectors.toSet());
-        Map<StorageNodeName, DataSource> storageNodes = 
getNewStorageNodes(resourceMetaData, toBeChangedStorageNodeName, 
dataSourcePoolPropsMap);
+                                                     final Map<String, 
StorageNode> toBeChangedStorageUnitNodeMap, final Map<StorageNode, 
DataSourcePoolProperties> dataSourcePoolPropsMap) {
+        Map<StorageNode, DataSource> storageNodes = 
getNewStorageNodes(resourceMetaData, toBeChangedStorageUnitNodeMap.values(), 
dataSourcePoolPropsMap);
         Map<String, StorageNode> storageUnitNodeMap = 
getNewStorageUnitNodeMap(resourceMetaData, toBeChangedStorageUnitNodeMap);
         return new StorageResource(storageNodes, storageUnitNodeMap);
     }
     
-    private Map<StorageNodeName, DataSource> getNewStorageNodes(final 
ResourceMetaData resourceMetaData, final Collection<StorageNodeName> 
toBeChangedStorageNodeName,
-                                                                final 
Map<StorageNodeName, DataSourcePoolProperties> propsMap) {
-        Map<StorageNodeName, DataSource> result = new 
LinkedHashMap<>(resourceMetaData.getDataSources());
-        
result.keySet().removeAll(getToBeDeletedDataSources(resourceMetaData.getDataSources(),
 toBeChangedStorageNodeName).keySet());
-        result.putAll(getChangedDataSources(resourceMetaData.getDataSources(), 
toBeChangedStorageNodeName, propsMap));
-        
result.putAll(getToBeAddedDataSources(resourceMetaData.getDataSources(), 
toBeChangedStorageNodeName, propsMap));
+    private Map<StorageNode, DataSource> getNewStorageNodes(final 
ResourceMetaData resourceMetaData, final Collection<StorageNode> 
toBeChangedStorageNodes,
+                                                            final 
Map<StorageNode, DataSourcePoolProperties> propsMap) {
+        Map<StorageNode, DataSource> result = new 
LinkedHashMap<>(resourceMetaData.getDataSources());
+        
result.keySet().removeAll(getToBeDeletedDataSources(resourceMetaData.getDataSources(),
 toBeChangedStorageNodes).keySet());
+        result.putAll(getChangedDataSources(resourceMetaData.getDataSources(), 
toBeChangedStorageNodes, propsMap));
+        
result.putAll(getToBeAddedDataSources(resourceMetaData.getDataSources(), 
toBeChangedStorageNodes, propsMap));
         return result;
     }
     
@@ -125,29 +122,27 @@ public final class ResourceSwitchManager {
         return result;
     }
     
-    private Map<StorageNodeName, DataSource> getChangedDataSources(final 
Map<StorageNodeName, DataSource> storageNodes,
-                                                                   final 
Collection<StorageNodeName> toBeChangedStorageNodeName,
-                                                                   final 
Map<StorageNodeName, DataSourcePoolProperties> propsMap) {
-        Collection<StorageNodeName> toBeChangedDataSourceNames = 
toBeChangedStorageNodeName.stream()
+    private Map<StorageNode, DataSource> getChangedDataSources(final 
Map<StorageNode, DataSource> storageNodes,
+                                                               final 
Collection<StorageNode> toBeChangedStorageNodes, final Map<StorageNode, 
DataSourcePoolProperties> propsMap) {
+        Collection<StorageNode> toBeChangedDataSourceNames = 
toBeChangedStorageNodes.stream()
                 .filter(each -> isModifiedDataSource(storageNodes, each, 
propsMap.get(each))).collect(Collectors.toList());
-        Map<StorageNodeName, DataSource> result = new 
LinkedHashMap<>(toBeChangedStorageNodeName.size(), 1F);
-        for (StorageNodeName each : toBeChangedDataSourceNames) {
+        Map<StorageNode, DataSource> result = new 
LinkedHashMap<>(toBeChangedStorageNodes.size(), 1F);
+        for (StorageNode each : toBeChangedDataSourceNames) {
             result.put(each, DataSourcePoolCreator.create(propsMap.get(each)));
         }
         return result;
     }
     
-    private boolean isModifiedDataSource(final Map<StorageNodeName, 
DataSource> originalDataSources,
-                                         final StorageNodeName 
storageNodeName, final DataSourcePoolProperties propsMap) {
-        return originalDataSources.containsKey(storageNodeName) && 
!propsMap.equals(DataSourcePoolPropertiesCreator.create(originalDataSources.get(storageNodeName)));
+    private boolean isModifiedDataSource(final Map<StorageNode, DataSource> 
originalDataSources,
+                                         final StorageNode storageNode, final 
DataSourcePoolProperties propsMap) {
+        return originalDataSources.containsKey(storageNode) && 
!propsMap.equals(DataSourcePoolPropertiesCreator.create(originalDataSources.get(storageNode)));
     }
     
-    private Map<StorageNodeName, DataSource> getToBeAddedDataSources(final 
Map<StorageNodeName, DataSource> storageNodes,
-                                                                     final 
Collection<StorageNodeName> toBeChangedStorageNodeName,
-                                                                     final 
Map<StorageNodeName, DataSourcePoolProperties> propsMap) {
-        Collection<StorageNodeName> toBeAddedDataSourceNames = 
toBeChangedStorageNodeName.stream().filter(each -> 
!storageNodes.containsKey(each)).collect(Collectors.toList());
-        Map<StorageNodeName, DataSource> result = new LinkedHashMap<>();
-        for (StorageNodeName each : toBeAddedDataSourceNames) {
+    private Map<StorageNode, DataSource> getToBeAddedDataSources(final 
Map<StorageNode, DataSource> storageNodes,
+                                                                 final 
Collection<StorageNode> toBeChangedStorageNodes, final Map<StorageNode, 
DataSourcePoolProperties> propsMap) {
+        Collection<StorageNode> toBeAddedDataSourceNames = 
toBeChangedStorageNodes.stream().filter(each -> 
!storageNodes.containsKey(each)).collect(Collectors.toList());
+        Map<StorageNode, DataSource> result = new LinkedHashMap<>();
+        for (StorageNode each : toBeAddedDataSourceNames) {
             result.put(each, DataSourcePoolCreator.create(propsMap.get(each)));
         }
         return result;
@@ -157,10 +152,8 @@ public final class ResourceSwitchManager {
         Map<String, StorageNode> reservedStorageUnitNodeMap = 
resourceMetaData.getStorageUnits().entrySet().stream()
                 .filter(entry -> 
!toRemovedStorageUnitNodeMap.containsKey(entry.getKey()))
                 .collect(Collectors.toMap(Entry::getKey, entry -> 
entry.getValue().getStorageNode()));
-        Collection<StorageNodeName> toBeRemovedStorageNodeNames = 
toRemovedStorageUnitNodeMap.values().stream().map(StorageNode::getName).collect(Collectors.toSet());
-        Collection<StorageNodeName> inUsedDataSourceNames = 
reservedStorageUnitNodeMap.values().stream().map(StorageNode::getName).collect(Collectors.toSet());
-        Map<StorageNodeName, DataSource> staleStorageNodes = 
resourceMetaData.getDataSources().entrySet().stream()
-                .filter(entry -> 
toBeRemovedStorageNodeNames.contains(entry.getKey()) && 
!inUsedDataSourceNames.contains(entry.getKey()))
+        Map<StorageNode, DataSource> staleStorageNodes = 
resourceMetaData.getDataSources().entrySet().stream()
+                .filter(entry -> 
toRemovedStorageUnitNodeMap.containsValue(entry.getKey()) && 
!reservedStorageUnitNodeMap.containsValue(entry.getKey()))
                 .collect(Collectors.toMap(Entry::getKey, Entry::getValue));
         Map<String, StorageNode> staleStorageUnitNodeMap = 
resourceMetaData.getStorageUnits().entrySet().stream()
                 .filter(entry -> 
!reservedStorageUnitNodeMap.containsKey(entry.getKey())).collect(Collectors.toMap(Entry::getKey,
 entry -> entry.getValue().getStorageNode()));
@@ -169,28 +162,27 @@ public final class ResourceSwitchManager {
     
     private StorageResource getStaleDataSources(final ResourceMetaData 
resourceMetaData, final Map<String, StorageNode> toBeChangedStorageUnitNodeMap,
                                                 final Map<String, 
DataSourcePoolProperties> storageUnitDataSourcePoolPropsMap) {
-        Map<StorageNodeName, DataSource> storageNodes = new 
LinkedHashMap<>(resourceMetaData.getDataSources().size(), 1F);
+        Map<StorageNode, DataSource> storageNodes = new 
LinkedHashMap<>(resourceMetaData.getDataSources().size(), 1F);
         Map<String, StorageNode> storageUnitNodeMap = new 
LinkedHashMap<>(resourceMetaData.getStorageUnits().size(), 1F);
         
storageNodes.putAll(getToBeChangedDataSources(resourceMetaData.getDataSources(),
 
StorageNodeAggregator.aggregateDataSourcePoolProperties(storageUnitDataSourcePoolPropsMap)));
         
storageUnitNodeMap.putAll(getChangedStorageUnitNodeMap(resourceMetaData.getStorageUnits(),
 toBeChangedStorageUnitNodeMap));
         return new StorageResource(storageNodes, storageUnitNodeMap);
     }
     
-    private Map<StorageNodeName, DataSource> getToBeChangedDataSources(final 
Map<StorageNodeName, DataSource> storageNodes, final Map<StorageNodeName, 
DataSourcePoolProperties> propsMap) {
-        Map<StorageNodeName, DataSource> result = new 
LinkedHashMap<>(storageNodes.size(), 1F);
-        for (Entry<StorageNodeName, DataSourcePoolProperties> entry : 
propsMap.entrySet()) {
-            StorageNodeName storageNodeName = entry.getKey();
-            if (isModifiedDataSource(storageNodes, storageNodeName, 
entry.getValue())) {
-                result.put(storageNodeName, storageNodes.get(storageNodeName));
+    private Map<StorageNode, DataSource> getToBeChangedDataSources(final 
Map<StorageNode, DataSource> storageNodes, final Map<StorageNode, 
DataSourcePoolProperties> propsMap) {
+        Map<StorageNode, DataSource> result = new 
LinkedHashMap<>(storageNodes.size(), 1F);
+        for (Entry<StorageNode, DataSourcePoolProperties> entry : 
propsMap.entrySet()) {
+            StorageNode storageNode = entry.getKey();
+            if (isModifiedDataSource(storageNodes, storageNode, 
entry.getValue())) {
+                result.put(storageNode, storageNodes.get(storageNode));
             }
         }
         return result;
     }
     
-    private Map<StorageNodeName, DataSource> getToBeDeletedDataSources(final 
Map<StorageNodeName, DataSource> storageNodes,
-                                                                       final 
Collection<StorageNodeName> toBeChangedDataSourceNames) {
-        Map<StorageNodeName, DataSource> result = new 
LinkedHashMap<>(storageNodes.size(), 1F);
-        for (Entry<StorageNodeName, DataSource> entry : 
storageNodes.entrySet()) {
+    private Map<StorageNode, DataSource> getToBeDeletedDataSources(final 
Map<StorageNode, DataSource> storageNodes, final Collection<StorageNode> 
toBeChangedDataSourceNames) {
+        Map<StorageNode, DataSource> result = new 
LinkedHashMap<>(storageNodes.size(), 1F);
+        for (Entry<StorageNode, DataSource> entry : storageNodes.entrySet()) {
             if (!toBeChangedDataSourceNames.contains(entry.getKey())) {
                 result.put(entry.getKey(), entry.getValue());
             }
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index c98f0d82150..c8372f0f1fa 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -29,7 +29,6 @@ import 
org.apache.shardingsphere.infra.instance.mode.ModeContextManager;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeAggregator;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnitNodeMapUtils;
@@ -109,7 +108,7 @@ class ContextManagerTest {
         
when(result.getResourceMetaData().getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds",
 storageUnit));
         DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/foo_db"));
-        Map<String, StorageUnit> storageUnits = 
Collections.singletonMap("foo_ds", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class)), dataSourcePoolProps, new 
MockedDataSource()));
+        Map<String, StorageUnit> storageUnits = 
Collections.singletonMap("foo_ds", new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps, new MockedDataSource()));
         
when(result.getResourceMetaData().getStorageUnits()).thenReturn(storageUnits);
         return result;
     }
@@ -246,20 +245,20 @@ class ContextManagerTest {
         
contextManager.getConfigurationContextManager().alterDataSourceUnitsConfiguration("foo_db",
 dataSourcePoolPropsMap);
         
assertThat(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageUnits().size(),
 is(3));
         assertAlteredDataSource((MockedDataSource) 
contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")
-                .getResourceMetaData().getDataSources().get(new 
StorageNodeName("foo_ds")));
+                .getResourceMetaData().getDataSources().get(new 
StorageNode("foo_ds")));
     }
     
     private ResourceMetaData createOriginalResource() {
         Map<String, DataSource> originalDataSources = new LinkedHashMap<>(2, 
1F);
         originalDataSources.put("ds_1", new MockedDataSource());
         originalDataSources.put("ds_2", new MockedDataSource());
-        Map<StorageNodeName, DataSource> storageNodeDataSourceMap = 
StorageNodeAggregator.aggregateDataSources(originalDataSources);
+        Map<StorageNode, DataSource> storageNodeDataSourceMap = 
StorageNodeAggregator.aggregateDataSources(originalDataSources);
         Map<String, StorageNode> storageUnitNodeMap = 
StorageUnitNodeMapUtils.fromDataSources(originalDataSources);
         Map<String, StorageUnit> storageUnits = new LinkedHashMap<>(2, 1F);
         for (Entry<String, StorageNode> entry : storageUnitNodeMap.entrySet()) 
{
             DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
             
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/foo_db"));
-            storageUnits.put(entry.getKey(), new 
StorageUnit(storageUnitNodeMap.get(entry.getKey()), dataSourcePoolProps, 
storageNodeDataSourceMap.get(entry.getValue().getName())));
+            storageUnits.put(entry.getKey(), new 
StorageUnit(storageUnitNodeMap.get(entry.getKey()), dataSourcePoolProps, 
storageNodeDataSourceMap.get(entry.getValue())));
         }
         ResourceMetaData result = mock(ResourceMetaData.class, 
RETURNS_DEEP_STUBS);
         when(result.getStorageUnits()).thenReturn(storageUnits);
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManagerTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManagerTest.java
index 268574521af..d5a579793ae 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManagerTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManagerTest.java
@@ -18,8 +18,8 @@
 package org.apache.shardingsphere.mode.manager.switcher;
 
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
+import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
@@ -32,8 +32,8 @@ import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 class ResourceSwitchManagerTest {
@@ -86,9 +86,9 @@ class ResourceSwitchManagerTest {
     
     private void assertNewDataSources(final SwitchingResource actual) {
         assertThat(actual.getNewStorageResource().getDataSources().size(), 
is(3));
-        
assertTrue(actual.getNewStorageResource().getDataSources().containsKey(new 
StorageNodeName("not_change")));
-        
assertTrue(actual.getNewStorageResource().getDataSources().containsKey(new 
StorageNodeName("new")));
-        
assertTrue(actual.getNewStorageResource().getDataSources().containsKey(new 
StorageNodeName("replace")));
+        
assertTrue(actual.getNewStorageResource().getDataSources().containsKey(new 
StorageNode("not_change")));
+        
assertTrue(actual.getNewStorageResource().getDataSources().containsKey(new 
StorageNode("new")));
+        
assertTrue(actual.getNewStorageResource().getDataSources().containsKey(new 
StorageNode("replace")));
     }
     
     private void assertStaleDataSources(final Map<String, DataSource> 
originalDataSourceMap) {
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
index 8cebd574e4d..59453e49369 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.mode.manager.switcher;
 
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.StorageResource;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
+import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
@@ -36,8 +36,8 @@ class SwitchingResourceTest {
     void assertCloseStaleDataSources() {
         MockedDataSource staleDataSource = new MockedDataSource();
         ResourceMetaData resourceMetaData = mock(ResourceMetaData.class);
-        StorageResource newStorageResource = new 
StorageResource(Collections.singletonMap(new StorageNodeName("new_ds"), new 
MockedDataSource()), Collections.emptyMap());
-        StorageResource staleStorageResource = new 
StorageResource(Collections.singletonMap(new StorageNodeName("stale_ds"), 
staleDataSource), Collections.emptyMap());
+        StorageResource newStorageResource = new 
StorageResource(Collections.singletonMap(new StorageNode("new_ds"), new 
MockedDataSource()), Collections.emptyMap());
+        StorageResource staleStorageResource = new 
StorageResource(Collections.singletonMap(new StorageNode("stale_ds"), 
staleDataSource), Collections.emptyMap());
         new SwitchingResource(resourceMetaData, newStorageResource, 
staleStorageResource, Collections.emptyMap()).closeStaleDataSources();
         Awaitility.await().pollDelay(10L, 
TimeUnit.MILLISECONDS).until(staleDataSource::isClosed);
         assertTrue(staleDataSource.isClosed());
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/config/yaml/swapper/YamlProxyConfigurationSwapperTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/config/yaml/swapper/YamlProxyConfigurationSwapperTest.java
index 9b84e070aae..d154b74b52c 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/config/yaml/swapper/YamlProxyConfigurationSwapperTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/config/yaml/swapper/YamlProxyConfigurationSwapperTest.java
@@ -22,7 +22,7 @@ import 
org.apache.shardingsphere.authority.config.AuthorityRuleConfiguration;
 import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
 import org.apache.shardingsphere.infra.config.database.DatabaseConfiguration;
 import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
+import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
 import org.apache.shardingsphere.proxy.backend.config.ProxyConfiguration;
 import org.apache.shardingsphere.proxy.backend.config.ProxyConfigurationLoader;
 import org.apache.shardingsphere.proxy.backend.config.YamlProxyConfiguration;
@@ -56,7 +56,7 @@ class YamlProxyConfigurationSwapperTest {
     private void assertDataSources(final ProxyConfiguration proxyConfig) {
         Map<String, DatabaseConfiguration> actual = 
proxyConfig.getDatabaseConfigurations();
         assertThat(actual.size(), is(1));
-        HikariDataSource dataSource = (HikariDataSource) 
actual.get("swapper_test").getStorageResource().getDataSources().get(new 
StorageNodeName("foo_db"));
+        HikariDataSource dataSource = (HikariDataSource) 
actual.get("swapper_test").getStorageResource().getDataSources().get(new 
StorageNode("foo_db"));
         assertThat(dataSource.getJdbcUrl(), 
is("jdbc:h2:mem:foo_db;DB_CLOSE_DELAY=-1"));
         assertThat(dataSource.getUsername(), is("sa"));
         assertThat(dataSource.getPassword(), is(""));
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataUpdaterTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataUpdaterTest.java
index 623f648809f..7aaac35296a 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataUpdaterTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataUpdaterTest.java
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.generic.UnsupportedSQLOperationException;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereIndex;
@@ -123,10 +122,10 @@ class ImportMetaDataUpdaterTest {
         Map<String, StorageUnit> result = new LinkedHashMap<>(2, 1F);
         DataSourcePoolProperties dataSourcePoolProps0 = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps0.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/ds_0"));
-        result.put("ds_0", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class)), dataSourcePoolProps0, new 
MockedDataSource()));
+        result.put("ds_0", new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps0, new MockedDataSource()));
         DataSourcePoolProperties dataSourcePoolProps1 = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps1.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/ds_1"));
-        result.put("ds_1", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class)), dataSourcePoolProps1, new 
MockedDataSource()));
+        result.put("ds_1", new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps1, new MockedDataSource()));
         return result;
     }
     
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
index b9b61078583..b8372ffb327 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
@@ -27,7 +27,6 @@ import 
org.apache.shardingsphere.infra.instance.mode.ModeContextManager;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -89,7 +88,7 @@ class UnregisterStorageUnitBackendHandlerTest {
         DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.emptyMap());
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/foo_db"));
-        StorageUnit storageUnit = new StorageUnit(new 
StorageNode(mock(StorageNodeName.class)), dataSourcePoolProps, new 
MockedDataSource());
+        StorageUnit storageUnit = new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps, new MockedDataSource());
         
when(resourceMetaData.getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds",
 storageUnit));
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         contextManager = mockContextManager();
diff --git 
a/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersionTest.java
 
b/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersionTest.java
index 13d88dbb913..1c798d2f59a 100644
--- 
a/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersionTest.java
+++ 
b/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersionTest.java
@@ -23,7 +23,6 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -86,7 +85,7 @@ class ShardingSphereProxyVersionTest {
         DataSource dataSource = createDataSource(databaseProductName, 
databaseProductVersion);
         DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/foo_db"));
-        StorageUnit storageUnit = new StorageUnit(new 
StorageNode(mock(StorageNodeName.class)), dataSourcePoolProps, dataSource);
+        StorageUnit storageUnit = new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps, dataSource);
         
when(result.getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds", 
storageUnit));
         return result;
     }

Reply via email to