[ https://issues.apache.org/jira/browse/IGNITE-12662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=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 < RendezvousAffinityFunction.DFLT_PARTITION_COUNT; 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(); } } } {noformat} > 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)