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 5851cc31d0c Remove useless DataSourceNodePersistService (#34413) 5851cc31d0c is described below commit 5851cc31d0c5569f7b790b90f1f727643083f5b3 Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Mon Jan 20 22:31:38 2025 +0800 Remove useless DataSourceNodePersistService (#34413) --- .../infra/instance/ComputeNodeInstanceContext.java | 1 - .../pipeline/core/job/api/PipelineAPIFactory.java | 2 +- .../core/util/PipelineDistributedBarrier.java | 2 +- .../mode/metadata/MetaDataContextManager.java | 14 +-- .../mode/metadata/MetaDataContexts.java | 2 +- .../mode/metadata/manager/RuleItemManager.java | 5 +- .../metadata/persist/MetaDataPersistService.java | 4 - .../database/DataSourceNodePersistService.java | 113 --------------------- .../database/DataSourceNodePersistServiceTest.java | 88 ---------------- 9 files changed, 12 insertions(+), 219 deletions(-) diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java index a3d8cb81b6e..64da77c8c5b 100644 --- a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java +++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java @@ -48,7 +48,6 @@ public final class ComputeNodeInstanceContext { @Getter(AccessLevel.NONE) private final AtomicReference<WorkerIdGenerator> workerIdGenerator; - @Getter(AccessLevel.NONE) private final AtomicReference<LockContext> lockContext; private final ClusterInstanceRegistry clusterInstanceRegistry; diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/api/PipelineAPIFactory.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/api/PipelineAPIFactory.java index 19097dc4a69..a941c8a3cc7 100644 --- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/api/PipelineAPIFactory.java +++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/api/PipelineAPIFactory.java @@ -64,7 +64,7 @@ public final class PipelineAPIFactory { @Override protected PipelineGovernanceFacade initialize() { ContextManager contextManager = PipelineContextManager.getContext(contextKey).getContextManager(); - return new PipelineGovernanceFacade((ClusterPersistRepository) contextManager.getPersistServiceFacade().getMetaDataPersistService().getRepository()); + return new PipelineGovernanceFacade((ClusterPersistRepository) contextManager.getPersistServiceFacade().getRepository()); } }).get(); } diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java index 88ddf2a1757..9b34b6f920b 100644 --- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java +++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java @@ -163,7 +163,7 @@ public final class PipelineDistributedBarrier { @Override protected ClusterPersistRepository initialize() { - return (ClusterPersistRepository) PipelineContextManager.getContext(contextKey).getContextManager().getPersistServiceFacade().getMetaDataPersistService().getRepository(); + return (ClusterPersistRepository) PipelineContextManager.getContext(contextKey).getContextManager().getPersistServiceFacade().getRepository(); } } } diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java index 261ca5735a2..9d225b52ac5 100644 --- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java @@ -27,6 +27,7 @@ import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase; import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData; import org.apache.shardingsphere.infra.metadata.database.schema.manager.GenericSchemaManager; +import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.statistics.builder.ShardingSphereStatisticsFactory; import org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder; import org.apache.shardingsphere.mode.metadata.factory.MetaDataContextsFactory; @@ -104,13 +105,12 @@ public class MetaDataContextManager { public void forceRefreshDatabaseMetaData(final ShardingSphereDatabase database) { try { metaDataContexts.update(createMetaDataContexts(database)); - metaDataContexts.getMetaData().getDatabase(database.getName()).getAllSchemas() - .forEach(each -> { - if (each.isEmpty()) { - metaDataPersistService.getDatabaseMetaDataFacade().getSchema().add(database.getName(), each.getName()); - } - metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(database.getName(), each.getName(), each.getAllTables()); - }); + for (ShardingSphereSchema each : metaDataContexts.getMetaData().getDatabase(database.getName()).getAllSchemas()) { + if (each.isEmpty()) { + metaDataPersistService.getDatabaseMetaDataFacade().getSchema().add(database.getName(), each.getName()); + } + metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(database.getName(), each.getName(), each.getAllTables()); + } } catch (final SQLException ex) { log.error("Refresh database meta data: {} failed", database.getName(), ex); } diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java index 7c0e7d315af..4eb560c5401 100644 --- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java @@ -52,7 +52,7 @@ public final class MetaDataContexts { /** * Get ShardingSphere statistics. * - * @return got meta data statistics + * @return got statistics */ public ShardingSphereStatistics getStatistics() { return statistics.get(); diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java index 8a03e9391d7..f7a971b72d0 100644 --- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java @@ -50,10 +50,9 @@ public final class RuleItemManager { @SuppressWarnings({"rawtypes", "unchecked"}) public void alterRuleItem(final AlterRuleItem alterRuleItem) throws SQLException { Preconditions.checkArgument(alterRuleItem.getActiveVersion().equals(metaDataPersistService.getRepository().query(alterRuleItem.getActiveVersionKey())), - "Invalid active version: {} of key: {}", alterRuleItem.getActiveVersion(), alterRuleItem.getActiveVersionKey()); + "Invalid active version: %s of key: %s", alterRuleItem.getActiveVersion(), alterRuleItem.getActiveVersionKey()); RuleItemConfigurationChangedProcessor processor = TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class, alterRuleItem.getType()); - String yamlContent = metaDataPersistService.getMetaDataVersionPersistService() - .getVersionPathByActiveVersion(alterRuleItem.getActiveVersionKey(), alterRuleItem.getActiveVersion()); + String yamlContent = metaDataPersistService.getMetaDataVersionPersistService().getVersionPathByActiveVersion(alterRuleItem.getActiveVersionKey(), alterRuleItem.getActiveVersion()); String databaseName = alterRuleItem.getDatabaseName(); RuleConfiguration currentRuleConfig = processor.findRuleConfiguration(metaDataContexts.getMetaData().getDatabase(databaseName)); synchronized (this) { diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java index bf8cf057374..e01bf1a99e1 100644 --- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java @@ -30,7 +30,6 @@ import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp import org.apache.shardingsphere.infra.rule.ShardingSphereRule; import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader; import org.apache.shardingsphere.mode.metadata.persist.data.ShardingSphereDataPersistService; -import org.apache.shardingsphere.mode.metadata.persist.service.config.database.DataSourceNodePersistService; import org.apache.shardingsphere.mode.metadata.persist.service.config.database.DataSourceUnitPersistService; import org.apache.shardingsphere.mode.metadata.persist.service.config.database.DatabaseRulePersistService; import org.apache.shardingsphere.mode.metadata.persist.service.config.global.GlobalRulePersistService; @@ -61,8 +60,6 @@ public final class MetaDataPersistService { private final DataSourceUnitPersistService dataSourceUnitService; - private final DataSourceNodePersistService dataSourceNodeService; - private final DatabaseMetaDataPersistFacade databaseMetaDataFacade; private final DatabaseRulePersistService databaseRulePersistService; @@ -77,7 +74,6 @@ public final class MetaDataPersistService { this.repository = repository; metaDataVersionPersistService = new MetaDataVersionPersistService(repository); dataSourceUnitService = new DataSourceUnitPersistService(repository); - dataSourceNodeService = new DataSourceNodePersistService(repository); databaseMetaDataFacade = new DatabaseMetaDataPersistFacade(repository, metaDataVersionPersistService); databaseRulePersistService = new DatabaseRulePersistService(repository); globalRuleService = new GlobalRulePersistService(repository, metaDataVersionPersistService); diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistService.java deleted file mode 100644 index 9fe12a60217..00000000000 --- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistService.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.shardingsphere.mode.metadata.persist.service.config.database; - -import com.google.common.base.Strings; -import org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties; -import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion; -import org.apache.shardingsphere.infra.util.yaml.YamlEngine; -import org.apache.shardingsphere.infra.yaml.config.swapper.resource.YamlDataSourceConfigurationSwapper; -import org.apache.shardingsphere.mode.node.path.metadata.DataSourceMetaDataNodePath; -import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService; -import org.apache.shardingsphere.mode.spi.repository.PersistRepository; - -import java.util.Collection; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -/** - * Data source node persist service. - */ -public final class DataSourceNodePersistService { - - private final PersistRepository repository; - - private final MetaDataVersionPersistService metaDataVersionPersistService; - - public DataSourceNodePersistService(final PersistRepository repository) { - this.repository = repository; - metaDataVersionPersistService = new MetaDataVersionPersistService(repository); - } - - /** - * Load data source pool properties map. - * - * @param databaseName database name - * @return data source pool properties map - */ - @SuppressWarnings("unchecked") - public Map<String, DataSourcePoolProperties> load(final String databaseName) { - Collection<String> childrenKeys = repository.getChildrenKeys(DataSourceMetaDataNodePath.getStorageNodesPath(databaseName)); - Map<String, DataSourcePoolProperties> result = new LinkedHashMap<>(childrenKeys.size(), 1F); - for (String each : childrenKeys) { - String dataSourceValue = repository.query(DataSourceMetaDataNodePath.getStorageNodeVersionPath(databaseName, each, getDataSourceActiveVersion(databaseName, each))); - if (!Strings.isNullOrEmpty(dataSourceValue)) { - result.put(each, new YamlDataSourceConfigurationSwapper().swapToDataSourcePoolProperties(YamlEngine.unmarshal(dataSourceValue, Map.class))); - } - } - return result; - } - - /** - * Load data source pool properties. - * - * @param databaseName database name - * @param dataSourceName data source name - * @return data source pool properties - */ - @SuppressWarnings("unchecked") - public DataSourcePoolProperties load(final String databaseName, final String dataSourceName) { - String dataSourceValue = repository.query(DataSourceMetaDataNodePath.getStorageNodeVersionPath(databaseName, dataSourceName, getDataSourceActiveVersion(databaseName, dataSourceName))); - return new YamlDataSourceConfigurationSwapper().swapToDataSourcePoolProperties(YamlEngine.unmarshal(dataSourceValue, Map.class)); - } - - /** - * Persist data source pool configurations. - * - * @param databaseName database name - * @param dataSourceConfigs data source pool configurations - */ - public void persist(final String databaseName, final Map<String, DataSourcePoolProperties> dataSourceConfigs) { - for (Entry<String, DataSourcePoolProperties> entry : dataSourceConfigs.entrySet()) { - String activeVersion = getDataSourceActiveVersion(databaseName, entry.getKey()); - List<String> versions = metaDataVersionPersistService.getVersions(DataSourceMetaDataNodePath.getStorageNodeVersionsPath(databaseName, entry.getKey())); - repository.persist(DataSourceMetaDataNodePath.getStorageNodeVersionPath(databaseName, entry.getKey(), versions.isEmpty() - ? MetaDataVersion.DEFAULT_VERSION - : String.valueOf(Integer.parseInt(versions.get(0)) + 1)), YamlEngine.marshal(new YamlDataSourceConfigurationSwapper().swapToMap(entry.getValue()))); - if (Strings.isNullOrEmpty(activeVersion)) { - repository.persist(DataSourceMetaDataNodePath.getStorageNodeActiveVersionPath(databaseName, entry.getKey()), MetaDataVersion.DEFAULT_VERSION); - } - } - } - - private String getDataSourceActiveVersion(final String databaseName, final String dataSourceName) { - return repository.query(DataSourceMetaDataNodePath.getStorageNodeActiveVersionPath(databaseName, dataSourceName)); - } - - /** - * Delete data source pool configuration. - * - * @param databaseName database name - * @param dataSourceName data source name - */ - public void delete(final String databaseName, final String dataSourceName) { - repository.delete(DataSourceMetaDataNodePath.getStorageNodePath(databaseName, dataSourceName)); - } -} diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java deleted file mode 100644 index cac42490947..00000000000 --- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.shardingsphere.mode.metadata.persist.service.config.database; - -import org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties; -import org.apache.shardingsphere.mode.spi.repository.PersistRepository; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; - -import java.util.Arrays; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.Map; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -@ExtendWith(MockitoExtension.class) -class DataSourceNodePersistServiceTest { - - private DataSourceNodePersistService dataSourceNodePersistService; - - @Mock - private PersistRepository repository; - - @BeforeEach - void setUp() { - dataSourceNodePersistService = new DataSourceNodePersistService(repository); - } - - @Test - void assertLoad() { - when(repository.getChildrenKeys("/metadata/foo_db/data_sources/nodes")).thenReturn(Arrays.asList("foo_ds", "bar_ds")); - when(repository.query("/metadata/foo_db/data_sources/nodes/foo_ds/active_version")).thenReturn("10"); - when(repository.query("/metadata/foo_db/data_sources/nodes/foo_ds/versions/10")).thenReturn("{dataSourceClassName: org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource}"); - Map<String, DataSourcePoolProperties> actual = dataSourceNodePersistService.load("foo_db"); - assertThat(actual.size(), is(1)); - assertThat(actual.get("foo_ds").getPoolClassName(), is("org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource")); - } - - @Test - void assertLoadWithDataSourceName() { - when(repository.query("/metadata/foo_db/data_sources/nodes/foo_ds/active_version")).thenReturn("10"); - when(repository.query("/metadata/foo_db/data_sources/nodes/foo_ds/versions/10")).thenReturn("{dataSourceClassName: org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource}"); - DataSourcePoolProperties actual = dataSourceNodePersistService.load("foo_db", "foo_ds"); - assertThat(actual.getPoolClassName(), is("org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource")); - } - - @Test - void assertPersist() { - Map<String, DataSourcePoolProperties> dataSourceConfigs = new LinkedHashMap<>(2, 1F); - dataSourceConfigs.put("foo_ds", new DataSourcePoolProperties("org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource", Collections.emptyMap())); - dataSourceConfigs.put("bar_ds", new DataSourcePoolProperties("org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource", Collections.emptyMap())); - when(repository.query("/metadata/foo_db/data_sources/nodes/foo_ds/active_version")).thenReturn("10"); - when(repository.getChildrenKeys("/metadata/foo_db/data_sources/nodes/foo_ds/versions")).thenReturn(Collections.singletonList("10")); - dataSourceNodePersistService.persist("foo_db", dataSourceConfigs); - verify(repository).persist(eq("/metadata/foo_db/data_sources/nodes/foo_ds/versions/11"), any()); - verify(repository).persist(eq("/metadata/foo_db/data_sources/nodes/bar_ds/versions/0"), any()); - } - - @Test - void assertDelete() { - dataSourceNodePersistService.delete("foo_db", "foo_ds"); - verify(repository).delete("/metadata/foo_db/data_sources/nodes/foo_ds"); - } -}