You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2023/06/27 06:05:04 UTC

[shardingsphere] branch master updated: Alter props switch to active_version (#26612)

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

duanzhengqiang 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 ed81acf5f6a Alter props switch to active_version (#26612)
ed81acf5f6a is described below

commit ed81acf5f6af1c5e0c31ad111a6f60f24aa87bba
Author: zhaojinchao <zh...@apache.org>
AuthorDate: Tue Jun 27 14:04:56 2023 +0800

    Alter props switch to active_version (#26612)
---
 .../shardingsphere/infra/instance/mode/ModeContextManager.java   | 9 ---------
 .../shardingsphere/metadata/persist/node/NewGlobalNode.java      | 7 ++++++-
 .../service/config/global/NewPropertiesPersistService.java       | 8 ++++----
 .../mode/manager/cluster/ClusterModeContextManager.java          | 7 -------
 .../mode/manager/cluster/NewClusterModeContextManager.java       | 8 ++------
 .../mode/manager/standalone/StandaloneModeContextManager.java    | 6 ------
 6 files changed, 12 insertions(+), 33 deletions(-)

diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/mode/ModeContextManager.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/mode/ModeContextManager.java
index 3923c209767..01c8427a197 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/mode/ModeContextManager.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/mode/ModeContextManager.java
@@ -155,15 +155,6 @@ public interface ModeContextManager {
      */
     void alterProperties(Properties props);
     
-    /**
-     * TODO Need to DistSQL handle call it
-     * New alter properties.
-     *
-     * @param props pros
-     * @return meta data versions
-     */
-    Collection<MetaDataVersion> newAlterProperties(Properties props);
-    
     /**
      * TODO Remove to MetaDataPersistService
      * Get active version by key.
diff --git a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewGlobalNode.java b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewGlobalNode.java
index 91b7a7bdae2..8fd67bacf44 100644
--- a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewGlobalNode.java
+++ b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewGlobalNode.java
@@ -113,7 +113,12 @@ public final class NewGlobalNode {
         return String.join("/", getPropsRootNode(), VERSIONS);
     }
     
-    private static String getPropsRootNode() {
+    /**
+     * Get properties node.
+     *
+     * @return properties node
+     */
+    public static String getPropsRootNode() {
         return String.join("/", "", PROPS_NODE);
     }
 }
diff --git a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewPropertiesPersistService.java b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewPropertiesPersistService.java
index 8eb36e126c6..97270411402 100644
--- a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewPropertiesPersistService.java
+++ b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/global/NewPropertiesPersistService.java
@@ -54,14 +54,14 @@ public final class NewPropertiesPersistService implements GlobalPersistService<P
     
     @Override
     public Collection<MetaDataVersion> persistConfig(final Properties props) {
-        if (Strings.isNullOrEmpty(getActiveVersion())) {
-            repository.persist(NewGlobalNode.getPropsActiveVersionNode(), DEFAULT_VERSION);
-        }
         List<String> versions = repository.getChildrenKeys(NewGlobalNode.getPropsVersionsNode());
         String nextActiveVersion = versions.isEmpty() ? DEFAULT_VERSION : String.valueOf(Integer.parseInt(versions.get(0)) + 1);
         String persistKey = NewGlobalNode.getPropsVersionNode(nextActiveVersion);
         repository.persist(persistKey, YamlEngine.marshal(props));
-        return Collections.singletonList(new MetaDataVersion(persistKey, getActiveVersion(), nextActiveVersion));
+        if (Strings.isNullOrEmpty(getActiveVersion())) {
+            repository.persist(NewGlobalNode.getPropsActiveVersionNode(), DEFAULT_VERSION);
+        }
+        return Collections.singletonList(new MetaDataVersion(NewGlobalNode.getPropsRootNode(), getActiveVersion(), nextActiveVersion));
     }
     
     @Override
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterModeContextManager.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterModeContextManager.java
index dbb5abf4251..e0d8e5a8cd7 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterModeContextManager.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterModeContextManager.java
@@ -25,13 +25,11 @@ import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp
 import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
 import org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
 import org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaPOJO;
-import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
 import org.apache.shardingsphere.metadata.persist.service.database.DatabaseMetaDataBasedPersistService;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.manager.ContextManagerAware;
 
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Map;
 import java.util.Properties;
 import java.util.stream.Collectors;
@@ -123,11 +121,6 @@ public final class ClusterModeContextManager implements ModeContextManager, Cont
         contextManager.getMetaDataContexts().getPersistService().getPropsService().persist(props);
     }
     
-    @Override
-    public Collection<MetaDataVersion> newAlterProperties(final Properties props) {
-        return Collections.emptyList();
-    }
-    
     @Override
     public void setContextManagerAware(final ContextManager contextManager) {
         this.contextManager = contextManager;
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterModeContextManager.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterModeContextManager.java
index c99b5ebceeb..b2aa381a581 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterModeContextManager.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterModeContextManager.java
@@ -155,12 +155,8 @@ public final class NewClusterModeContextManager implements ModeContextManager, C
     
     @Override
     public void alterProperties(final Properties props) {
-        contextManager.getMetaDataContexts().getPersistService().getPropsService().persist(props);
-    }
-    
-    @Override
-    public Collection<MetaDataVersion> newAlterProperties(final Properties props) {
-        return contextManager.getMetaDataContexts().getPersistService().getPropsService().persistConfig(props);
+        Collection<MetaDataVersion> versions = contextManager.getMetaDataContexts().getPersistService().getPropsService().persistConfig(props);
+        contextManager.getMetaDataContexts().getPersistService().getMetaDataVersionPersistService().switchActiveVersion(versions);
     }
     
     @Override
diff --git a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneModeContextManager.java b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneModeContextManager.java
index 8a14c32e888..51c7ef73935 100644
--- a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneModeContextManager.java
+++ b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneModeContextManager.java
@@ -27,7 +27,6 @@ import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp
 import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
 import org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
 import org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaPOJO;
-import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
 import org.apache.shardingsphere.infra.rule.identifier.type.MetaDataHeldRule;
 import org.apache.shardingsphere.infra.rule.identifier.type.MutableDataNodeRule;
 import org.apache.shardingsphere.infra.rule.identifier.type.ResourceHeldRule;
@@ -284,11 +283,6 @@ public final class StandaloneModeContextManager implements ModeContextManager, C
         clearServiceCache();
     }
     
-    @Override
-    public Collection<MetaDataVersion> newAlterProperties(final Properties props) {
-        return Collections.emptyList();
-    }
-    
     private void clearServiceCache() {
         OrderedServicesCache.clearCache();
     }