[ 
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)

Reply via email to