[ 
https://issues.apache.org/jira/browse/IGNITE-22378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Roman Puchkovskiy updated IGNITE-22378:
---------------------------------------
    Description: 
The user should be able to change the Raft configuration (that is, the nodes 
hosting the voting members) of the CMG.
h2. API

CLI should have 'ignite cmg reconfigure <new-cmg-nodes>' command for doing so. 
REST should mirror it.

Also, it might help having `ignite cmg configuration' command that would 
display the current voting members of the CMG.
h2. Design

When reconfiguration is requested, we do changePeers() on the group.

Currently, each node of the cluster hosts either CMG peer or CMG learner. When 
a node sees that CMG configuration gets changed, it should convert peer to 
learner (or do the reverse) if it's affected by the change.

After a node is elected as a CMG leader, it checks whether the current CMG 
voting members set matches the cmgNodes in the CMG; if it doesn't, it updates 
the cmgNodes in the CMG to match.

After a node sees an update of the voting set of the CMG, it has to update the 
CMG Raft client with the new configuration.
h2. Design validation

We need to build a small PoC to make sure the approach proposed above works. 
The concern is whether 'Raft node converts itself from a learner to a peer on 
being added to the voting set' will work or cause a deadlock.

  was:
The user should be able to change the Raft configuration (that is, the nodes 
hosting the voting members) of the CMG.
h2. API

CLI should have 'ignite cmg reconfigure <new-cmg-nodes>' command for doing so. 
REST should mirror it.

Also, it might help having `ignite cmg configuration' command that would 
display the current voting members of the CMG.
h2. Design

When reconfiguration is requested, we do changePeers() on the group.

Currently, each node of the cluster hosts either CMG peer or CMG learner. When 
a node sees that CMG configuration gets changed, it should convert peer to 
learner (or do the reverse) if it's affected by the change.

After a node is elected as a CMG leader, it checks whether the current CMG 
voting members set matches the cmgNodes in the CMG; if it doesn't, it updates 
the cmgNodes in the CMG to match.


> Support CMG reconfiguration
> ---------------------------
>
>                 Key: IGNITE-22378
>                 URL: https://issues.apache.org/jira/browse/IGNITE-22378
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>
> The user should be able to change the Raft configuration (that is, the nodes 
> hosting the voting members) of the CMG.
> h2. API
> CLI should have 'ignite cmg reconfigure <new-cmg-nodes>' command for doing 
> so. REST should mirror it.
> Also, it might help having `ignite cmg configuration' command that would 
> display the current voting members of the CMG.
> h2. Design
> When reconfiguration is requested, we do changePeers() on the group.
> Currently, each node of the cluster hosts either CMG peer or CMG learner. 
> When a node sees that CMG configuration gets changed, it should convert peer 
> to learner (or do the reverse) if it's affected by the change.
> After a node is elected as a CMG leader, it checks whether the current CMG 
> voting members set matches the cmgNodes in the CMG; if it doesn't, it updates 
> the cmgNodes in the CMG to match.
> After a node sees an update of the voting set of the CMG, it has to update 
> the CMG Raft client with the new configuration.
> h2. Design validation
> We need to build a small PoC to make sure the approach proposed above works. 
> The concern is whether 'Raft node converts itself from a learner to a peer on 
> being added to the voting set' will work or cause a deadlock.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to