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

zhangliang 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 886b409897d Use ModePersistServiceFacade to instead of 
PersistServiceBuilder (#34991)
886b409897d is described below

commit 886b409897d4638823af1d75b2a52af985261a15
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Fri Mar 14 14:00:45 2025 +0800

    Use ModePersistServiceFacade to instead of PersistServiceBuilder (#34991)
    
    * Add ModePersistServiceFacade
    
    * Add ModePersistServiceFacade
    
    * Add ModePersistServiceFacade
    
    * Add ModePersistServiceFacade
    
    * Add ModePersistServiceFacade
    
    * Add ModePersistServiceFacade
    
    * Use ModePersistServiceFacade to instead of PersistServiceBuilder
    
    * Use ModePersistServiceFacade to instead of PersistServiceBuilder
---
 .../CreateBroadcastTableRuleExecutorTest.java      |  6 +--
 .../update/DropBroadcastTableRuleExecutorTest.java |  2 +-
 .../update/AlterEncryptRuleExecutorTest.java       |  4 +-
 .../update/CreateEncryptRuleExecutorTest.java      |  2 +-
 .../update/DropEncryptRuleExecutorTest.java        |  6 +--
 .../handler/update/AlterMaskRuleExecutorTest.java  |  2 +-
 .../handler/update/CreateMaskRuleExecutorTest.java |  4 +-
 .../handler/update/DropMaskRuleExecutorTest.java   |  4 +-
 .../database/type/AlterDatabaseRuleOperator.java   |  2 +-
 .../database/type/CreateDatabaseRuleOperator.java  |  2 +-
 .../database/type/DropDatabaseRuleOperator.java    |  2 +-
 .../global/GlobalRuleDefinitionExecuteEngine.java  |  3 +-
 .../rdl/resource/AlterStorageUnitExecutor.java     |  2 +-
 .../rdl/resource/RegisterStorageUnitExecutor.java  |  2 +-
 .../resource/UnregisterStorageUnitExecutor.java    |  2 +-
 .../UnregisterStorageUnitExecutorTest.java         |  2 +-
 .../reflect-config.json                            |  4 +-
 .../executor/engine/DriverExecuteExecutor.java     |  2 +-
 .../jdbc/DriverJDBCPushDownExecuteExecutor.java    |  2 +-
 .../DriverJDBCPushDownExecuteUpdateExecutor.java   |  2 +-
 .../update/LoadSingleTableExecutorTest.java        |  4 +-
 ...tDefaultSingleTableStorageUnitExecutorTest.java |  4 +-
 .../mode/manager/ContextManager.java               |  2 +-
 .../mode/persist/PersistServiceFacade.java         | 34 ++++---------
 .../persist/mode/ModePersistServiceFacade.java}    | 45 +++++++++--------
 .../ModePersistServiceFacadeBuilder.java}          | 20 +++-----
 ...Builder.java => ComputeNodePersistService.java} | 26 ++++------
 ...=> ModePersistServiceFacadeBuilderFixture.java} | 25 ++++------
 .../mode/manager/ContextManagerTest.java           |  5 +-
 ...e.persist.mode.ModePersistServiceFacadeBuilder} |  2 +-
 mode/core/src/test/resources/logback-test.xml      |  2 +-
 .../cluster/ClusterContextManagerBuilder.java      |  6 ++-
 .../compute/type/ComputeNodeOnlineHandler.java     |  4 +-
 .../builder/ClusterPersistServiceBuilder.java      | 47 ------------------
 .../facade/ClusterPersistServiceFacade.java        | 56 ++++++++++++++++++++++
 .../ClusterPersistServiceFacadeBuilder.java}       | 28 ++++-------
 .../service/ClusterComputeNodePersistService.java} | 43 ++++++++---------
 .../cluster/workerid/ClusterWorkerIdGenerator.java |  6 +--
 ...e.persist.mode.ModePersistServiceFacadeBuilder} |  2 +-
 .../compute/type/ComputeNodeOnlineHandlerTest.java |  6 ++-
 .../builder/ClusterPersistServiceBuilderTest.java  | 46 ------------------
 .../ClusterComputeNodePersistServiceTest.java}     |  8 ++--
 .../workerid/ClusterWorkerIdGeneratorTest.java     |  4 +-
 .../SessionConnectionReconnectListener.java        |  6 +--
 .../SessionConnectionReconnectListenerTest.java    |  8 ++--
 .../StandalonePersistServiceFacade.java}           | 36 +++++++-------
 .../StandalonePersistServiceFacadeBuilder.java}    | 23 ++++-----
 .../StandaloneComputeNodePersistService.java       | 39 +++++++++++++++
 ...e.persist.mode.ModePersistServiceFacadeBuilder} |  2 +-
 .../StandalonePersistServiceBuilderTest.java       | 46 ------------------
 .../connector/StandardDatabaseConnector.java       |  4 +-
 .../database/CreateDatabaseBackendHandler.java     |  2 +-
 .../database/DropDatabaseBackendHandler.java       |  2 +-
 .../computenode/ShowComputeNodesExecutor.java      |  5 +-
 .../computenode/SetComputeNodeStateExecutor.java   |  8 +++-
 .../updatable/label/LabelComputeNodeExecutor.java  |  9 +++-
 .../label/UnlabelComputeNodeExecutor.java          |  9 +++-
 .../variable/SetDistVariableExecutor.java          |  2 +-
 .../proxy/backend/util/MetaDataImportExecutor.java |  4 +-
 .../YamlDatabaseConfigurationImportExecutor.java   |  6 +--
 .../distsql/DistSQLBackendHandlerFactoryTest.java  |  2 +-
 .../computenode/ShowComputeNodesExecutorTest.java  | 31 +++++++-----
 .../admin/executor/KillProcessExecutor.java        |  2 +-
 .../admin/executor/ShowProcessListExecutor.java    |  2 +-
 .../executor/ShowProcessListExecutorTest.java      |  2 +-
 .../update/GlobalRuleDefinitionExecutorTest.java   |  2 +-
 66 files changed, 332 insertions(+), 402 deletions(-)

diff --git 
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutorTest.java
 
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutorTest.java
index f3636ae0ccc..f34df04c623 100644
--- 
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutorTest.java
+++ 
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutorTest.java
@@ -71,7 +71,7 @@ class CreateBroadcastTableRuleExecutorTest {
         when(rule.getTables()).thenReturn(Collections.singleton("foo_tbl"));
         ContextManager contextManager = mockContextManager(database, rule);
         new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db", 
contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         verify(metaDataManagerPersistService).alterRuleConfiguration(any(),
                 ArgumentMatchers.<BroadcastRuleConfiguration>argThat(x -> 
x.getTables().equals(new HashSet<>(Arrays.asList("foo_tbl", "bar_tbl")))));
     }
@@ -84,7 +84,7 @@ class CreateBroadcastTableRuleExecutorTest {
         when(rule.getTables()).thenReturn(Collections.singleton("foo_tbl"));
         ContextManager contextManager = mockContextManager(database, rule);
         new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db", 
contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         verify(metaDataManagerPersistService).alterRuleConfiguration(any(),
                 ArgumentMatchers.<BroadcastRuleConfiguration>argThat(x -> 
x.getTables().equals(new HashSet<>(Arrays.asList("foo_tbl", "bar_tbl")))));
     }
@@ -95,7 +95,7 @@ class CreateBroadcastTableRuleExecutorTest {
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
RETURNS_DEEP_STUBS);
         ContextManager contextManager = mockContextManager(database, null);
         new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db", 
contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         verify(metaDataManagerPersistService).alterRuleConfiguration(any(),
                 ArgumentMatchers.<BroadcastRuleConfiguration>argThat(x -> 
x.getTables().equals(new HashSet<>(Arrays.asList("foo_tbl", "bar_tbl")))));
     }
diff --git 
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutorTest.java
 
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutorTest.java
index 6dc737f322b..80a4df756d2 100644
--- 
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutorTest.java
+++ 
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutorTest.java
@@ -57,7 +57,7 @@ class DropBroadcastTableRuleExecutorTest {
         
when(rule.getConfiguration().getTables()).thenReturn(Collections.singleton("foo_tbl"));
         ContextManager contextManager = mockContextManager(database, rule);
         new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db", 
contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         
verify(metaDataManagerPersistService).removeRuleConfiguration(database, 
"broadcast");
     }
     
