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 418dbb48bba Refactor ClusterPersistRepository (#34992)
418dbb48bba is described below

commit 418dbb48bba44d22b1a8d1c0d90905bddd44a7d1
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Mar 14 15:31:13 2025 +0800

    Refactor ClusterPersistRepository (#34992)
---
 .../shardingsphere/mode/spi/repository/PersistRepository.java    | 9 ---------
 .../database/ClusterDatabaseListenerPersistCoordinator.java      | 4 ++--
 .../cluster/persist/facade/ClusterPersistServiceFacade.java      | 4 ++--
 .../persist/facade/ClusterPersistServiceFacadeBuilder.java       | 3 ++-
 .../persist/service/ClusterComputeNodePersistService.java        | 4 ++--
 .../persist/service/ClusterMetaDataManagerPersistService.java    | 6 +++---
 .../manager/cluster/fixture/ClusterPersistRepositoryFixture.java | 4 ++++
 .../database/ClusterDatabaseListenerPersistCoordinatorTest.java  | 4 ++--
 .../persist/service/ClusterComputeNodePersistServiceTest.java    | 4 ++--
 .../service/ClusterMetaDataManagerPersistServiceTest.java        | 4 ++--
 .../mode/repository/cluster/ClusterPersistRepository.java        | 8 ++++++++
 .../proxy/backend/util/MetaDataImportExecutor.java               | 6 ++----
 12 files changed, 31 insertions(+), 29 deletions(-)

diff --git 
a/mode/spi/src/main/java/org/apache/shardingsphere/mode/spi/repository/PersistRepository.java
 
b/mode/spi/src/main/java/org/apache/shardingsphere/mode/spi/repository/PersistRepository.java
index 0aa4e30dba5..ac87f77a935 100644
--- 
a/mode/spi/src/main/java/org/apache/shardingsphere/mode/spi/repository/PersistRepository.java
+++ 
b/mode/spi/src/main/java/org/apache/shardingsphere/mode/spi/repository/PersistRepository.java
@@ -63,15 +63,6 @@ public interface PersistRepository extends TypedSPI, 
AutoCloseable {
      */
     void persist(String key, String value);
     
-    /**
-     * Persist ephemeral data.
-     *
-     * @param key key of data
-     * @param value value of data
-     */
-    default void persistEphemeral(String key, String value) {
-    }
-    
     /**
      * Update data.
      *
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/database/ClusterDatabaseListenerPersistCoordinator.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/database/ClusterDatabaseListenerPersistCoordinator.java
index 553ca793cd6..f2b017c95f7 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/database/ClusterDatabaseListenerPersistCoordinator.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/database/ClusterDatabaseListenerPersistCoordinator.java
@@ -20,7 +20,7 @@ package 
org.apache.shardingsphere.mode.manager.cluster.persist.coordinator.datab
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import 
org.apache.shardingsphere.mode.node.path.type.global.state.DatabaseListenerCoordinatorNodePath;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 
 /**
  * Cluster database listener persist coordinator.
@@ -28,7 +28,7 @@ import 
org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 @RequiredArgsConstructor
 public final class ClusterDatabaseListenerPersistCoordinator {
     
-    private final PersistRepository repository;
+    private final ClusterPersistRepository repository;
     
     /**
      * Persist database listener assisted state.
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
index e57d875410b..b9e1eef224d 100644
--- 
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
@@ -25,7 +25,7 @@ import 
org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterMet
 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;
+import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 
 /**
  * Cluster persist service facade.
@@ -42,7 +42,7 @@ public final class ClusterPersistServiceFacade implements 
ModePersistServiceFaca
     @Getter(AccessLevel.NONE)
     private final ComputeNodeInstance computeNodeInstance;
     
-    public ClusterPersistServiceFacade(final MetaDataContextManager 
metaDataContextManager, final PersistRepository repository) {
+    public ClusterPersistServiceFacade(final MetaDataContextManager 
metaDataContextManager, final ClusterPersistRepository repository) {
         metaDataManagerPersistService = new 
ClusterMetaDataManagerPersistService(metaDataContextManager, repository);
         computeNodePersistService = new 
ClusterComputeNodePersistService(repository);
         processPersistService = new ClusterProcessPersistService(repository);
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacadeBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacadeBuilder.java
index 35c166f61f1..ab560abcc4a 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacadeBuilder.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/facade/ClusterPersistServiceFacadeBuilder.java
@@ -20,6 +20,7 @@ package 
org.apache.shardingsphere.mode.manager.cluster.persist.facade;
 import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
 import org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacade;
 import 
org.apache.shardingsphere.mode.persist.mode.ModePersistServiceFacadeBuilder;
+import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 
 /**
@@ -29,7 +30,7 @@ public final class ClusterPersistServiceFacadeBuilder 
implements ModePersistServ
     
     @Override
     public ModePersistServiceFacade build(final MetaDataContextManager 
metaDataContextManager, final PersistRepository repository) {
-        return new ClusterPersistServiceFacade(metaDataContextManager, 
repository);
+        return new ClusterPersistServiceFacade(metaDataContextManager, 
(ClusterPersistRepository) repository);
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistService.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistService.java
index ac95c21aaa1..83b009df7d7 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistService.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistService.java
@@ -35,7 +35,7 @@ import 
org.apache.shardingsphere.mode.node.path.type.global.node.compute.status.
 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 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -52,7 +52,7 @@ import java.util.stream.Collectors;
 @Slf4j
 public final class ClusterComputeNodePersistService implements 
ComputeNodePersistService {
     
-    private final PersistRepository repository;
+    private final ClusterPersistRepository repository;
     
     /**
      * Register compute node online.
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
index d8e180e2b27..0e7f11b5ec8 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
@@ -30,8 +30,8 @@ import 
org.apache.shardingsphere.infra.metadata.database.schema.manager.GenericS
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
-import 
org.apache.shardingsphere.mode.manager.cluster.exception.ReloadMetaDataContextFailedException;
 import 
org.apache.shardingsphere.mode.exception.LoadTableMetaDataFailedException;
+import 
org.apache.shardingsphere.mode.manager.cluster.exception.ReloadMetaDataContextFailedException;
 import 
org.apache.shardingsphere.mode.manager.cluster.persist.coordinator.database.ClusterDatabaseListenerCoordinatorType;
 import 
org.apache.shardingsphere.mode.manager.cluster.persist.coordinator.database.ClusterDatabaseListenerPersistCoordinator;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
@@ -40,7 +40,7 @@ import 
org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade;
 import 
org.apache.shardingsphere.mode.metadata.persist.metadata.DatabaseMetaDataPersistFacade;
 import 
org.apache.shardingsphere.mode.metadata.refresher.metadata.util.TableRefreshUtils;
 import 
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
 import org.apache.shardingsphere.single.rule.SingleRule;
 
@@ -65,7 +65,7 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
     
     private final ClusterDatabaseListenerPersistCoordinator 
clusterDatabaseListenerPersistCoordinator;
     
-    public ClusterMetaDataManagerPersistService(final MetaDataContextManager 
metaDataContextManager, final PersistRepository repository) {
+    public ClusterMetaDataManagerPersistService(final MetaDataContextManager 
metaDataContextManager, final ClusterPersistRepository repository) {
         this.metaDataContextManager = metaDataContextManager;
         metaDataPersistFacade = 
metaDataContextManager.getMetaDataPersistFacade();
         clusterDatabaseListenerPersistCoordinator = new 
ClusterDatabaseListenerPersistCoordinator(repository);
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/fixture/ClusterPersistRepositoryFixture.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/fixture/ClusterPersistRepositoryFixture.java
index 83508fb9eea..2cd792b4742 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/fixture/ClusterPersistRepositoryFixture.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/fixture/ClusterPersistRepositoryFixture.java
@@ -57,6 +57,10 @@ public final class ClusterPersistRepositoryFixture 
implements ClusterPersistRepo
     public void update(final String key, final String value) {
     }
     
+    @Override
+    public void persistEphemeral(final String key, final String value) {
+    }
+    
     @Override
     public boolean persistExclusiveEphemeral(final String key, final String 
value) {
         return true;
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/database/ClusterDatabaseListenerPersistCoordinatorTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/database/ClusterDatabaseListenerPersistCoordinatorTest.java
index 46a8e5a566e..d8305b75300 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/database/ClusterDatabaseListenerPersistCoordinatorTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/database/ClusterDatabaseListenerPersistCoordinatorTest.java
@@ -17,7 +17,7 @@
 
 package 
org.apache.shardingsphere.mode.manager.cluster.persist.coordinator.database;
 
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Answers;
@@ -30,7 +30,7 @@ import static org.mockito.Mockito.verify;
 class ClusterDatabaseListenerPersistCoordinatorTest {
     
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private PersistRepository repository;
+    private ClusterPersistRepository repository;
     
     @Test
     void assertPersist() {
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistServiceTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistServiceTest.java
index a1ebd6f7b90..a9e314f7845 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistServiceTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterComputeNodePersistServiceTest.java
@@ -23,7 +23,7 @@ import 
org.apache.shardingsphere.infra.instance.metadata.proxy.ProxyInstanceMeta
 import org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeData;
 import org.apache.shardingsphere.infra.state.instance.InstanceState;
 import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -50,7 +50,7 @@ class ClusterComputeNodePersistServiceTest {
     private ClusterComputeNodePersistService computeNodePersistService;
     
     @Mock
-    private PersistRepository repository;
+    private ClusterPersistRepository repository;
     
     @BeforeEach
     void setUp() {
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
index 7a6f4388dad..d7cec11eb1b 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
@@ -27,7 +27,7 @@ import 
org.apache.shardingsphere.mode.manager.cluster.persist.coordinator.databa
 import 
org.apache.shardingsphere.mode.manager.cluster.persist.coordinator.database.ClusterDatabaseListenerPersistCoordinator;
 import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
 import org.apache.shardingsphere.single.rule.SingleRule;
 import org.apache.shardingsphere.test.fixture.database.MockedDatabaseType;
@@ -68,7 +68,7 @@ class ClusterMetaDataManagerPersistServiceTest {
     @SneakyThrows(ReflectiveOperationException.class)
     @BeforeEach
     void setUp() {
-        metaDataManagerPersistService = new 
ClusterMetaDataManagerPersistService(metaDataContextManager, 
mock(PersistRepository.class));
+        metaDataManagerPersistService = new 
ClusterMetaDataManagerPersistService(metaDataContextManager, 
mock(ClusterPersistRepository.class));
         
Plugins.getMemberAccessor().set(ClusterMetaDataManagerPersistService.class.getDeclaredField("metaDataPersistFacade"),
 metaDataManagerPersistService, metaDataPersistFacade);
         
Plugins.getMemberAccessor().set(ClusterMetaDataManagerPersistService.class.getDeclaredField("clusterDatabaseListenerPersistCoordinator"),
                 metaDataManagerPersistService, 
clusterDatabaseListenerPersistCoordinator);
diff --git 
a/mode/type/cluster/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/cluster/ClusterPersistRepository.java
 
b/mode/type/cluster/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/cluster/ClusterPersistRepository.java
index ca53b64ca63..00a535ab113 100644
--- 
a/mode/type/cluster/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/cluster/ClusterPersistRepository.java
+++ 
b/mode/type/cluster/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/cluster/ClusterPersistRepository.java
@@ -35,6 +35,14 @@ public interface ClusterPersistRepository extends 
PersistRepository {
      */
     void init(ClusterPersistRepositoryConfiguration config, 
ComputeNodeInstanceContext computeNodeInstanceContext);
     
+    /**
+     * Persist ephemeral data.
+     *
+     * @param key key of data
+     * @param value value of data
+     */
+    void persistEphemeral(String key, String value);
+    
     /**
      * Persist exclusive ephemeral data.
      *
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 ba9f68cbc6d..8ecf5eea812 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
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.proxy.backend.config.yaml.YamlProxyDatabaseConf
 import 
org.apache.shardingsphere.proxy.backend.config.yaml.YamlProxyServerConfiguration;
 import org.apache.shardingsphere.proxy.backend.distsql.export.ExportedMetaData;
 
-import java.sql.SQLException;
 import java.util.Collection;
 import java.util.LinkedList;
 
@@ -51,15 +50,14 @@ public final class MetaDataImportExecutor {
      * Import cluster configurations.
      *
      * @param exportedMetaData exported metadata
-     * @throws SQLException SQL exception
      */
-    public void importClusterConfigurations(final ExportedMetaData 
exportedMetaData) throws SQLException {
+    public void importClusterConfigurations(final ExportedMetaData 
exportedMetaData) {
         Collection<YamlProxyDatabaseConfiguration> databaseConfigs = 
getYamlProxyDatabaseConfigurations(exportedMetaData);
         importServerConfiguration(exportedMetaData);
         importDatabaseConfigurations(databaseConfigs);
     }
     
-    private void importServerConfiguration(final ExportedMetaData 
exportedMetaData) throws SQLException {
+    private void importServerConfiguration(final ExportedMetaData 
exportedMetaData) {
         YamlProxyServerConfiguration yamlServerConfig = 
YamlEngine.unmarshal(exportedMetaData.getRules() + System.lineSeparator() + 
exportedMetaData.getProps(), YamlProxyServerConfiguration.class);
         if (null == yamlServerConfig) {
             return;

Reply via email to