2016-08-05 27 views
3

我使用hazelcast存储对于一个小时间窗口(可能30至50分钟,但不超过60分钟)很重要的数据。条目越老,它就越不重要,这意味着如果我们可以摆脱一些条目来避免OutOfMemory是较旧的条目。Hazelcast - 最早的条目首先被驱逐

我将这些条目的TTL配置为60分钟,但当内存不足时,我想可靠地摆脱最早的条目,即使它们没有过期。

我检查了配置EvictionPolicy.LRU,但配置它我可以看到一些最近添加到地图的条目被逐出。我想这是由于采样算法用于选择驱逐条目,如解释here

是否有包含此用例的分布式对象的任何实现?

回答

1

从Hazelcast 3.7开始,您将能够定义a custom eviction policy并实现任何算法。 你可以找到一个样本here

谢谢

+0

嘿,那很棒,会检查出来!预计在某些情况下,'LRU'实现会删除最后添加的条目吗?我可以通过添加一个条目侦听器来看到这样的行为,只是在添加或删除条目时打印某些条目,在某些情况下,我可以看到最近添加的条目驱逐并保持条目不超过几小时(使用'hz 3.6。 4')。 –

+0

在3.7版本中,最后添加的条目的驱逐应该不再是问题。请参阅:https://github.com/hazelcast/hazelcast/issues/4334 – mrck