diff --git 
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleExecutorTest.java
 
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleExecutorTest.java
index c9d63d14b53..dfcbbd2d9ae 100644
--- 
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleExecutorTest.java
+++ 
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleExecutorTest.java
@@ -88,7 +88,7 @@ class AlterEncryptRuleExecutorTest {
         
when(rule.getAllTableNames()).thenReturn(Collections.singleton("t_encrypt"));
         
when(rule.getConfiguration()).thenReturn(createCurrentRuleConfiguration());
         ContextManager contextManager = mockContextManager(rule);
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         new 
DistSQLUpdateExecuteEngine(createSQLStatementWithAssistQueryAndLikeColumns(), 
"foo_db", contextManager).executeUpdate();
         metaDataManagerPersistService.removeRuleConfigurationItem(any(), 
ArgumentMatchers.argThat(this::assertToBeDroppedRuleConfiguration));
         metaDataManagerPersistService.alterRuleConfiguration(any(), 
ArgumentMatchers.argThat(this::assertToBeAlteredRuleConfiguration));
@@ -101,7 +101,7 @@ class AlterEncryptRuleExecutorTest {
         
when(rule.getConfiguration()).thenReturn(createCurrentRuleConfiguration());
         ContextManager contextManager = mockContextManager(rule);
         new 
DistSQLUpdateExecuteEngine(createSQLStatementWithoutAssistQueryAndLikeColumns(),
 "foo_db", contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         metaDataManagerPersistService.removeRuleConfigurationItem(any(), 
ArgumentMatchers.argThat(this::assertToBeDroppedRuleConfiguration));
         metaDataManagerPersistService.alterRuleConfiguration(any(), 
ArgumentMatchers.argThat(this::assertToBeAlteredRuleConfiguration));
     }
diff --git 
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutorTest.java
 
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutorTest.java
index f846b784cc1..b67d83154da 100644
--- 
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutorTest.java
+++ 
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutorTest.java
@@ -103,7 +103,7 @@ class CreateEncryptRuleExecutorTest {
         CreateEncryptRuleStatement sqlStatement = 
createAESEncryptRuleSQLStatement(true);
         ContextManager contextManager = mockContextManager(rule);
         new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db", 
contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         metaDataManagerPersistService.alterRuleConfiguration(any(), 
ArgumentMatchers.argThat(this::assertIfNotExistsRuleConfiguration));
     }
     
diff --git 
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutorTest.java
 
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutorTest.java
index 8be14c436e4..d09534a9608 100644
--- 
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutorTest.java
+++ 
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutorTest.java
@@ -68,7 +68,7 @@ class DropEncryptRuleExecutorTest {
         when(rule.getConfiguration()).thenReturn(ruleConfig);
         ContextManager contextManager = mockContextManager(rule);
         new DistSQLUpdateExecuteEngine(createSQLStatement("T_ENCRYPT"), 
"foo_db", contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         metaDataManagerPersistService.alterRuleConfiguration(any(), 
ArgumentMatchers.argThat(this::assertRuleConfiguration));
     }
     
@@ -86,7 +86,7 @@ class DropEncryptRuleExecutorTest {
         when(rule.getAllTableNames().contains(anyString())).thenReturn(true);
         ContextManager contextManager = mockContextManager(rule);
         new DistSQLUpdateExecuteEngine(createSQLStatement("T_ENCRYPT"), 
"foo_db", contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         metaDataManagerPersistService.alterRuleConfiguration(any(), 
ArgumentMatchers.argThat(this::assertRuleConfigurationWithoutEncryptors));
     }
     
@@ -104,7 +104,7 @@ class DropEncryptRuleExecutorTest {
         when(rule.getAllTableNames().contains(anyString())).thenReturn(true);
         ContextManager contextManager = mockContextManager(rule);
         new DistSQLUpdateExecuteEngine(statement, "foo_db", 
contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         metaDataManagerPersistService.alterRuleConfiguration(any(), 
ArgumentMatchers.argThat(this::assertRuleConfigurationWithoutEncryptors));
     }
     
diff --git 
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutorTest.java
 
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutorTest.java
index c73c7e27f44..9ac2832d589 100644
--- 
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutorTest.java
+++ 
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutorTest.java
@@ -67,7 +67,7 @@ class AlterMaskRuleExecutorTest {
         when(rule.getConfiguration()).thenReturn(currentRuleConfig);
         ContextManager contextManager = mockContextManager(rule);
         new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db", 
contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         metaDataManagerPersistService.removeRuleConfigurationItem(any(), 
ArgumentMatchers.argThat(this::assertToBeDroppedRuleConfiguration));
         metaDataManagerPersistService.alterRuleConfiguration(any(), 
ArgumentMatchers.argThat(this::assertToBeAlteredRuleConfiguration));
     }
diff --git 
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutorTest.java
 
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutorTest.java
index 9da63cc2e40..3a42039de0d 100644
--- 
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutorTest.java
+++ 
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutorTest.java
@@ -65,7 +65,7 @@ class CreateMaskRuleExecutorTest {
         when(rule.getConfiguration()).thenReturn(currentRuleConfig);
         ContextManager contextManager = mockContextManager(rule);
         new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db", 
contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         metaDataManagerPersistService.alterRuleConfiguration(any(), 
ArgumentMatchers.argThat(this::assertRuleConfiguration));
     }
     
@@ -77,7 +77,7 @@ class CreateMaskRuleExecutorTest {
         when(rule.getConfiguration()).thenReturn(currentRuleConfig);
         ContextManager contextManager = mockContextManager(rule);
         new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db", 
contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         metaDataManagerPersistService.alterRuleConfiguration(any(), 
ArgumentMatchers.argThat(this::assertRuleConfiguration));
     }
     
diff --git 
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
 
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
index dde951ef799..fb7bb834ac8 100644
--- 
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
+++ 
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
@@ -60,7 +60,7 @@ class DropMaskRuleExecutorTest {
         when(rule.getConfiguration()).thenReturn(ruleConfig);
         ContextManager contextManager = mockContextManager(rule);
         new DistSQLUpdateExecuteEngine(createSQLStatement(false, "T_MASK"), 
"foo_db", contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         metaDataManagerPersistService.alterRuleConfiguration(any(), 
ArgumentMatchers.argThat(this::assertRuleConfigurationWithoutIfExists));
     }
     
@@ -78,7 +78,7 @@ class DropMaskRuleExecutorTest {
         when(rule.getConfiguration()).thenReturn(ruleConfig);
         ContextManager contextManager = mockContextManager(rule);
         new DistSQLUpdateExecuteEngine(createSQLStatement(true, "T_USER"), 
"foo_db", contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         metaDataManagerPersistService.alterRuleConfiguration(any(), 
ArgumentMatchers.argThat(this::assertRuleConfigurationWithoutIfExists));
         metaDataManagerPersistService.alterRuleConfiguration(any(), 
ArgumentMatchers.argThat(this::assertRuleConfigurationWithIfExists));
     }
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
index 222f487f866..1faf2ef7f8a 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
@@ -48,7 +48,7 @@ public final class AlterDatabaseRuleOperator implements 
DatabaseRuleOperator {
     @SuppressWarnings("unchecked")
     public void operate(final DatabaseRuleDefinitionStatement sqlStatement, 
final ShardingSphereDatabase database, final RuleConfiguration 
currentRuleConfig) throws SQLException {
         RuleConfiguration toBeAlteredRuleConfig = 
executor.buildToBeAlteredRuleConfiguration(sqlStatement);
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         metaDataManagerPersistService.alterRuleConfiguration(database, 
decorateRuleConfiguration(database, toBeAlteredRuleConfig));
         RuleConfiguration toBeDroppedRuleConfig = 
executor.buildToBeDroppedRuleConfiguration(toBeAlteredRuleConfig);
         metaDataManagerPersistService.removeRuleConfigurationItem(database, 
toBeDroppedRuleConfig);
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
index 79abcc49f2b..5a35e8df86f 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
@@ -48,7 +48,7 @@ public final class CreateDatabaseRuleOperator implements 
DatabaseRuleOperator {
     @SuppressWarnings("unchecked")
     public void operate(final DatabaseRuleDefinitionStatement sqlStatement, 
final ShardingSphereDatabase database, final RuleConfiguration 
currentRuleConfig) throws SQLException {
         RuleConfiguration toBeCreatedRuleConfig = 
executor.buildToBeCreatedRuleConfiguration(sqlStatement);
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         metaDataManagerPersistService.alterRuleConfiguration(database, 
decorateRuleConfiguration(database, toBeCreatedRuleConfig));
     }
     
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
index 33752187dd5..66be5392005 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
@@ -60,7 +60,7 @@ public final class DropDatabaseRuleOperator implements 
DatabaseRuleOperator {
             }
             // TODO refactor to new metadata refresh way
         }
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         RuleConfiguration toBeDroppedRuleConfig = 
executor.buildToBeDroppedRuleConfiguration(sqlStatement);
         metaDataManagerPersistService.removeRuleConfigurationItem(database, 
toBeDroppedRuleConfig);
         RuleConfiguration toBeAlteredRuleConfig = 
executor.buildToBeAlteredRuleConfiguration(sqlStatement);
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/global/GlobalRuleDefinitionExecuteEngine.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/global/GlobalRuleDefinitionExecuteEngine.java
index 0d88bc9c859..393c6e80ea4 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/global/GlobalRuleDefinitionExecuteEngine.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/global/GlobalRuleDefinitionExecuteEngine.java
@@ -48,6 +48,7 @@ public final class GlobalRuleDefinitionExecuteEngine {
         ShardingSphereRule rule = 
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getSingleRule(executor.getRuleClass());
         executor.setRule(rule);
         executor.checkBeforeUpdate(sqlStatement);
-        
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().alterGlobalRuleConfiguration(executor.buildToBeAlteredRuleConfiguration(sqlStatement));
+        
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService()
+                
.alterGlobalRuleConfiguration(executor.buildToBeAlteredRuleConfiguration(sqlStatement));
     }
 }
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
index 4f23d7f0b78..9e00c0f095c 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
@@ -66,7 +66,7 @@ public final class AlterStorageUnitExecutor implements 
DistSQLUpdateExecutor<Alt
         Map<String, DataSourcePoolProperties> propsMap = 
DataSourceSegmentsConverter.convert(database.getProtocolType(), 
sqlStatement.getStorageUnits());
         validateHandler.validate(propsMap, 
getExpectedPrivileges(sqlStatement));
         try {
-            
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().alterStorageUnits(database,
 propsMap);
+            
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().alterStorageUnits(database,
 propsMap);
         } catch (final ShardingSphereExternalException ex) {
             throw new StorageUnitsOperateException("alter", propsMap.keySet(), 
ex);
         }
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutor.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutor.java
index a64f663f9c8..b1476330eca 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutor.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutor.java
@@ -67,7 +67,7 @@ public final class RegisterStorageUnitExecutor implements 
DistSQLUpdateExecutor<
         }
         validateHandler.validate(propsMap, 
getExpectedPrivileges(sqlStatement));
         try {
-            
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().registerStorageUnits(database.getName(),
 propsMap);
+            
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().registerStorageUnits(database.getName(),
 propsMap);
         } catch (final ShardingSphereExternalException ex) {
             throw new StorageUnitsOperateException("register", 
propsMap.keySet(), ex);
         }
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
index 57f713484e7..c8175ca5063 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
@@ -56,7 +56,7 @@ public final class UnregisterStorageUnitExecutor implements 
DistSQLUpdateExecuto
         }
         checkInUsed(sqlStatement);
         try {
-            
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().unregisterStorageUnits(database,
 sqlStatement.getStorageUnitNames());
+            
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().unregisterStorageUnits(database,
 sqlStatement.getStorageUnitNames());
         } catch (final ShardingSphereServerException ex) {
             throw new StorageUnitsOperateException("unregister", 
sqlStatement.getStorageUnitNames(), ex);
         }
diff --git 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutorTest.java
 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutorTest.java
index 245b07d1447..131cf8b016c 100644
--- 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutorTest.java
+++ 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutorTest.java
@@ -85,7 +85,7 @@ class UnregisterStorageUnitExecutorTest {
         MetaDataContexts metaDataContexts = mock(MetaDataContexts.class, 
RETURNS_DEEP_STUBS);
         ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
         when(result.getMetaDataContexts()).thenReturn(metaDataContexts);
-        
when(result.getPersistServiceFacade().getMetaDataManagerPersistService()).thenReturn(metaDataManagerPersistService);
+        
when(result.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService()).thenReturn(metaDataManagerPersistService);
         when(result.getDatabase("foo_db")).thenReturn(database);
         return result;
     }
diff --git 
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
index 787710ad3ba..f49373c6be8 100644
--- 
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
+++ 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
@@ -2108,7 +2108,7 @@
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.persist.PersistServiceFacade"},
-  
"name":"org.apache.shardingsphere.mode.manager.cluster.persist.builder.ClusterPersistServiceBuilder",
+  
"name":"org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacadeBuilder",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
@@ -2117,7 +2117,7 @@
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.persist.PersistServiceFacade"},
-  
"name":"org.apache.shardingsphere.mode.manager.standalone.persist.builder.StandalonePersistServiceBuilder",
+  
"name":"org.apache.shardingsphere.mode.manager.standalone.persist.facade.StandalonePersistServiceFacadeBuilder",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.java
index 5b1c4ec7de4..bfaeea26c09 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.java
@@ -102,7 +102,7 @@ public final class DriverExecuteExecutor {
             return null != resultSet;
         }
         FederationMetaDataRefreshEngine federationMetaDataRefreshEngine = new 
FederationMetaDataRefreshEngine(
-                
connection.getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService(),
 database);
+                
connection.getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService(),
 database);
         if (sqlFederationEngine.enabled() && 
federationMetaDataRefreshEngine.isNeedRefresh(queryContext.getSqlStatementContext()))
 {
             
federationMetaDataRefreshEngine.refresh(queryContext.getSqlStatementContext());
             return true;
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteExecutor.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteExecutor.java
index 3c757c02243..9b0efbb3d5c 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteExecutor.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteExecutor.java
@@ -107,7 +107,7 @@ public final class DriverJDBCPushDownExecuteExecutor {
             if 
(isNeedImplicitCommit(executionContext.getSqlStatementContext())) {
                 connection.commit();
             }
-            new 
PushDownMetaDataRefreshEngine(connection.getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService(),
 database, metaData.getProps())
+            new 
PushDownMetaDataRefreshEngine(connection.getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService(),
 database, metaData.getProps())
                     .refresh(executionContext.getSqlStatementContext(), 
executionContext.getRouteContext().getRouteUnits());
             return null != results && !results.isEmpty() && null != 
results.get(0) && results.get(0);
         } finally {
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteUpdateExecutor.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteUpdateExecutor.java
index a53e9aabe6d..2f82ad7035c 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteUpdateExecutor.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/pushdown/jdbc/DriverJDBCPushDownExecuteUpdateExecutor.java
@@ -109,7 +109,7 @@ public final class DriverJDBCPushDownExecuteUpdateExecutor {
                     .newInstance(database, 
executionContext.getSqlStatementContext().getSqlStatement(), updateCallback);
             List<Integer> updateCounts = 
jdbcExecutor.execute(executionGroupContext, callback);
             PushDownMetaDataRefreshEngine pushDownMetaDataRefreshEngine =
-                    new 
PushDownMetaDataRefreshEngine(connection.getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService(),
 database, props);
+                    new 
PushDownMetaDataRefreshEngine(connection.getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService(),
 database, props);
             if 
(pushDownMetaDataRefreshEngine.isNeedRefresh(executionContext.getSqlStatementContext()))
 {
                 if 
(isNeedImplicitCommit(executionContext.getSqlStatementContext())) {
                     connection.commit();
diff --git 
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutorTest.java
 
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutorTest.java
index f1b93d172d6..170ef7900d1 100644
--- 
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutorTest.java
+++ 
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutorTest.java
@@ -145,7 +145,7 @@ class LoadSingleTableExecutorTest {
         when(rule.getConfiguration()).thenReturn(currentConfig);
         ContextManager contextManager = mockContextManager(rule);
         new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db", 
contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         verify(metaDataManagerPersistService).alterRuleConfiguration(any(), 
any());
     }
     
@@ -164,7 +164,7 @@ class LoadSingleTableExecutorTest {
         when(rule.getConfiguration()).thenReturn(currentConfig);
         ContextManager contextManager = mockContextManager(null);
         new DistSQLUpdateExecuteEngine(sqlStatement, "foo_db", 
contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         verify(metaDataManagerPersistService).alterRuleConfiguration(any(), 
any());
     }
 }
diff --git 
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitExecutorTest.java
 
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitExecutorTest.java
index bfd7d8ee89e..0e2ab746942 100644
--- 
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitExecutorTest.java
+++ 
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitExecutorTest.java
@@ -63,7 +63,7 @@ class SetDefaultSingleTableStorageUnitExecutorTest {
         when(rule.getConfiguration()).thenReturn(new 
SingleRuleConfiguration(Collections.emptyList(), "foo_ds"));
         ContextManager contextManager = mockContextManager(database, rule);
         new DistSQLUpdateExecuteEngine(new 
SetDefaultSingleTableStorageUnitStatement(null), "foo_db", 
contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         
verify(metaDataManagerPersistService).removeRuleConfigurationItem(any(), 
ArgumentMatchers.<SingleRuleConfiguration>argThat(x -> 
x.getDefaultDataSource().equals(Optional.of("foo_ds"))));
         verify(metaDataManagerPersistService).alterRuleConfiguration(any(), 
ArgumentMatchers.<SingleRuleConfiguration>argThat(x -> 
!x.getDefaultDataSource().isPresent()));
     }
@@ -79,7 +79,7 @@ class SetDefaultSingleTableStorageUnitExecutorTest {
         
when(rule.getAttributes().findAttribute(DataSourceMapperRuleAttribute.class)).thenReturn(Optional.empty());
         ContextManager contextManager = mockContextManager(database, rule);
         new DistSQLUpdateExecuteEngine(new 
SetDefaultSingleTableStorageUnitStatement("bar_ds"), "foo_db", 
contextManager).executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         
verify(metaDataManagerPersistService).removeRuleConfigurationItem(database, 
null);
         verify(metaDataManagerPersistService).alterRuleConfiguration(any(), 
ArgumentMatchers.<SingleRuleConfiguration>argThat(x -> 
x.getDefaultDataSource().equals(Optional.of("bar_ds"))));
     }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 56be3b0bae9..a49a5df7498 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -236,6 +236,6 @@ public final class ContextManager implements AutoCloseable {
         }
         executorEngine.close();
         metaDataContexts.getMetaData().close();
-        persistServiceFacade.close(computeNodeInstanceContext.getInstance());
+        persistServiceFacade.close();
     }
 }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
index 6f1074f8933..8bfbfb44cfa 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
@@ -19,56 +19,42 @@ package org.apache.shardingsphere.mode.persist;
 
 import lombok.Getter;
 import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
-import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade;
-import 
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
+import 
org.apache.shardingsphere.mode.node.QualifiedDataSourceStatePersistService;
+import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade;
+import 
org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 import org.apache.shardingsphere.mode.state.StatePersistService;
-import org.apache.shardingsphere.mode.node.ComputeNodePersistService;
-import 
org.apache.shardingsphere.mode.node.QualifiedDataSourceStatePersistService;
 
 /**
  * Persist service facade.
  */
 @Getter
-public final class PersistServiceFacade {
+public final class PersistServiceFacade implements AutoCloseable {
     
     private final PersistRepository repository;
     
     private final MetaDataPersistFacade metaDataPersistFacade;
     
-    private final ComputeNodePersistService computeNodePersistService;
-    
     private final StatePersistService statePersistService;
     
-    private final MetaDataManagerPersistService metaDataManagerPersistService;
-    
-    private final ProcessPersistService processPersistService;
-    
     private final QualifiedDataSourceStatePersistService 
qualifiedDataSourceStatePersistService;
     
+    private final ModePersistServiceFacade modePersistServiceFacade;
+    
     public PersistServiceFacade(final PersistRepository repository, final 
ModeConfiguration modeConfig, final MetaDataContextManager 
metaDataContextManager) {
         this.repository = repository;
         metaDataPersistFacade = new MetaDataPersistFacade(repository);
-        computeNodePersistService = new ComputeNodePersistService(repository);
         statePersistService = new StatePersistService(repository);
         qualifiedDataSourceStatePersistService = new 
QualifiedDataSourceStatePersistService(repository);
-        PersistServiceBuilder persistServiceBuilder = 
TypedSPILoader.getService(PersistServiceBuilder.class, modeConfig.getType());
-        metaDataManagerPersistService = 
persistServiceBuilder.buildMetaDataManagerPersistService(repository, 
metaDataContextManager);
-        processPersistService = 
persistServiceBuilder.buildProcessPersistService(repository);
+        modePersistServiceFacade = 
TypedSPILoader.getService(ModePersistServiceFacadeBuilder.class, 
modeConfig.getType()).build(metaDataContextManager, repository);
     }
     
-    /**
-     * Close persist service facade.
-     *
-     * @param computeNodeInstance compute node instance
-     */
-    public void close(final ComputeNodeInstance computeNodeInstance) {
-        computeNodePersistService.offline(computeNodeInstance);
+    @Override
+    public void close() {
+        modePersistServiceFacade.close();
         repository.close();
     }
 }
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacade.java
similarity index 54%
copy from 
mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
copy to 
mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacade.java
index f8794fd2fa7..197a4c8f897 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacade.java
@@ -15,33 +15,38 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.fixture;
+package org.apache.shardingsphere.mode.persist.mode;
 
-import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
+import 
org.apache.shardingsphere.mode.persist.service.ComputeNodePersistService;
 import 
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
 import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 
-public final class PersistServiceBuilderFixture implements 
PersistServiceBuilder {
+/**
+ * Mode persist service facade.
+ */
+public interface ModePersistServiceFacade extends AutoCloseable {
     
-    @Override
-    public MetaDataManagerPersistService 
buildMetaDataManagerPersistService(final PersistRepository repository, final 
MetaDataContextManager metaDataContextManager) {
-        return null;
-    }
+    /**
+     * Get meta data manager persist service.
+     *
+     * @return meta data manager persist service
+     */
+    MetaDataManagerPersistService getMetaDataManagerPersistService();
     
-    @Override
-    public ProcessPersistService buildProcessPersistService(final 
PersistRepository repository) {
-        return null;
-    }
+    /**
+     * Get compute node persist service.
+     *
+     * @return compute node persist service
+     */
+    ComputeNodePersistService getComputeNodePersistService();
     
-    @Override
-    public Object getType() {
-        return "foo_type";
-    }
+    /**
+     * Get process persist service.
+     *
+     * @return process persist service
+     */
+    ProcessPersistService getProcessPersistService();
     
     @Override
-    public boolean isDefault() {
-        return true;
-    }
+    void close();
 }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/PersistServiceBuilder.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacadeBuilder.java
similarity index 65%
copy from 
mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/PersistServiceBuilder.java
copy to 
mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacadeBuilder.java
index c60d8729c7b..f8882c8c012 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/PersistServiceBuilder.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/mode/ModePersistServiceFacadeBuilder.java
@@ -15,31 +15,23 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.persist.service;
+package org.apache.shardingsphere.mode.persist.mode;
 
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
 import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 
 /**
- * Persist service builder.
+ * Mode persist service facade builder.
  */
-public interface PersistServiceBuilder extends TypedSPI {
+public interface ModePersistServiceFacadeBuilder extends TypedSPI {
     
     /**
-     * Build meta data manager persist service.
+     * Build mode persist service facade.
      *
-     * @param repository persist repository
      * @param metaDataContextManager meta data context manager
-     * @return meta data manager persist service
-     */
-    MetaDataManagerPersistService 
buildMetaDataManagerPersistService(PersistRepository repository, 
MetaDataContextManager metaDataContextManager);
-    
-    /**
-     * Build process persist service.
-     *
      * @param repository persist repository
-     * @return process persist service
+     * @return built facade
      */
-    ProcessPersistService buildProcessPersistService(PersistRepository 
repository);
+    ModePersistServiceFacade build(MetaDataContextManager 
metaDataContextManager, PersistRepository repository);
 }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/PersistServiceBuilder.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/ComputeNodePersistService.java
similarity index 50%
rename from 
mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/PersistServiceBuilder.java
rename to 
mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/ComputeNodePersistService.java
index c60d8729c7b..a6d4e7fd17e 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/PersistServiceBuilder.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/ComputeNodePersistService.java
@@ -17,29 +17,19 @@
 
 package org.apache.shardingsphere.mode.persist.service;
 
-import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
-import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
+
+import java.util.Collection;
 
 /**
- * Persist service builder.
+ * Compute node persist service.
  */
-public interface PersistServiceBuilder extends TypedSPI {
-    
-    /**
-     * Build meta data manager persist service.
-     *
-     * @param repository persist repository
-     * @param metaDataContextManager meta data context manager
-     * @return meta data manager persist service
-     */
-    MetaDataManagerPersistService 
buildMetaDataManagerPersistService(PersistRepository repository, 
MetaDataContextManager metaDataContextManager);
+public interface ComputeNodePersistService {
     
     /**
-     * Build process persist service.
+     * Load all compute node instances.
      *
-     * @param repository persist repository
-     * @return process persist service
+     * @return loaded instances
      */
-    ProcessPersistService buildProcessPersistService(PersistRepository 
repository);
+    Collection<ComputeNodeInstance> loadAllInstances();
 }
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/ModePersistServiceFacadeBuilderFixture.java
similarity index 58%
copy from 
mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
copy to 
mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/ModePersistServiceFacadeBuilderFixture.java
index f8794fd2fa7..570e069f344 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/ModePersistServiceFacadeBuilderFixture.java
@@ -18,30 +18,21 @@
 package org.apache.shardingsphere.mode.fixture;
 
 import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import 
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
+import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade;
+import 
org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 
-public final class PersistServiceBuilderFixture implements 
PersistServiceBuilder {
-    
-    @Override
-    public MetaDataManagerPersistService 
buildMetaDataManagerPersistService(final PersistRepository repository, final 
MetaDataContextManager metaDataContextManager) {
-        return null;
-    }
+import static org.mockito.Mockito.mock;
+
+public final class ModePersistServiceFacadeBuilderFixture implements 
ModePersistServiceFacadeBuilder {
     
     @Override
-    public ProcessPersistService buildProcessPersistService(final 
PersistRepository repository) {
-        return null;
+    public ModePersistServiceFacade build(final MetaDataContextManager 
metaDataContextManager, final PersistRepository repository) {
+        return mock();
     }
     
     @Override
     public Object getType() {
-        return "foo_type";
-    }
-    
-    @Override
-    public boolean isDefault() {
-        return true;
+        return "FIXTURE";
     }
 }
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 533658cd875..d7f59c54d40 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
@@ -38,7 +38,6 @@ import 
org.apache.shardingsphere.infra.rule.attribute.RuleAttributes;
 import 
org.apache.shardingsphere.infra.rule.attribute.datanode.MutableDataNodeRuleAttribute;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -87,8 +86,8 @@ class ContextManagerTest {
         
when(metaDataContexts.getMetaData().getDatabase("foo_db")).thenReturn(database);
         
when(metaDataContexts.getMetaData().getAllDatabases()).thenReturn(Collections.singleton(database));
         when(computeNodeInstanceContext.getInstance()).thenReturn(new 
ComputeNodeInstance(new ProxyInstanceMetaData("foo_id", 3307), 
Collections.emptyList()));
-        
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
-        contextManager = new ContextManager(metaDataContexts, 
computeNodeInstanceContext, mock(PersistRepository.class));
+        when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(new 
ModeConfiguration("FIXTURE", mock()));
+        contextManager = new ContextManager(metaDataContexts, 
computeNodeInstanceContext, mock());
     }
     
     private ShardingSphereDatabase mockDatabase() throws SQLException {
diff --git 
a/mode/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
 
b/mode/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
similarity index 90%
rename from 
mode/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
rename to 
mode/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
index 43ab8da1766..d71728fd7f5 100644
--- 
a/mode/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
+++ 
b/mode/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.mode.fixture.PersistServiceBuilderFixture
+org.apache.shardingsphere.mode.fixture.ModePersistServiceFacadeBuilderFixture
diff --git a/mode/core/src/test/resources/logback-test.xml 
b/mode/core/src/test/resources/logback-test.xml
index a32da0f9c2d..dcfff477299 100644
--- a/mode/core/src/test/resources/logback-test.xml
+++ b/mode/core/src/test/resources/logback-test.xml
@@ -26,7 +26,7 @@
     <logger name="org.apache.shardingsphere" level="warn" additivity="false">
         <appender-ref ref="console" />
     </logger>
-    <logger 
name="org.apache.shardingsphere.mode.node.ComputeNodePersistService" 
level="off" />
+    <logger 
name="org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService"
 level="off" />
     
     <root>
         <level value="error" />
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
index fa63d5e2570..1f62f2c1539 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
@@ -35,6 +35,7 @@ import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChan
 import 
org.apache.shardingsphere.mode.manager.cluster.exception.MissingRequiredClusterRepositoryConfigurationException;
 import org.apache.shardingsphere.mode.manager.cluster.lock.ClusterLockContext;
 import 
org.apache.shardingsphere.mode.manager.cluster.lock.GlobalLockPersistService;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
 import 
org.apache.shardingsphere.mode.manager.cluster.workerid.ClusterWorkerIdGenerator;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.factory.MetaDataContextsFactory;
@@ -75,9 +76,10 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
     }
     
     private void registerOnline(final ComputeNodeInstanceContext 
computeNodeInstanceContext, final ContextManagerBuilderParameter param, final 
ContextManager contextManager) {
-        
contextManager.getPersistServiceFacade().getComputeNodePersistService().registerOnline(computeNodeInstanceContext.getInstance());
+        ClusterPersistServiceFacade clusterPersistServiceFacade = 
(ClusterPersistServiceFacade) 
contextManager.getPersistServiceFacade().getModePersistServiceFacade();
+        
clusterPersistServiceFacade.getComputeNodePersistService().registerOnline(computeNodeInstanceContext.getInstance());
         
contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry().getAllClusterInstances()
-                
.addAll(contextManager.getPersistServiceFacade().getComputeNodePersistService().loadAllInstances());
+                
.addAll(clusterPersistServiceFacade.getComputeNodePersistService().loadAllInstances());
         new DataChangedEventListenerRegistry(contextManager, 
getDatabaseNames(param, 
contextManager.getPersistServiceFacade().getMetaDataPersistFacade())).register();
     }
     
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandler.java
index a5ef64ee4bf..13e70156b8f 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandler.java
@@ -30,6 +30,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.compute.ComputeNodeChangedHandler;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
 import org.apache.shardingsphere.mode.node.path.NodePath;
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.global.node.compute.status.OnlineNodePath;
@@ -64,7 +65,8 @@ public final class ComputeNodeOnlineHandler implements 
ComputeNodeChangedHandler
         InstanceMetaData instanceMetaData = 
InstanceMetaDataFactory.create(instanceId, instanceType, computeNodeData);
         switch (event.getType()) {
             case ADDED:
-                
clusterInstanceRegistry.add(contextManager.getPersistServiceFacade().getComputeNodePersistService().loadInstance(instanceMetaData));
+                ClusterPersistServiceFacade clusterPersistServiceFacade = 
(ClusterPersistServiceFacade) 
contextManager.getPersistServiceFacade().getModePersistServiceFacade();
+                
clusterInstanceRegistry.add(clusterPersistServiceFacade.getComputeNodePersistService().loadInstance(instanceMetaData));
                 break;
             case DELETED:
                 clusterInstanceRegistry.delete(new 
ComputeNodeInstance(instanceMetaData));
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilder.java
deleted file mode 100644
index b20438a3269..00000000000
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilder.java
+++ /dev/null
@@ -1,47 +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.mode.manager.cluster.persist.builder;
-
-import 
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterMetaDataManagerPersistService;
-import 
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterProcessPersistService;
-import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import 
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
-
-/**
- * Cluster persist service builder.
- */
-public final class ClusterPersistServiceBuilder implements 
PersistServiceBuilder {
-    
-    @Override
-    public MetaDataManagerPersistService 
buildMetaDataManagerPersistService(final PersistRepository repository, final 
MetaDataContextManager metaDataContextManager) {
-        return new 
ClusterMetaDataManagerPersistService(metaDataContextManager, repository);
-    }
-    
-    @Override
-    public ProcessPersistService buildProcessPersistService(final 
PersistRepository repository) {
-        return new ClusterProcessPersistService(repository);
-    }
-    
-    @Override
-    public Object getType() {
-        return "Cluster";
-    }
-}
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacade.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacade.java
new file mode 100644
index 00000000000..e57d875410b
--- /dev/null
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacade.java
@@ -0,0 +1,56 @@
+/*
+ * 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.mode.manager.cluster.persist.facade;
+
+import lombok.AccessLevel;
+import lombok.Getter;
+import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterMetaDataManagerPersistService;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterProcessPersistService;
+import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
+import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+
+/**
+ * Cluster persist service facade.
+ */
+@Getter
+public final class ClusterPersistServiceFacade implements 
ModePersistServiceFacade {
+    
+    private final ClusterMetaDataManagerPersistService 
metaDataManagerPersistService;
+    
+    private final ClusterComputeNodePersistService computeNodePersistService;
+    
+    private final ClusterProcessPersistService processPersistService;
+    
+    @Getter(AccessLevel.NONE)
+    private final ComputeNodeInstance computeNodeInstance;
+    
+    public ClusterPersistServiceFacade(final MetaDataContextManager 
metaDataContextManager, final PersistRepository repository) {
+        metaDataManagerPersistService = new 
ClusterMetaDataManagerPersistService(metaDataContextManager, repository);
+        computeNodePersistService = new 
ClusterComputeNodePersistService(repository);
+        processPersistService = new ClusterProcessPersistService(repository);
+        computeNodeInstance = 
metaDataContextManager.getComputeNodeInstanceContext().getInstance();
+    }
+    
+    @Override
+    public void close() {
+        computeNodePersistService.offline(computeNodeInstance);
+    }
+}
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacadeBuilder.java
similarity index 56%
copy from 
mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
copy to 
mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacadeBuilder.java
index f8794fd2fa7..35c166f61f1 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacadeBuilder.java
@@ -15,33 +15,25 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.fixture;
+package org.apache.shardingsphere.mode.manager.cluster.persist.facade;
 
 import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import 
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
+import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade;
+import 
org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 
-public final class PersistServiceBuilderFixture implements 
PersistServiceBuilder {
-    
-    @Override
-    public MetaDataManagerPersistService 
buildMetaDataManagerPersistService(final PersistRepository repository, final 
MetaDataContextManager metaDataContextManager) {
-        return null;
-    }
+/**
+ * Cluster persist service facade builder.
+ */
+public final class ClusterPersistServiceFacadeBuilder implements 
ModePersistServiceFacadeBuilder {
     
     @Override
-    public ProcessPersistService buildProcessPersistService(final 
PersistRepository repository) {
-        return null;
+    public ModePersistServiceFacade build(final MetaDataContextManager 
metaDataContextManager, final PersistRepository repository) {
+        return new ClusterPersistServiceFacade(metaDataContextManager, 
repository);
     }
     
     @Override
     public Object getType() {
-        return "foo_type";
-    }
-    
-    @Override
-    public boolean isDefault() {
-        return true;
+        return "Cluster";
     }
 }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/node/ComputeNodePersistService.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistService.java
similarity index 96%
rename from 
mode/core/src/main/java/org/apache/shardingsphere/mode/node/ComputeNodePersistService.java
rename to 
mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistService.java
index 30c629503d9..ac95c21aaa1 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/node/ComputeNodePersistService.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistService.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.node;
+package org.apache.shardingsphere.mode.manager.cluster.persist.service;
 
 import com.google.common.base.Strings;
 import lombok.RequiredArgsConstructor;
@@ -34,6 +34,7 @@ import 
org.apache.shardingsphere.mode.node.path.type.global.node.compute.label.L
 import 
org.apache.shardingsphere.mode.node.path.type.global.node.compute.status.OnlineNodePath;
 import 
org.apache.shardingsphere.mode.node.path.type.global.node.compute.status.StatusNodePath;
 import 
org.apache.shardingsphere.mode.node.path.type.global.node.compute.workerid.ComputeNodeWorkerIDNodePath;
+import 
org.apache.shardingsphere.mode.persist.service.ComputeNodePersistService;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 
 import java.util.Arrays;
@@ -45,11 +46,11 @@ import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
- * Compute node persist service.
+ * Cluster compute node persist service.
  */
 @RequiredArgsConstructor
 @Slf4j
-public final class ComputeNodePersistService {
+public final class ClusterComputeNodePersistService implements 
ComputeNodePersistService {
     
     private final PersistRepository repository;
     
@@ -80,26 +81,6 @@ public final class ComputeNodePersistService {
         repository.delete(NodePathGenerator.toPath(new 
OnlineNodePath(computeNodeInstance.getMetaData().getType(), 
computeNodeInstance.getMetaData().getId())));
     }
     
-    /**
-     * Load all compute node instances.
-     *
-     * @return loaded instances
-     */
-    public Collection<ComputeNodeInstance> loadAllInstances() {
-        return Arrays.stream(InstanceType.values()).flatMap(each -> 
loadInstances(each).stream()).collect(Collectors.toList());
-    }
-    
-    private Collection<ComputeNodeInstance> loadInstances(final InstanceType 
instanceType) {
-        Collection<ComputeNodeInstance> result = new LinkedList<>();
-        for (String each : 
repository.getChildrenKeys(NodePathGenerator.toPath(new 
OnlineNodePath(instanceType, null)))) {
-            String value = repository.query(NodePathGenerator.toPath(new 
OnlineNodePath(instanceType, each)));
-            if (!Strings.isNullOrEmpty(value)) {
-                result.add(loadInstance(InstanceMetaDataFactory.create(each, 
instanceType, new 
YamlComputeNodeDataSwapper().swapToObject(YamlEngine.unmarshal(value, 
YamlComputeNodeData.class)))));
-            }
-        }
-        return result;
-    }
-    
     /**
      * Load compute node instance.
      *
@@ -180,4 +161,20 @@ public final class ComputeNodePersistService {
         return instanceIds.stream().map(each -> 
repository.query(NodePathGenerator.toPath(new 
ComputeNodeWorkerIDNodePath(each))))
                 
.filter(Objects::nonNull).map(Integer::parseInt).collect(Collectors.toSet());
     }
+    
+    @Override
+    public Collection<ComputeNodeInstance> loadAllInstances() {
+        return Arrays.stream(InstanceType.values()).flatMap(each -> 
loadInstances(each).stream()).collect(Collectors.toList());
+    }
+    
+    private Collection<ComputeNodeInstance> loadInstances(final InstanceType 
instanceType) {
+        Collection<ComputeNodeInstance> result = new LinkedList<>();
+        for (String each : 
repository.getChildrenKeys(NodePathGenerator.toPath(new 
OnlineNodePath(instanceType, null)))) {
+            String value = repository.query(NodePathGenerator.toPath(new 
OnlineNodePath(instanceType, each)));
+            if (!Strings.isNullOrEmpty(value)) {
+                result.add(loadInstance(InstanceMetaDataFactory.create(each, 
instanceType, new 
YamlComputeNodeDataSwapper().swapToObject(YamlEngine.unmarshal(value, 
YamlComputeNodeData.class)))));
+            }
+        }
+        return result;
+    }
 }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGenerator.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGenerator.java
index 0c1dc137884..41ebc9920ab 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGenerator.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGenerator.java
@@ -22,7 +22,7 @@ import lombok.extern.slf4j.Slf4j;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import 
org.apache.shardingsphere.infra.instance.workerid.WorkerIdAssignedException;
 import org.apache.shardingsphere.infra.instance.workerid.WorkerIdGenerator;
-import org.apache.shardingsphere.mode.node.ComputeNodePersistService;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 
 import java.util.Collection;
@@ -41,7 +41,7 @@ public final class ClusterWorkerIdGenerator implements 
WorkerIdGenerator {
     
     private final String instanceId;
     
-    private final ComputeNodePersistService computeNodePersistService;
+    private final ClusterComputeNodePersistService computeNodePersistService;
     
     private final ReservationPersistService reservationPersistService;
     
@@ -49,7 +49,7 @@ public final class ClusterWorkerIdGenerator implements 
WorkerIdGenerator {
     
     public ClusterWorkerIdGenerator(final ClusterPersistRepository repository, 
final String instanceId) {
         this.instanceId = instanceId;
-        computeNodePersistService = new ComputeNodePersistService(repository);
+        computeNodePersistService = new 
ClusterComputeNodePersistService(repository);
         reservationPersistService = new ReservationPersistService(repository);
     }
     
diff --git 
a/mode/type/cluster/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
 
b/mode/type/cluster/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
similarity index 89%
rename from 
mode/type/cluster/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
rename to 
mode/type/cluster/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
index d2c393c4c33..17d9f371de6 100644
--- 
a/mode/type/cluster/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
+++ 
b/mode/type/cluster/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.mode.manager.cluster.persist.builder.ClusterPersistServiceBuilder
+org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacadeBuilder
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandlerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandlerTest.java
index 848b563dc9d..fec5b1fc0b6 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandlerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/compute/type/ComputeNodeOnlineHandlerTest.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
 import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -32,6 +33,7 @@ import org.mockito.Mock;
 import org.mockito.junit.jupiter.MockitoExtension;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -60,7 +62,9 @@ class ComputeNodeOnlineHandlerTest {
     @Test
     void assertHandleWithInstanceOnlineEvent() {
         ComputeNodeInstance computeNodeInstance = 
mock(ComputeNodeInstance.class);
-        
when(contextManager.getPersistServiceFacade().getComputeNodePersistService().loadInstance(any())).thenReturn(computeNodeInstance);
+        ClusterPersistServiceFacade clusterPersistServiceFacade = 
mock(ClusterPersistServiceFacade.class, RETURNS_DEEP_STUBS);
+        
when(clusterPersistServiceFacade.getComputeNodePersistService().loadInstance(any())).thenReturn(computeNodeInstance);
+        
when(contextManager.getPersistServiceFacade().getModePersistServiceFacade()).thenReturn(clusterPersistServiceFacade);
         handler.handle(contextManager, new 
DataChangedEvent("/nodes/compute_nodes/online/proxy/foo_instance_id", 
"{attribute: 127.0.0.1@3307,version: 1}", Type.ADDED));
         
verify(contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry()).add(computeNodeInstance);
     }
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilderTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilderTest.java
deleted file mode 100644
index 0fb8dc81449..00000000000
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilderTest.java
+++ /dev/null
@@ -1,46 +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.mode.manager.cluster.persist.builder;
-
-import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import 
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterMetaDataManagerPersistService;
-import 
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterProcessPersistService;
-import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
-import org.junit.jupiter.api.Test;
-
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.Mockito.mock;
-
-class ClusterPersistServiceBuilderTest {
-    
-    private final PersistServiceBuilder persistServiceBuilder = 
TypedSPILoader.getService(PersistServiceBuilder.class, "Cluster");
-    
-    @Test
-    void assertBuildMetaDataManagerPersistService() {
-        
assertThat(persistServiceBuilder.buildMetaDataManagerPersistService(mock(PersistRepository.class),
 mock(MetaDataContextManager.class)),
-                instanceOf(ClusterMetaDataManagerPersistService.class));
-    }
-    
-    @Test
-    void assertBuildProcessPersistService() {
-        
assertThat(persistServiceBuilder.buildProcessPersistService(mock(PersistRepository.class)),
 instanceOf(ClusterProcessPersistService.class));
-    }
-}
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/node/ComputeNodePersistServiceTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistServiceTest.java
similarity index 96%
rename from 
mode/core/src/test/java/org/apache/shardingsphere/mode/node/ComputeNodePersistServiceTest.java
rename to 
mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistServiceTest.java
index bea3bda4566..a1ebd6f7b90 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/node/ComputeNodePersistServiceTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistServiceTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.node;
+package org.apache.shardingsphere.mode.manager.cluster.persist.service;
 
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
 import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
@@ -45,16 +45,16 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 @ExtendWith(MockitoExtension.class)
-class ComputeNodePersistServiceTest {
+class ClusterComputeNodePersistServiceTest {
     
-    private ComputeNodePersistService computeNodePersistService;
+    private ClusterComputeNodePersistService computeNodePersistService;
     
     @Mock
     private PersistRepository repository;
     
     @BeforeEach
     void setUp() {
-        computeNodePersistService = new ComputeNodePersistService(repository);
+        computeNodePersistService = new 
ClusterComputeNodePersistService(repository);
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGeneratorTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGeneratorTest.java
index a2a093e13ca..649c46b7ed7 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGeneratorTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/workerid/ClusterWorkerIdGeneratorTest.java
@@ -20,7 +20,7 @@ package 
org.apache.shardingsphere.mode.manager.cluster.workerid;
 import lombok.SneakyThrows;
 import 
org.apache.shardingsphere.infra.instance.workerid.WorkerIdAssignedException;
 import org.apache.shardingsphere.infra.instance.workerid.WorkerIdGenerator;
-import org.apache.shardingsphere.mode.node.ComputeNodePersistService;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 import org.apache.shardingsphere.test.util.PropertiesBuilder;
 import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
@@ -48,7 +48,7 @@ class ClusterWorkerIdGeneratorTest {
     private ClusterWorkerIdGenerator workerIdGenerator;
     
     @Mock
-    private ComputeNodePersistService computeNodePersistService;
+    private ClusterComputeNodePersistService computeNodePersistService;
     
     @Mock
     private ReservationPersistService reservationPersistService;
diff --git 
a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListener.java
 
b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListener.java
index 54397b13462..2428a9633b3 100644
--- 
a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListener.java
+++ 
b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListener.java
@@ -23,8 +23,8 @@ import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.framework.state.ConnectionState;
 import org.apache.curator.framework.state.ConnectionStateListener;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
-import org.apache.shardingsphere.mode.node.ComputeNodePersistService;
 
 import java.util.Properties;
 
@@ -38,11 +38,11 @@ public final class SessionConnectionReconnectListener 
implements ConnectionState
     
     private final ComputeNodeInstanceContext computeNodeInstanceContext;
     
-    private final ComputeNodePersistService computeNodePersistService;
+    private final ClusterComputeNodePersistService computeNodePersistService;
     
     public SessionConnectionReconnectListener(final ComputeNodeInstanceContext 
computeNodeInstanceContext, final ClusterPersistRepository repository) {
         this.computeNodeInstanceContext = computeNodeInstanceContext;
-        this.computeNodePersistService = new 
ComputeNodePersistService(repository);
+        computeNodePersistService = new 
ClusterComputeNodePersistService(repository);
     }
     
     @Override
diff --git 
a/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListenerTest.java
 
b/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListenerTest.java
index ac2b20320e4..4df51b1fc4a 100644
--- 
a/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListenerTest.java
+++ 
b/mode/type/cluster/repository/provider/zookeeper/src/test/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/listener/SessionConnectionReconnectListenerTest.java
@@ -21,7 +21,7 @@ import lombok.SneakyThrows;
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.framework.state.ConnectionState;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
-import org.apache.shardingsphere.mode.node.ComputeNodePersistService;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -58,7 +58,7 @@ class SessionConnectionReconnectListenerTest {
     
     @Test
     void assertChangeToLostStateWithGenerateWorkerId() throws 
InterruptedException {
-        ComputeNodePersistService computeNodePersistService = 
mock(ComputeNodePersistService.class);
+        ClusterComputeNodePersistService computeNodePersistService = 
mock(ClusterComputeNodePersistService.class);
         
when(client.getZookeeperClient().blockUntilConnectedOrTimedOut()).thenReturn(false,
 true);
         
getSessionConnectionReconnectListener(computeNodePersistService).stateChanged(client,
 ConnectionState.LOST);
         verify(computeNodeInstanceContext).generateWorkerId(new Properties());
@@ -67,7 +67,7 @@ class SessionConnectionReconnectListenerTest {
     
     @Test
     void assertChangeToLostStateWithoutGenerateWorkerId() throws 
InterruptedException {
-        ComputeNodePersistService computeNodePersistService = 
mock(ComputeNodePersistService.class);
+        ClusterComputeNodePersistService computeNodePersistService = 
mock(ClusterComputeNodePersistService.class);
         
when(client.getZookeeperClient().blockUntilConnectedOrTimedOut()).thenReturn(true);
         
when(computeNodeInstanceContext.getInstance().getWorkerId()).thenReturn(-1);
         
getSessionConnectionReconnectListener(computeNodePersistService).stateChanged(client,
 ConnectionState.LOST);
@@ -76,7 +76,7 @@ class SessionConnectionReconnectListenerTest {
     }
     
     @SneakyThrows(ReflectiveOperationException.class)
-    private SessionConnectionReconnectListener 
getSessionConnectionReconnectListener(final ComputeNodePersistService 
computeNodePersistService) {
+    private SessionConnectionReconnectListener 
getSessionConnectionReconnectListener(final ClusterComputeNodePersistService 
computeNodePersistService) {
         SessionConnectionReconnectListener result = new 
SessionConnectionReconnectListener(computeNodeInstanceContext, repository);
         
Plugins.getMemberAccessor().set(SessionConnectionReconnectListener.class.getDeclaredField("computeNodePersistService"),
 result, computeNodePersistService);
         return result;
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilder.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/facade/StandalonePersistServiceFacade.java
similarity index 53%
rename from 
mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilder.java
rename to 
mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/facade/StandalonePersistServiceFacade.java
index 8133669d3e4..4475b7aeafa 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilder.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/facade/StandalonePersistServiceFacade.java
@@ -15,38 +15,34 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.manager.standalone.persist.builder;
+package org.apache.shardingsphere.mode.manager.standalone.persist.facade;
 
+import lombok.Getter;
+import 
org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneComputeNodePersistService;
 import 
org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService;
 import 
org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneProcessPersistService;
 import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import 
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade;
 
 /**
- * Standalone meta data manager persist service builder.
+ * Standalone persist service facade.
  */
-public final class StandalonePersistServiceBuilder implements 
PersistServiceBuilder {
+@Getter
+public final class StandalonePersistServiceFacade implements 
ModePersistServiceFacade {
     
-    @Override
-    public MetaDataManagerPersistService 
buildMetaDataManagerPersistService(final PersistRepository repository, final 
MetaDataContextManager metaDataContextManager) {
-        return new 
StandaloneMetaDataManagerPersistService(metaDataContextManager);
-    }
+    private final StandaloneMetaDataManagerPersistService 
metaDataManagerPersistService;
     
-    @Override
-    public ProcessPersistService buildProcessPersistService(final 
PersistRepository repository) {
-        return new StandaloneProcessPersistService();
-    }
+    private final StandaloneComputeNodePersistService 
computeNodePersistService;
     
-    @Override
-    public Object getType() {
-        return "Standalone";
+    private final StandaloneProcessPersistService processPersistService;
+    
+    public StandalonePersistServiceFacade(final MetaDataContextManager 
metaDataContextManager) {
+        metaDataManagerPersistService = new 
StandaloneMetaDataManagerPersistService(metaDataContextManager);
+        computeNodePersistService = new 
StandaloneComputeNodePersistService(metaDataContextManager.getComputeNodeInstanceContext().getInstance());
+        processPersistService = new StandaloneProcessPersistService();
     }
     
     @Override
-    public boolean isDefault() {
-        return true;
+    public void close() {
     }
 }
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/facade/StandalonePersistServiceFacadeBuilder.java
similarity index 60%
rename from 
mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
rename to 
mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/facade/StandalonePersistServiceFacadeBuilder.java
index f8794fd2fa7..08e604e8425 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/facade/StandalonePersistServiceFacadeBuilder.java
@@ -15,29 +15,26 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.fixture;
+package org.apache.shardingsphere.mode.manager.standalone.persist.facade;
 
 import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import 
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
+import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade;
+import 
org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 
-public final class PersistServiceBuilderFixture implements 
PersistServiceBuilder {
-    
-    @Override
-    public MetaDataManagerPersistService 
buildMetaDataManagerPersistService(final PersistRepository repository, final 
MetaDataContextManager metaDataContextManager) {
-        return null;
-    }
+/**
+ * Standalone persist service facade builder.
+ */
+public final class StandalonePersistServiceFacadeBuilder implements 
ModePersistServiceFacadeBuilder {
     
     @Override
-    public ProcessPersistService buildProcessPersistService(final 
PersistRepository repository) {
-        return null;
+    public ModePersistServiceFacade build(final MetaDataContextManager 
metaDataContextManager, final PersistRepository repository) {
+        return new StandalonePersistServiceFacade(metaDataContextManager);
     }
     
     @Override
     public Object getType() {
-        return "foo_type";
+        return "Standalone";
     }
     
     @Override
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneComputeNodePersistService.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneComputeNodePersistService.java
new file mode 100644
index 00000000000..f242a0a778d
--- /dev/null
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneComputeNodePersistService.java
@@ -0,0 +1,39 @@
+/*
+ * 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.mode.manager.standalone.persist.service;
+
+import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
+import 
org.apache.shardingsphere.mode.persist.service.ComputeNodePersistService;
+
+import java.util.Collection;
+import java.util.Collections;
+
+/**
+ * Standalone compute node persist service.
+ */
+@RequiredArgsConstructor
+public final class StandaloneComputeNodePersistService implements 
ComputeNodePersistService {
+    
+    private final ComputeNodeInstance computeNodeInstance;
+    
+    @Override
+    public Collection<ComputeNodeInstance> loadAllInstances() {
+        return Collections.singleton(computeNodeInstance);
+    }
+}
diff --git 
a/mode/type/standalone/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
 
b/mode/type/standalone/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
similarity index 88%
rename from 
mode/type/standalone/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
rename to 
mode/type/standalone/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
index 47181acf88d..be8778248f6 100644
--- 
a/mode/type/standalone/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder
+++ 
b/mode/type/standalone/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.mode.manager.standalone.persist.builder.StandalonePersistServiceBuilder
+org.apache.shardingsphere.mode.manager.standalone.persist.facade.StandalonePersistServiceFacadeBuilder
diff --git 
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilderTest.java
 
b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilderTest.java
deleted file mode 100644
index 283bb54fd3e..00000000000
--- 
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilderTest.java
+++ /dev/null
@@ -1,46 +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.mode.manager.standalone.persist.builder;
-
-import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import 
org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService;
-import 
org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneProcessPersistService;
-import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
-import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
-import org.junit.jupiter.api.Test;
-
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.Mockito.mock;
-
-class StandalonePersistServiceBuilderTest {
-    
-    private final PersistServiceBuilder persistServiceBuilder = 
TypedSPILoader.getService(PersistServiceBuilder.class, "Standalone");
-    
-    @Test
-    void assertBuildMetaDataManagerPersistService() {
-        
assertThat(persistServiceBuilder.buildMetaDataManagerPersistService(mock(PersistRepository.class),
 mock(MetaDataContextManager.class)),
-                instanceOf(StandaloneMetaDataManagerPersistService.class));
-    }
-    
-    @Test
-    void assertBuildProcessPersistService() {
-        
assertThat(persistServiceBuilder.buildProcessPersistService(mock(PersistRepository.class)),
 instanceOf(StandaloneProcessPersistService.class));
-    }
-}
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseConnector.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseConnector.java
index f25008d1cf2..e47939b16c5 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseConnector.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/StandardDatabaseConnector.java
@@ -137,8 +137,8 @@ public final class StandardDatabaseConnector implements 
DatabaseConnector {
         }
         proxySQLExecutor = new ProxySQLExecutor(driverType, 
databaseConnectionManager, this, queryContext);
         pushDownMetaDataRefreshEngine = new PushDownMetaDataRefreshEngine(
-                
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService(), 
database, contextManager.getMetaDataContexts().getMetaData().getProps());
-        federationMetaDataRefreshEngine = new 
FederationMetaDataRefreshEngine(contextManager.getPersistServiceFacade().getMetaDataManagerPersistService(),
 database);
+                
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService(),
 database, contextManager.getMetaDataContexts().getMetaData().getProps());
+        federationMetaDataRefreshEngine = new 
FederationMetaDataRefreshEngine(contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService(),
 database);
     }
     
     private void checkBackendReady(final SQLStatementContext 
sqlStatementContext) {
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseBackendHandler.java
index 5c75e6ead7c..cd276470c20 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseBackendHandler.java
@@ -38,7 +38,7 @@ public final class CreateDatabaseBackendHandler implements 
ProxyBackendHandler {
     @Override
     public ResponseHeader execute() throws SQLException {
         check(sqlStatement);
-        
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService().createDatabase(sqlStatement.getDatabaseName());
+        
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().createDatabase(sqlStatement.getDatabaseName());
         return new UpdateResponseHeader(sqlStatement);
     }
     
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandler.java
index 463c0b968be..35435d2ead0 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandler.java
@@ -56,7 +56,7 @@ public final class DropDatabaseBackendHandler implements 
ProxyBackendHandler {
         }
         if 
(ProxyContext.getInstance().databaseExists(sqlStatement.getDatabaseName())) {
             ShardingSphereDatabase database = 
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabase(sqlStatement.getDatabaseName());
-            
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService().dropDatabase(database);
+            
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().dropDatabase(database);
         }
         return new UpdateResponseHeader(sqlStatement);
     }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutor.java
index c6ad283cca3..5e1ecbb9299 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutor.java
@@ -27,7 +27,6 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
 
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.stream.Collectors;
 
 /**
@@ -43,9 +42,7 @@ public final class ShowComputeNodesExecutor implements 
DistSQLQueryExecutor<Show
     @Override
     public Collection<LocalDataQueryResultRow> getRows(final 
ShowComputeNodesStatement sqlStatement, final ContextManager contextManager) {
         String modeType = 
contextManager.getComputeNodeInstanceContext().getModeConfiguration().getType();
-        Collection<ComputeNodeInstance> instances = 
"Standalone".equals(modeType)
-                ? 
Collections.singleton(contextManager.getComputeNodeInstanceContext().getInstance())
-                : 
contextManager.getPersistServiceFacade().getComputeNodePersistService().loadAllInstances();
+        Collection<ComputeNodeInstance> instances = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getComputeNodePersistService().loadAllInstances();
         return instances.stream().map(each -> buildRow(each, 
modeType)).collect(Collectors.toList());
     }
     
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/computenode/SetComputeNodeStateExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/computenode/SetComputeNodeStateExecutor.java
index 48a7ad99f37..f3c088883b5 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/computenode/SetComputeNodeStateExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/computenode/SetComputeNodeStateExecutor.java
@@ -24,6 +24,7 @@ import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePrecondition
 import 
org.apache.shardingsphere.infra.exception.generic.UnsupportedSQLOperationException;
 import org.apache.shardingsphere.infra.state.instance.InstanceState;
 import org.apache.shardingsphere.mode.manager.ContextManager;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
 
 /**
  * Set compute node state executor.
@@ -38,8 +39,11 @@ public final class SetComputeNodeStateExecutor implements 
DistSQLUpdateExecutor<
         } else {
             checkEnablingIsValid(contextManager, sqlStatement.getInstanceId());
         }
-        
contextManager.getPersistServiceFacade().getComputeNodePersistService().updateState(sqlStatement.getInstanceId(),
-                "DISABLE".equals(sqlStatement.getState()) ? 
InstanceState.CIRCUIT_BREAK : InstanceState.OK);
+        if 
(contextManager.getComputeNodeInstanceContext().getModeConfiguration().isCluster())
 {
+            ClusterPersistServiceFacade clusterPersistServiceFacade = 
(ClusterPersistServiceFacade) 
contextManager.getPersistServiceFacade().getModePersistServiceFacade();
+            
clusterPersistServiceFacade.getComputeNodePersistService().updateState(sqlStatement.getInstanceId(),
+                    "DISABLE".equals(sqlStatement.getState()) ? 
InstanceState.CIRCUIT_BREAK : InstanceState.OK);
+        }
     }
     
     private void checkEnablingIsValid(final ContextManager contextManager, 
final String instanceId) {
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/LabelComputeNodeExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/LabelComputeNodeExecutor.java
index 9481acea69a..c2de95b2532 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/LabelComputeNodeExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/LabelComputeNodeExecutor.java
@@ -17,11 +17,12 @@
 
 package 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.label;
 
-import 
org.apache.shardingsphere.distsql.handler.required.DistSQLExecutorClusterModeRequired;
 import 
org.apache.shardingsphere.distsql.handler.engine.update.DistSQLUpdateExecutor;
+import 
org.apache.shardingsphere.distsql.handler.required.DistSQLExecutorClusterModeRequired;
 import 
org.apache.shardingsphere.distsql.statement.ral.updatable.LabelComputeNodeStatement;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
 import org.apache.shardingsphere.mode.manager.ContextManager;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
 
 import java.sql.SQLException;
 import java.util.Collection;
@@ -37,6 +38,9 @@ public final class LabelComputeNodeExecutor implements 
DistSQLUpdateExecutor<Lab
     
     @Override
     public void executeUpdate(final LabelComputeNodeStatement sqlStatement, 
final ContextManager contextManager) throws SQLException {
+        if 
(!contextManager.getComputeNodeInstanceContext().getModeConfiguration().isCluster())
 {
+            return;
+        }
         String instanceId = sqlStatement.getInstanceId();
         Optional<ComputeNodeInstance> computeNodeInstance = 
contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry().find(instanceId);
         if (computeNodeInstance.isPresent()) {
@@ -44,7 +48,8 @@ public final class LabelComputeNodeExecutor implements 
DistSQLUpdateExecutor<Lab
             if (!sqlStatement.isOverwrite()) {
                 labels.addAll(computeNodeInstance.get().getLabels());
             }
-            
contextManager.getPersistServiceFacade().getComputeNodePersistService().persistLabels(instanceId,
 new LinkedList<>(labels));
+            ClusterPersistServiceFacade clusterPersistServiceFacade = 
(ClusterPersistServiceFacade) 
contextManager.getPersistServiceFacade().getModePersistServiceFacade();
+            
clusterPersistServiceFacade.getComputeNodePersistService().persistLabels(instanceId,
 new LinkedList<>(labels));
         }
     }
     
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/UnlabelComputeNodeExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/UnlabelComputeNodeExecutor.java
index bc4897303d9..6e1b4a3aa7f 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/UnlabelComputeNodeExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/label/UnlabelComputeNodeExecutor.java
@@ -22,6 +22,7 @@ import 
org.apache.shardingsphere.distsql.handler.engine.update.DistSQLUpdateExec
 import 
org.apache.shardingsphere.distsql.statement.ral.updatable.UnlabelComputeNodeStatement;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
 import org.apache.shardingsphere.mode.manager.ContextManager;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -37,15 +38,19 @@ public final class UnlabelComputeNodeExecutor implements 
DistSQLUpdateExecutor<U
     
     @Override
     public void executeUpdate(final UnlabelComputeNodeStatement sqlStatement, 
final ContextManager contextManager) {
+        if 
(!contextManager.getComputeNodeInstanceContext().getModeConfiguration().isCluster())
 {
+            return;
+        }
         String instanceId = sqlStatement.getInstanceId();
         Optional<ComputeNodeInstance> computeNodeInstance = 
contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry().find(instanceId);
         if (computeNodeInstance.isPresent()) {
+            ClusterPersistServiceFacade clusterPersistServiceFacade = 
(ClusterPersistServiceFacade) 
contextManager.getPersistServiceFacade().getModePersistServiceFacade();
             Collection<String> labels = new 
LinkedHashSet<>(computeNodeInstance.get().getLabels());
             if (sqlStatement.getLabels().isEmpty()) {
-                
contextManager.getPersistServiceFacade().getComputeNodePersistService().persistLabels(instanceId,
 Collections.emptyList());
+                
clusterPersistServiceFacade.getComputeNodePersistService().persistLabels(instanceId,
 Collections.emptyList());
             } else {
                 labels.removeAll(sqlStatement.getLabels());
-                
contextManager.getPersistServiceFacade().getComputeNodePersistService().persistLabels(instanceId,
 new ArrayList<>(labels));
+                
clusterPersistServiceFacade.getComputeNodePersistService().persistLabels(instanceId,
 new ArrayList<>(labels));
             }
         }
     }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/variable/SetDistVariableExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/variable/SetDistVariableExecutor.java
index b4a274b27d1..3c478f8ee47 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/variable/SetDistVariableExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/variable/SetDistVariableExecutor.java
@@ -71,7 +71,7 @@ public final class SetDistVariableExecutor implements 
DistSQLUpdateExecutor<SetD
         props.putAll(metaDataContexts.getMetaData().getProps().getProps());
         
props.putAll(metaDataContexts.getMetaData().getTemporaryProps().getProps());
         props.put(propertyKey.getKey(), getValue(propertyKey, value));
-        
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().alterProperties(props);
+        
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().alterProperties(props);
         refreshRootLogger(props);
         syncSQLShowToLoggingRule(propertyKey, metaDataContexts, value, 
contextManager);
         syncSQLSimpleToLoggingRule(propertyKey, metaDataContexts, value, 
contextManager);
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/MetaDataImportExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/MetaDataImportExecutor.java
index 6f90d231b43..ba9f68cbc6d 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/MetaDataImportExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/MetaDataImportExecutor.java
@@ -71,12 +71,12 @@ public final class MetaDataImportExecutor {
     private void importGlobalRules(final YamlProxyServerConfiguration 
yamlServerConfig) {
         Collection<RuleConfiguration> rules = 
ruleConfigSwapperEngine.swapToRuleConfigurations(yamlServerConfig.getRules());
         for (RuleConfiguration each : rules) {
-            
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().alterGlobalRuleConfiguration(each);
+            
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().alterGlobalRuleConfiguration(each);
         }
     }
     
     private void importProps(final YamlProxyServerConfiguration 
yamlServerConfig) {
-        
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().alterProperties(yamlServerConfig.getProps());
+        
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().alterProperties(yamlServerConfig.getProps());
     }
     
     private Collection<YamlProxyDatabaseConfiguration> 
getYamlProxyDatabaseConfigurations(final ExportedMetaData exportedMetaData) {
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
index dcc5a5042b6..6a7fa8b5910 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
@@ -98,7 +98,7 @@ public final class YamlDatabaseConfigurationImportExecutor {
     }
     
     private void addDatabase(final String databaseName) {
-        
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().createDatabase(databaseName);
+        
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().createDatabase(databaseName);
         DatabaseType protocolType = 
DatabaseTypeEngine.getProtocolType(Collections.emptyMap(), 
contextManager.getMetaDataContexts().getMetaData().getProps());
         
contextManager.getMetaDataContexts().getMetaData().addDatabase(databaseName, 
protocolType, contextManager.getMetaDataContexts().getMetaData().getProps());
     }
@@ -110,7 +110,7 @@ public final class YamlDatabaseConfigurationImportExecutor {
             propsMap.put(entry.getKey(), 
DataSourcePoolPropertiesCreator.create(dataSourceConfig));
         }
         validateHandler.validate(propsMap);
-        
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().registerStorageUnits(databaseName,
 propsMap);
+        
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().registerStorageUnits(databaseName,
 propsMap);
         Map<String, StorageUnit> storageUnits = 
contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnits();
         Map<String, StorageNode> toBeAddedStorageNode = 
StorageUnitNodeMapCreator.create(propsMap);
         for (Entry<String, DataSourcePoolProperties> entry : 
propsMap.entrySet()) {
@@ -154,6 +154,6 @@ public final class YamlDatabaseConfigurationImportExecutor {
     }
     
     private void dropDatabase(final ShardingSphereDatabase database) {
-        
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().dropDatabase(database);
+        
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService().dropDatabase(database);
     }
 }
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
index b2af07b30b4..1920f3ba850 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
@@ -101,7 +101,7 @@ class DistSQLBackendHandlerFactoryTest {
         MetaDataContexts metaDataContexts = mockMetaDataContexts(database);
         when(result.getDatabase("foo_db")).thenReturn(database);
         when(result.getMetaDataContexts()).thenReturn(metaDataContexts);
-        
when(result.getPersistServiceFacade().getMetaDataManagerPersistService()).thenReturn(mock(MetaDataManagerPersistService.class));
+        
when(result.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService()).thenReturn(mock(MetaDataManagerPersistService.class));
         
when(result.getComputeNodeInstanceContext().getModeConfiguration().getType()).thenReturn("Cluster");
         return result;
     }
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutorTest.java
index 2ee5a716bab..422126044a2 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/computenode/ShowComputeNodesExecutorTest.java
@@ -26,6 +26,9 @@ import 
org.apache.shardingsphere.infra.instance.metadata.proxy.ProxyInstanceMeta
 import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
 import org.apache.shardingsphere.infra.state.instance.InstanceStateContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
+import 
org.apache.shardingsphere.mode.manager.cluster.persist.facade.ClusterPersistServiceFacade;
+import 
org.apache.shardingsphere.mode.manager.standalone.persist.facade.StandalonePersistServiceFacade;
+import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
 import 
org.apache.shardingsphere.mode.repository.standalone.StandalonePersistRepositoryConfiguration;
 import org.junit.jupiter.api.Test;
 
@@ -44,9 +47,13 @@ class ShowComputeNodesExecutorTest {
     @Test
     void assertExecuteWithStandaloneMode() {
         ShowComputeNodesExecutor executor = new ShowComputeNodesExecutor();
-        ContextManager contextManager = mock(ContextManager.class);
+        ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         ComputeNodeInstanceContext computeNodeInstanceContext = 
createStandaloneInstanceContext();
         
when(contextManager.getComputeNodeInstanceContext()).thenReturn(computeNodeInstanceContext);
+        MetaDataContextManager metaDataContextManager = 
mock(MetaDataContextManager.class, RETURNS_DEEP_STUBS);
+        
when(metaDataContextManager.getComputeNodeInstanceContext()).thenReturn(computeNodeInstanceContext);
+        StandalonePersistServiceFacade standalonePersistServiceFacade = new 
StandalonePersistServiceFacade(metaDataContextManager);
+        
when(contextManager.getPersistServiceFacade().getModePersistServiceFacade()).thenReturn(standalonePersistServiceFacade);
         Collection<LocalDataQueryResultRow> actual = 
executor.getRows(mock(ShowComputeNodesStatement.class), contextManager);
         assertThat(actual.size(), is(1));
         LocalDataQueryResultRow row = actual.iterator().next();
@@ -62,6 +69,15 @@ class ShowComputeNodesExecutorTest {
         assertThat(row.getCell(10), is(""));
     }
     
+    private ComputeNodeInstanceContext createStandaloneInstanceContext() {
+        ComputeNodeInstanceContext result = 
mock(ComputeNodeInstanceContext.class, RETURNS_DEEP_STUBS);
+        when(result.getInstance().getMetaData()).thenReturn(new 
ProxyInstanceMetaData("foo", "127.0.0.1@3308", "foo_version"));
+        when(result.getInstance().getState()).thenReturn(new 
InstanceStateContext());
+        when(result.getModeConfiguration()).thenReturn(new 
ModeConfiguration("Standalone", new 
StandalonePersistRepositoryConfiguration("H2", new Properties())));
+        when(result.getInstance().getWorkerId()).thenReturn(0);
+        return result;
+    }
+    
     @Test
     void assertExecuteWithClusterMode() {
         ShowComputeNodesExecutor executor = new ShowComputeNodesExecutor();
@@ -83,15 +99,6 @@ class ShowComputeNodesExecutorTest {
         assertThat(row.getCell(10), is(""));
     }
     
-    private ComputeNodeInstanceContext createStandaloneInstanceContext() {
-        ComputeNodeInstanceContext result = 
mock(ComputeNodeInstanceContext.class, RETURNS_DEEP_STUBS);
-        when(result.getInstance().getMetaData()).thenReturn(new 
ProxyInstanceMetaData("foo", "127.0.0.1@3308", "foo_version"));
-        when(result.getInstance().getState()).thenReturn(new 
InstanceStateContext());
-        when(result.getModeConfiguration()).thenReturn(new 
ModeConfiguration("Standalone", new 
StandalonePersistRepositoryConfiguration("H2", new Properties())));
-        when(result.getInstance().getWorkerId()).thenReturn(0);
-        return result;
-    }
-    
     private ComputeNodeInstanceContext createClusterInstanceContext(final 
ContextManager contextManager) {
         ComputeNodeInstanceContext result = 
mock(ComputeNodeInstanceContext.class, RETURNS_DEEP_STUBS);
         when(result.getModeConfiguration()).thenReturn(new 
ModeConfiguration("Cluster", mock(PersistRepositoryConfiguration.class)));
@@ -100,7 +107,9 @@ class ShowComputeNodesExecutorTest {
         when(computeNodeInstance.getState()).thenReturn(new 
InstanceStateContext());
         when(computeNodeInstance.getWorkerId()).thenReturn(1);
         
when(result.getClusterInstanceRegistry().getAllClusterInstances()).thenReturn(Collections.singleton(computeNodeInstance));
-        
when(contextManager.getPersistServiceFacade().getComputeNodePersistService().loadAllInstances()).thenReturn(Collections.singleton(computeNodeInstance));
+        ClusterPersistServiceFacade clusterPersistServiceFacade = 
mock(ClusterPersistServiceFacade.class, RETURNS_DEEP_STUBS);
+        
when(clusterPersistServiceFacade.getComputeNodePersistService().loadAllInstances()).thenReturn(Collections.singleton(computeNodeInstance));
+        
when(contextManager.getPersistServiceFacade().getModePersistServiceFacade()).thenReturn(clusterPersistServiceFacade);
         return result;
     }
 }
diff --git 
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/KillProcessExecutor.java
 
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/KillProcessExecutor.java
index 8fe70daa26c..1bad91917c6 100644
--- 
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/KillProcessExecutor.java
+++ 
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/KillProcessExecutor.java
@@ -47,6 +47,6 @@ public final class KillProcessExecutor implements 
DatabaseAdminExecutor {
         
ShardingSpherePreconditions.checkState(QUERY_SCOPE.equalsIgnoreCase(killStatement.getScope()),
                 () -> new UnsupportedSQLOperationException("Only `KILL QUERY 
<processId>` SQL syntax is supported"));
         String processId = killStatement.getProcessId();
-        
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getProcessPersistService().killProcess(processId);
+        
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getProcessPersistService().killProcess(processId);
     }
 }
diff --git 
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
 
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
index 3254b62ee3f..22b6f38075a 100644
--- 
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
+++ 
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
@@ -61,7 +61,7 @@ public final class ShowProcessListExecutor implements 
DatabaseAdminQueryExecutor
     }
     
     private QueryResult getQueryResult() {
-        Collection<Process> processes = 
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getProcessPersistService().getProcessList();
+        Collection<Process> processes = 
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getModePersistServiceFacade().getProcessPersistService().getProcessList();
         if (processes.isEmpty()) {
             return new RawMemoryQueryResult(queryResultMetaData, 
Collections.emptyList());
         }
diff --git 
a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
 
b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
index 16ad4602956..bbc61ca7c12 100644
--- 
a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
+++ 
b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
@@ -49,7 +49,7 @@ class ShowProcessListExecutorTest {
     void assertExecute() throws SQLException {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        
when(contextManager.getPersistServiceFacade().getProcessPersistService().getProcessList()).thenReturn(mockProcessList());
+        
when(contextManager.getPersistServiceFacade().getModePersistServiceFacade().getProcessPersistService().getProcessList()).thenReturn(mockProcessList());
         ShowProcessListExecutor showProcessListExecutor = new 
ShowProcessListExecutor(false);
         showProcessListExecutor.execute(new 
ConnectionSession(mock(MySQLDatabaseType.class), new DefaultAttributeMap()));
         
assertThat(showProcessListExecutor.getQueryResultMetaData().getColumnCount(), 
is(8));
diff --git 
a/test/it/distsql/src/main/java/org/apache/shardingsphere/test/it/distsql/handler/engine/update/GlobalRuleDefinitionExecutorTest.java
 
b/test/it/distsql/src/main/java/org/apache/shardingsphere/test/it/distsql/handler/engine/update/GlobalRuleDefinitionExecutorTest.java
index 2e3bdf48720..e6f48fe3ba4 100644
--- 
a/test/it/distsql/src/main/java/org/apache/shardingsphere/test/it/distsql/handler/engine/update/GlobalRuleDefinitionExecutorTest.java
+++ 
b/test/it/distsql/src/main/java/org/apache/shardingsphere/test/it/distsql/handler/engine/update/GlobalRuleDefinitionExecutorTest.java
@@ -52,7 +52,7 @@ public abstract class GlobalRuleDefinitionExecutorTest {
             return;
         }
         engine.executeUpdate();
-        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
+        MetaDataManagerPersistService metaDataManagerPersistService = 
contextManager.getPersistServiceFacade().getModePersistServiceFacade().getMetaDataManagerPersistService();
         
verify(metaDataManagerPersistService).alterGlobalRuleConfiguration(deepEq(matchedRuleConfig));
     }
     


Reply via email to