This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 3b36b039c08 Avoid send mistake storge unit event (#31766)
3b36b039c08 is described below
commit 3b36b039c08fcdcb0350ab81d9094248046f672e
Author: zhaojinchao <[email protected]>
AuthorDate: Thu Jun 20 11:58:25 2024 +0800
Avoid send mistake storge unit event (#31766)
* Avoid send mistake storge unit event
* Refactor code style
---
.../cluster/coordinator/listener/MetaDataChangedListener.java | 10 ++++++++--
.../coordinator/subscriber/ConfigurationChangedSubscriber.java | 6 +++---
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/listener/MetaDataChangedListener.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/listener/MetaDataChangedListener.java
index 6cbc251e5ac..22640dec9fb 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/listener/MetaDataChangedListener.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/listener/MetaDataChangedListener.java
@@ -149,7 +149,10 @@ public final class MetaDataChangedListener implements
DataChangedEventListener {
}
}
dataSourceUnitName =
DataSourceMetaDataNode.getDataSourceNameByDataSourceUnitNode(event.getKey());
- return dataSourceUnitName.map(optional -> new
UnregisterStorageUnitEvent(databaseName, optional));
+ if (Type.DELETED == event.getType() && dataSourceUnitName.isPresent())
{
+ return Optional.of(new UnregisterStorageUnitEvent(databaseName,
dataSourceUnitName.get()));
+ }
+ return Optional.empty();
}
private Optional<GovernanceEvent> createStorageNodeChangedEvent(final
String databaseName, final DataChangedEvent event) {
@@ -163,6 +166,9 @@ public final class MetaDataChangedListener implements
DataChangedEventListener {
}
}
dataSourceNodeName =
DataSourceMetaDataNode.getDataSourceNameByDataSourceNodeNode(event.getKey());
- return dataSourceNodeName.map(optional -> new
UnregisterStorageNodeEvent(databaseName, optional));
+ if (Type.DELETED == event.getType() && dataSourceNodeName.isPresent())
{
+ return Optional.of(new UnregisterStorageNodeEvent(databaseName,
dataSourceNodeName.get()));
+ }
+ return Optional.empty();
}
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriber.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriber.java
index e44a512b38d..78348cdfd13 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriber.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriber.java
@@ -42,7 +42,7 @@ public final class ConfigurationChangedSubscriber implements
EventSubscriber {
* @param event register storage unit event
*/
@Subscribe
- public void renew(final RegisterStorageUnitEvent event) {
+ public synchronized void renew(final RegisterStorageUnitEvent event) {
if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
.getActiveVersionByFullPath(event.getActiveVersionKey()))) {
return;
@@ -57,7 +57,7 @@ public final class ConfigurationChangedSubscriber implements
EventSubscriber {
* @param event register storage unit event
*/
@Subscribe
- public void renew(final AlterStorageUnitEvent event) {
+ public synchronized void renew(final AlterStorageUnitEvent event) {
if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
.getActiveVersionByFullPath(event.getActiveVersionKey()))) {
return;
@@ -72,7 +72,7 @@ public final class ConfigurationChangedSubscriber implements
EventSubscriber {
* @param event register storage unit event
*/
@Subscribe
- public void renew(final UnregisterStorageUnitEvent event) {
+ public synchronized void renew(final UnregisterStorageUnitEvent event) {
if
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
{
return;
}