[
https://issues.apache.org/jira/browse/IGNITE-16353?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kirill Gusakov updated IGNITE-16353:
------------------------------------
Description:
We need to handle the case, when we already have in progress raft group
configuration change process, but need to update the list of target peers.
We can do it, only when the current reconfiguration is in the STAGE_CATCHING_UP
phase.
* Implement cancelReconfiguration(leaderTerm), which will
** Cancel current reconfiguration, if in STAGE_CATCHING_UP phase and returns
true. Returns true if no current reconfiguration too.
** Returns false otherwise
* Listen planned assignments key. On any updates: check if the current node is
a group leader and if yes:
** Call cancelReconfiguration and if it returns false - do nothing
** If true - put received planned list of peers to pending assignments in
metastore
* Also, onLeaderElected() listener must be updated with the similar logic
Then, all needed actions must be started by the further logic on event about
pending assignments update.
was:
We need to handle the case, when we already have in progress raft group
configuration change process, but need to update the list of target peers.
We can do it, only when the current reconfiguration is in the STAGE_CATCHING_UP
phase.
* Implement cancelReconfiguration(leaderTerm), which will
** Cancel current reconfiguration, if in STAGE_CATCHING_UP phase and returns
true. Returns true if no current reconfiguration too.
** Returns false otherwise
* Listen planned assignments key. On any updates: check if the current node is
a group leader and if yes:
** Call cancelReconfiguration and if it returns false - do nothing
** If true - put received planned list of peers to pending assignments in
metastore
* Also, onLeaderChanged() listener must be updated with the similar logic
Then, all needed actions must be started by the further logic on event about
pending assignments update.
> Implement update of changePeers peers through cancel-rerun strategy
> -------------------------------------------------------------------
>
> Key: IGNITE-16353
> URL: https://issues.apache.org/jira/browse/IGNITE-16353
> Project: Ignite
> Issue Type: Task
> Reporter: Kirill Gusakov
> Priority: Major
>
> We need to handle the case, when we already have in progress raft group
> configuration change process, but need to update the list of target peers.
> We can do it, only when the current reconfiguration is in the
> STAGE_CATCHING_UP phase.
> * Implement cancelReconfiguration(leaderTerm), which will
> ** Cancel current reconfiguration, if in STAGE_CATCHING_UP phase and returns
> true. Returns true if no current reconfiguration too.
> ** Returns false otherwise
> * Listen planned assignments key. On any updates: check if the current node
> is a group leader and if yes:
> ** Call cancelReconfiguration and if it returns false - do nothing
> ** If true - put received planned list of peers to pending assignments in
> metastore
> * Also, onLeaderElected() listener must be updated with the similar logic
> Then, all needed actions must be started by the further logic on event about
> pending assignments update.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)