【发布时间】:2021-01-21 15:31:50
【问题描述】:
我们设置了 2 个 couchbase 集群,它们之间带有 XDCR。我们正在使用 sub-doc mutate 来使用新字段更新文档(没有删除任何字段,也没有字段被覆盖/更新)。 我们发现,如果我们通过集群 1 和集群 2 同时更新同一个文档,一些更新会丢失。
例如:如果我们通过 cluster-1 在 document-1 中添加 field-1 并且同时从 cluster-2 将 field-2 添加到 document-1,那么只有一个更新将有效,并且 field-1 或生成的文档中将缺少 field-2。
有什么办法可以解决这个问题,以免数据丢失?我们最初的想法是,因为这是一个“子文档”操作,XDCR 会考虑到这一点,并通过根据子文档变异操作期间提供的各个路径相应地更新最终文档来合并两个文档版本。
【问题讨论】:
标签: concurrency couchbase subdocument xdcr