[
https://issues.apache.org/jira/browse/IGNITE-18840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vyacheslav Koptilin updated IGNITE-18840:
-----------------------------------------
Labels: ignite-3 (was: )
> PlacementDriver must initiate rebalance process and cleanup metadata, when it
> is finished
> -----------------------------------------------------------------------------------------
>
> Key: IGNITE-18840
> URL: https://issues.apache.org/jira/browse/IGNITE-18840
> Project: Ignite
> Issue Type: Task
> Reporter: Kirill Gusakov
> Priority: Major
> Labels: ignite-3
>
> According to the new [rebalance
> design|https://github.com/apache/ignite-3/blob/main/modules/distribution-zones/tech-notes/rebalance.md]
> PlacementDriver must initiate arebalance process by sending RebalanceRequest
> message to PrimaryReplica of corresponding group. Also, when PlacementDriver
> receives RebalanceDone message it must cleanup metadata in metastore and
> schedule the new one if needed.
> *Definition of done:*
> Rebalance start:
> - PlacementDriver listens the changes of pending keys for all zones.
> - If any changes detected it must send RebalanceRequest(newPeers) message to
> PrimaryReplica of corresponding group to initiate the rebalance process
> - Also, on the reelection of PrimaryReplica, PlacementDriver must send the
> RebalanceRequest(newPeers), if correspondance zoneId.assignment.pending key
> is not empty
> When PlacementDriver receives RebalanceDone:
> * It must update the list of group members if needed
> * Execute the following multi-invoke message to update assignments, clean
> metadata and schedule a new rebalance, if needed
> {code:java}
> metastoreInvoke: \\ atomic
> zoneId.assignment.stable = newPeers
> remove(zoneId.assignment.cancel)
> if empty(zoneId.assignment.planned):
> zoneId.assignment.pending = empty
> else:
> zoneId.assignment.pending = zoneId.assignment.planned
> remove(zoneId.assignment.planned) {code}
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)