8

我刚刚浏览了 hazelcast 文档。

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

并且默认在集群 271 中创建的分区数!

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

4

1 回答 1

21

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

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

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

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

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

于 2013-05-17T22:59:46.250 回答