我们如何在couchbase中以事务方式更新文档?

时间:2016-02-02 10:31:38

标签: couchbase transactional distributed-transactions couchbase-java-api

我有一个用例,其中有三个文档,我想以事务方式更新它们,即如果其中任何一个失败,那么其他文档也不应该在数据库中更新。我正在寻找一个选项,但在JavaSDK中找不到。那么我有什么方法可以在事务上执行此操作。我使用CAS值来处理并发。请给我一个同时处理此操作的方法。

Couchbase版本:4.0 Java SDK:2.1.6

感谢任何帮助。!

3 个答案:

答案 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,以了解更多详细信息和文档链接。