/** * @return Data region configuration. */ private DataRegionConfiguration getDataRegionConfiguration() { DataStorageConfiguration memCfg = ctx.kernalContext().config().getDataStorageConfiguration(); assert memCfg != null; String dataRegionName = memMetrics.getName(); if (memCfg.getDefaultDataRegionConfiguration().getName().equals(dataRegionName)) return memCfg.getDefaultDataRegionConfiguration(); DataRegionConfiguration[] dataRegions = memCfg.getDataRegionConfigurations(); if (dataRegions != null) { for (DataRegionConfiguration reg : dataRegions) { if (reg != null && reg.getName().equals(dataRegionName)) return reg; } } return null; }
/** * @return {@code true} if persistence is enabled for at least one data region, {@code false} if not. */ public static boolean isPersistenceEnabled(DataStorageConfiguration cfg) { if (cfg == null) return false; DataRegionConfiguration dfltReg = cfg.getDefaultDataRegionConfiguration(); if (dfltReg == null) return false; if (dfltReg.isPersistenceEnabled()) return true; DataRegionConfiguration[] regCfgs = cfg.getDataRegionConfigurations(); if (regCfgs == null) return false; for (DataRegionConfiguration regCfg : regCfgs) { if (regCfg.isPersistenceEnabled()) return true; } return false; }
/** * @param dataStorageCfg Database config. * @param dataRegionCfg Data region config. * @throws IgniteCheckedException If failed to initialize swap path. */ public void addDataRegion( DataStorageConfiguration dataStorageCfg, DataRegionConfiguration dataRegionCfg, boolean trackable ) throws IgniteCheckedException { String dataRegionName = dataRegionCfg.getName(); String dfltMemPlcName = dataStorageCfg.getDefaultDataRegionConfiguration().getName(); if (dfltMemPlcName == null) dfltMemPlcName = DFLT_DATA_REG_DEFAULT_NAME; DataRegionMetricsImpl memMetrics = new DataRegionMetricsImpl(dataRegionCfg, freeSpaceProvider(dataRegionCfg)); DataRegion region = initMemory(dataStorageCfg, dataRegionCfg, memMetrics, trackable); dataRegionMap.put(dataRegionName, region); memMetricsMap.put(dataRegionName, memMetrics); if (dataRegionName.equals(dfltMemPlcName)) dfltDataRegion = region; else if (dataRegionName.equals(DFLT_DATA_REG_DEFAULT_NAME)) U.warn(log, "Data Region with name 'default' isn't used as a default. " + "Please, check Data Region configuration."); }
/** * @param dbCfg Database config. * @throws IgniteCheckedException If failed. */ protected void initPageMemoryDataStructures(DataStorageConfiguration dbCfg) throws IgniteCheckedException { freeListMap = U.newHashMap(dataRegionMap.size()); String dfltMemPlcName = dbCfg.getDefaultDataRegionConfiguration().getName(); for (DataRegion memPlc : dataRegionMap.values()) { DataRegionConfiguration memPlcCfg = memPlc.config(); DataRegionMetricsImpl memMetrics = (DataRegionMetricsImpl) memMetricsMap.get(memPlcCfg.getName()); boolean persistenceEnabled = memPlcCfg.isPersistenceEnabled(); CacheFreeListImpl freeList = new CacheFreeListImpl(0, cctx.igniteInstanceName(), memMetrics, memPlc, null, persistenceEnabled ? cctx.wal() : null, 0L, true); freeListMap.put(memPlcCfg.getName(), freeList); } dfltFreeList = freeListMap.get(dfltMemPlcName); }
/** * @return Configured data regions offheap memory in bytes. */ private long configuredOffheap() { DataStorageConfiguration memCfg = ctx.config().getDataStorageConfiguration(); if (memCfg == null) return 0; long res = memCfg.getDefaultDataRegionConfiguration().getMaxSize(); DataRegionConfiguration[] dataRegions = memCfg.getDataRegionConfigurations(); if (dataRegions != null) { for (DataRegionConfiguration dataReg : dataRegions) res += dataReg.getMaxSize(); } return res; }
/** * @return Required offheap memory in bytes. */ private long requiredOffheap() { if(ctx.config().isClientMode()) return 0; DataStorageConfiguration memCfg = ctx.config().getDataStorageConfiguration(); assert memCfg != null; long res = memCfg.getSystemRegionMaxSize(); // Add memory policies. DataRegionConfiguration[] dataRegions = memCfg.getDataRegionConfigurations(); if (dataRegions != null) { for (DataRegionConfiguration dataReg : dataRegions) { res += dataReg.getMaxSize(); res += U.checkpointBufferSize(dataReg); } } res += memCfg.getDefaultDataRegionConfiguration().getMaxSize(); res += U.checkpointBufferSize(memCfg.getDefaultDataRegionConfiguration()); return res; }
/** * @param memCfg configuration to validate. */ private void validateConfiguration(DataStorageConfiguration memCfg) throws IgniteCheckedException { checkPageSize(memCfg); DataRegionConfiguration[] regCfgs = memCfg.getDataRegionConfigurations(); Set<String> regNames = (regCfgs != null) ? U.<String>newHashSet(regCfgs.length) : new HashSet<String>(0); checkSystemDataRegionSizeConfiguration( memCfg.getSystemRegionInitialSize(), memCfg.getSystemRegionMaxSize() ); if (regCfgs != null) { for (DataRegionConfiguration regCfg : regCfgs) checkDataRegionConfiguration(memCfg, regNames, regCfg); } checkDataRegionConfiguration(memCfg, regNames, memCfg.getDefaultDataRegionConfiguration()); checkWalArchiveSizeConfiguration(memCfg); }
/** {@inheritDoc} */ @Override protected IgniteConfiguration commonConfiguration(int idx) throws Exception { IgniteConfiguration cfg = super.commonConfiguration(idx); cfg.getDataStorageConfiguration().getDefaultDataRegionConfiguration() .setMaxSize(300*1024L*1024L) .setPersistenceEnabled(true); return cfg; }
/** * @param clo Message output closure. */ public void ackDataRegions(IgniteClosure<String, Void> clo) { DataStorageConfiguration memCfg = ctx.config().getDataStorageConfiguration(); if (memCfg == null) return; clo.apply("Data Regions Configured:"); clo.apply(dataRegionConfigurationMessage(memCfg.getDefaultDataRegionConfiguration())); DataRegionConfiguration[] dataRegions = memCfg.getDataRegionConfigurations(); if (dataRegions != null) { for (DataRegionConfiguration dataRegion : dataRegions) { String msg = dataRegionConfigurationMessage(dataRegion); if (msg != null) clo.apply(msg); } } }
/** * @param memCfg Database config. * @throws IgniteCheckedException If failed to initialize swap path. */ protected void initDataRegions0(DataStorageConfiguration memCfg) throws IgniteCheckedException { DataRegionConfiguration[] dataRegionCfgs = memCfg.getDataRegionConfigurations(); if (dataRegionCfgs != null) { for (DataRegionConfiguration dataRegionCfg : dataRegionCfgs) addDataRegion(memCfg, dataRegionCfg, dataRegionCfg.isPersistenceEnabled()); } addDataRegion( memCfg, memCfg.getDefaultDataRegionConfiguration(), memCfg.getDefaultDataRegionConfiguration().isPersistenceEnabled() ); addDataRegion( memCfg, createSystemDataRegion( memCfg.getSystemRegionInitialSize(), memCfg.getSystemRegionMaxSize(), CU.isPersistenceEnabled(memCfg) ), CU.isPersistenceEnabled(memCfg) ); for (DatabaseLifecycleListener lsnr : getDatabaseListeners(cctx.kernalContext())) lsnr.onInitDataRegions(this); }
/** * @param mode Eviction mode. * @param configuration Configuration. * @return Configuration with given eviction mode set. */ static IgniteConfiguration setEvictionMode(DataPageEvictionMode mode, IgniteConfiguration configuration) { DataRegionConfiguration[] policies = configuration.getDataStorageConfiguration().getDataRegionConfigurations(); if (policies != null) { for (DataRegionConfiguration plcCfg : policies) plcCfg.setPageEvictionMode(mode); } configuration.getDataStorageConfiguration().getDefaultDataRegionConfiguration().setPageEvictionMode(mode); return configuration; }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); cfg.setGridLogger(log0); DataStorageConfiguration dsCfg = new DataStorageConfiguration(); dsCfg.getDefaultDataRegionConfiguration() .setPersistenceEnabled(true) .setMaxSize(DataStorageConfiguration.DFLT_DATA_REGION_INITIAL_SIZE); cfg.setDataStorageConfiguration(dsCfg); return cfg; }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); cfg.setDataStorageConfiguration(new DataStorageConfiguration()); cfg.getDataStorageConfiguration().getDefaultDataRegionConfiguration().setMaxSize(100 * 1024 * 1024); cfg.getDataStorageConfiguration().getDefaultDataRegionConfiguration().setPersistenceEnabled(true); cfg.setConnectorConfiguration(new ConnectorConfiguration()); cfg.getConnectorConfiguration().setSslEnabled(true); cfg.setSslContextFactory(createSslFactory()); return cfg; }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); cfg.setConsistentId(igniteInstanceName); DataStorageConfiguration storageCfg = new DataStorageConfiguration(); storageCfg.getDefaultDataRegionConfiguration() .setPersistenceEnabled(true) .setMaxSize(500L * 1024 * 1024); cfg.setDataStorageConfiguration(storageCfg); return cfg; }
DataRegionConfiguration regCfg = dsCfg.getDefaultDataRegionConfiguration();
/** * @param cfg Config. */ private void validateConfiguration(IgniteConfiguration cfg) { if (cfg.getDataStorageConfiguration() != null) { validateDataRegion(cfg.getDataStorageConfiguration().getDefaultDataRegionConfiguration()); if (cfg.getDataStorageConfiguration().getDataRegionConfigurations() != null) { for (DataRegionConfiguration reg : cfg.getDataStorageConfiguration().getDataRegionConfigurations()) validateDataRegion(reg); } } }
/** * Handle of cache context which was fully prepared. * * @param cacheCtx Fully prepared context. * @throws IgniteCheckedException if failed. */ private void onCacheStarted(GridCacheContext cacheCtx) throws IgniteCheckedException { GridCacheAdapter cache = cacheCtx.cache(); CacheConfiguration cfg = cacheCtx.config(); CacheGroupContext grp = cacheGrps.get(cacheCtx.groupId()); cacheCtx.onStarted(); String dataRegion = cfg.getDataRegionName(); if (dataRegion == null && ctx.config().getDataStorageConfiguration() != null) dataRegion = ctx.config().getDataStorageConfiguration().getDefaultDataRegionConfiguration().getName(); if (log.isInfoEnabled()) { log.info("Started cache [name=" + cfg.getName() + ", id=" + cacheCtx.cacheId() + (cfg.getGroupName() != null ? ", group=" + cfg.getGroupName() : "") + ", dataRegionName=" + dataRegion + ", mode=" + cfg.getCacheMode() + ", atomicity=" + cfg.getAtomicityMode() + ", backups=" + cfg.getBackups() + ", mvcc=" + cacheCtx.mvccEnabled() + ']'); } grp.onCacheStarted(cacheCtx); onKernalStart(cache); }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); cfg.setConsistentId(igniteInstanceName); DataStorageConfiguration storageCfg = new DataStorageConfiguration(); storageCfg.getDefaultDataRegionConfiguration() .setPersistenceEnabled(true) .setMaxSize(500L * 1024 * 1024); cfg.setDataStorageConfiguration(storageCfg); CacheConfiguration[] ccfg = new CacheConfiguration[] { cacheConfiguration(CACHE_NAMES[0], CacheAtomicityMode.ATOMIC), cacheConfiguration(CACHE_NAMES[1], CacheAtomicityMode.ATOMIC), cacheConfiguration(CACHE_NAMES[2], CacheAtomicityMode.TRANSACTIONAL) }; cfg.setCacheConfiguration(ccfg); return cfg; }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); if (atomicConfiguration != null) cfg.setAtomicConfiguration(atomicConfiguration); cfg.setCommunicationSpi(new TestRecordingCommunicationSpi()); cfg.setConnectorConfiguration(new ConnectorConfiguration()); DataStorageConfiguration memCfg = new DataStorageConfiguration() .setDefaultDataRegionConfiguration(new DataRegionConfiguration() .setMaxSize(50L * 1024 * 1024)); if (dataRegionConfiguration != null) memCfg.setDataRegionConfigurations(dataRegionConfiguration); cfg.setDataStorageConfiguration(memCfg); DataStorageConfiguration dsCfg = cfg.getDataStorageConfiguration(); dsCfg.setWalMode(WALMode.LOG_ONLY); dsCfg.getDefaultDataRegionConfiguration().setPersistenceEnabled(true); cfg.setConsistentId(igniteInstanceName); cfg.setClientMode(igniteInstanceName.startsWith("client")); return cfg; }
/** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(gridName); final DataStorageConfiguration dataStorageConfiguration = new DataStorageConfiguration(); dataStorageConfiguration.getDefaultDataRegionConfiguration().setPersistenceEnabled(true).setMaxSize(1 << 24); dataStorageConfiguration.setFileIOFactory(new FailingFileIOFactory()); cfg.setDataStorageConfiguration(dataStorageConfiguration); CacheConfiguration ccfg = new CacheConfiguration(); ccfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL); ccfg.setName(DEFAULT_CACHE_NAME); ccfg.setBackups(1); cfg.setCacheConfiguration(ccfg); cfg.setFailureHandler(new StopNodeFailureHandler()); return cfg; }