Java Hazelcast分区在初始模式下丢失行为=";“懒惰/渴望”;

Java Hazelcast分区在初始模式下丢失行为=";“懒惰/渴望”;,java,caching,hazelcast,hazelcast-imap,Java,Caching,Hazelcast,Hazelcast Imap,我想知道initial mode=“LAZY/EAGER”在丢失分区时的行为如何 根据网上的文件 急切-同步加载条目。发生这种情况时,对getMap()的调用被阻止 我需要知道在以下情况下丢失的分区是如何加载的 1)当另一个节点中有备份时,节点崩溃并丢失分区 丢失的分区数据是从数据库还是备份加载的 如果这是从DB加载的,那么初始模式=“LAZY/EAGER”对map有何影响 装货 丢失的分区会迁移到 备份可用,或者可以完全迁移到 新节点 2)当另一个节点中没有任何备份时,节点崩溃并丢失分区

我想知道initial mode=“LAZY/EAGER”在丢失分区时的行为如何

根据网上的文件 急切-同步加载条目。发生这种情况时,对getMap()的调用被阻止

我需要知道在以下情况下丢失的分区是如何加载的

1)当另一个节点中有备份时,节点崩溃并丢失分区

  • 丢失的分区数据是从数据库还是备份加载的
  • 如果这是从DB加载的,那么初始模式=“LAZY/EAGER”对map有何影响 装货
  • 丢失的分区会迁移到 备份可用,或者可以完全迁移到 新节点
2)当另一个节点中没有任何备份时,节点崩溃并丢失分区

  • 在这种情况下,将从数据库加载丢失的分区数据
  • 当没有任何备份时,初始模式=“LAZY/EAGER”对映射加载有何影响
当initial mode=“LAZY”, 分区丢失后,我立即可以看到它重新定位到另一个节点,我认为这只是分区创建,而不是数据

在这幅图中,您可以看到分区ID 87丢失,分区汇总立即显示它被重新定位到另一个节点中


62-(LOM:FE44)=分区ID-(分区键)

首先让我们了解备份选项之间的基本区别: 同步-默认值1[备份计数] 异步-默认值0[异步备份计数]

默认情况下,我们具有很强的一致性,因为: Client map.put(foo)->主两个线程:T1操作线程存储在主线程的分区中,T2存储在备份中。T1和T2在返回客户机之前加入。因此,一旦从map.put返回,数据就会安全地存储在两个位置

如果您将[backup count]设置为0且[async backup count]>0,那么您将具有最终一致性,因为T1和T2在返回到客户端之前不会合并;相反,一旦T1完成,服务器将返回到客户机

现在让我们看看你的问题: 1)当另一个节点中有备份时,节点崩溃并丢失分区 丢失的分区数据是从数据库还是备份加载的? 我们没有讨论MapStore(这是将数据存储到数据库中的几种方法之一),但是如果您实现了MapStore,那么在缓存未命中的情况下,它将从那里恢复

如果这是从DB加载的,初始模式=“LAZY/EAGER”对映射加载有何影响? Lazy将只加载分区数据(默认情况下为数据的1/271),而Earge将加载完整映射(数据的271/271)

丢失的分区会迁移到备份可用的节点上,还是可能迁移到全新的节点上? 备份将立即从丢失的服务器恢复分区。现在是主备份的备份将请求新备份

2)当另一个节点中没有任何备份时,节点崩溃并丢失分区 如果您无法设置[backup count]和[async backup count]以及MapStore,并且您没有使用热重启,那么您就丢失了数据。但你必须改变我们的默认值,才能造成这种情况

在这种情况下,将从数据库加载丢失的分区数据 当没有任何备份时,初始模式=“LAZY/EAGER”对映射加载有何影响? 它再次确定将加载多少映射数据,如果您有一个映射存储,则表示将在数据库上调用多少加载(键)


希望这有所帮助,

首先让我们了解备份选项之间的基本区别: 同步-默认值1[备份计数] 异步-默认值0[异步备份计数]

默认情况下,我们具有很强的一致性,因为: Client map.put(foo)->主两个线程:T1操作线程存储在主线程的分区中,T2存储在备份中。T1和T2在返回客户机之前加入。因此,一旦从map.put返回,数据就会安全地存储在两个位置

如果您将[backup count]设置为0且[async backup count]>0,那么您将具有最终一致性,因为T1和T2在返回到客户端之前不会合并;相反,一旦T1完成,服务器将返回到客户机

现在让我们看看你的问题: 1)当另一个节点中有备份时,节点崩溃并丢失分区 丢失的分区数据是从数据库还是备份加载的? 我们没有讨论MapStore(这是将数据存储到数据库中的几种方法之一),但是如果您实现了MapStore,那么在缓存未命中的情况下,它将从那里恢复

如果这是从DB加载的,初始模式=“LAZY/EAGER”对映射加载有何影响? Lazy将只加载分区数据(默认情况下为数据的1/271),而Earge将加载完整映射(数据的271/271)

丢失的分区会迁移到备份可用的节点上,还是可能迁移到全新的节点上? 备份将立即从丢失的服务器恢复分区。现在是主备份的备份将请求新备份

2)当另一个节点中没有任何备份时,节点崩溃并丢失分区 如果您无法设置[backup count]和[async backup count]以及MapStore,并且您没有使用热重启,那么您就丢失了数据。但你必须改变我们的默认值,才能造成这种情况

在这种情况下,将从数据库加载丢失的分区数据 当没有任何备份时,初始模式=“LAZY/EAGER”对映射加载有何影响? 它再次确定将加载多少映射数据,如果您有一个映射存储,则表示将在数据库上调用多少加载(键)

希望这有帮助