[ 
https://issues.apache.org/jira/browse/IGNITE-20317?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sergey Uttsel updated IGNITE-20317:
-----------------------------------
    Description: 
h3. *Motivation*
There are meta storage invokes in DistributionZoneManager in zone's lifecycle. 
The futures of these invokes are ignored, so after the lifecycle method is 
completed actually not all its actions are completed. Therefore several invokes 
for example on createZone and alterZone can be reordered. Currently it does the 
meta storage invokes in:
# ZonesConfigurationListener#onCreate to init a zone.
# ZonesConfigurationListener#onDelete to clean up the zone data.
# DistributionZoneManager#onUpdateFilter to save data nodes in the meta storage.
# LogicalTopologyEventListener to update logical topology.

h3. *Definition of Done*
Need to ensure event handling linearization.

h3. *Implementation Notes*
# ZonesConfigurationListener#onCreate, ZonesConfigurationListener#onDelete and 
DistributionZoneManager#onUpdateFilter are invoked in configuration listeners. 
So we can  just return the ms invoke future  from these methods and it ensure, 
that this invoke will be completed within the current event handling.
# We cannnot return future from LogicalTopologyEventListener's methods. So we 
can chain their ms invokes futures in DZM or we can add tasks with ms invoke to 
executor.

  was:
h3. *Motivation*
There are meta storage invokes in DistributionZoneManager in zone's lifecycle. 
The futures of these invokes are ignored, so after the lifecycle method is 
completed actually not all its actions are completed. Therefore several invokes 
for example on createZone and alterZone can be reordered. Currently it does the 
meta storage invokes in:
# ZonesConfigurationListener#onCreate to init a zone.
# ZonesConfigurationListener#onDelete to clean up the zone data.
# DistributionZoneManager#onUpdateFilter to save data nodes in the meta storage.
# LogicalTopologyEventListener to update logical topology.

h3. *Definition of Done*
Need to return meta storage futures from event handlers to ensure event 
linearization.

h3. *Implementation Notes*
# ZonesConfigurationListener#onCreate, ZonesConfigurationListener#onDelete and 
DistributionZoneManager#onUpdateFilter are invoked in configuration listeners. 
So we can  just return the ms invoke future  from these methods and it ensure, 
that this invoke will be completed within the current event handling.
# We cannnot return future from LogicalTopologyEventListener's methods. So we 
can chain their ms invokes futures in DZM or we can add tasks with ms invoke to 
executor.


> Meta storage invokes are not completed when events are handled in DZM 
> ----------------------------------------------------------------------
>
>                 Key: IGNITE-20317
>                 URL: https://issues.apache.org/jira/browse/IGNITE-20317
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Sergey Uttsel
>            Priority: Major
>              Labels: ignite-3
>
> h3. *Motivation*
> There are meta storage invokes in DistributionZoneManager in zone's 
> lifecycle. The futures of these invokes are ignored, so after the lifecycle 
> method is completed actually not all its actions are completed. Therefore 
> several invokes for example on createZone and alterZone can be reordered. 
> Currently it does the meta storage invokes in:
> # ZonesConfigurationListener#onCreate to init a zone.
> # ZonesConfigurationListener#onDelete to clean up the zone data.
> # DistributionZoneManager#onUpdateFilter to save data nodes in the meta 
> storage.
> # LogicalTopologyEventListener to update logical topology.
> h3. *Definition of Done*
> Need to ensure event handling linearization.
> h3. *Implementation Notes*
> # ZonesConfigurationListener#onCreate, ZonesConfigurationListener#onDelete 
> and DistributionZoneManager#onUpdateFilter are invoked in configuration 
> listeners. So we can  just return the ms invoke future  from these methods 
> and it ensure, that this invoke will be completed within the current event 
> handling.
> # We cannnot return future from LogicalTopologyEventListener's methods. So we 
> can chain their ms invokes futures in DZM or we can add tasks with ms invoke 
> to executor.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to