[
https://issues.apache.org/jira/browse/IGNITE-20210?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Lapin updated IGNITE-20210:
-------------------------------------
Description:
h3. Motivation
Please check https://issues.apache.org/jira/browse/IGNITE-20187 and
https://issues.apache.org/jira/browse/IGNITE-20209 for more details. This
ticket is about assignments stable catch-up. Obviously there are the following
possibilities:
# Assignments.stable are present - just start table locally. Basically it is
IGNITE-20187 but not for assignments pending but stable.
# Assignemnts stable are missing. Well it's the same as IGNITE-20209 but for
table creation triggers and not rebalance ones.
Besides that it's nessessary to cleanup obsolete resourves e.g. raft and
partitions storages.
Currently, all that stuff is implemented incorrectly through:
{code:java}
if (partitionAssignments(vaultManager, tableId, 0) != null) {
assignmentsFuture = completedFuture(tableAssignments(vaultManager, tableId,
zoneDescriptor.partitions()));
} else {
assignmentsFuture =
distributionZoneManager.dataNodes(ctx.storageRevision(),
tableDescriptor.zoneId())
.thenApply(dataNodes -> AffinityUtils.calculateAssignments(
dataNodes,
zoneDescriptor.partitions(),
zoneDescriptor.replicas()
));
} {code}
h3. Definition of Done
* Assignments.stable update is properly catched-up on top of corresponding
table creation triggers.
* Partitions start up is implemented trough assignments.stable instead of
table cfg triggers along with assignments recalculation, like it's implemented
now.
* Obsolete partition storages are removed on node restart.
> Start partitions on corresponding assignments.stable, calculate if missing,
> cleanup obsolete resources
> ------------------------------------------------------------------------------------------------------
>
> Key: IGNITE-20210
> URL: https://issues.apache.org/jira/browse/IGNITE-20210
> Project: Ignite
> Issue Type: Improvement
> Reporter: Alexander Lapin
> Priority: Major
> Labels: ignite-3
>
> h3. Motivation
> Please check https://issues.apache.org/jira/browse/IGNITE-20187 and
> https://issues.apache.org/jira/browse/IGNITE-20209 for more details. This
> ticket is about assignments stable catch-up. Obviously there are the
> following possibilities:
> # Assignments.stable are present - just start table locally. Basically it is
> IGNITE-20187 but not for assignments pending but stable.
> # Assignemnts stable are missing. Well it's the same as IGNITE-20209 but for
> table creation triggers and not rebalance ones.
> Besides that it's nessessary to cleanup obsolete resourves e.g. raft and
> partitions storages.
> Currently, all that stuff is implemented incorrectly through:
> {code:java}
> if (partitionAssignments(vaultManager, tableId, 0) != null) {
> assignmentsFuture = completedFuture(tableAssignments(vaultManager,
> tableId, zoneDescriptor.partitions()));
> } else {
> assignmentsFuture =
> distributionZoneManager.dataNodes(ctx.storageRevision(),
> tableDescriptor.zoneId())
> .thenApply(dataNodes -> AffinityUtils.calculateAssignments(
> dataNodes,
> zoneDescriptor.partitions(),
> zoneDescriptor.replicas()
> ));
> } {code}
> h3. Definition of Done
> * Assignments.stable update is properly catched-up on top of corresponding
> table creation triggers.
> * Partitions start up is implemented trough assignments.stable instead of
> table cfg triggers along with assignments recalculation, like it's
> implemented now.
> * Obsolete partition storages are removed on node restart.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)