[
https://issues.apache.org/jira/browse/IGNITE-21284?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ivan Bessonov updated IGNITE-21284:
-----------------------------------
Description:
We need an API (with implementation) that's analogous to
"reset-lost-partitions", but with the ability to reuse living minority of nodes.
This API should gather the states of partitions, identify healthy peers, and
use them as a new raft group configuration (through the update of assignments).
We have to make sure that node with latest log index will become a leader, so
we will have to propagate desired minimum for log index in assignments and use
it during the voting.
h2. What's implemented
"resetPartitions" operation in distributed zone manager. It identifies
partitions where only a minority of nodes is online (thus they won't be able to
execute "changePeersAsync"), and writes a "forced pending assignments" for them.
Forced assignment excludes stable nodes, that are not present in pending
assignment, from a new raft group configuration. It also performs a
"resetPeers" operation on alive nodes from the stable assignment.
Complete loss of all nodes from stable assignments is not yet implemented, at
least one node is required to be elected as a leader.
was:
We need an API (with implementation) that's analogous to
"reset-lost-partitions", but with the ability to reuse living minority of nodes.
This API should gather the states of partitions, identify healthy peers, and
use them as a new raft group configuration (through the update of assignments).
We have to make sure that node with latest log index will become a leader, so
we will have to propagate desired minimum for log index in assignments and use
it during the voting.
> Internal API for manual raft group configuration update
> -------------------------------------------------------
>
> Key: IGNITE-21284
> URL: https://issues.apache.org/jira/browse/IGNITE-21284
> Project: Ignite
> Issue Type: Improvement
> Reporter: Ivan Bessonov
> Assignee: Ivan Bessonov
> Priority: Major
> Labels: ignite-3
> Time Spent: 10m
> Remaining Estimate: 0h
>
> We need an API (with implementation) that's analogous to
> "reset-lost-partitions", but with the ability to reuse living minority of
> nodes.
> This API should gather the states of partitions, identify healthy peers, and
> use them as a new raft group configuration (through the update of
> assignments).
> We have to make sure that node with latest log index will become a leader, so
> we will have to propagate desired minimum for log index in assignments and
> use it during the voting.
> h2. What's implemented
> "resetPartitions" operation in distributed zone manager. It identifies
> partitions where only a minority of nodes is online (thus they won't be able
> to execute "changePeersAsync"), and writes a "forced pending assignments" for
> them.
> Forced assignment excludes stable nodes, that are not present in pending
> assignment, from a new raft group configuration. It also performs a
> "resetPeers" operation on alive nodes from the stable assignment.
> Complete loss of all nodes from stable assignments is not yet implemented, at
> least one node is required to be elected as a leader.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)