【发布时间】:2019-07-08 16:22:29
【问题描述】:
我尝试了 Ignite 2.0 和 2.3 来验证简单的缓存驱逐。但是观察到它已经坏了,但是如果我恢复到 1.9,它就可以正常工作了。
这是我在 2.x 中的代码
CacheConfiguration cc = new CacheConfiguration();
cc.setName("mycache");
cc.setCacheMode(CacheMode.PARTITIONED);
cc.setOnheapCacheEnabled(true);
cc.setEvictionPolicy(new LruEvictionPolicy(5));
IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setCacheConfiguration(cc);
Ignite ignite = Ignition.start(cfg);
IgniteCache<String,String> cache = ignite.getOrCreateCache(cc);
for(int i=0;i<10;i++){
cache.put("k"+i,"val-"+i);
}
Thread.sleep(1000);
for(int i=0;i<10;i++) {
System.out.println(cache.get("k"+i));
}
System.out.println("============================== " + cache.metrics().getSize());
输出打印所有 10 个缓存条目,但它应该只打印从缓存键 key5 到 k10 的值。因为我的 LRU 最大尺寸=5。但是,如果我将 ignite 版本更改为 1.9,一切都会按预期工作。
这是一个已知问题吗?还是我做错了什么。
【问题讨论】: