[
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.
So it's required to 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 in order to prevent
concurrent and stale updates.
h3. Definition of Done
* DataNodes key in meta storage is updated for each distribution zone along
with triggerRevision helper key as a result o logical topology key updates in
meta storage.
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 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.
> 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.
> So it's required to 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 in order to prevent
> concurrent and stale updates.
> h3. Definition of Done
> * DataNodes key in meta storage is updated for each distribution zone along
> with triggerRevision helper key as a result o logical topology key updates in
> meta storage.
> 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)