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

menghaoran 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 53a3963ebc5 Refactor ClusterMetaDataManagerPersistService (#35043)
53a3963ebc5 is described below

commit 53a3963ebc53f5b110155327e8a8747efc83fc40
Author: Haoran Meng <menghaora...@gmail.com>
AuthorDate: Thu Mar 20 15:50:56 2025 +0800

    Refactor ClusterMetaDataManagerPersistService (#35043)
---
 .../mode/metadata/manager/rule/DatabaseRuleConfigurationManager.java | 2 +-
 .../persist/service/ClusterMetaDataManagerPersistService.java        | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/DatabaseRuleConfigurationManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/DatabaseRuleConfigurationManager.java
index 000d6cab4b8..55bf9cf0324 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/DatabaseRuleConfigurationManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/rule/DatabaseRuleConfigurationManager.java
@@ -75,7 +75,7 @@ public final class DatabaseRuleConfigurationManager {
     
     private void refreshMetadata(final String databaseName, final 
Collection<ShardingSphereRule> rules, final Collection<ShardingSphereRule> 
toBeRemovedRules) throws SQLException {
         Collection<RuleConfiguration> ruleConfigs = 
rules.stream().map(ShardingSphereRule::getConfiguration).collect(Collectors.toList());
-        metaDataContexts.update(new 
MetaDataContextsFactory(metaDataPersistFacade, 
computeNodeInstanceContext).createByAlterRule(databaseName, true, ruleConfigs, 
metaDataContexts));
+        metaDataContexts.update(new 
MetaDataContextsFactory(metaDataPersistFacade, 
computeNodeInstanceContext).createByAlterRule(databaseName, false, ruleConfigs, 
metaDataContexts));
         closeOriginalRules(toBeRemovedRules);
     }
     
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 a9e4e651ef9..2444ae24e71 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
@@ -178,10 +178,11 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
         if (null == toBeAlteredRuleConfig) {
             return;
         }
-        Collection<String> needReloadTables = getNeedReloadTables(database, 
toBeAlteredRuleConfig);
         MetaDataContexts originalMetaDataContexts = new 
MetaDataContexts(metaDataContextManager.getMetaDataContexts().getMetaData(), 
metaDataContextManager.getMetaDataContexts().getStatistics());
         
metaDataPersistFacade.getDatabaseRuleService().persist(database.getName(), 
Collections.singleton(toBeAlteredRuleConfig));
-        
metaDataPersistFacade.getDatabaseMetaDataFacade().persistAlteredTables(database.getName(),
 getReloadedMetaDataContexts(originalMetaDataContexts), needReloadTables);
+        MetaDataContexts reloadMetaDataContexts = 
getReloadedMetaDataContexts(originalMetaDataContexts);
+        
metaDataPersistFacade.getDatabaseMetaDataFacade().persistReloadDatabaseByAlter(
+                database.getName(), 
reloadMetaDataContexts.getMetaData().getDatabase(database.getName()), 
originalMetaDataContexts.getMetaData().getDatabase(database.getName()));
     }
     
     @Override

Reply via email to