获取有关infinispan异步复制错误的反馈

时间:2015-10-08 13:02:28

标签: java caching infinispan

我们有一个infinispan设置,我们将一些缓存复制到集群内的其他节点同步。当其中一个节点崩溃或超时时,这有时会导致putInCache调用出现问题。

对于我们来说,高速缓存更改确实到达其他节点是很重要的,但是在高速缓存放入其他节点的情况下应该发生故障并不重要。

我们无法使用putAsync,因为缓存put的排序至关重要。

最理想的是使用asyns复制,但有关节点接收缓存操作的节点的反馈,以便我们采取行动(例如,刷新失败节点上的缓存)。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

在Infinispan中这是不可能的,当密钥被锁定时没有确认,并且在没有先应用它的情况下发出另一个写入是安全的。您可以尝试使用putIfAbsentAsync / replaceAsync代替保留较新的值,也可以尝试使用8.0中包含的新functional API

异步复制(DIST_ASYNC,REPL_ASYNC)也不符合要求:原始节点没有收到来自其他节点的任何确认,因此无法知道写入何时完成。更重要的是,异步复制的顺序是不可靠的:来自不同节点的写入不是有序的,甚至当密钥的“主要所有者”发生变化时,也可以重新排序来自同一节点的写入。

相关问题