/** * 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; }
/** * 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; }
mapConfig.getEvictionPolicy() != MapConfig.DEFAULT_EVICTION_POLICY; boolean sizeFromHeap = mapConfig.getMaxSizeConfig().getMaxSizePolicy() == MaxSizeConfig.MaxSizePolicy.USED_HEAP_SIZE;
mapConfig.getEvictionPolicy() != MapConfig.DEFAULT_EVICTION_POLICY; boolean sizeFromHeap = mapConfig.getMaxSizeConfig().getMaxSizePolicy() == MaxSizeConfig.MaxSizePolicy.USED_HEAP_SIZE;
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(); int maxConfiguredSize = maxSizeConfig.getSize(); switch (maxSizePolicy) { case PER_NODE: return recordStore.size() > toPerPartitionMaxSize(maxConfiguredSize, mapName); case PER_PARTITION: return recordStore.size() > maxConfiguredSize; case USED_HEAP_SIZE: return usedHeapInBytes(mapName) > MEGABYTES.toBytes(maxConfiguredSize); case FREE_HEAP_SIZE: return availableMemoryInBytes() < MEGABYTES.toBytes(maxConfiguredSize); case USED_HEAP_PERCENTAGE: return (usedHeapInBytes(mapName) * ONE_HUNDRED / Math.max(maxMemoryInBytes(), 1)) > maxConfiguredSize; case FREE_HEAP_PERCENTAGE: return (availableMemoryInBytes() * ONE_HUNDRED / Math.max(maxMemoryInBytes(), 1)) < maxConfiguredSize; default: throw new IllegalArgumentException("Not an appropriate max size policy [" + 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 + ']'); } }
@Setup public void setUp() { map = targetInstance.getMap(name); operationCounterList = targetInstance.getList(name + "OperationCounter"); mapOperationSelectorBuilder .addOperation(MapOperation.PUT, putProb) .addOperation(MapOperation.GET, getProb) .addOperation(MapOperation.CHECK_SIZE, checkProb); mapPutOperationSelectorBuilder .addOperation(MapPutOperation.PUT_ASYNC, putUsingAsyncProb) .addDefaultOperation(MapPutOperation.PUT_SYNC); if (isMemberNode(targetInstance)) { MaxSizeConfig maxSizeConfig = targetInstance.getConfig().getMapConfig(name).getMaxSizeConfig(); maxSizePerNode = maxSizeConfig.getSize(); assertEqualsStringFormat("Expected MaxSizePolicy %s, but was %s", PER_NODE, maxSizeConfig.getMaxSizePolicy()); assertTrue("Expected MaxSizePolicy.getSize() < Integer.MAX_VALUE", maxSizePerNode < Integer.MAX_VALUE); logger.info("MapSizeConfig of " + name + ": " + maxSizeConfig); } }
@Setup public void setUp() { map = targetInstance.getMap(name); operationCounterList = targetInstance.getList(name + "OperationCounter"); mapOperationSelectorBuilder .addOperation(MapOperation.PUT, putProb) .addOperation(MapOperation.GET, getProb) .addOperation(MapOperation.CHECK_SIZE, checkProb); mapPutOperationSelectorBuilder .addOperation(MapPutOperation.PUT_ASYNC, putUsingAsyncProb) .addDefaultOperation(MapPutOperation.PUT_SYNC); if (isMemberNode(targetInstance)) { MaxSizeConfig maxSizeConfig = targetInstance.getConfig().getMapConfig(name).getMaxSizeConfig(); maxSizePerNode = maxSizeConfig.getSize(); assertEqualsStringFormat("Expected MaxSizePolicy %s, but was %s", PER_NODE, maxSizeConfig.getMaxSizePolicy()); assertTrue("Expected MaxSizePolicy.getSize() < Integer.MAX_VALUE", maxSizePerNode < Integer.MAX_VALUE); logger.info("MapSizeConfig of " + name + ": " + maxSizeConfig); } }
listenerConfigs, partitionLostListenerConfigs, mapConfig.isStatisticsEnabled(), mapConfig.getQuorumName(), serializationService.toData(mapConfig.getMapEvictionPolicy()), mapConfig.getMaxSizeConfig().getMaxSizePolicy().name(), mapConfig.getMaxSizeConfig().getSize(), MapStoreConfigHolder.of(mapConfig.getMapStoreConfig(), serializationService), NearCacheConfigHolder.of(mapConfig.getNearCacheConfig(), serializationService),
listenerConfigs, partitionLostListenerConfigs, mapConfig.isStatisticsEnabled(), mapConfig.getQuorumName(), serializationService.toData(mapConfig.getMapEvictionPolicy()), mapConfig.getMaxSizeConfig().getMaxSizePolicy().name(), mapConfig.getMaxSizeConfig().getSize(), MapStoreConfigHolder.of(mapConfig.getMapStoreConfig(), serializationService), NearCacheConfigHolder.of(mapConfig.getNearCacheConfig(), serializationService),
public JsonObject toJson() { JsonObject root = new JsonObject(); root.add("name", config.getName()); root.add("memoryFormat", config.getInMemoryFormat().toString()); root.add("backupCount", config.getBackupCount()); root.add("asyncBackupCount", config.getAsyncBackupCount()); root.add("evictionPercentage", config.getEvictionPercentage()); root.add("minEvictionCheckMillis", config.getMinEvictionCheckMillis()); root.add("ttl", config.getTimeToLiveSeconds()); root.add("maxIdle", config.getMaxIdleSeconds()); root.add("maxSize", config.getMaxSizeConfig().getSize()); root.add("maxSizePolicy", config.getMaxSizeConfig().getMaxSizePolicy().toString()); root.add("readBackupData", config.isReadBackupData()); root.add("evictionPolicy", config.getEvictionPolicy().name()); root.add("mergePolicy", config.getMergePolicy()); return root; }
@Override public void writeData(ObjectDataOutput out) throws IOException { out.writeUTF(config.getName()); out.writeUTF(config.getInMemoryFormat().toString()); out.writeInt(config.getBackupCount()); out.writeInt(config.getAsyncBackupCount()); out.writeInt(config.getEvictionPercentage()); out.writeLong(config.getMinEvictionCheckMillis()); out.writeInt(config.getTimeToLiveSeconds()); out.writeInt(config.getMaxIdleSeconds()); out.writeInt(config.getMaxSizeConfig().getSize()); out.writeUTF(config.getMaxSizeConfig().getMaxSizePolicy().toString()); out.writeBoolean(config.isReadBackupData()); out.writeUTF(config.getEvictionPolicy().name()); out.writeUTF(config.getMergePolicy()); }
public JsonObject toJson() { JsonObject root = new JsonObject(); root.add("name", config.getName()); root.add("memoryFormat", config.getInMemoryFormat().toString()); root.add("backupCount", config.getBackupCount()); root.add("asyncBackupCount", config.getAsyncBackupCount()); root.add("evictionPercentage", config.getEvictionPercentage()); root.add("minEvictionCheckMillis", config.getMinEvictionCheckMillis()); root.add("ttl", config.getTimeToLiveSeconds()); root.add("maxIdle", config.getMaxIdleSeconds()); root.add("maxSize", config.getMaxSizeConfig().getSize()); root.add("maxSizePolicy", config.getMaxSizeConfig().getMaxSizePolicy().toString()); root.add("readBackupData", config.isReadBackupData()); root.add("evictionPolicy", config.getEvictionPolicy().name()); root.add("mergePolicy", config.getMergePolicy()); return root; }
@Override public void writeData(ObjectDataOutput out) throws IOException { out.writeUTF(config.getName()); out.writeUTF(config.getInMemoryFormat().toString()); out.writeInt(config.getBackupCount()); out.writeInt(config.getAsyncBackupCount()); out.writeInt(config.getEvictionPercentage()); out.writeLong(config.getMinEvictionCheckMillis()); out.writeInt(config.getTimeToLiveSeconds()); out.writeInt(config.getMaxIdleSeconds()); out.writeInt(config.getMaxSizeConfig().getSize()); out.writeUTF(config.getMaxSizeConfig().getMaxSizePolicy().toString()); out.writeBoolean(config.isReadBackupData()); out.writeUTF(config.getEvictionPolicy().name()); out.writeUTF(config.getMergePolicy()); }
.node("max-idle-seconds", m.getMaxIdleSeconds()) .node("eviction-policy", m.getEvictionPolicy()) .node("max-size", m.getMaxSizeConfig().getSize(), "policy", m.getMaxSizeConfig().getMaxSizePolicy()) .node("eviction-percentage", m.getEvictionPercentage()) .node("min-eviction-check-millis", m.getMinEvictionCheckMillis())
.node("max-idle-seconds", m.getMaxIdleSeconds()) .node("eviction-policy", m.getEvictionPolicy()) .node("max-size", m.getMaxSizeConfig().getSize(), "policy", m.getMaxSizeConfig().getMaxSizePolicy()) .node("eviction-percentage", m.getEvictionPercentage()) .node("min-eviction-check-millis", m.getMinEvictionCheckMillis())