我们有一个要求,可以将问题缩小为。
因此,当两个JVM或两个线程读取相同的值时,其中一个的更新应该一致地失败,这样就不会丢失任何JVM上的任何线程所做的任何增量。
更新失败后,您再次从共享内存中读取,增加它,然后再次更新,直到更新成功或您已经用尽了一些N' N'重试次数。
现在我们正在使用带有乐观锁定的infinispan,但行为并不一致。请找到该主题的链接。
https://developer.jboss.org/message/914490
是否还有其他适合此要求的技术。
答案 0 :(得分:1)
线程之间的同步很容易,但在JVM之间非常困难,特别是如果您需要支持多个平台。我建议使用以下方法之一集中更新代码,这两种方法都“收缩”数据更新任务:
可能不是你想听到的,但任何一种方法都能很好地运作。