You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ivan Bessonov (Jira)" <ji...@apache.org> on 2024/02/23 12:50:00 UTC

[jira] [Updated] (IGNITE-21284) Internal API for manual raft group configuration update

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