2

我想让 Map eviction max-size="4" PER_NODE 在 Hazelcast 3.6.2 spring 上工作。下面是我在春天定义的地图。

<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 个)时,将开始驱逐。实际行为是驱逐永远不会开始。

欢迎任何帮助。

4

1 回答 1

5

Hazelcast Map 在内部根据分区进行逐出,这意味着当您使用PER_NODEmaxSize 为 5000 的策略时,它会使用 此等式将 maxSize 转换为 partition-max-sizepartition-max-size = maxSize * memberCount / partitionCount。并且当该分区中的条目数超过partition-max-size时,将在该分区上开始驱逐。最小值在partition-max-size内部设置为1不逐出每个添加的条目。最小可设置的最大大小也是如此partitionCount(默认分区数为 271)。

于 2016-04-25T19:07:05.853 回答