[ 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)