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

Kirill Gusakov updated IGNITE-16012:
------------------------------------
    Summary: Raft changePeers behavior must be updated to async version  (was: 
Raft changePeers behavior must be updated to support rebalance needs)

> Raft changePeers behavior must be updated to async version
> ----------------------------------------------------------
>
>                 Key: IGNITE-16012
>                 URL: https://issues.apache.org/jira/browse/IGNITE-16012
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Kirill Gusakov
>            Priority: Major
>              Labels: ignite-3
>
> We need to change 
> org.apache.ignite.raft.jraft.rpc.impl.RaftGroupServiceImpl#changePeers to 
> support the following scenarios:
> - changePeers needs to support updating of in-progress changePeers:
> {code:java}
> if (leaderNode.cfgCtx.stage == STAGE_CATCHING_UP) {
>   <update the list of catching up peers>
>   return OK;
> } else if (leaderNode.cfgCtx.stage == STAGE_NONE) {
>   if (leaderNode.currentPeers == newPeers) {
>     rebalanceListener.onRebalanceCommited();
>     return OK;
>   } else {
>     <start new changePeers>
>     return OK;
>   }
> } else {
>   return BUSY; // it should be a signal to postpone new changePeers call
> }{code}
> - changePeers must be an asynchronous  operation and returns as soon as 
> possible (after successful updating catching up nodes, if needed)
>  
> (Phase 1)



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to