当配置Hazelcast Map备份时,它映射的最大大小是否也包括备份条目



假设我对Hazelcast地图有以下配置

没有。集群中的节点数:1
映射配置:
最大大小:100MB
同步备份计数:1
异步备份计数:0

如果我用20个唯一的键(每个条目占用1MB(调用map.put(…(,映射内存会消耗多少?

备份项的内存使用情况是否也被视为最大大小的一部分?

如果节点数少于请求的数据副本数,则无法获得请求的所有数据副本。

例如,backup-count=2请求3个数据副本,即主备份和两个备份。如果只有2个节点,则无法在任何位置托管第二次备份。一个节点承载多个副本是没有意义的——关键是数据安全,节点故障只会导致一个副本丢失。

如果你写20个1MB的条目,那么每个副本就是20MB。你有1个节点,所以1个副本,所以20MB。

您将没有任何备份副本,因为无处托管它们。但如果你这样做了,它们就包含在最大尺寸计算中。

对于您的示例,如果您有4个节点、1个备份(总共2个副本(和20个条目,则您希望每个节点都有5个主副本条目和5个备份副本条目,因此有10MB的数据。40MB的数据分布在4个节点上。实际分配取决于密钥,密钥可能不统一。

你可以向管理中心确认这一切。这并不是一个坏主意,因为通常被认为是1MB的条目在序列化后会有不同的大小,并考虑到条目开销。

这个https://docs.hazelcast.org/docs/4.0/manual/html-single/index.html#map-驱逐解释了驱逐是如何运作的。

最新更新