Hazelcast 3.6.2驱逐地图不能使用Spring和max-size-policy作为3.6.2中的PER_NODE

时间:2016-04-25 11:49:32

标签: java spring hazelcast hazelcast-imap

我想得到地图驱逐max-size =" 4" PER_NODE致力于Hazelcast 3.6.2弹簧。这是我在春天定义的地图。

<hz:map name="sfdRequestMap" in-memory-format="OBJECT" eviction-policy="LRU" max-size="4" max-size-policy="PER_NODE" eviction-percentage="25">
</hz:map>

我还检查了这个驱逐政策是否实际上是为所定义的地图设定的,而且确实如此。也可以在几秒钟之后逐出该地图,但是在覆盖最大尺寸时的驱逐并非如此。我使用的是hazelcast 3.6.2。我还试图删除内存格式,更改驱逐政策等等。

预期的行为是,当地图超过项目数量(超过4)时,驱逐就会开始。实际行为是驱逐永远不会开始。

欢迎任何帮助。

1 个答案:

答案 0 :(得分:4)

Hazelcast Map内部以分区为基础进行驱逐,这意味着当您使用maxSize为5000的PER_NODE策略时,使用此等式将该maxSize转换为partition-max-size  partition-max-size = maxSize * memberCount / partitionCount。当该分区中的入口计数超过partition-max-size时,将从该分区开始逐出。 partition-max-size的最小值在内部设置为1,不会逐出每个添加的条目。所以partitionCount是最小可设置的max-size(默认分区计数是271)。