Couchbase是否以任何特定顺序跨数据中心复制密钥?

时间:2014-12-25 19:31:54

标签: couchbase

我需要按顺序在数据中心之间按顺序传输密钥,无论是按插入顺序还是按密钥顺序传输(因为我可以确保按照lexiographical顺序插入密钥)。

由于更新的文档被推送到复制队列,似乎它们的传输大致与它们插入/更新的顺序相同。它是否正确?这是我现在可以依赖的东西,即使它没有明确记录吗?

2 个答案:

答案 0 :(得分:1)

简短的回答是“不,它们不是以任何特定顺序发送的”,您不应该设计您的系统以期望订单。

稍长的答案是每个vBucket(aka shard)都有一个复制流,因此在典型的部署中,将有从源集群到目标集群的1024个流。流中的突变将按顺序发送(实际上它们具有序列号)但不同的流是独立的,因此属于不同vBucket的突变可能会“乱序”复制。

然而,文档所属的vBucket由Couchbase自动管理,并且基本上是不透明的,因此您不应该依赖于分配给特定vBuckets的特定文档。

答案 1 :(得分:-1)

Couchbase是一个多主系统(AP)。因此,您的密钥不可能是“全局”订单。实际上,任何具有事务的数据库(即使在单个节点上)都可能出现“乱序”的记录。

当然,你可以围绕“我们永远不会添加更多Couch节点”的用例来设计你的整个系统,但这是一个坏主意。更改您的设计,或将数据库更改为更符合您需要的数据库。