[
https://issues.apache.org/jira/browse/IGNITE-16011?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kirill Gusakov updated IGNITE-16011:
------------------------------------
Description:
{color:#0e101a}When partition assignments are updated, we need to start raft
changePeers and handle failover scenarios.{color}
{color:#0e101a}When metastore event about partition assignments updates
received we need to:{color}
- Start all needed nodes
{code:java}
partition.assignments.stable / partition.assignments.pending{code}
- After successful starts - check if current node is the leader of raft group
(leader response must be updated by current term) and changePeers(leaderTerm,
peers). changePeers{color:#808080} {color}from old terms must be skipped.
{color:#0e101a}Also, we need the propagation of some new events from the raft
side:{color}
* {color:#0e101a}onLeaderChanged() - must be executed from the new leader when
raft group changes the leader. Maybe we actually need to also check if a new
lease is received - we need to investigate.{color}
* {color:#0e101a}onChangePeersError() - must be executed when any errors
during changePeers occurred{color}
* {color:#0e101a}onChangePeersCommitted(peers -> closure) - must be executed
with the list of new peers when changePeers has successfully done.{color}
{color:#0e101a}and handle them by appropriate way.{color}
(Phase 1)
was:
{color:#0e101a}When partition assignments are updated, we need to start raft
changePeers and handle failover scenarios.{color}
{color:#0e101a}When metastore event about partition assignments updates
received we need to:{color}
- Start all needed nodes
{code:java}
partition.assignments.stable / partition.assignments.pending{code}
{color:#808080}
{color}- After successful starts - check if current node is the leader of raft
group (leader response must be updated by current term) and
changePeers(leaderTerm, peers). changePeers{color:#808080} {color}from old
terms must be skipped.
{color:#0e101a}Also, we need the propagation of some new events from the raft
side:{color}
* {color:#0e101a}onLeaderChanged() - must be executed from the new leader when
raft group changes the leader. Maybe we actually need to also check if a new
lease is received - we need to investigate.{color}
* {color:#0e101a}onChangePeersError() - must be executed when any errors
during changePeers occurred{color}
* {color:#0e101a}onChangePeersCommitted(peers -> closure) - must be executed
with the list of new peers when changePeers has successfully done.{color}
{color:#0e101a}and handle them by appropriate way.{color}
(Phase 1)
> Implement integration with raft changePeers for rebalance cases
> ---------------------------------------------------------------
>
> Key: IGNITE-16011
> URL: https://issues.apache.org/jira/browse/IGNITE-16011
> Project: Ignite
> Issue Type: Task
> Reporter: Kirill Gusakov
> Priority: Major
> Labels: ignite-3
>
> {color:#0e101a}When partition assignments are updated, we need to start raft
> changePeers and handle failover scenarios.{color}
> {color:#0e101a}When metastore event about partition assignments updates
> received we need to:{color}
> - Start all needed nodes
> {code:java}
> partition.assignments.stable / partition.assignments.pending{code}
> - After successful starts - check if current node is the leader of raft group
> (leader response must be updated by current term) and changePeers(leaderTerm,
> peers). changePeers{color:#808080} {color}from old terms must be skipped.
> {color:#0e101a}Also, we need the propagation of some new events from the raft
> side:{color}
> * {color:#0e101a}onLeaderChanged() - must be executed from the new leader
> when raft group changes the leader. Maybe we actually need to also check if a
> new lease is received - we need to investigate.{color}
> * {color:#0e101a}onChangePeersError() - must be executed when any errors
> during changePeers occurred{color}
> * {color:#0e101a}onChangePeersCommitted(peers -> closure) - must be executed
> with the list of new peers when changePeers has successfully done.{color}
> {color:#0e101a}and handle them by appropriate way.{color}
>
>
>
> (Phase 1)
--
This message was sent by Atlassian Jira
(v8.20.1#820001)