import com.hazelcast.config.Config;
import com.hazelcast.config.EvictionPolicy;
import com.hazelcast.config.InMemoryFormat;
import com.hazelcast.config.MapConfig;
import com.hazelcast.config.MaxSizeConfig;
import com.hazelcast.config.NativeMemoryConfig;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.memory.MemorySize;
import com.hazelcast.memory.MemoryUnit;
import java.util.Map;
import static com.hazelcast.examples.helper.LicenseUtils.ENTERPRISE_LICENSE_KEY;
import static com.hazelcast.config.MaxSizeConfig.MaxSizePolicy.PER_NODE;
/**
* You have to set your Hazelcast Enterprise license key to make this code sample work.
* Please have a look at {@link com.hazelcast.examples.helper.LicenseUtils} for details.
*/
public class HDEviction {
private static final int MAX_ENTRY_COUNT = 1000;
public static void main(String[] args) {
HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance(newConfig());
Map<String, String> map = hazelcastInstance.getMap("map");
for (int i = 0; i < 10 * MAX_ENTRY_COUNT; i++) {
map.put("key-" + i, "value-" + i);
}
System.out.println("Map size is " + map.size() + " and it is below the allowed max entry count " + MAX_ENTRY_COUNT);
hazelcastInstance.shutdown();
}
public static Config newConfig() {
MaxSizeConfig maxSizeConfig = new MaxSizeConfig();
maxSizeConfig.setMaxSizePolicy(PER_NODE);
maxSizeConfig.setSize(MAX_ENTRY_COUNT);
MapConfig mapConfig = new MapConfig();
mapConfig.setName("default");
mapConfig.setInMemoryFormat(InMemoryFormat.NATIVE);
mapConfig.setEvictionPolicy(EvictionPolicy.LRU);
mapConfig.setMaxSizeConfig(maxSizeConfig);
mapConfig.setMinEvictionCheckMillis(0);
MemorySize memorySize = new MemorySize(128, MemoryUnit.MEGABYTES);
NativeMemoryConfig memoryConfig = new NativeMemoryConfig();
memoryConfig.setEnabled(true);
memoryConfig.setSize(memorySize);
memoryConfig.setAllocatorType(NativeMemoryConfig.MemoryAllocatorType.STANDARD);
Config config = new Config();
config.addMapConfig(mapConfig);
config.setNativeMemoryConfig(memoryConfig);
config.setLicenseKey(ENTERPRISE_LICENSE_KEY);
return config;
}
}