说我对Hazelcast地图有以下配置
没有集群中的节点数:1地图配置:最大大小:100MB同步备份数:1异步备份计数:0
如果我使用20个唯一键(每个条目占用1 MB)进行map.put(...)调用,将消耗多少地图内存?
备份条目的内存使用量是否也被视为最大大小的一部分?
如果节点少于请求的数据副本,则无法获取所有请求的数据副本。
例如,backup-count=2
请求3个数据副本,即主副本和两个备份。如果只有2个节点,则无法在任何地方托管第二个备份。节点托管多个副本是没有意义的-这样做的重点是数据安全性,节点故障只能导致丢失一个副本。
如果写入20个1MB的条目,则每个副本20MB。您有1个节点,所以1个副本,所以20MB。
您将没有任何备份副本,因为没有地方可以托管它们。但是,如果这样做,它们将包括在最大大小计算中。
例如,如果您有4个节点,1个备份(总共2个副本)和20个条目,则您希望每个节点具有10个主副本条目和10个备份副本条目,因此具有20MB数据。实际分配取决于密钥,密钥可能不一致。
您可以通过管理中心确认所有这些信息。这不是一个坏主意,因为通常序列化后的1MB条目实际上具有不同的大小,并允许条目开销。
此https://docs.hazelcast.org/docs/4.0/manual/html-single/index.html#map-eviction解释了搬迁的工作方式。