Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
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) 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
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.
Attachments
Issue Links
- blocks
-
IGNITE-18087 Populate DistributionZoneManager with CMG listeners to logical topology events
- Resolved
- is blocked by
-
IGNITE-18240 Store logical topology as a single KV entry instead of N entries
- Resolved
-
IGNITE-18241 Introduce support code for LogicalTopologyService
- Resolved
-
IGNITE-18261 Use RAFT learners to get updates of logical topology on non-CMG nodes
- Resolved
-
IGNITE-18276 Return topology version in CMGManager.logicalTopology()
- Resolved
- links to