Java Infinispan远程延迟锁定

Java Infinispan远程延迟锁定,java,jboss6.x,infinispan,Java,Jboss6.x,Infinispan,我们使用Infinispan 4.0作为缓存提供程序(我知道它有点过时,因为版本9是最新的)。尽管如此,在阅读文档时,我还是有点困惑,其中指出: 默认情况下,Infinispan延迟获取远程锁。在运行事务的节点上本地获取锁,而在两阶段准备/提交阶段,其他集群节点尝试锁定事务中涉及的缓存密钥。但是,如果需要,Infinispan可以显式或隐式地急切地锁定缓存密钥 Infinispan的默认行为是什么?我知道它只锁定在本地节点上,但它究竟什么时候锁定在集群上?例如,如果您有如下操作: Cache.p

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

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

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

Cache.put(K,V)
当群集中的另一个节点尝试并发操作时,它的行为如何

Cache.put(K,V)

手术?这个远程延迟锁定是如何工作的?

那个评论是关于事务的。对于事务,可以在
cache.put(k,v)
(eager)或
tm.commit()
(lazy)期间获取远程锁。没有交易,两者之间就没有区别


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

该注释是关于事务的。对于事务,可以在
cache.put(k,v)
(eager)或
tm.commit()
(lazy)期间获取远程锁。没有交易,两者之间就没有区别


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

Ok获得了它。谢谢你给我写的关于僵局的便条,我知道了。谢谢你关于死锁的通知