private static MaxSizeConfig getMaxSize() { return new MaxSizeConfig().setSize(Config.getConfigParamUnwrapped("hc.max_size", 25)). setMaxSizePolicy(USED_HEAP_PERCENTAGE); }
/** * Returns the configured maximum entry count per node if the max * size policy is {@link MaxSizeConfig.MaxSizePolicy#PER_NODE} * and is not the default, otherwise returns {@code -1}. * * @param maxSizeConfig the max size configuration * @return the max size per node or {@code -1} if not configured or is the default * @see MaxSizeConfig#getMaxSizePolicy() * @see MaxSizeConfig#getSize() */ public static int getMaxSizePerNode(MaxSizeConfig maxSizeConfig) { // max size or -1 if policy is different or not set double maxSizePerNode = maxSizeConfig.getMaxSizePolicy() == PER_NODE ? maxSizeConfig.getSize() : -1D; if (maxSizePerNode == MaxSizeConfig.DEFAULT_MAX_SIZE) { // unlimited return -1; } return (int) maxSizePerNode; }
.setMapEvictionPolicy(new OddEvictor()) .getMaxSizeConfig() .setMaxSizePolicy(PER_NODE).setSize(10000);
@Nullable @Override public Integer currentMaxEntries() { int maxSize = getConfig().getMaxSizeConfig().getSize(); return maxSize > 0 ? maxSize : null; }
this.maxIdleSeconds = config.maxIdleSeconds; this.preprocessingPolicy = config.preprocessingPolicy; this.maxSizeConfig = config.maxSizeConfig != null ? new MaxSizeConfig(config.maxSizeConfig) : null; this.evictionPolicy = config.evictionPolicy; this.mapEvictionPolicy = config.mapEvictionPolicy;
public MaxSizeConfig(int size, MaxSizePolicy maxSizePolicy) { setSize(size); this.maxSizePolicy = maxSizePolicy; }
public boolean checkEvictable(RecordStore recordStore) { if (recordStore.size() == 0) { return false; } String mapName = recordStore.getName(); MapContainer mapContainer = recordStore.getMapContainer(); MaxSizeConfig maxSizeConfig = mapContainer.getMapConfig().getMaxSizeConfig(); MaxSizeConfig.MaxSizePolicy maxSizePolicy = maxSizeConfig.getMaxSizePolicy(); switch (maxSizePolicy) { case PER_NODE: return checkPerNodeEviction(recordStore); case PER_PARTITION: int partitionId = recordStore.getPartitionId(); return checkPerPartitionEviction(mapName, maxSizeConfig, partitionId); case USED_HEAP_PERCENTAGE: return checkHeapPercentageEviction(mapName, maxSizeConfig); case USED_HEAP_SIZE: return checkHeapSizeEviction(mapName, maxSizeConfig); case FREE_HEAP_PERCENTAGE: return checkFreeHeapPercentageEviction(maxSizeConfig); case FREE_HEAP_SIZE: return checkFreeHeapSizeEviction(maxSizeConfig); default: throw new IllegalArgumentException("Not an appropriate max size policy [" + maxSizePolicy + ']'); } }
return false; if (maxSizeConfig != null ? !maxSizeConfig.equals(that.maxSizeConfig) : that.maxSizeConfig != null) { return false;
protected boolean checkHeapSizeEviction(String mapName, MaxSizeConfig maxSizeConfig) { long usedHeapBytes = getUsedHeapInBytes(mapName); if (usedHeapBytes == -1L) { return false; } int maxUsableHeapMegaBytes = maxSizeConfig.getSize(); return MEGABYTES.toBytes(maxUsableHeapMegaBytes) < usedHeapBytes; }
public MapConfig(MapConfig config) { this.name = config.name; this.backupCount = config.backupCount; this.asyncBackupCount = config.asyncBackupCount; this.evictionPercentage = config.evictionPercentage; this.minEvictionCheckMillis = config.minEvictionCheckMillis; this.timeToLiveSeconds = config.timeToLiveSeconds; this.maxIdleSeconds = config.maxIdleSeconds; this.maxSizeConfig = config.maxSizeConfig != null ? new MaxSizeConfig(config.maxSizeConfig) : null; this.evictionPolicy = config.evictionPolicy; this.mapEvictionPolicy = config.mapEvictionPolicy; this.inMemoryFormat = config.inMemoryFormat; this.mapStoreConfig = config.mapStoreConfig != null ? new MapStoreConfig(config.mapStoreConfig) : null; this.nearCacheConfig = config.nearCacheConfig != null ? new NearCacheConfig(config.nearCacheConfig) : null; this.readBackupData = config.readBackupData; this.cacheDeserializedValues = config.cacheDeserializedValues; this.statisticsEnabled = config.statisticsEnabled; this.mergePolicyConfig = config.mergePolicyConfig; this.wanReplicationRef = config.wanReplicationRef != null ? new WanReplicationRef(config.wanReplicationRef) : null; this.entryListenerConfigs = new ArrayList<EntryListenerConfig>(config.getEntryListenerConfigs()); this.partitionLostListenerConfigs = new ArrayList<MapPartitionLostListenerConfig>(config.getPartitionLostListenerConfigs()); this.mapIndexConfigs = new ArrayList<MapIndexConfig>(config.getMapIndexConfigs()); this.mapAttributeConfigs = new ArrayList<MapAttributeConfig>(config.getMapAttributeConfigs()); this.queryCacheConfigs = new ArrayList<QueryCacheConfig>(config.getQueryCacheConfigs()); this.partitioningStrategyConfig = config.partitioningStrategyConfig != null ? new PartitioningStrategyConfig(config.getPartitioningStrategyConfig()) : null; this.quorumName = config.quorumName; this.hotRestartConfig = new HotRestartConfig(config.hotRestartConfig); }
Node maxSizePolicy = node.getAttributes().getNamedItem("policy"); if (maxSizePolicy != null) { msc.setMaxSizePolicy(MaxSizeConfig.MaxSizePolicy.valueOf( upperCaseInternal(getTextContent(maxSizePolicy)))); msc.setSize(getIntegerValue("max-size", value)); } else if ("eviction-percentage".equals(nodeName)) { mapConfig.setEvictionPercentage(getIntegerValue("eviction-percentage", value
public MaxSizeConfig(int size, MaxSizePolicy maxSizePolicy) { setSize(size); this.maxSizePolicy = maxSizePolicy; }
return false; if (maxSizeConfig != null ? !maxSizeConfig.equals(that.maxSizeConfig) : that.maxSizeConfig != null) { return false;
mapConfig.setMaxSizeConfig(new MaxSizeConfig().setMaxSizePolicy(PER_NODE).setSize(adjustedCacheSize)); mapConfig.setEvictionPolicy(EvictionPolicy.LFU); return adjustedCacheSize;
/** * Returns the configured maximum entry count per node if the max * size policy is {@link MaxSizeConfig.MaxSizePolicy#PER_NODE} * and is not the default, otherwise returns {@code -1}. * * @param maxSizeConfig the max size configuration * @return the max size per node or {@code -1} if not configured or is the default * @see MaxSizeConfig#getMaxSizePolicy() * @see MaxSizeConfig#getSize() */ public static int getMaxSizePerNode(MaxSizeConfig maxSizeConfig) { // max size or -1 if policy is different or not set double maxSizePerNode = maxSizeConfig.getMaxSizePolicy() == PER_NODE ? maxSizeConfig.getSize() : -1D; if (maxSizePerNode == MaxSizeConfig.DEFAULT_MAX_SIZE) { // unlimited return -1; } return (int) maxSizePerNode; }
protected boolean checkFreeHeapSizeEviction(MaxSizeConfig maxSizeConfig) { long currentFreeHeapBytes = getAvailableMemory(); int minFreeHeapMegaBytes = maxSizeConfig.getSize(); return MEGABYTES.toBytes(minFreeHeapMegaBytes) > currentFreeHeapBytes; }
private static MapConfig createMapConfig(String mapName) { MapConfig mapConfig = new MapConfig(mapName); mapConfig.setInMemoryFormat(InMemoryFormat.OBJECT); mapConfig.setBackupCount(1); mapConfig.setEvictionPolicy(EvictionPolicy.NONE); mapConfig.setMaxSizeConfig(new MaxSizeConfig(0, MaxSizePolicy.PER_NODE)); mapConfig.setEvictionPercentage(0); mapConfig.setMergePolicy("com.hazelcast.map.merge.PutIfAbsentMapMergePolicy"); return mapConfig; }
Node maxSizePolicy = node.getAttributes().getNamedItem("policy"); if (maxSizePolicy != null) { msc.setMaxSizePolicy(MaxSizeConfig.MaxSizePolicy.valueOf( upperCaseInternal(getTextContent(maxSizePolicy)))); msc.setSize(getIntegerValue("max-size", value)); } else if ("eviction-percentage".equals(nodeName)) { mapConfig.setEvictionPercentage(getIntegerValue("eviction-percentage", value
/** * Build map config map config. * * @param hz the hz * @param mapName the storage name * @param timeoutSeconds the timeoutSeconds * @return the map config */ public MapConfig buildMapConfig(final BaseHazelcastProperties hz, final String mapName, final long timeoutSeconds) { val cluster = hz.getCluster(); val evictionPolicy = EvictionPolicy.valueOf(cluster.getEvictionPolicy()); LOGGER.debug("Creating Hazelcast map configuration for [{}] with idle timeoutSeconds [{}] second(s)", mapName, timeoutSeconds); val maxSizeConfig = new MaxSizeConfig() .setMaxSizePolicy(MaxSizeConfig.MaxSizePolicy.valueOf(cluster.getMaxSizePolicy())) .setSize(cluster.getMaxHeapSizePercentage()); return new MapConfig() .setName(mapName) .setMaxIdleSeconds((int) timeoutSeconds) .setBackupCount(cluster.getBackupCount()) .setAsyncBackupCount(cluster.getAsyncBackupCount()) .setEvictionPolicy(evictionPolicy) .setMaxSizeConfig(maxSizeConfig); }
config.getMapConfig(HazelcastCacheProvider.HAZELCAST_MAP_DEFINITION); boolean sizeDefined = mapConfig.getMaxSizeConfig().getSize() > 0; boolean policyExists = mapConfig.getEvictionPolicy() != MapConfig.DEFAULT_EVICTION_POLICY; boolean sizeFromHeap = mapConfig.getMaxSizeConfig().getMaxSizePolicy() == MaxSizeConfig.MaxSizePolicy.USED_HEAP_SIZE;