[jira] [Commented] (IGNITE-12662) Get rid of CacheConfiguration#getRebalanceDelay and related functionality.

2020-02-12 Thread Alexey Scherbakov (Jira)


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

Alexey Scherbakov commented on IGNITE-12662:


[~macrergate]

This ticket looks outdated.
Baseline topology is supported for in-memory and mixed configurations.
You can run attached test and see for yourself.

{noformat}
package org.apache.ignite.internal.processors.cache;

import org.apache.ignite.Ignite;
import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
import org.apache.ignite.cluster.ClusterState;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.DataRegionConfiguration;
import org.apache.ignite.configuration.DataStorageConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.TestRecordingCommunicationSpi;
import 
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemandMessage;
import org.apache.ignite.internal.util.typedef.G;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.junit.Test;

/** */
public class CacheNoRebalanceOnBaselineNodeLeftSupportTest extends 
GridCommonAbstractTest {
/** */
private static final int REG_SIZE = 30 * 1024 * 1024;

/** */
private static final String PERSISTENT = "persistent";

/** */
private static final String VOLATILE = "volatile";

/** */
private boolean mixed;

/** {@inheritDoc} */
@Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {
IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
cfg.setClusterStateOnStart(ClusterState.INACTIVE);

if (mixed) {
DataRegionConfiguration drCfg1 = new DataRegionConfiguration();
drCfg1.setName(PERSISTENT);
drCfg1.setPersistenceEnabled(true);
drCfg1.setInitialSize(REG_SIZE);
drCfg1.setMaxSize(REG_SIZE);

DataRegionConfiguration drCfg2 = new DataRegionConfiguration();
drCfg2.setName(VOLATILE);
drCfg2.setInitialSize(REG_SIZE);
drCfg2.setMaxSize(REG_SIZE);

cfg.setDataStorageConfiguration(
new DataStorageConfiguration().
setWalSegmentSize(4 * 1024 * 1024).
setDataRegionConfigurations(drCfg2).
setDefaultDataRegionConfiguration(drCfg1));

cfg.setCacheConfiguration(
new 
CacheConfiguration(PERSISTENT).setDataRegionName(PERSISTENT).setBackups(1),
new 
CacheConfiguration(VOLATILE).setDataRegionName(VOLATILE).setBackups(1));
}
else {
DataRegionConfiguration drCfg2 = new DataRegionConfiguration();
drCfg2.setName(VOLATILE);
drCfg2.setInitialSize(REG_SIZE);
drCfg2.setMaxSize(REG_SIZE);

cfg.setDataStorageConfiguration(
new DataStorageConfiguration().
setWalSegmentSize(4 * 1024 * 1024).
setDefaultDataRegionConfiguration(drCfg2));

cfg.setCacheConfiguration(new 
CacheConfiguration(VOLATILE).setDataRegionName(VOLATILE).setBackups(1));
}

return cfg;
}

/** {@inheritDoc} */
@Override protected void beforeTest() throws Exception {
super.beforeTest();

cleanPersistenceDir();
}

/** {@inheritDoc} */
@Override protected void afterTest() throws Exception {
super.afterTest();

cleanPersistenceDir();
}

/** */
@Test
public void testMixed() throws Exception {
mixed = true;

try {
Ignite crd = startGridsMultiThreaded(3);
crd.cluster().state(ClusterState.ACTIVE);

for (int k = 0; k < 
RendezvousAffinityFunction.DFLT_PARTITION_COUNT; k++) {
crd.cache(PERSISTENT).put(k, k);
crd.cache(VOLATILE).put(k, k);
}

for (Ignite grid : G.allGrids())

TestRecordingCommunicationSpi.spi(grid).record(GridDhtPartitionDemandMessage.class);

stopGrid(1);

awaitPartitionMapExchange();

for (Ignite grid : G.allGrids())

assertTrue(TestRecordingCommunicationSpi.spi(grid).recordedMessages(true).isEmpty());
}
finally {
stopAllGrids();
}
}

/** */
@Test
public void testVolatile() throws Exception {
mixed = false;

try {
Ignite crd = startGridsMultiThreaded(3);
crd.cluster().baselineAutoAdjustEnabled(false);
crd.cluster().state(ClusterState.ACTIVE);

for (int k = 0; k < 

[jira] [Commented] (IGNITE-12662) Get rid of CacheConfiguration#getRebalanceDelay and related functionality.

2020-02-12 Thread Sergey Kosarev (Jira)


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

Sergey Kosarev commented on IGNITE-12662:
-

[~ascherbakov], I believe it can't be done until in-memory caches will use 
baseline topology, i.e until 
[IGNITE-8414|https://issues.apache.org/jira/browse/IGNITE-8414] is implemented. 
Do you agree?

> Get rid of CacheConfiguration#getRebalanceDelay and related functionality.
> --
>
> Key: IGNITE-12662
> URL: https://issues.apache.org/jira/browse/IGNITE-12662
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexey Scherbakov
>Priority: Major
> Fix For: 2.9
>
>
> We have for a long time this property to mitigate a case with premature 
> rebalancing on node restart.
> Currently this is handled by baseline topology.
> I suggest to deprecate and remove related functionality in next releases.
> For example org.apache.ignite.IgniteCache#rebalance is no longer needed as 
> well.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)