Skip to content

Commit

Permalink
Refactor DatabaseRuleConfigurationManager (#34549)
Browse files Browse the repository at this point in the history
* Refactor DatabaseRuleConfigurationManager

* Refactor DatabaseRuleConfigurationManager
  • Loading branch information
terrymanu authored Feb 1, 2025
1 parent 9c59c38 commit 0686738
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,22 @@
package org.apache.shardingsphere.mode.metadata.manager;

import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.manager.database.DatabaseMetaDataManager;
import org.apache.shardingsphere.mode.metadata.manager.rule.DatabaseRuleConfigurationManager;
import org.apache.shardingsphere.mode.metadata.manager.rule.GlobalConfigurationManager;
import org.apache.shardingsphere.mode.metadata.manager.resource.ResourceSwitchManager;
import org.apache.shardingsphere.mode.metadata.manager.resource.StorageUnitManager;
import org.apache.shardingsphere.mode.metadata.manager.rule.DatabaseRuleConfigurationManager;
import org.apache.shardingsphere.mode.metadata.manager.rule.DatabaseRuleItemManager;
import org.apache.shardingsphere.mode.metadata.manager.rule.GlobalConfigurationManager;
import org.apache.shardingsphere.mode.metadata.manager.statistics.StatisticsManager;
import org.apache.shardingsphere.mode.metadata.manager.resource.StorageUnitManager;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade;
import org.apache.shardingsphere.mode.spi.repository.PersistRepository;

/**
* Meta data context manager.
*/
@Getter
@Slf4j
public class MetaDataContextManager {

private final MetaDataContexts metaDataContexts;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public final class DatabaseRuleConfigurationManager {
* @throws SQLException SQL Exception
*/
@SuppressWarnings({"unchecked", "rawtypes"})
public synchronized void alterRuleConfiguration(final String databaseName, final RuleConfiguration ruleConfig) throws SQLException {
public synchronized void alter(final String databaseName, final RuleConfiguration ruleConfig) throws SQLException {
ShardingSphereDatabase database = metaDataContexts.getMetaData().getDatabase(databaseName);
Collection<ShardingSphereRule> rules = new LinkedList<>(database.getRuleMetaData().getRules());
Optional<ShardingSphereRule> toBeChangedRule = rules.stream().filter(each -> each.getConfiguration().getClass().equals(ruleConfig.getClass())).findFirst();
Expand All @@ -78,7 +78,7 @@ public synchronized void alterRuleConfiguration(final String databaseName, final
* @throws SQLException SQL Exception
*/
@SuppressWarnings({"unchecked", "rawtypes"})
public synchronized void dropRuleConfiguration(final String databaseName, final RuleConfiguration ruleConfig) throws SQLException {
public synchronized void drop(final String databaseName, final RuleConfiguration ruleConfig) throws SQLException {
ShardingSphereDatabase database = metaDataContexts.getMetaData().getDatabase(databaseName);
Collection<ShardingSphereRule> rules = new LinkedList<>(database.getRuleMetaData().getRules());
Optional<ShardingSphereRule> toBeChangedRule = rules.stream().filter(each -> each.getConfiguration().getClass().equals(ruleConfig.getClass())).findFirst();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public void alter(final AlterRuleItem alterRuleItem) throws SQLException {
RuleConfiguration currentRuleConfig = processor.findRuleConfiguration(metaDataContexts.getMetaData().getDatabase(databaseName));
synchronized (this) {
processor.changeRuleItemConfiguration(alterRuleItem, currentRuleConfig, processor.swapRuleItemConfiguration(alterRuleItem, yamlContent));
databaseRuleConfigManager.alterRuleConfiguration(databaseName, currentRuleConfig);
databaseRuleConfigManager.alter(databaseName, currentRuleConfig);
}
}

Expand All @@ -75,7 +75,7 @@ public void drop(final DropRuleItem dropRuleItem) throws SQLException {
RuleConfiguration currentRuleConfig = processor.findRuleConfiguration(metaDataContexts.getMetaData().getDatabase(databaseName));
synchronized (this) {
processor.dropRuleItemConfiguration(dropRuleItem, currentRuleConfig);
databaseRuleConfigManager.dropRuleConfiguration(databaseName, currentRuleConfig);
databaseRuleConfigManager.drop(databaseName, currentRuleConfig);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ public void alterSingleRuleConfiguration(final String databaseName, final RuleMe
SingleRuleConfiguration singleRuleConfig = ruleMetaData.getSingleRule(SingleRule.class).getConfiguration();
Collection<MetaDataVersion> metaDataVersions = metaDataPersistFacade.getDatabaseRuleService().persist(databaseName, Collections.singleton(singleRuleConfig));
metaDataPersistFacade.getMetaDataVersionService().switchActiveVersion(metaDataVersions);
metaDataContextManager.getDatabaseRuleConfigurationManager().alterRuleConfiguration(databaseName, singleRuleConfig);
metaDataContextManager.getDatabaseRuleConfigurationManager().alter(databaseName, singleRuleConfig);
clearServiceCache();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ void assertAlterSingleRuleConfiguration() throws SQLException {
when(singleRule.getConfiguration()).thenReturn(singleRuleConfig);
metaDataManagerPersistService.alterSingleRuleConfiguration("foo_db", new RuleMetaData(Collections.singleton(singleRule)));
verify(metaDataPersistFacade.getMetaDataVersionService()).switchActiveVersion(any());
verify(metaDataContextManager.getDatabaseRuleConfigurationManager()).alterRuleConfiguration("foo_db", singleRuleConfig);
verify(metaDataContextManager.getDatabaseRuleConfigurationManager()).alter("foo_db", singleRuleConfig);
}

@Test
Expand Down

0 comments on commit 0686738

Please sign in to comment.