【问题标题】:When Hazelcast Map backup is configured, does it map max-size include backup entries also?配置 Hazelcast Map 备份时,它是否映射 max-size 也包括备份条目?
【发布时间】:2020-03-26 08:03:08
【问题描述】:

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

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

如果我使用 20 个唯一键(每个条目占用 1 MB)进行 map.put(...) 调用,映射内存将消耗多少?

备份条目的内存使用是否也被视为 max-size 的一部分?

【问题讨论】:

  • 当您有 1 个节点时,将不会创建备份。对于更多节点,假设您设置了 USED_HEAP_SIZE 最大大小策略,您将有 100MB 的主内存和 100MB 的备用内存使用。您可以通过管理中心观察主备分区的使用情况。

标签: hazelcast hazelcast-imap


【解决方案1】:

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

例如,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-eviction 解释了驱逐的工作原理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-12
    • 2018-10-02
    • 2021-08-14
    • 2018-08-07
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 2013-12-15
    相关资源
    最近更新 更多