You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Pavel Pereslegin (Jira)" <ji...@apache.org> on 2024/11/08 12:25:00 UTC

[jira] [Comment Edited] (IGNITE-23059) Catalog compaction. Include rebalance check into compaction flow

    [ https://issues.apache.org/jira/browse/IGNITE-23059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17896659#comment-17896659 ] 

Pavel Pereslegin edited comment on IGNITE-23059 at 11/8/24 12:24 PM:
---------------------------------------------------------------------

Also need to revise and fix a bit README file according to current implementation.
At least
{{ActiveLocalTxMinimumBeginTimeProvider}} was renamed to  {{ActiveLocalTxMinimumRequiredTimeProvider}}
We don't have component {{RaftGroupStateProvider}} we using  {{MinimumRequiredTimeCollectorService}} instead.

Another suggested change - сorrectly handle repeated shutdown of CatalogCompactionRunner component.

Instead of 
{code:java}
    @Override
    public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
        busyLock.block();

        return CompletableFutures.nullCompletedFuture();
    }
{code}

Do something like this
{code:java}
    @Override
    public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
        if (!stopGuard.compareAndSet(false, true)) {
            return nullCompletedFuture();
        }

        busyLock.block();

        return CompletableFutures.nullCompletedFuture();
    }
{code}


was (Author: xtern):
Also need to revise and fix a bit README file according to current implementation.
At least
{{ActiveLocalTxMinimumBeginTimeProvider}} was renamed to  {{ActiveLocalTxMinimumRequiredTimeProvider}}
We don't have component {{RaftGroupStateProvider}} we using  {{MinimumRequiredTimeCollectorService}} instead.

Another suggested change - сorrectly handle repeated shutdown of CatalogCompactionRunner component.

Instead of 
{code:java}
    @Override
    public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
        busyLock.block();

        return CompletableFutures.nullCompletedFuture();
    }
{code}

Use
{code:java}
    @Override
    public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
        if (!stopGuard.compareAndSet(false, true)) {
            return nullCompletedFuture();
        }

        busyLock.block();

        return CompletableFutures.nullCompletedFuture();
    }
{code}

> Catalog compaction. Include rebalance check into compaction flow
> ----------------------------------------------------------------
>
>                 Key: IGNITE-23059
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23059
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Maksim Zhuravkov
>            Assignee: Pavel Pereslegin
>            Priority: Major
>              Labels: ignite-3
>
> Catalog compaction should not start if any active rebalance includes old catalog version (a version that below the compaction version).
> It is also necessary to ensure that the catalog compaction does not occur too often (in case the low watermark update is too frequent). For example, set the minimum possible interval between iterations.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)