You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vyacheslav Koptilin (Jira)" <ji...@apache.org> on 2021/11/30 12:32:00 UTC
[jira] [Updated] (IGNITE-16012) Raft changePeers behavior must be updated to support rebalance needs
[ https://issues.apache.org/jira/browse/IGNITE-16012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vyacheslav Koptilin updated IGNITE-16012:
-----------------------------------------
Labels: ignite-3 (was: )
> Raft changePeers behavior must be updated to support rebalance needs
> --------------------------------------------------------------------
>
> 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)