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;