【问题标题】:Hazelcast 3.6.2 Eviction Map not working with Spring and max-size-policy as PER_NODE in 3.6.2Hazelcast 3.6.2 Eviction Map 在 3.6.2 中不能使用 Spring 和 max-size-policy 作为 PER_NODE
【发布时间】:2016-04-25 11:49:32
【问题描述】:

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

欢迎任何帮助。

【问题讨论】:

  • 您观察到的行为是什么?我想条目不会被驱逐。这是正确的吗?
  • 这是正确的:)
  • 我已经用 10 个条目对其进行了测试以获取更多信息。

标签: java spring hazelcast hazelcast-imap


【解决方案1】:

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

【讨论】:

  • 因此,如果我的 hazelcast 集群中有 4 个成员,并且您希望我的缓存中有 20 个项目,那么 maxSize 应该是:271/ 4* 20 = +/-1360?你在哪里找到这个的?有没有可用的文档?
  • 你可以在这里看到它的文档:github.com/hazelcast/hazelcast-reference-manual/blob/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多