[
https://issues.apache.org/jira/browse/IGNITE-19763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Uttsel updated IGNITE-19763:
-----------------------------------
Summary: Changing empty stable assignments to not empty pending
assignments. (was: Changing empty stable assignments on not empty pending
assignments.)
> Changing empty stable assignments to not empty pending assignments.
> -------------------------------------------------------------------
>
> Key: IGNITE-19763
> URL: https://issues.apache.org/jira/browse/IGNITE-19763
> Project: Ignite
> Issue Type: Bug
> Reporter: Sergey Uttsel
> Priority: Major
> Labels: ignite-3, tech-debt
>
> h3. *Motivation*
> After https://issues.apache.org/jira/browse/IGNITE-19466 will be implemented
> It will be possible to create a table without data nodes in the distribution
> zone. Then we will face another issue.
> Current flow of changing pending assignments:
> # When the zone is updated and has a data nodes then the rebalance will
> start on new data nodes.
> # The method handleChangePendingAssignmentEvent receives an empty
> stableAssignments and not empty pendingAssignments.
> # handleChangePendingAssignmentEvent invokes startRaftGroupNode to start
> raft group node with stable assignment and then invokes changePeersAsync with
> pendingAssignments. Then it start Replica, PartitionReplicaListener.
> # After that starts change peers on new assignment.
> It doesn't work properly because if previous stableAssignments is empty then
> it is not possible to start raft group. And if raft group is not started then
> it is not possible to change peers. So if stableAssignments is empty then
> need to skip starting raft group with this assignments and start new raft
> group with pendingAssignments.
> h3. *Definition of Done*
> Started table without data nodes in the zone must work after data nodes are
> appeared.
> Need to properly starts all component of the table.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)