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

Maxim Muzafarov edited comment on IGNITE-7592 at 4/24/18 2:05 PM:
------------------------------------------------------------------

[~ilantukh],

>From my point of view, we should not run manual cache rebalancing for cache 
>with {{rebalanceDelay = -1}} because some of RebalanceFuture's can retrun 
>false result and rebalance process will remain unfinished:
{code:java}
for (int i = 0; i < NODE_COUNT; i++)
    grid(i).cache(CACHE_NAME).rebalance().get();
{code}
E.g. on cache start affitiny change message occurs (DynamicCacheChangeBatch), 
minor topology version changes during this "manual rebalance" cycle running. 
One of these RebalanceFuture's will return false result. Rebalance remains 
unfinished. awaitTopologyMapExchange will fail with timeout.
----
Ilya,
 I've created manaulCacheRebalance method for issue IGNITE-8086 included in 
[GitHub Pull Request #3894|https://github.com/apache/ignite/pull/3894]. Tests 
looks good.
 Could you please look at? Will this method solve this bug from you point?


was (Author: mmuzaf):
[~ilantukh],

>From my point of view, we should not run manual cache rebalancing for cahe 
>with {{rebalanceDelay = -1}} because some of RebalanceFuture's can retrun 
>false result and rebalance process will remain unfinished:
{code:java}
for (int i = 0; i < NODE_COUNT; i++)
    grid(i).cache(CACHE_NAME).rebalance().get();
{code}
E.g. on cache start affitiny change message occurs (DynamicCacheChangeBatch), 
minor topology version changes during this "manual rebalance" cycle running. 
One of these RebalanceFuture's will return false result. Rebalance remains 
unfinished. awaitTopologyMapExchange will fail with timeout.
----
Ilya,
 I've created manaulCacheRebalance method for issue IGNITE-8086 included in 
[GitHub Pull Request #3894|https://github.com/apache/ignite/pull/3894]. Tests 
looks good.
 Could you please look at? Will this method solve this bug from you point?

> Dynamic cache with rebalanceDelay == -1 doesn't trigger late affinity 
> assignment even after explicit rebalance is called on every node
> --------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-7592
>                 URL: https://issues.apache.org/jira/browse/IGNITE-7592
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 2.4
>            Reporter: Ilya Lantukh
>            Assignee: Maxim Muzafarov
>            Priority: Major
>             Fix For: 2.6
>
>
> Reproducer:
> {noformat}
> startGrids(NODE_COUNT);
> IgniteEx ig = grid(0);
> ig.cluster().active(true);
> awaitPartitionMapExchange();
> IgniteCache<Integer, Integer> cache =
>     ig.createCache(
>         new CacheConfiguration<Integer, Integer>()
>             .setName(CACHE_NAME)
>             .setCacheMode(PARTITIONED)
>             .setBackups(1)
>             .setPartitionLossPolicy(READ_ONLY_SAFE)
>             .setReadFromBackup(true)
>             .setWriteSynchronizationMode(FULL_SYNC)
>             .setRebalanceDelay(-1)
>     );
> for (int i = 0; i < NODE_COUNT; i++)
>     grid(i).cache(CACHE_NAME).rebalance().get();
> awaitPartitionMapExchange();
> {noformat}
> Sometimes this code will hang on the last awaitPartitionMapExchange(), though 
> probability that it will happen is rather low (<10%).



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

Reply via email to