[
https://issues.apache.org/jira/browse/IGNITE-18085?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Lapin updated IGNITE-18085:
-------------------------------------
Description:
h3. Motivation
There are two types of typologies in Apache Ignite 3
* Physical(Network) - nodes that are visible through network layer.
* Logical - nodes that successfully passed the join procedure including local
recovery and catch up phases, thus nodes that are ready to handle user load.
More details in IEP-77
In order to recalculate data nodes for specific distribution zone (see
[IEP-97|https://cwiki.apache.org/confluence/display/IGNITE/IEP-97%3A+Distribution+Zones])
it's required for distribution zone manager to receive notifications about
logical topology updates along with logical topology version similar to ones we
have in network topology:
* onAppeared
* onDisappeared
h3. Definition of Done
* It's possible to register listeners for logical topology
onAppeared/onDisappeared events
* Events are fired in a distributed manner to all recipients.
* Each event produces ClusterNode.consistentId that was either added or
removed and *logical topology version.* It's required to solve ABA problem on
topology events, see https://issues.apache.org/jira/browse/IGNITE-18087 for
more details.
* Events are ordered within each Producer to Recipient communication channel.
* It's valid to have multiple producers, e.g. during CMG leader change, thus
it's valid to send same set of event twice but order still matters.
* It's not valid to skip events, even in case of of CMG leader change.
* Delivery guarantee is required.
* Besides events, there should be a method to get current logical topology.
was:
h3. Motivation
There are two types of typologies in Apache Ignite 3
* Physical(Network) - nodes that are visible through network layer.
* Logical - nodes that successfully passed the join procedure including local
recovery and catch up phases, thus nodes that are ready to handle user load.
More details in IEP-77
In order to recalculate data nodes for specific distribution zone (see
[IEP-97|https://cwiki.apache.org/confluence/display/IGNITE/IEP-97%3A+Distribution+Zones])
it's required for distribution zone manager to receive notifications about
logical topology updates similar to ones we have in network topology:
* onAppeared
* onDisappeared
h3. Definition of Done
* It's possible to register listeners for logical topology
onAppeared/onDisappeared events
* Events are fired in a distributed manner to all recipients.
* Each event produces ClusterNode that was either added or removed. Meaning
that both consistentId and id are important.
* Events are ordered within each Producer to Recipient communication channel.
* It's valid to have multiple producers, e.g. during CMG leader change, thus
it's valid to send same set of event twice but order still matters.
* It's not valid to skip events (debateble), thus in case of CMG leader
change, new one should check whether some events weren't send and send them.
* Delivery guarantee is required (debateble).
> Implement logical topology events subscription and notification
> ---------------------------------------------------------------
>
> Key: IGNITE-18085
> URL: https://issues.apache.org/jira/browse/IGNITE-18085
> Project: Ignite
> Issue Type: Improvement
> Reporter: Alexander Lapin
> Priority: Major
>
> h3. Motivation
> There are two types of typologies in Apache Ignite 3
> * Physical(Network) - nodes that are visible through network layer.
> * Logical - nodes that successfully passed the join procedure including
> local recovery and catch up phases, thus nodes that are ready to handle user
> load. More details in IEP-77
> In order to recalculate data nodes for specific distribution zone (see
> [IEP-97|https://cwiki.apache.org/confluence/display/IGNITE/IEP-97%3A+Distribution+Zones])
> it's required for distribution zone manager to receive notifications about
> logical topology updates along with logical topology version similar to ones
> we have in network topology:
> * onAppeared
> * onDisappeared
> h3. Definition of Done
> * It's possible to register listeners for logical topology
> onAppeared/onDisappeared events
> * Events are fired in a distributed manner to all recipients.
> * Each event produces ClusterNode.consistentId that was either added or
> removed and *logical topology version.* It's required to solve ABA problem on
> topology events, see https://issues.apache.org/jira/browse/IGNITE-18087 for
> more details.
> * Events are ordered within each Producer to Recipient communication channel.
> * It's valid to have multiple producers, e.g. during CMG leader change, thus
> it's valid to send same set of event twice but order still matters.
> * It's not valid to skip events, even in case of of CMG leader change.
> * Delivery guarantee is required.
> * Besides events, there should be a method to get current logical topology.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)