[
https://issues.apache.org/jira/browse/IGNITE-23870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mirza Aliev reassigned IGNITE-23870:
------------------------------------
Assignee: Mirza Aliev
> Implement a method to receive a chain of topology changes
> ---------------------------------------------------------
>
> Key: IGNITE-23870
> URL: https://issues.apache.org/jira/browse/IGNITE-23870
> Project: Ignite
> Issue Type: Improvement
> Reporter: Mirza Aliev
> Assignee: Mirza Aliev
> Priority: Major
> Labels: ignite-3
>
> h3. Motivation
> For the purposes of phase 2 of
> [IEP-131|https://cwiki.apache.org/confluence/display/IGNITE/IEP-131%3A+Partition+Majority+Unavailability+Handling],
>
> we need to have an ability to receive chain of assignments for the provided
> part id, starting form the most recent and until the first stable that was
> set gracefully. This is needed when node restarts and tried to understand if
> raft node for the provided part id must be started no the node or not
> h3. Implementation notes
> We introduce new filed in the MS for the partition, let's say
> {{assignmnts.chain}}
> Every time we do {{doStableKeySwitch}}, we update this filed according to
> this rule
> {code:java}
> on doStableKeySwitch
> if !pending.force && !secondPhaseOfReset
> ms.chain = pending/stable
> else if !pending.force && secondPhaseOfReset
> ms.chain.last = stable
> else
> ms.chain = ms.chain + pending/stable
> {code}
>
> For the case of two phase reset, which could be determined by new flag in
> {{Assignments.secondPhaseOfReset}} (see
> https://issues.apache.org/jira/browse/IGNITE-23879), when we do switch from
> single node to several nodes on the second phase, we could rewrite the last
> element of a chain that is presented as the single node to a new stable that
> contains this node and other nodes.
> Also chain must be initialised when stable is initialised.
>
> h3. Definition of done
> * It must be possible to receive assignments chain for the provided part id
> based on MS
> * This chain must contain all stable changes from the most recent until the
> first stable that was set gracefully
--
This message was sent by Atlassian Jira
(v8.20.10#820010)