[
https://issues.apache.org/jira/browse/IGNITE-18840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kirill Gusakov updated IGNITE-18840:
------------------------------------
Description:
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}
was:
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.
*Definition of done:*
- 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
> 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)