You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by to...@apache.org on 2022/07/17 15:43:03 UTC

[shardingsphere] branch master updated: Refactor DatabaseVersionPersistService (#19297)

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

totalo 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 787f29a977b Refactor DatabaseVersionPersistService (#19297)
787f29a977b is described below

commit 787f29a977b19429e9e3f6ad2e74942dc8e7d5bb
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sun Jul 17 23:42:58 2022 +0800

    Refactor DatabaseVersionPersistService (#19297)
---
 .../service/DatabaseVersionPersistService.java     | 30 +++++++++++-----------
 .../subscriber/ScalingRegistrySubscriber.java      |  5 ++--
 2 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/DatabaseVersionPersistService.java b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/DatabaseVersionPersistService.java
index fc112739415..b60e9dd2c13 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/DatabaseVersionPersistService.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/DatabaseVersionPersistService.java
@@ -33,24 +33,24 @@ public final class DatabaseVersionPersistService {
     private final PersistRepository repository;
     
     /**
-     * Get database active version.
+     * Get active version.
      * 
      * @param databaseName database name
-     * @return active version
+     * @return active database version
      */
-    public Optional<String> getDatabaseActiveVersion(final String databaseName) {
+    public Optional<String> getActiveVersion(final String databaseName) {
         return Optional.ofNullable(repository.get(DatabaseMetaDataNode.getActiveVersionPath(databaseName)));
     }
     
     /**
-     * Verify the version is the active version.
+     * Judge whether active version.
      * 
      * @param databaseName database name
      * @param version version
-     * @return true if the version is active version, false if not
+     * @return is active version or not
      */
     public boolean isActiveVersion(final String databaseName, final String version) {
-        Optional<String> actualVersion = getDatabaseActiveVersion(databaseName);
+        Optional<String> actualVersion = getActiveVersion(databaseName);
         return actualVersion.isPresent() && actualVersion.get().equals(version);
     }
     
@@ -61,15 +61,15 @@ public final class DatabaseVersionPersistService {
      * @return new version
      */
     public Optional<String> createNewVersion(final String databaseName) {
-        Optional<String> activeVersion = getDatabaseActiveVersion(databaseName);
-        if (activeVersion.isPresent()) {
-            String newVersion = String.valueOf(new AtomicLong(Long.parseLong(activeVersion.get())).incrementAndGet());
-            repository.persist(DatabaseMetaDataNode.getRulePath(databaseName, newVersion), repository.get(DatabaseMetaDataNode.getRulePath(databaseName, activeVersion.get())));
-            repository.persist(DatabaseMetaDataNode.getMetaDataDataSourcePath(databaseName, newVersion),
-                    repository.get(DatabaseMetaDataNode.getMetaDataDataSourcePath(databaseName, activeVersion.get())));
-            return Optional.of(newVersion);
+        Optional<String> activeVersion = getActiveVersion(databaseName);
+        if (!activeVersion.isPresent()) {
+            return Optional.empty();
         }
-        return Optional.empty();
+        String newVersion = String.valueOf(new AtomicLong(Long.parseLong(activeVersion.get())).incrementAndGet());
+        repository.persist(DatabaseMetaDataNode.getRulePath(databaseName, newVersion), repository.get(DatabaseMetaDataNode.getRulePath(databaseName, activeVersion.get())));
+        repository.persist(
+                DatabaseMetaDataNode.getMetaDataDataSourcePath(databaseName, newVersion), repository.get(DatabaseMetaDataNode.getMetaDataDataSourcePath(databaseName, activeVersion.get())));
+        return Optional.of(newVersion);
     }
     
     /**
@@ -79,7 +79,7 @@ public final class DatabaseVersionPersistService {
      * @param version version
      */
     public void persistActiveVersion(final String databaseName, final String version) {
-        Optional<String> activeVersion = getDatabaseActiveVersion(databaseName);
+        Optional<String> activeVersion = getActiveVersion(databaseName);
         if (activeVersion.isPresent() && !activeVersion.get().equals(version)) {
             repository.persist(DatabaseMetaDataNode.getActiveVersionPath(databaseName), version);
         }
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/cache/subscriber/ScalingRegistrySubscriber.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/cache/subscriber/ScalingRegistrySubscriber.java
index b674406fee1..e2980765dc4 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/cache/subscriber/ScalingRegistrySubscriber.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/cache/subscriber/ScalingRegistrySubscriber.java
@@ -32,6 +32,7 @@ import java.util.Optional;
 /**
  * Scaling registry subscriber.
  */
+@SuppressWarnings("UnstableApiUsage")
 @Slf4j
 // TODO move to scaling module
 public final class ScalingRegistrySubscriber {
@@ -57,7 +58,7 @@ public final class ScalingRegistrySubscriber {
     @Subscribe
     public void startScaling(final MetadataVersionPreparedEvent event) {
         String databaseName = event.getDatabaseName();
-        String activeVersion = databaseVersionPersistService.getDatabaseActiveVersion(databaseName).get();
+        String activeVersion = databaseVersionPersistService.getActiveVersion(databaseName).get();
         String sourceDataSource = repository.get(DatabaseMetaDataNode.getMetaDataDataSourcePath(databaseName, activeVersion));
         String targetDataSource = repository.get(DatabaseMetaDataNode.getMetaDataDataSourcePath(databaseName, event.getVersion()));
         String sourceRule = repository.get(DatabaseMetaDataNode.getRulePath(databaseName, activeVersion));
@@ -77,7 +78,7 @@ public final class ScalingRegistrySubscriber {
     public void scalingTaskFinished(final ScalingTaskFinishedEvent event) {
         log.info("scalingTaskFinished, event={}", event);
         int targetActiveVersion = event.getTargetActiveVersion();
-        Optional<String> activeVersion = databaseVersionPersistService.getDatabaseActiveVersion(event.getTargetSchemaName());
+        Optional<String> activeVersion = databaseVersionPersistService.getActiveVersion(event.getTargetSchemaName());
         if (activeVersion.isPresent() && targetActiveVersion == Integer.parseInt(activeVersion.get())) {
             databaseVersionPersistService.persistActiveVersion(event.getTargetSchemaName(), event.getTargetNewVersion() + "");
             databaseVersionPersistService.deleteVersion(event.getTargetSchemaName(), targetActiveVersion + "");