You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vyacheslav Koptilin (Jira)" <ji...@apache.org> on 2022/06/07 12:59:00 UTC
[jira] [Updated] (IGNITE-16063) Update partition pending/planned assignments on rebalance triggers
[ https://issues.apache.org/jira/browse/IGNITE-16063?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vyacheslav Koptilin updated IGNITE-16063:
-----------------------------------------
Fix Version/s: 3.0.0-alpha5
> Update partition pending/planned assignments on rebalance triggers
> ------------------------------------------------------------------
>
> Key: IGNITE-16063
> URL: https://issues.apache.org/jira/browse/IGNITE-16063
> Project: Ignite
> Issue Type: Task
> Reporter: Kirill Gusakov
> Assignee: Mirza Aliev
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-alpha5
>
>
> According to an algorithm from https://issues.apache.org/jira/browse/IGNITE-16020, we need to support partition assignments updates when:
> - baseline changed
> - number of partition replicas changed
> This update needs metastore multi-invoke feature and can be described as:
> {code}
> onBaselineEvent:
> for table in tableCfg.tables():
> for partition in table.partitions:
> <inline metastoreInvoke>
>
> onReplicaNumberChange:
> with table as event.table:
> for partitoin in table.partitions:
> <inline metastoreInvoke>
> metastoreInvoke: // atomic metastore call through multi-invoke api
> if empty(partition.change.trigger.revision) || partition.change.trigger.revision < event.revision:
> if empty(partition.assignments.pending) && partition.assignments.stable != calcPartAssighments():
> partition.assignments.pending = calcPartAssignments()
> partition.change.trigger.revision = event.revision
> else:
> if partition.assignments.pending != calcPartAssignments
> partition.assignments.planned = calcPartAssignments()
> partition.change.trigger.revision = event.revision
> else
> remove(partition.assignments.planned)
> else:
> skip
> {code}
> (Phase 1)
--
This message was sent by Atlassian Jira
(v8.20.7#820007)