我有一个用例,其中有三个文档,我想以事务方式更新它们,即如果其中任何一个失败,那么其他文档也不应该在数据库中更新。我正在寻找一个选项,但在JavaSDK中找不到。那么我有什么方法可以在事务上执行此操作。我使用CAS值来处理并发。请给我一个同时处理此操作的方法。
Couchbase版本:4.0 Java SDK:2.1.6
感谢任何帮助。!
答案 0 :(得分:5)
Couchbase是一个NoSQL数据库,在传统RDBMS的ACID属性与性能和可伸缩性之间存在权衡。
couchbase可以执行的唯一原子性是单个文档的级别。
网上可能会有关于如何使用Couchbase实现交易系统的文章,但这显然不是设计支持的现成技术。这是一项非常复杂的工作,我不建议。
首先尝试对文档进行不同的建模,以便在单个文档上发生变异(然后可以使用CAS)。
答案 1 :(得分:0)
这个doc(来自couchbase)似乎相关: Providing transactional logic
答案 2 :(得分:0)
Couchbase现在在Couchbase Server 6.5的beta版中支持完整的ACID分发事务。请参阅此blog post,以了解更多详细信息和文档链接。