如何使putAll原子?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使putAll原子?相关的知识,希望对你有一定的参考价值。
我使用infinispan 7.2.5版本在内存缓存中。访问该缓存我正在使用Hotrod。所以我有一个在集群模式下运行的hotrod服务器,以及可以使用hotrod客户端访问服务器的多个客户端。
我正在做一个putAll操作将数据放入缓存。现在我有一个要求,我们想把所有东西都放在缓存中,所以我在这里的意思是putAll应该能够将所有数据放入缓存中,或者如果失败则不应该将任何内容添加到缓存中。我正在浏览infinispan的文档以检查putAll是否是原子的,但根据文档不是。
所以我的问题是:
- 如何使putAlll原子化达到要求?
我还想创建transactionMode缓存,但不确定它是否解决了我的问题而不会对性能产生太大影响?
任何建议将不胜感激。
答案
Infinispan不支持Hot Rod(*)上的交易,而且putAll不是原子的。它在非事务性嵌入模式中也不是原子的。
最好的解决方法是运行事务,并从script execution手动启动事务。
(*)服务器端支持已经在,但客户端尚未实现。客户端实施在9.3或9.4的路线图上(可能会有变化)。
以上是关于如何使putAll原子?的主要内容,如果未能解决你的问题,请参考以下文章