2

Hazelcast のドキュメントを調べていて、エビクション ポリシーの違いに気付きましたが、完全には理解していないことに気付きました。

map_size_per_jvm: Max map size per JVM.

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

これらは両方とも、ストレージスペースのサイズではなく、エントリについて話していると思います。パーティションは 1 つの JVM に置かれませんか? 私には、これらは同じオプションのように見えますが、これら2つの違いを理解するのを手伝ってくれる人はいますか?

4

1 に答える 1

7

まず、はい、最大サイズmap_size_per_jvmとはエントリごとです (ストレージ スペースのサイズではありません) cluster_wide_map_sizepartitions_wide_map_size

第 2 に、これらの最大サイズはハード リミットであり、似ていますが、実際にはエビクション ポリシー(または)LRUとは異なります。LFUNONE

それらがどのように機能するかは次のとおりです。

  1. cluster_wide_map_size - これは、すべての hazelcast ノードにわたるマップ エントリの合計です。

  2. map_size_per_jvm - これは基本的に、hazelcast ノードごとのマップ エントリの数です。

    したがって、最大サイズ = 10 (および backupCount = 0、以下を参照) でこのポリシーを使用して 2 つのノードを実行している場合、すべてのノードで最大 20 のマップ エントリがあります。別の hazelcast ノードを追加すると、合計最大マップ サイズが増加します。

  3. partitions_wide_map_size - ノード全体のパーティションの分散に依存するため、これは少し予測できません。

    クラスタ ノードは、最大サイズの(所有パーティション数 / 総パーティション数)の割合に達すると、最大になります。コード: MaxSizePartitionsWidePolicy

これらの最大サイズにはすべてバックアップが含まれているため、実際の最大マップ サイズが実質的に半分になることに注意してください。backupCount = 1

他の最大サイズ設定は、その使用法が明確used_heap_sizeused_heap_percentage見えます。

これがお役に立てば幸いです、頑張ってください!

于 2013-06-21T10:59:50.187 に答える