1

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

Couchbase 版本:4.0 Java SDK:2.1.6

任何帮助表示赞赏。!

4

3 回答 3

5

Couchbase 是一个 NoSQL 数据库,在传统 RDBMS 的 ACID 属性与性能和可扩展性之间存在折衷。

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

网络上可能有关于如何使用 Couchbase 实现事务系统的文章,但这显然不是设计支持的现成的东西。这是一项非常复杂的工作,我不建议这样做。

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

于 2016-02-02T14:01:29.803 回答
0

这个文档(来自couchbase)似乎相关: 提供事务逻辑

于 2016-02-04T11:55:29.347 回答
0

Couchbase 现在在 Couchbase Server 6.5 的 beta 版本中支持完整的 ACID 分发事务。有关更多详细信息和文档链接,请参阅此博客文章

于 2019-09-10T10:34:26.507 回答