/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(gridName); List<CacheConfiguration> ccfgs = new ArrayList<>(); for (int g = 0; g < GROUPS; g++) { for (int i = 0; i < CACHES_IN_GRP; i++) { CacheConfiguration<Object, Object> ccfg = new CacheConfiguration<>().setName("dummyCache" + i + "." + g) .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL) .setGroupName("dummyGroup" + g) .setAffinity(new RendezvousAffinityFunction(false, PARTS)); ccfgs.add(ccfg); } } cfg.setCacheConfiguration(ccfgs.toArray(new CacheConfiguration[ccfgs.size()])); DataStorageConfiguration dsCfg = new DataStorageConfiguration(); dsCfg.setDefaultDataRegionConfiguration( new DataRegionConfiguration() .setPersistenceEnabled(true) .setMaxSize(DataStorageConfiguration.DFLT_DATA_REGION_INITIAL_SIZE) ); dsCfg.setCheckpointFrequency(500); dsCfg.setWalMode(WALMode.LOG_ONLY); dsCfg.setWalHistorySize(1); cfg.setDataStorageConfiguration(dsCfg); return cfg; }
/** * Test for check deprecated removing checkpoint by deprecated walHistorySize parameter * * @deprecated Test old removing process depends on WalHistorySize. */ @Test public void testCheckpointHistoryRemovingByWalHistorySize() throws Exception { //given: configured grid with wal history size = 10 int walHistorySize = 10; Ignite ignite = startGrid(dbCfg -> { dbCfg.setWalHistorySize(walHistorySize); }); GridCacheDatabaseSharedManager dbMgr = gridDatabase(ignite); IgniteCache<Integer, Integer> cache = ignite.getOrCreateCache(cacheConfiguration()); //when: put to cache and do checkpoint int testNumberOfCheckpoint = walHistorySize * 2; for (int i = 0; i < testNumberOfCheckpoint; i++) { cache.put(i, i); //and: wait for checkpoint finished forceCheckpoint(); } //then: number of checkpoints less or equal than walHistorySize CheckpointHistory hist = dbMgr.checkpointHistory(); assertTrue(hist.checkpoints().size() == walHistorySize); File[] cpFiles = dbMgr.checkpointDirectory().listFiles(); assertTrue(cpFiles.length <= (walHistorySize * 2 + 1));// starts & ends + node_start }
/** * History size parameters consistency check. Should be set just one of wal history size or max wal archive size. */ @Test public void testGridDoesNotStart_BecauseBothWalHistorySizeAndMaxWalArchiveSizeUsed() throws Exception { //given: wal history size and max wal archive size are both set. IgniteConfiguration configuration = getConfiguration(getTestIgniteInstanceName()); DataStorageConfiguration dbCfg = new DataStorageConfiguration(); dbCfg.setWalHistorySize(12); dbCfg.setMaxWalArchiveSize(9); configuration.setDataStorageConfiguration(dbCfg); try { //when: start grid. startGrid(getTestIgniteInstanceName(), configuration); fail("Should be fail because both wal history size and max wal archive size was used"); } catch (IgniteException e) { //then: exception is occurrence because should be set just one parameters. assertTrue(findSourceMessage(e).startsWith("Should be used only one of wal history size or max wal archive size")); } }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String name) throws Exception { IgniteConfiguration cfg = super.getConfiguration(name); cfg.setConsistentId(name); DataStorageConfiguration conf = new DataStorageConfiguration() .setWalHistorySize(WAL_HISTORY_SIZE) .setDefaultDataRegionConfiguration( new DataRegionConfiguration() .setMaxSize(DataStorageConfiguration.DFLT_DATA_REGION_INITIAL_SIZE) .setPersistenceEnabled(true) ) .setWalMode(WALMode.FSYNC) .setCheckpointFrequency(500); if (name.equals(getTestIgniteInstanceName(NODE_NAME_WITH_TEST_FILE_FACTORY))) conf.setFileIOFactory(new FailingFileIOFactory(canFailFirstNode)); if (name.equals(getTestIgniteInstanceName(NODE_NAME_LISTEN_TO_LEFT_EVENT))) registerLeftEvent(cfg); cfg.setDataStorageConfiguration(conf); cfg.setFailureHandler(new StopNodeFailureHandler()); return cfg; }
dsCfg.setWalFlushFrequency(psCfg.getWalFlushFrequency()); dsCfg.setWalFsyncDelayNanos(psCfg.getWalFsyncDelayNanos()); dsCfg.setWalHistorySize(psCfg.getWalHistorySize()); dsCfg.setWalMode(psCfg.getWalMode()); dsCfg.setWalRecordIteratorBufferSize(psCfg.getWalRecordIteratorBufferSize());
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String name) throws Exception { IgniteConfiguration cfg = super.getConfiguration(name); cfg.setConsistentId(name); cfg.setDataStorageConfiguration( new DataStorageConfiguration() .setWalHistorySize(WAL_HISTORY_SIZE) .setDefaultDataRegionConfiguration( new DataRegionConfiguration() .setMaxSize(DataStorageConfiguration.DFLT_DATA_REGION_INITIAL_SIZE) .setPersistenceEnabled(true) ) .setWalSegmentSize(512 * 1024) ); cfg.setFailureHandler(new StopNodeFailureHandler()); cfg.setCommunicationSpi(new RebalanceBlockingSPI()); return cfg; }
.setWalHistorySize(1) .setWalSegments(10);
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(gridName); CacheConfiguration<Integer, Object> ccfg = new CacheConfiguration<>(DEFAULT_CACHE_NAME); ccfg.setAffinity(new RendezvousAffinityFunction(false, 32)); cfg.setCacheConfiguration(ccfg); DataStorageConfiguration dbCfg = new DataStorageConfiguration(); dbCfg.setPageSize(4 * 1024); cfg.setDataStorageConfiguration(dbCfg); dbCfg.setWalSegmentSize(1024 * 1024) .setWalHistorySize(Integer.MAX_VALUE) .setWalSegments(10) .setWalMode(WALMode.LOG_ONLY) .setDefaultDataRegionConfiguration(new DataRegionConfiguration() .setMaxSize(100 * 1024 * 1024) .setPersistenceEnabled(true)); return cfg; }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { System.setProperty(IGNITE_PDS_WAL_REBALANCE_THRESHOLD, "0"); //to make all rebalance wal-based IgniteConfiguration cfg = super.getConfiguration(gridName); cfg.setConsistentId(gridName); CacheConfiguration<Object, Object> ccfg = new CacheConfiguration<>(CACHE_NAME) .setAtomicityMode(CacheAtomicityMode.ATOMIC) .setRebalanceMode(CacheRebalanceMode.ASYNC) .setCacheMode(CacheMode.REPLICATED) .setAffinity(new RendezvousAffinityFunction(false, PARTS_CNT)); cfg.setCacheConfiguration(ccfg); DataStorageConfiguration dbCfg = new DataStorageConfiguration() .setWalHistorySize(Integer.MAX_VALUE) .setWalMode(WALMode.LOG_ONLY) .setCheckpointFrequency(15 * 60 * 1000) .setDefaultDataRegionConfiguration( new DataRegionConfiguration() .setPersistenceEnabled(true) .setMaxSize(DataStorageConfiguration.DFLT_DATA_REGION_INITIAL_SIZE) ); cfg.setDataStorageConfiguration(dbCfg); cfg.setCommunicationSpi(new WalRebalanceCheckingCommunicationSpi()); if (blockMessagePredicate != null) { TestRecordingCommunicationSpi spi = (TestRecordingCommunicationSpi) cfg.getCommunicationSpi(); spi.blockMessages(blockMessagePredicate); } return cfg; }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String name) throws Exception { IgniteConfiguration cfg = super.getConfiguration(name); cfg.setDataStorageConfiguration(new DataStorageConfiguration() .setDefaultDataRegionConfiguration(new DataRegionConfiguration() .setPersistenceEnabled(true) .setMaxSize(200L * 1024 * 1024)) .setWalMode(walMode) .setWalSegmentSize(WAL_SEGMENT_SIZE) .setWalHistorySize(500) .setWalCompactionEnabled(compactionEnabled)); CacheConfiguration ccfg = new CacheConfiguration(); ccfg.setName(CACHE_NAME); ccfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL); ccfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC); ccfg.setAffinity(new RendezvousAffinityFunction(false, 16)); ccfg.setBackups(0); cfg.setCacheConfiguration(ccfg); cfg.setConsistentId(name); return cfg; }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(gridName); CacheConfiguration<Integer, IndexedObject> ccfg = new CacheConfiguration<>(CACHE_NAME); ccfg.setAtomicityMode(CacheAtomicityMode.ATOMIC); ccfg.setRebalanceMode(CacheRebalanceMode.SYNC); ccfg.setAffinity(new RendezvousAffinityFunction(false, 32)); cfg.setCacheConfiguration(ccfg); DataStorageConfiguration dbCfg = new DataStorageConfiguration(); dbCfg.setPageSize(4 * 1024); cfg.setDataStorageConfiguration(dbCfg); dbCfg.setWalSegmentSize(4 * 1024 * 1024) .setWalHistorySize(2) .setWalSegments(10) .setWalMode(WALMode.LOG_ONLY) .setDefaultDataRegionConfiguration(new DataRegionConfiguration() .setMaxSize(100L * 1024 * 1024) .setPersistenceEnabled(true)); cfg.setMarshaller(null); BinaryConfiguration binCfg = new BinaryConfiguration(); binCfg.setCompactFooter(false); cfg.setBinaryConfiguration(binCfg); return cfg; }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(gridName); BinaryConfiguration binaryCfg = new BinaryConfiguration(); binaryCfg.setCompactFooter(false); cfg.setBinaryConfiguration(binaryCfg); cfg.setPeerClassLoadingEnabled(true); TcpCommunicationSpi tcpCommSpi = new TcpCommunicationSpi(); tcpCommSpi.setSharedMemoryPort(-1); cfg.setCommunicationSpi(tcpCommSpi); TransactionConfiguration txCfg = new TransactionConfiguration(); txCfg.setDefaultTxIsolation(TransactionIsolation.READ_COMMITTED); cfg.setTransactionConfiguration(txCfg); DataRegionConfiguration memPlcCfg = new DataRegionConfiguration(); memPlcCfg.setName("dfltDataRegion"); memPlcCfg.setInitialSize(PAGE_CACHE_SIZE); memPlcCfg.setMaxSize(PAGE_CACHE_SIZE); memPlcCfg.setPersistenceEnabled(true); DataStorageConfiguration memCfg = new DataStorageConfiguration(); memCfg.setDefaultDataRegionConfiguration(memPlcCfg); memCfg.setWalHistorySize(1); memCfg.setCheckpointFrequency(CHECKPOINT_FREQUENCY); memCfg.setPageSize(PAGE_SIZE); cfg.setDataStorageConfiguration(memCfg); return cfg; }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(gridName); CacheConfiguration<Integer, IndexedValue> ccfg = new CacheConfiguration<>(CACHE_NAME); ccfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL); ccfg.setRebalanceMode(CacheRebalanceMode.SYNC); ccfg.setAffinity(new RendezvousAffinityFunction(false, PARTS)); ccfg.setIndexedTypes(Integer.class, IndexedValue.class); if (extraCcfg != null) cfg.setCacheConfiguration(ccfg, new CacheConfiguration<>(extraCcfg)); else cfg.setCacheConfiguration(ccfg); DataStorageConfiguration dbCfg = new DataStorageConfiguration(); dbCfg.setPageSize(pageSize); dbCfg.setWalHistorySize(WAL_HIST_SIZE); dbCfg.setDefaultDataRegionConfiguration(new DataRegionConfiguration() .setMaxSize(100L * 1024 * 1024) .setPersistenceEnabled(true)); if (checkpointFreq != null) dbCfg.setCheckpointFrequency(checkpointFreq); cfg.setDataStorageConfiguration(dbCfg); cfg.setMarshaller(null); BinaryConfiguration binCfg = new BinaryConfiguration(); binCfg.setCompactFooter(false); cfg.setBinaryConfiguration(binCfg); return cfg; }
dbCfg.setWalHistorySize(2);
.setCheckpointThreads(in.readInt()) .setLockWaitTime((int) in.readLong()) .setWalHistorySize(in.readInt()) .setWalSegments(in.readInt()) .setWalSegmentSize(in.readInt())
dbCfg.setWalHistorySize(2);
dsCfg.setWalFlushFrequency(psCfg.getWalFlushFrequency()); dsCfg.setWalFsyncDelayNanos(psCfg.getWalFsyncDelayNanos()); dsCfg.setWalHistorySize(psCfg.getWalHistorySize()); dsCfg.setWalMode(psCfg.getWalMode()); dsCfg.setWalRecordIteratorBufferSize(psCfg.getWalRecordIteratorBufferSize());
.setCheckpointThreads(in.readInt()) .setLockWaitTime((int) in.readLong()) .setWalHistorySize(in.readInt()) .setWalSegments(in.readInt()) .setWalSegmentSize(in.readInt())