Hazelcast中驱逐政策的区别

Nic*_*las 2 hazelcast

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

map_size_per_jvm: Max map size per JVM.

partitions_wide_map_size: Partitions (default 271) wide max map size.
Run Code Online (Sandbox Code Playgroud)

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

vik*_*eve 7

首先,是的,最大尺寸map_size_per_jvm,cluster_wide_map_size并且partitions_wide_map_size是每个条目(不是存储空间的大小).

其次,这些最大尺寸是硬限制,而类似它们实际上是不同的驱逐政策(即LRU,LFUNONE).

以下是它们的工作原理:

  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

注意,所有这些最大尺寸都包括备份,因此backupCount = 1有效地将实际最大地图尺寸减少了一半.

其他最大尺寸设置,used_heap_size并且used_heap_percentage在使用中看起来很清楚.

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