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 220a45a6497 Refactor TableChangedHandler and ViewChangedHandler (#34899) 220a45a6497 is described below commit 220a45a6497cdee9250d3d2edef393f139287f84 Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Thu Mar 6 13:37:55 2025 +0800 Refactor TableChangedHandler and ViewChangedHandler (#34899) --- .../database/datasource/StorageNodeChangedHandler.java | 8 ++++---- .../database/datasource/StorageUnitChangedHandler.java | 18 ++++++++---------- .../handler/database/metadata/TableChangedHandler.java | 16 +++++++--------- .../handler/database/metadata/ViewChangedHandler.java | 16 +++++++--------- 4 files changed, 26 insertions(+), 32 deletions(-) diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageNodeChangedHandler.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageNodeChangedHandler.java index 13bd71182c3..d58909f989f 100644 --- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageNodeChangedHandler.java +++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageNodeChangedHandler.java @@ -44,10 +44,10 @@ public final class StorageNodeChangedHandler implements DatabaseChangedHandler { String storageNodeName = NodePathSearcher.get(event.getKey(), StorageNodeNodePath.createStorageNodeSearchCriteria(databaseName)); switch (event.getType()) { case ADDED: - handleRegistered(databaseName, storageNodeName, event); + handleRegistered(databaseName, storageNodeName); break; case UPDATED: - handleAltered(databaseName, storageNodeName, event); + handleAltered(databaseName, storageNodeName); break; case DELETED: handleUnregistered(databaseName, storageNodeName); @@ -57,11 +57,11 @@ public final class StorageNodeChangedHandler implements DatabaseChangedHandler { } } - private void handleRegistered(final String databaseName, final String storageNodeName, final DataChangedEvent event) { + private void handleRegistered(final String databaseName, final String storageNodeName) { // TODO } - private void handleAltered(final String databaseName, final String storageNodeName, final DataChangedEvent event) { + private void handleAltered(final String databaseName, final String storageNodeName) { // TODO } diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageUnitChangedHandler.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageUnitChangedHandler.java index 5d8f70461f3..a7ede48f68e 100644 --- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageUnitChangedHandler.java +++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/datasource/StorageUnitChangedHandler.java @@ -54,10 +54,14 @@ public final class StorageUnitChangedHandler implements DatabaseChangedHandler { String storageUnitName = NodePathSearcher.get(event.getKey(), StorageUnitNodePath.createStorageUnitSearchCriteria(databaseName)); switch (event.getType()) { case ADDED: - handleRegistered(databaseName, storageUnitName, event); + if (activeVersionChecker.checkSame(event)) { + handleRegistered(databaseName, storageUnitName); + } break; case UPDATED: - handleAltered(databaseName, storageUnitName, event); + if (activeVersionChecker.checkSame(event)) { + handleAltered(databaseName, storageUnitName); + } break; case DELETED: handleUnregistered(databaseName, storageUnitName); @@ -67,18 +71,12 @@ public final class StorageUnitChangedHandler implements DatabaseChangedHandler { } } - private void handleRegistered(final String databaseName, final String storageUnitName, final DataChangedEvent event) { - if (!activeVersionChecker.checkSame(event)) { - return; - } + private void handleRegistered(final String databaseName, final String storageUnitName) { DataSourcePoolProperties dataSourcePoolProps = contextManager.getPersistServiceFacade().getMetaDataPersistFacade().getDataSourceUnitService().load(databaseName, storageUnitName); contextManager.getMetaDataContextManager().getStorageUnitManager().register(databaseName, Collections.singletonMap(storageUnitName, dataSourcePoolProps)); } - private void handleAltered(final String databaseName, final String storageUnitName, final DataChangedEvent event) { - if (!activeVersionChecker.checkSame(event)) { - return; - } + private void handleAltered(final String databaseName, final String storageUnitName) { DataSourcePoolProperties dataSourcePoolProps = contextManager.getPersistServiceFacade().getMetaDataPersistFacade().getDataSourceUnitService().load(databaseName, storageUnitName); contextManager.getMetaDataContextManager().getStorageUnitManager().alter(databaseName, Collections.singletonMap(storageUnitName, dataSourcePoolProps)); } diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java index 922a59e5ffe..5929be9001b 100644 --- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java +++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/TableChangedHandler.java @@ -53,31 +53,29 @@ public final class TableChangedHandler implements DatabaseChangedHandler { @Override public void handle(final String databaseName, final DataChangedEvent event) { String schemaName = NodePathSearcher.get(event.getKey(), TableMetadataNodePath.createSchemaSearchCriteria(databaseName, true)); + String tableName = NodePathSearcher.get(event.getKey(), TableMetadataNodePath.createTableSearchCriteria(databaseName, schemaName)); switch (event.getType()) { case ADDED: case UPDATED: - handleCreatedOrAltered(databaseName, schemaName, event); + if (activeVersionChecker.checkSame(event)) { + handleCreatedOrAltered(databaseName, schemaName, tableName); + } break; case DELETED: - handleDropped(databaseName, schemaName, event); + handleDropped(databaseName, schemaName, tableName); break; default: break; } } - private void handleCreatedOrAltered(final String databaseName, final String schemaName, final DataChangedEvent event) { - String tableName = NodePathSearcher.get(event.getKey(), TableMetadataNodePath.createTableSearchCriteria(databaseName, schemaName)); - if (!activeVersionChecker.checkSame(event)) { - return; - } + private void handleCreatedOrAltered(final String databaseName, final String schemaName, final String tableName) { ShardingSphereTable table = contextManager.getPersistServiceFacade().getMetaDataPersistFacade().getDatabaseMetaDataFacade().getTable().load(databaseName, schemaName, tableName); contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().alterTable(databaseName, schemaName, table); statisticsRefreshEngine.asyncRefresh(); } - private void handleDropped(final String databaseName, final String schemaName, final DataChangedEvent event) { - String tableName = NodePathSearcher.get(event.getKey(), TableMetadataNodePath.createTableSearchCriteria(databaseName, schemaName)); + private void handleDropped(final String databaseName, final String schemaName, final String tableName) { contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().dropTable(databaseName, schemaName, tableName); statisticsRefreshEngine.asyncRefresh(); } diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java index a28981a4010..39335ed5f7d 100644 --- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java +++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/metadata/ViewChangedHandler.java @@ -54,31 +54,29 @@ public final class ViewChangedHandler implements DatabaseChangedHandler { @Override public void handle(final String databaseName, final DataChangedEvent event) { String schemaName = NodePathSearcher.get(event.getKey(), TableMetadataNodePath.createSchemaSearchCriteria(databaseName, true)); + String viewName = NodePathSearcher.get(event.getKey(), ViewMetadataNodePath.createViewSearchCriteria(databaseName, schemaName)); switch (event.getType()) { case ADDED: case UPDATED: - handleCreatedOrAltered(databaseName, schemaName, event); + if (activeVersionChecker.checkSame(event)) { + handleCreatedOrAltered(databaseName, schemaName, viewName); + } break; case DELETED: - handleDropped(databaseName, schemaName, event); + handleDropped(databaseName, schemaName, viewName); break; default: break; } } - private void handleCreatedOrAltered(final String databaseName, final String schemaName, final DataChangedEvent event) { - String viewName = NodePathSearcher.get(event.getKey(), ViewMetadataNodePath.createViewSearchCriteria(databaseName, schemaName)); - if (!activeVersionChecker.checkSame(event)) { - return; - } + private void handleCreatedOrAltered(final String databaseName, final String schemaName, final String viewName) { ShardingSphereView view = contextManager.getPersistServiceFacade().getMetaDataPersistFacade().getDatabaseMetaDataFacade().getView().load(databaseName, schemaName, viewName); contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().alterView(databaseName, schemaName, view); statisticsRefreshEngine.asyncRefresh(); } - private void handleDropped(final String databaseName, final String schemaName, final DataChangedEvent event) { - String viewName = NodePathSearcher.get(event.getKey(), ViewMetadataNodePath.createViewSearchCriteria(databaseName, schemaName)); + private void handleDropped(final String databaseName, final String schemaName, final String viewName) { contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().dropView(databaseName, schemaName, viewName); statisticsRefreshEngine.asyncRefresh(); }