首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相同数据的xdcr复制

相同数据的xdcr复制
EN

Stack Overflow用户
提问于 2013-04-02 14:24:41
回答 1查看 817关注 0票数 1

我将使用couchbase作为我的网站的数据库。我计划网站是国际化的,所以我可能会在美国,欧洲和澳大利亚有数据中心,以保持低延迟。我还希望最小化数据中心之间的带宽,因此我计划在用户存储数据时向所有数据中心发起并行更新(ajax)。

我的问题是:如果我几乎同时将相同的数据插入到所有三个集群中,couchbase是否足够智能,能够识别出这些数据是相同的,因此不需要在数据中心之间复制?

我看过this video,他解释说,cas值在文档更新时更新,这用于确定哪些文档需要复制。如果CAS值在集群上的任何文档更新时被更新,那么我猜答案是“否”-因为我很可能一次只向所有3个集群发送一些数据,并且任何只发送到一个集群的数据都会使该集群的cas暂时不同步。但是,如果CAS值对于每个文档都是独立的,那么答案可能是“是”。也许有一些选项可以更改,以使每个文档的cas值独立?

EN

回答 1

Stack Overflow用户

发布于 2013-04-09 03:50:16

Couchbase不知道您存储的文档体的任何内容。从它的角度来看,如果你将相同的文档写到3个集群(都是用XDCR双向链接的),它会认为这3个不同的文档突变为具有该ID的文档。Couchbase将执行其正常的冲突解决过程,以选择3个集群中的哪一个是“赢家”。这将导致“获胜”文档被转移到其他两个集群,尽管它可能具有与“失败”修订完全相同的内容。

任何时候,当您在不同集群中写入相同的文档ID时,您必须意识到冲突解决将选择获胜的修订。如果你不小心,你可能会覆盖你不想要的数据。

通常会为您的用例选择不同的方法。对于每个用户,都会选择一个可能基于地理位置的"home“集群。对于该用户,所有操作都绑定到此集群。如果该集群已关闭,您可以切换到另一个集群。使用这种方法,您可以避免写入多个集群,并且只需在定义良好的条件下更改集群。

CAS值只是修订版的不透明标识符。在上面的示例中,所有3个文档写入都将以不同的CAS值结束(这是Couchbase将它们视为不同的原因之一,并必须选择一个赢家)

冲突解决过程以this section of the manual格式记录

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15757493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档