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



我刚刚浏览了hazelcast文档。

它表明数据在所有节点上进行分区。

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

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

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

那么你可能会问,为什么271而不是其他质数。

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

增加分区计数的另一个原因是当您有大量数据时。假设您有300 GB的数据要存储在数据网格中。那么每个分区的空间将超过1GB,迁移将花费很长时间。注意,在迁移过程中,对该分区的所有更新都被阻塞。考虑到延迟,您希望每个分区的数据量较小。因此,将其增加到您对移动分区的延迟感到满意的数字。

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

最新更新