[ 
https://issues.apache.org/jira/browse/IGNITE-18840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kirill Gusakov updated IGNITE-18840:
------------------------------------
    Epic Link: IGNITE-18290

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

Reply via email to