Hazelcast中驱逐政策的区别

时间:2013-06-16 02:16:24

标签: hazelcast

我正在查看Hazelcast的文档,我注意到驱逐政策的差异,我注意到一个我不完全理解的问题。

map_size_per_jvm: Max map size per JVM.

partitions_wide_map_size: Partitions (default 271) wide max map size.

我假设这两个都是关于条目而不是存储空间方面的大小。是不是一个分区将停留在1 JVM上?对我来说,这将是相同的选择,任何人都可以帮助我理解这两个之间的区别吗?

1 个答案:

答案 0 :(得分:7)

首先,是的,最大尺寸map_size_per_jvmcluster_wide_map_sizepartitions_wide_map_size是每个条目(不是存储空间大小)。

其次,这些最大尺寸是硬限制,虽然相似但它们实际上与驱逐政策不同(LRU,{{1} }或LFU)。

以下是它们的工作原理:

  1. cluster_wide_map_size - 这是所有hazelcast节点的总地图条目。

  2. map_size_per_jvm - 这实际上是每个hazelcast节点的地图条目数。

    因此,如果您使用此策略运行2个节点,其中max size = 10(并且backupCount = 0,请参阅下文),则所有节点上最多有20个映射条目。添加另一个hazelcast节点会增加总的最大地图大小。

  3. partitions_wide_map_size - 这个有点不可预测,因为它取决于节点间分区的分布。

    当群集节点达到最大大小的(拥有的分区/总分区)的比例时,它达到最大值。代码:MaxSizePartitionsWidePolicy

  4. 注意所有这些最大尺寸都包含备份,因此NONE可以有效地将实际最大地图尺寸减半。

    其他最大尺寸设置backupCount = 1used_heap_size的使用情况似乎很清楚。

    我希望这有帮助,祝你好运!