[ 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 along with topology version. 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 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. > 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 > along with topology version. -- This message was sent by Atlassian Jira (v8.20.10#820010)