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

Alexander Lapin updated IGNITE-18115:
-------------------------------------
    Description: 
h3. Motivation

As was mentioned in https://issues.apache.org/jira/browse/IGNITE-18087 In order 
to calculate dataNodes for each distribution zone it's required to have proper 
actor that will listen to:
 * Logical topology events.
 * Distribution zone reconfiguration events (adding, updating, removing).
 * Distribution zone processing enabling/disabling.

and properly react to such events. As you can see from IGNITE-18087 we have two 
phase reaction on logical topology events. During the first phase we update 
logicalTopology and logicalTopologyVersion in meta storage and don't trigger 
dataNodes recalculation directly. Why? Because it's simpler - after inserting 
logical topology inside meta storage we mutually linearize topology events and 
distribution zone modification events with the help of meta storage revision.

Thus, given ticket is about reaction to meta storage logical topology events. 
Same as for IGNITE-18087:
 * Register corresponding watch on start with a handler that will recalculate 
dataNodes and update given ms key with the help of invoke. Use revision based 
condition like we do it in rebalance.
 * Check whether dataNodes have proper values on start and update it with 
ms.invoke if not.

h3. Definition of Done
 * DataNodes key in meta storage is updated for each distribution zone along 
with triggerRevision helper key as a result of both logical topology key 
updates and DistiributionZoneManager initialization.

h3. *Implementation Notes*

Required logic is described above in Motivation section. Two new keys in meta 
storage (but not configuration) are expected.

  was:
h3. Motivation

As was mentioned in https://issues.apache.org/jira/browse/IGNITE-18087 In order 
to calculate dataNodes for each distribution zone it's required to have proper 
actor that will listen to:
 * Logical topology events.
 * Distribution zone reconfiguration events (adding, updating, removing).
 * Distribution zone processing enabling/disabling.

and properly react to such events. As you can see from IGNITE-18087 we have two 
phase reaction on logical topology events. During the first phase we update 
logicalTopology and logicalTopologyVersion inside meta storage and don't 
trigger dataNodes recalculation directly. Why? Because it's simpler - after 
inserting 


> Populate DistributionZoneManager with MetaStorage listeners to logical 
> topology events
> --------------------------------------------------------------------------------------
>
>                 Key: IGNITE-18115
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18115
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Alexander Lapin
>            Priority: Major
>              Labels: ignite-3
>
> h3. Motivation
> As was mentioned in https://issues.apache.org/jira/browse/IGNITE-18087 In 
> order to calculate dataNodes for each distribution zone it's required to have 
> proper actor that will listen to:
>  * Logical topology events.
>  * Distribution zone reconfiguration events (adding, updating, removing).
>  * Distribution zone processing enabling/disabling.
> and properly react to such events. As you can see from IGNITE-18087 we have 
> two phase reaction on logical topology events. During the first phase we 
> update logicalTopology and logicalTopologyVersion in meta storage and don't 
> trigger dataNodes recalculation directly. Why? Because it's simpler - after 
> inserting logical topology inside meta storage we mutually linearize topology 
> events and distribution zone modification events with the help of meta 
> storage revision.
> Thus, given ticket is about reaction to meta storage logical topology events. 
> Same as for IGNITE-18087:
>  * Register corresponding watch on start with a handler that will recalculate 
> dataNodes and update given ms key with the help of invoke. Use revision based 
> condition like we do it in rebalance.
>  * Check whether dataNodes have proper values on start and update it with 
> ms.invoke if not.
> h3. Definition of Done
>  * DataNodes key in meta storage is updated for each distribution zone along 
> with triggerRevision helper key as a result of both logical topology key 
> updates and DistiributionZoneManager initialization.
> h3. *Implementation Notes*
> Required logic is described above in Motivation section. Two new keys in meta 
> storage (but not configuration) are expected.



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

Reply via email to