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 10942e1a149 Remove unnecessary ShardingSphereDataBasedPersistService
interface (#32064)
10942e1a149 is described below
commit 10942e1a1492544c055a4ba5155bf88f8c2d9fbc
Author: Haoran Meng <[email protected]>
AuthorDate: Thu Jul 11 16:01:29 2024 +0800
Remove unnecessary ShardingSphereDataBasedPersistService interface (#32064)
---
.../data/AlteredShardingSphereDatabaseData.java | 6 +--
.../ShardingSphereDataBasedPersistService.java | 58 ----------------------
.../data/ShardingSphereDataPersistService.java | 20 ++++++--
.../ShardingSphereStatisticsRefreshEngine.java | 12 ++---
.../mode/persist/PersistServiceFacade.java | 19 +------
.../ShardingSphereStatisticsRefreshEngineTest.java | 4 +-
6 files changed, 29 insertions(+), 90 deletions(-)
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/pojo/AlteredShardingSphereSchemaData.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/data/AlteredShardingSphereDatabaseData.java
similarity index 90%
rename from
mode/core/src/main/java/org/apache/shardingsphere/mode/persist/pojo/AlteredShardingSphereSchemaData.java
rename to
kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/data/AlteredShardingSphereDatabaseData.java
index 30d056be951..d64318a763d 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/pojo/AlteredShardingSphereSchemaData.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/data/AlteredShardingSphereDatabaseData.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.persist.pojo;
+package org.apache.shardingsphere.metadata.persist.data;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -25,11 +25,11 @@ import java.util.Collection;
import java.util.LinkedList;
/**
- * Altered shardingSphere schema data.
+ * Altered ShardingSphere database data.
*/
@RequiredArgsConstructor
@Getter
-public final class AlteredShardingSphereSchemaData {
+public final class AlteredShardingSphereDatabaseData {
private final String databaseName;
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/data/ShardingSphereDataBasedPersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/data/ShardingSphereDataBasedPersistService.java
deleted file mode 100644
index 00b5d33e04b..00000000000
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/data/ShardingSphereDataBasedPersistService.java
+++ /dev/null
@@ -1,58 +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.metadata.persist.data;
-
-import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
-import
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereStatistics;
-import
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereSchemaData;
-import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import
org.apache.shardingsphere.metadata.persist.service.schema.TableRowDataBasedPersistService;
-
-import java.util.Map;
-import java.util.Optional;
-
-/**
- * TODO replace the old implementation after meta data refactor completed
- * ShardingSphere data based registry service.
- */
-public interface ShardingSphereDataBasedPersistService {
-
- /**
- * Get table row data persist service.
- *
- * @return Stable row data persist service
- */
- TableRowDataBasedPersistService getTableRowDataPersistService();
-
- /**
- * Load ShardingSphere data.
- *
- * @param metaData meta data
- * @return ShardingSphere data
- */
- Optional<ShardingSphereStatistics> load(ShardingSphereMetaData metaData);
-
- /**
- * Persist table.
- * @param databaseName database name
- * @param schemaName schema name
- * @param schemaData schema data
- * @param databases databases
- */
- void persist(String databaseName, String schemaName,
ShardingSphereSchemaData schemaData, Map<String, ShardingSphereDatabase>
databases);
-}
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/data/ShardingSphereDataPersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/data/ShardingSphereDataPersistService.java
index 05c3dc0c899..674771de942 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/data/ShardingSphereDataPersistService.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/data/ShardingSphereDataPersistService.java
@@ -40,7 +40,7 @@ import java.util.stream.Collectors;
* ShardingSphere data persist service.
*/
@Getter
-public final class ShardingSphereDataPersistService implements
ShardingSphereDataBasedPersistService {
+public final class ShardingSphereDataPersistService {
private final PersistRepository repository;
@@ -57,7 +57,6 @@ public final class ShardingSphereDataPersistService
implements ShardingSphereDat
* @param metaData meta data
* @return ShardingSphere data
*/
- @Override
public Optional<ShardingSphereStatistics> load(final
ShardingSphereMetaData metaData) {
Collection<String> databaseNames =
repository.getChildrenKeys(ShardingSphereDataNode.getShardingSphereDataNodePath());
if (databaseNames.isEmpty()) {
@@ -102,7 +101,6 @@ public final class ShardingSphereDataPersistService
implements ShardingSphereDat
* @param schemaData schema data
* @param databases databases
*/
- @Override
public void persist(final String databaseName, final String schemaName,
final ShardingSphereSchemaData schemaData, final Map<String,
ShardingSphereDatabase> databases) {
if (schemaData.getTableData().isEmpty()) {
persistSchema(databaseName, schemaName);
@@ -125,4 +123,20 @@ public final class ShardingSphereDataPersistService
implements ShardingSphereDat
private void persistTableData(final String databaseName, final String
schemaName, final String tableName, final Collection<YamlShardingSphereRowData>
rows) {
tableRowDataPersistService.persist(databaseName, schemaName,
tableName, rows);
}
+
+ /**
+ * Update sharding sphere database data.
+ *
+ * @param alteredShardingSphereDatabaseData altered ShardingSphere
database data
+ */
+ public void update(final AlteredShardingSphereDatabaseData
alteredShardingSphereDatabaseData) {
+ String databaseName =
alteredShardingSphereDatabaseData.getDatabaseName();
+ String schemaName = alteredShardingSphereDatabaseData.getSchemaName();
+ tableRowDataPersistService.persist(databaseName, schemaName,
alteredShardingSphereDatabaseData.getTableName(),
+ alteredShardingSphereDatabaseData.getAddedRows());
+ tableRowDataPersistService.persist(databaseName, schemaName,
alteredShardingSphereDatabaseData.getTableName(),
+ alteredShardingSphereDatabaseData.getUpdatedRows());
+ tableRowDataPersistService.delete(databaseName, schemaName,
alteredShardingSphereDatabaseData.getTableName(),
+ alteredShardingSphereDatabaseData.getDeletedRows());
+ }
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngine.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngine.java
index 0e853cfab52..70f758da0dc 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngine.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngine.java
@@ -37,7 +37,7 @@ import
org.apache.shardingsphere.infra.yaml.data.swapper.YamlShardingSphereRowDa
import org.apache.shardingsphere.mode.lock.GlobalLockContext;
import org.apache.shardingsphere.mode.lock.GlobalLockDefinition;
import org.apache.shardingsphere.mode.manager.ContextManager;
-import
org.apache.shardingsphere.mode.persist.pojo.AlteredShardingSphereSchemaData;
+import
org.apache.shardingsphere.metadata.persist.data.AlteredShardingSphereDatabaseData;
import java.util.ArrayList;
import java.util.Map;
@@ -162,13 +162,13 @@ public final class ShardingSphereStatisticsRefreshEngine {
return;
}
statistics.getDatabaseData().get(databaseName).getSchemaData().get(schemaName).getTableData().put(changedTableData.getName().toLowerCase(),
changedTableData);
- AlteredShardingSphereSchemaData schemaDataAlteredPOJO =
getShardingSphereSchemaDataAlteredPOJO(databaseName, schemaName, tableData,
changedTableData, table);
-
contextManager.getPersistServiceFacade().persist(schemaDataAlteredPOJO);
+ AlteredShardingSphereDatabaseData alteredShardingSphereDatabaseData =
getShardingSphereSchemaDataAlteredPOJO(databaseName, schemaName, tableData,
changedTableData, table);
+
contextManager.getPersistServiceFacade().getMetaDataPersistService().getShardingSphereDataPersistService().update(alteredShardingSphereDatabaseData);
}
- private AlteredShardingSphereSchemaData
getShardingSphereSchemaDataAlteredPOJO(final String databaseName, final String
schemaName, final ShardingSphereTableData tableData,
-
final ShardingSphereTableData changedTableData, final ShardingSphereTable
table) {
- AlteredShardingSphereSchemaData result = new
AlteredShardingSphereSchemaData(databaseName, schemaName, tableData.getName());
+ private AlteredShardingSphereDatabaseData
getShardingSphereSchemaDataAlteredPOJO(final String databaseName, final String
schemaName, final ShardingSphereTableData tableData,
+
final ShardingSphereTableData changedTableData, final ShardingSphereTable
table) {
+ AlteredShardingSphereDatabaseData result = new
AlteredShardingSphereDatabaseData(databaseName, schemaName,
tableData.getName());
Map<String, ShardingSphereRowData> tableDataMap =
tableData.getRows().stream().collect(Collectors.toMap(ShardingSphereRowData::getUniqueKey,
Function.identity()));
Map<String, ShardingSphereRowData> changedTableDataMap =
changedTableData.getRows().stream().collect(Collectors.toMap(ShardingSphereRowData::getUniqueKey,
Function.identity()));
YamlShardingSphereRowDataSwapper swapper = new
YamlShardingSphereRowDataSwapper(new ArrayList<>(table.getColumnValues()));
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
index 2c34b1b0910..b8015fb5d88 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
@@ -28,9 +28,8 @@ import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistServ
import org.apache.shardingsphere.mode.persist.service.PersistServiceBuilder;
import org.apache.shardingsphere.mode.persist.service.ProcessPersistService;
import
org.apache.shardingsphere.mode.persist.service.QualifiedDataSourceStatePersistService;
-import
org.apache.shardingsphere.mode.persist.pojo.AlteredShardingSphereSchemaData;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.mode.persist.service.StatePersistService;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
/**
* Persist service facade.
@@ -65,20 +64,4 @@ public final class PersistServiceFacade {
processPersistService =
persistServiceBuilder.buildProcessPersistService(repository);
listenerAssistedPersistService = new
ListenerAssistedPersistService(repository);
}
-
- /**
- * Update when sharding sphere schema data altered.
- *
- * @param schemaDataAlteredPOJO sharding sphere schema data
- */
- public void persist(final AlteredShardingSphereSchemaData
schemaDataAlteredPOJO) {
- String databaseName = schemaDataAlteredPOJO.getDatabaseName();
- String schemaName = schemaDataAlteredPOJO.getSchemaName();
-
metaDataPersistService.getShardingSphereDataPersistService().getTableRowDataPersistService().persist(databaseName,
schemaName, schemaDataAlteredPOJO.getTableName(),
- schemaDataAlteredPOJO.getAddedRows());
-
metaDataPersistService.getShardingSphereDataPersistService().getTableRowDataPersistService().persist(databaseName,
schemaName, schemaDataAlteredPOJO.getTableName(),
- schemaDataAlteredPOJO.getUpdatedRows());
-
metaDataPersistService.getShardingSphereDataPersistService().getTableRowDataPersistService().delete(databaseName,
schemaName, schemaDataAlteredPOJO.getTableName(),
- schemaDataAlteredPOJO.getDeletedRows());
- }
}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngineTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngineTest.java
index c0dd1af7bad..a4e194bd7b2 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngineTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngineTest.java
@@ -32,7 +32,7 @@ import
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableDa
import org.apache.shardingsphere.mode.lock.GlobalLockContext;
import org.apache.shardingsphere.mode.lock.GlobalLockDefinition;
import org.apache.shardingsphere.mode.manager.ContextManager;
-import
org.apache.shardingsphere.mode.persist.pojo.AlteredShardingSphereSchemaData;
+import
org.apache.shardingsphere.metadata.persist.data.AlteredShardingSphereDatabaseData;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
import org.junit.jupiter.api.Test;
@@ -65,7 +65,7 @@ class ShardingSphereStatisticsRefreshEngineTest {
GlobalLockContext globalLockContext = mock(GlobalLockContext.class);
when(globalLockContext.tryLock(any(GlobalLockDefinition.class),
anyLong())).thenReturn(true);
new ShardingSphereStatisticsRefreshEngine(contextManager,
globalLockContext).refresh();
-
verify(contextManager.getPersistServiceFacade()).persist(any(AlteredShardingSphereSchemaData.class));
+
verify(contextManager.getPersistServiceFacade().getMetaDataPersistService().getShardingSphereDataPersistService()).update(any(AlteredShardingSphereDatabaseData.class));
}
private ShardingSphereStatistics mockStatistics() {