This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 83d30cd8450 Refactor MetaDataContextsFactory persist meta data (#30804)
83d30cd8450 is described below
commit 83d30cd8450c77e8995974bf3f8cfadbd8e934f7
Author: zhaojinchao <[email protected]>
AuthorDate: Mon Apr 8 17:40:15 2024 +0800
Refactor MetaDataContextsFactory persist meta data (#30804)
---
.../mode/metadata/MetaDataContextsFactory.java | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
index 708180c3ab6..2ebef6ecac8 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
@@ -33,11 +33,13 @@ import
org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
+import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder;
import org.apache.shardingsphere.infra.state.datasource.DataSourceState;
import org.apache.shardingsphere.infra.state.datasource.DataSourceStateManager;
import org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory;
import org.apache.shardingsphere.metadata.factory.InternalMetaDataFactory;
+import org.apache.shardingsphere.metadata.persist.MetaDataBasedPersistService;
import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.event.storage.StorageNodeDataSource;
import org.apache.shardingsphere.mode.manager.ContextManagerBuilderParameter;
@@ -163,9 +165,15 @@ public final class MetaDataContextsFactory {
}
private static void persistMetaData(final MetaDataContexts
metaDataContexts) {
- metaDataContexts.getMetaData().getDatabases().values().forEach(each ->
each.getSchemas()
- .forEach((schemaName, schema) ->
metaDataContexts.getPersistService().getDatabaseMetaDataService().persist(each.getName(),
schemaName, schema)));
+ metaDataContexts.getMetaData().getDatabases().values().forEach(each ->
persistMetaData(each.getName(), each.getSchemas(),
metaDataContexts.getPersistService()));
metaDataContexts.getStatistics().getDatabaseData().forEach((databaseName,
databaseData) -> databaseData.getSchemaData().forEach((schemaName, schemaData)
-> metaDataContexts
.getPersistService().getShardingSphereDataPersistService().persist(databaseName,
schemaName, schemaData, metaDataContexts.getMetaData().getDatabases())));
}
+
+ private static void persistMetaData(final String databaseName, final
Map<String, ShardingSphereSchema> schemas, final MetaDataBasedPersistService
metaDataBasedPersistService) {
+ for (Entry<String, ShardingSphereSchema> entry : schemas.entrySet()) {
+
metaDataBasedPersistService.getDatabaseMetaDataService().addSchema(databaseName,
entry.getKey());
+
metaDataBasedPersistService.getDatabaseMetaDataService().persist(databaseName,
entry.getKey(), entry.getValue());
+ }
+ }
}