[
https://issues.apache.org/jira/browse/IGNITE-7592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16449907#comment-16449907
]
Maxim Muzafarov commented on IGNITE-7592:
-----------------------------------------
[~ilantukh],
>From my point of view, we should not run manual cache rebalancing this way,
>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. 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)