当前位置: 首页 > 知识库问答 >
问题:

配置Hazelcast映射备份时,它的映射max-size是否也包括备份条目?

颛孙英才
2023-03-14

假设我有一个Hazelcast映射的以下配置

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

共有1个答案

朱高丽
2023-03-14

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

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

 类似资料:
  • 假设一个组织有两个数据中心(为简单起见命名为“A”和“B”),每个数据中心运行多个节点,并且所有这些节点上都有一个Hazelcast集群。假设此集群中有一个分布式地图,其配置为备份计数为1。 是否有办法配置Hazelcast分布式地图,以便将数据中心a中的节点备份到数据中心B中的节点上,反之亦然?这意味着如果丢失单个数据中心,地图数据(和备份)不会丢失?

  • 我对两种类型的备份技术感兴趣: a)模式备份,它恢复数据库模式(添加或删除列、改变列类型、添加表等) b)数据备份,用于恢复数据(更新,从一个表读取到另一个表)。 我来举例说明一下: 首先,我创建实体“客户” ...而不是预期的... 如何获取预期的第一张快照? 更新1 相关问题: 在cassandra中导入和导出架构 如何恢复Cassandra快照

  • 本节描述了可用于映射器的各种配置模式。它假设你已经完成了 对象关系教程(1.x API) 并且知道如何构造和使用基本的映射器和关系。 映射Python类 声明性映射 非动态创建显式基础(与mypy一起使用,类似) 使用修饰符的声明性映射(无声明基) 具有数据类和属性的声明性映射 命令(又称经典)映射 具有数据类和属性的命令式映射 映射器配置概述 要映射的类 表或其他from子句对象 属性字典 其他

  • 如何将侦听器设置为一个映射,该映射的键有一个复杂的对象,并且我只想侦听具有特定键参数值的条目发生的更改。 例如,我有一个类似于此的代码: 但当一个包含“EN”语言的键的条目被更新时,我的回调函数不会被调用。所以我假设我的谓词是错误的。

  • 我使用Hazelcast作为分布式键值存储。我将储存大约。100K密钥,为了加强hazelcast集群节点之间的数据一致性,我使用了与IMap作为分布式数据结构的同步备份。 在2个Unix盒中运行包含2个节点的hazelcast集群,问题是:在任一个节点中加载1000条记录的示例数据时,我看不到同步备份发生,尽管我已经明确地将同步备份设置为1,并从日志和hazelcast管理中心对其进行了验证。当

  • 我正在使用Hibernate和JPA注释来映射我的类。当hibernate尝试映射这个类时,我遇到了一个问题 我的Social alStat类是: 我得到了这个错误: 我猜发生这种情况是因为我试图映射到一个基本类,但@ElementCollection注释不应该解决这个问题吗? 我的item类如下所示: