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

Reply via email to