/** * @return Eviction policy class name. * * @deprecated Use evictionPolicyFactoryClassName() instead. */ @Deprecated public String evictionPolicyClassName() { return className(ccfg.getEvictionPolicy()); }
/** {@inheritDoc} */ @Override public void preProcessCacheConfiguration(CacheConfiguration cfg) { EvictionPolicy evictPlc = cfg.getEvictionPolicyFactory() != null ? (EvictionPolicy)cfg.getEvictionPolicyFactory().create() : cfg.getEvictionPolicy(); if (evictPlc instanceof IgfsPerBlockLruEvictionPolicy && cfg.getEvictionFilter() == null) cfg.setEvictionFilter(new IgfsEvictionFilter()); }
/** {@inheritDoc} */ @Override public void validateCacheConfiguration(CacheConfiguration cfg) throws IgniteCheckedException { EvictionPolicy evictPlc = cfg.getEvictionPolicyFactory() != null ? (EvictionPolicy)cfg.getEvictionPolicyFactory().create() : cfg.getEvictionPolicy(); if (evictPlc != null && evictPlc instanceof IgfsPerBlockLruEvictionPolicy) { EvictionFilter evictFilter = cfg.getEvictionFilter(); if (evictFilter != null && !(evictFilter instanceof IgfsEvictionFilter)) throw new IgniteCheckedException("Eviction filter cannot be set explicitly when using " + "IgfsPerBlockLruEvictionPolicy: " + U.maskName(cfg.getName())); } }
/** @return Policy. */ @SuppressWarnings({"unchecked"}) protected T policy() { return (T)grid().cache(DEFAULT_CACHE_NAME).getConfiguration(CacheConfiguration.class).getEvictionPolicy(); }
/** * @param grp Cache group. * @param ccfg Cache configuration. * @param objs Extra components. * @return Components provided in cache configuration which can implement {@link LifecycleAware} interface. */ private Iterable<Object> lifecycleAwares(CacheGroupContext grp, CacheConfiguration ccfg, Object... objs) { Collection<Object> ret = new ArrayList<>(7 + objs.length); if (grp.affinityFunction() != ccfg.getAffinity()) ret.add(ccfg.getAffinity()); ret.add(ccfg.getAffinityMapper()); ret.add(ccfg.getEvictionFilter()); ret.add(ccfg.getEvictionPolicyFactory()); ret.add(ccfg.getEvictionPolicy()); ret.add(ccfg.getInterceptor()); NearCacheConfiguration nearCfg = ccfg.getNearConfiguration(); if (nearCfg != null) { ret.add(nearCfg.getNearEvictionPolicyFactory()); ret.add(nearCfg.getNearEvictionPolicy()); } Collections.addAll(ret, objs); return ret; }
/** * @param i Grid index. * @return Policy. */ @SuppressWarnings({"unchecked"}) protected T policy(int i) { return (T)grid(i).cache(DEFAULT_CACHE_NAME).getConfiguration(CacheConfiguration.class).getEvictionPolicy(); }
/** {@inheritDoc} */ @Override public void start0() throws IgniteCheckedException { CacheConfiguration cfg = cctx.config(); if (cctx.isNear()) { plc = (cfg.getNearConfiguration().getNearEvictionPolicyFactory() != null) ? (EvictionPolicy)cfg.getNearConfiguration().getNearEvictionPolicyFactory().create() : cfg.getNearConfiguration().getNearEvictionPolicy(); } else if (cfg.getEvictionPolicyFactory() != null) plc = (EvictionPolicy)cfg.getEvictionPolicyFactory().create(); else plc = cfg.getEvictionPolicy(); plcEnabled = plc != null; if (plcEnabled) prepare(cfg, plc, cctx.isNear()); filter = cfg.getEvictionFilter(); if (log.isDebugEnabled()) log.debug("Eviction manager started on node: " + cctx.nodeId()); }
/** * @param ccfg Cache configuration. */ private void logCacheInfo(CacheConfiguration<?, ?> ccfg) { log.info("Test cache [mode=" + ccfg.getCacheMode() + ", sync=" + ccfg.getWriteSynchronizationMode() + ", backups=" + ccfg.getBackups() + ", near=" + (ccfg.getNearConfiguration() != null) + ", store=" + ccfg.isWriteThrough() + ", evictPlc=" + (ccfg.getEvictionPolicy() != null) + ']'); }
EvictionPolicy evictPlc = cacheCfg.getEvictionPolicyFactory() != null ? (EvictionPolicy)cacheCfg.getEvictionPolicyFactory().create() : cacheCfg.getEvictionPolicy();
/** * @param ccfg Cache configuration. */ private void logCacheInfo(CacheConfiguration<?, ?> ccfg) { log.info("Test cache [mode=" + ccfg.getCacheMode() + ", sync=" + ccfg.getWriteSynchronizationMode() + ", backups=" + ccfg.getBackups() + ", near=" + (ccfg.getNearConfiguration() != null) + ", store=" + ccfg.isWriteThrough() + ", evictPlc=" + (ccfg.getEvictionPolicy() != null) + ']'); }
/** * @param cfg Configuration to check for possible performance issues. * @param hasStore {@code True} if store is configured. */ private void suggestOptimizations(CacheConfiguration cfg, boolean hasStore) { GridPerformanceSuggestions perf = ctx.performance(); String msg = "Disable eviction policy (remove from configuration)"; if (cfg.getEvictionPolicyFactory() != null || cfg.getEvictionPolicy() != null) perf.add(msg, false); else perf.add(msg, true); if (cfg.getCacheMode() == PARTITIONED) { perf.add("Disable near cache (set 'nearConfiguration' to null)", cfg.getNearConfiguration() == null); if (cfg.getAffinity() != null) perf.add("Decrease number of backups (set 'backups' to 0)", cfg.getBackups() == 0); } // Suppress warning if at least one ATOMIC cache found. perf.add("Enable ATOMIC mode if not using transactions (set 'atomicityMode' to ATOMIC)", cfg.getAtomicityMode() == ATOMIC); // Suppress warning if at least one non-FULL_SYNC mode found. perf.add("Disable fully synchronous writes (set 'writeSynchronizationMode' to PRIMARY_SYNC or FULL_ASYNC)", cfg.getWriteSynchronizationMode() != FULL_SYNC); if (hasStore && cfg.isWriteThrough()) perf.add("Enable write-behind to persistent store (set 'writeBehindEnabled' to true)", cfg.isWriteBehindEnabled()); }
if (ccfg.getEvictionPolicy() != null) { // TODO: IGNITE-3462. Fixes evictionPolicy issues at cache destroy. stopAllGrids();
encryptionEnabled = cc.isEncryptionEnabled(); evictFilter = cc.getEvictionFilter(); evictPlc = cc.getEvictionPolicy(); evictPlcFactory = cc.getEvictionPolicyFactory(); expiryPolicyFactory = cc.getExpiryPolicyFactory();
if (ccfg.getEvictionPolicy() != null) { // TODO: IGNITE-3462. Fixes evictionPolicy issues at cache destroy. stopAllGrids();
"transaction manager can not be used with ATOMIC cache"); if ((cc.getEvictionPolicyFactory() != null || cc.getEvictionPolicy() != null) && !cc.isOnheapCacheEnabled()) throw new IgniteCheckedException("Onheap cache must be enabled if eviction policy is configured [cacheName=" + U.maskName(cc.getName()) + "]");
if (ccfg.getEvictionPolicy() != null) ccfg.setOnheapCacheEnabled(true);
/** {@inheritDoc} */ @Override public void preProcessCacheConfiguration(CacheConfiguration cfg) { EvictionPolicy evictPlc = cfg.getEvictionPolicyFactory() != null ? (EvictionPolicy)cfg.getEvictionPolicyFactory().create() : cfg.getEvictionPolicy(); if (evictPlc instanceof IgfsPerBlockLruEvictionPolicy && cfg.getEvictionFilter() == null) cfg.setEvictionFilter(new IgfsEvictionFilter()); }
writer.writeBoolean(false); writeEvictionPolicy(writer, ccfg.getEvictionPolicy()); writeAffinityFunction(writer, ccfg.getAffinity()); writeExpiryPolicyFactory(writer, ccfg.getExpiryPolicyFactory());
/** {@inheritDoc} */ @Override public void validateCacheConfiguration(CacheConfiguration cfg) throws IgniteCheckedException { EvictionPolicy evictPlc = cfg.getEvictionPolicyFactory() != null ? (EvictionPolicy)cfg.getEvictionPolicyFactory().create() : cfg.getEvictionPolicy(); if (evictPlc != null && evictPlc instanceof IgfsPerBlockLruEvictionPolicy) { EvictionFilter evictFilter = cfg.getEvictionFilter(); if (evictFilter != null && !(evictFilter instanceof IgfsEvictionFilter)) throw new IgniteCheckedException("Eviction filter cannot be set explicitly when using " + "IgfsPerBlockLruEvictionPolicy: " + U.maskName(cfg.getName())); } }
/** * @return Eviction policy class name. * * @deprecated Use evictionPolicyFactoryClassName() instead. */ @Deprecated public String evictionPolicyClassName() { return className(ccfg.getEvictionPolicy()); }