[
https://issues.apache.org/jira/browse/IGNITE-23870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mirza Aliev updated IGNITE-23870:
---------------------------------
Description:
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 doStableSwitch
if stable is graceful
ms.chain = stable
else
ms.chain = ms.chain + stable
{code}
For the case of two phase reset, 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.
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
was:
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 doStableSwitch
if stable is graceful
ms.chain = stable
else
ms.chain = ms.chain + stable
{code}
For the case of two phase reset, 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.
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
> 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
> 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 doStableSwitch
> if stable is graceful
> ms.chain = stable
> else
> ms.chain = ms.chain + stable
> {code}
>
> For the case of two phase reset, 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.
>
> 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)