2

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

map_size_per_jvm: Max map size per JVM.

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

我假设这两个都在谈论条目而不是存储空间的大小。分区不会停留在 1 个 JVM 上吗?对我来说,这看起来像是相同的选项,有人可以帮我理解这两个之间的区别吗?

4

1 回答 1

7

首先,是的,最大大小map_size_per_jvm和是每个条目(不是存储空间的大小)。cluster_wide_map_sizepartitions_wide_map_size

其次,这些最大尺寸是硬性限制,虽然相似,但它们实际上与驱逐策略不同(beingLRU)。LFUNONE

以下是它们的工作方式:

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

  2. map_size_per_jvm - 这本质上是每个 hazelcast 节点的映射条目数。

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

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

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

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

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

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

于 2013-06-21T10:59:50.187 回答