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

How can we update documents transactionally in couchbase?

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

Couchbase 版本:4.0 Java SDK: 2.1.6

感谢任何帮助!

Couchbase 是一个 NoSQL 数据库,它在传统 RDBMS 的 ACID 属性与性能和可扩展性之间进行权衡。

couchbase 可以强制执行的唯一原子性是在单个文档级别。

网络上可能有关于如何使用 Couchbase 实现交易系统的文章,但这显然不是现成的支持的设计。这是一项非常复杂的工作,我不推荐。

首先尝试对您的文档进行不同的建模,这样突变就可以发生在单个文档上(然后可以使用 CAS)。

此文档(来自 couchbase)似乎相关: Providing transactional logic

Couchbase 现在在 Couchbase Server 6.5 测试版中支持完整的 ACID 分发事务。请参阅此 blog post 了解更多详细信息和文档链接。