[ 
https://issues.apache.org/jira/browse/IGNITE-8459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Kovalenko updated IGNITE-8459:
------------------------------------
    Fix Version/s:     (was: 2.7)
                   2.8

> Searching checkpoint history for WAL rebalance is broken
> --------------------------------------------------------
>
>                 Key: IGNITE-8459
>                 URL: https://issues.apache.org/jira/browse/IGNITE-8459
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: 2.5
>            Reporter: Pavel Kovalenko
>            Assignee: Pavel Kovalenko
>            Priority: Critical
>             Fix For: 2.8
>
>
> Currently the mechanism to search available checkpoint records in WAL to have 
> history for WAL rebalance is broken. It means that WAL (Historical) rebalance 
> will never find history for rebalance and full rebalance will be always used.
> This mechanism was broken in 
> https://github.com/apache/ignite/commit/ec04cd174ed5476fba83e8682214390736321b37
>  by unclear reasons.
> If we swap the following two code blocks (database().beforeExchange() and 
> exchCtx if block):
> {noformat}
>         /* It is necessary to run database callback before all topology 
> callbacks.
>            In case of persistent store is enabled we first restore partitions 
> presented on disk.
>            We need to guarantee that there are no partition state changes 
> logged to WAL before this callback
>            to make sure that we correctly restored last actual states. */
>         cctx.database().beforeExchange(this);
>         if (!exchCtx.mergeExchanges()) {
>             for (CacheGroupContext grp : cctx.cache().cacheGroups()) {
>                 if (grp.isLocal() || cacheGroupStopping(grp.groupId()))
>                     continue;
>                 // It is possible affinity is not initialized yet if node 
> joins to cluster.
>                 if (grp.affinity().lastVersion().topologyVersion() > 0)
>                     grp.topology().beforeExchange(this, !centralizedAff && 
> !forceAffReassignment, false);
>             }
>         }
> {noformat}
> the searching mechanism will start to work correctly. Currently it's unclear 
> why it's happened.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to