You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2025/03/07 22:06:43 UTC
(shardingsphere) branch master updated: Refactor DatabaseListenerChangedHandler (#34929)
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 180bfbf7c62 Refactor DatabaseListenerChangedHandler (#34929)
180bfbf7c62 is described below
commit 180bfbf7c62186a73ff37989a93d76fa9a92f3db
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Mar 8 06:06:37 2025 +0800
Refactor DatabaseListenerChangedHandler (#34929)
---
.../global/state/DatabaseListenerChangedHandler.java | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/DatabaseListenerChangedHandler.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/DatabaseListenerChangedHandler.java
index 1ae4dea9ba4..bdf2566bfad 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/DatabaseListenerChangedHandler.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/DatabaseListenerChangedHandler.java
@@ -59,12 +59,18 @@ public final class DatabaseListenerChangedHandler implements GlobalDataChangedEv
private void handle(final ContextManager contextManager, final String databaseName, final ClusterDatabaseListenerCoordinatorType type) {
ClusterPersistRepository repository = (ClusterPersistRepository) contextManager.getPersistServiceFacade().getRepository();
- if (ClusterDatabaseListenerCoordinatorType.CREATE == type) {
- repository.watch(NodePathGenerator.toPath(new TableMetadataNodePath(databaseName, null, null), true), new DatabaseMetaDataChangedListener(contextManager));
- contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().addDatabase(databaseName);
- } else if (ClusterDatabaseListenerCoordinatorType.DROP == type) {
- repository.removeDataListener(NodePathGenerator.toPath(new TableMetadataNodePath(databaseName, null, null), true));
- contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().dropDatabase(databaseName);
+ String databasePath = NodePathGenerator.toPath(new TableMetadataNodePath(databaseName, null, null), true);
+ switch (type) {
+ case CREATE:
+ repository.watch(databasePath, new DatabaseMetaDataChangedListener(contextManager));
+ contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().addDatabase(databaseName);
+ break;
+ case DROP:
+ repository.removeDataListener(databasePath);
+ contextManager.getMetaDataContextManager().getDatabaseMetaDataManager().dropDatabase(databaseName);
+ break;
+ default:
+ break;
}
new ClusterDatabaseListenerPersistCoordinator(repository).delete(databaseName);
if (InstanceType.PROXY == contextManager.getComputeNodeInstanceContext().getInstance().getMetaData().getType()) {