Infinispan远程懒惰锁定



我们使用Infinispan 4.0作为我们的缓存提供商(我知道这是一种古董,因为版本9是最新的)。话虽这么说,我在阅读说明的文档时感到有些困惑:

默认情况下,

infinispan懒洋洋地获取了远程锁。锁定在运行事务的节点上局部获取,而其他群集节点则尝试在两相准备/提交相位锁定参与交易的缓存键。但是,如果需要,Infinispan可以明确或隐式锁定高速缓存键。

Infinispan的默认行为是什么?我知道它仅锁定在本地节点上,但何时锁定在群集上?例如,如果您有类似的操作:

Cache.put(K,V)

当集群中的另一个节点尝试并发时,它的表现如何

Cache.put(K,V)

操作?这个远程懒锁定如何工作?

该评论是关于交易的。通过交易,可以在cache.put(k, v)(急切)或tm.commit()(Lazy)期间获取远程锁。没有交易,两者之间没有区别。

请注意,4.x中的锁定非常容易僵局。一个节点将获取本地锁,然后将尝试获取所有其他所有者的锁,如果另一个节点试图同时写入同一键,则很有可能发生僵局。

最新更新