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

Infinispan远程延迟锁定

金昌胤
2023-03-14

我们使用Infinispan 4.0作为缓存提供程序(我知道它有点过时,因为第9版是最新的)。尽管如此,在阅读文件时,我有点困惑,其中指出:

默认情况下,Infinispan会延迟获取远程锁。锁是在运行事务的节点上本地获取的,而其他集群节点会在两阶段准备/提交阶段尝试锁定事务中涉及的缓存密钥。但是,如果需要,Infinispan可以显式或隐式地急切地锁定缓存密钥。

英菲尼斯潘的默认行为是什么?我知道它只锁定在本地节点上,但它究竟何时锁定在集群上?例如,如果您有如下操作:

Cache.put(K,V)

当集群中的另一个节点尝试并发

Cache.put(K,V)

活动这个远程延迟锁定是如何工作的?

共有1个答案

殳智志
2023-03-14

该评论是关于交易的。对于事务,可以在缓存期间获取远程锁。放置(k,v)(eager)或在tm期间。commit()(懒惰)。没有交易,两者之间就没有区别。

请注意,4. x中的锁定非常容易出现死锁。一个节点会获取本地锁,然后它会尝试获取所有其他所有者的锁,如果另一个节点尝试同时写入同一个密钥,则很有可能死锁。

 类似资料:
  • 我们尝试使用infinispan作为带有读锁的远程缓存。客户通过“put”进行读取,以获得钥匙锁,正如悲观事务缓存“When cache.put(k1,v1)返回时”一节中所述的infinispan文档,k1被锁定,集群中任何地方运行的其他事务都无法对其进行写入。仍然可以读取k1。当事务完成(提交或回滚)时,k1上的锁被释放。因此,该场景: 远程缓存配置为具有悲观锁定的事务性缓存: 客户端正在使用

  • 我是infinispan的新手,通过实验学习。在尝试访问不同名称的远程缓存失败后,我需要一些帮助。下面是我的infinispan客户端-服务器模式未嵌入的场景。 1) 我在infinispan集群中启动了node1,并将默认远程缓存名称设置为node1\u cache--Hotrod服务器已启动 2) 已在infinispan群集中启动node2,并将默认远程缓存名称设置为node2\u cach

  • 问题内容: 我正在尝试使用新的React Lazy和Suspense创建后备加载组件。这很好用,但后备时间仅显示几毫秒。有没有办法增加额外的延迟或最短时间,因此我可以在渲染下一个组件之前显示该组件的动画? 现在懒导入 等待组件: 我可以做这样的事情吗? 问题答案: 函数应该返回对象的承诺,该对象由具有默认导出功能的模块返回。不会返回承诺,也不能那样使用。尽管任意承诺可以: 如果目标是提供 最小的

  • 我试图做一个自定义锁屏应用程序,但我不确定我是否以正确的方式去做。我有一个广播接收器,当屏幕打开时收听,并开始我的锁屏活动。此接收器注册在服务中,该服务也禁用默认锁定屏幕。 问题是,在屏幕打开和锁屏活动显示之间有一点延迟。我该怎么做才能让它马上出现呢? 我的服务代码: 而接收者:

  • 我有一个主题,它发出不同的和值 我想延迟值。如果发出了-值,而延迟是“延迟”,那么什么都不应该发生(应该是“无值更改”)。 考虑这张桌子 我希望情况很清楚。

  • 问题内容: 我正在尝试制作一个Java应用程序,该应用程序能够在检测到Midi设备后在计算机上播放笔记。 一旦获得所需的Midi设备,我就设置了接收器,该设备的发送器将向其发送MIDI消息。 类MyReceiver看起来像: 当我运行代码并开始在Midi设备上播放时,我的等待时间很长(我听不到即时的笔记)。 我该如何解决这个问题? 问题答案: 我正在使用使用asio驱动程序来避免延迟的JAsioH