[
https://issues.apache.org/jira/browse/IGNITE-24901?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vyacheslav Koptilin updated IGNITE-24901:
-----------------------------------------
Description:
The `CatalogCompactionRunner#collectRequiredNodes` method collects a list of
deleted tables, among other things.
{code:java}
assert tokenizedAssignments.size() == replicationGroupIds.size();
for (int p = 0; p < partitions; p++) {
TokenizedAssignments assignment = tokenizedAssignments.get(p);
if (assignment == null) {
if (currentCatalog.table(table.id()) == null) {
// Table no longer exists
deletedTables.put(table.id(), true);
continue;
} else {
throw new IllegalStateException("Cannot get assignments for
replication group "
+ "[group=" + replicationGroupIds.get(p) + ']');
}
}
{code}
In case of the colocation feature enabled, partition's assignments are linked
to a distribution zone, not a table, and therefore, a list of deleted tables is
always empty and it blocks catalog compaction.
was:
The `CtalogCompactionRunner#collectRequiredNodes` method collects a list of
deleted tables, among other things.
{code:java}
assert tokenizedAssignments.size() == replicationGroupIds.size();
for (int p = 0; p < partitions; p++) {
TokenizedAssignments assignment = tokenizedAssignments.get(p);
if (assignment == null) {
if (currentCatalog.table(table.id()) == null) {
// Table no longer exists
deletedTables.put(table.id(), true);
continue;
} else {
throw new IllegalStateException("Cannot get assignments for
replication group "
+ "[group=" + replicationGroupIds.get(p) + ']');
}
}
{code}
In case of the colocation feature enabled, partition's assignments are linked
to a distribution zone, not a table, and therefore, a list of deleted tables is
always empty and it blocks catalog compaction.
> CatalogCompactionRunner cannot properly detect deleted tables in case of
> colocation
> -----------------------------------------------------------------------------------
>
> Key: IGNITE-24901
> URL: https://issues.apache.org/jira/browse/IGNITE-24901
> Project: Ignite
> Issue Type: Bug
> Reporter: Slava Koptilin
> Assignee: Slava Koptilin
> Priority: Major
> Labels: ignite-3
> Fix For: 3.1
>
>
> The `CatalogCompactionRunner#collectRequiredNodes` method collects a list of
> deleted tables, among other things.
> {code:java}
> assert tokenizedAssignments.size() == replicationGroupIds.size();
> for (int p = 0; p < partitions; p++) {
> TokenizedAssignments assignment = tokenizedAssignments.get(p);
> if (assignment == null) {
> if (currentCatalog.table(table.id()) == null) {
> // Table no longer exists
> deletedTables.put(table.id(), true);
> continue;
> } else {
> throw new IllegalStateException("Cannot get assignments for
> replication group "
> + "[group=" + replicationGroupIds.get(p) + ']');
> }
> }
> {code}
> In case of the colocation feature enabled, partition's assignments are linked
> to a distribution zone, not a table, and therefore, a list of deleted tables
> is always empty and it blocks catalog compaction.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)