为什么hazelcast的默认分区数为271,选择一个参数是什么?

时间:2013-05-11 12:23:20

标签: hazelcast

我刚刚浏览了hazelcast文档。

它表明数据在所有节点之间进行了分区。

默认情况下在群集271中创建的分区数量!

哪些参数控制右分区计数值的选择。为什么默认分区计数是271?

1 个答案:

答案 0 :(得分:16)

271是素数。并且给定任何键,Hazelcast将对键进行散列并使用分区计数对其进行修改。在这种情况下,素数被认为产生更多的伪随机结果。实际上从用户的角度来看,让它成为主要的并不重要。

然后你可能会问,为什么271而不是其他素数。

仅仅因为271是一个很好的数字,当你的节点少于100个时它几乎会均匀分布。当您有超过100个节点时,需要增加它以使分布均匀。

增加分区计数的另一个原因是当您有大量数据时。假设您有300 GB的数据存储在数据网格中。然后每个分区将超过1GB,迁移将花费太长时间。请注意,在迁移期间,将阻止对该分区的所有更新。为了延迟,您希望每个分区都有小数据。因此,将其增加到您对移动分区的延迟感到满意的数字。

请注意,只有在添加新节点时才会迁移分区。