Couchbase如何实现强大的一致性

时间:2013-04-03 15:08:40

标签: couchbase membase

我搜索了Couchbase如何在集群内实现强一致性的解释。所有这些都是使用membase的结果吗?

3 个答案:

答案 0 :(得分:6)

Couchbase IS membase btw。 Couchbase是一个产品和公司,该公司是NorthScale(Membase)和CouchDB创始人的合并,公司和产品的最终名称是Couchbase。

更新操作(替换和[强制]设置)首先更新RAM缓存,后续读取是新值,这是一致性模型。

Couchbase是一种“最终持久”(EP)架构,其中CRUD操作首先更新RAM缓存,并插入到磁盘i / o的EP队列中。同时,配置副本时,它们将进入副本队列并传输到其他节点。 EP架构允许立即一致性和超高吞吐量,因为磁盘i​​ / o是所有系统中最慢的组件。

正如WiredPrairie所提到的,单个节点对给定密钥负责/主动。密钥是哈希的,哈希的结果是它应该存在的特定分区.sdk维护的partition-> couchbase-node映射允许它们直接转到每个分区的活动节点。同样,这减少了延迟,因为它不必通过负载平衡器(它由架构本身负载平衡),也不通过“主”节点,每个节点都是主节点,也不是通过“分片大师”,其作用是将客户端重定向到特定分片。通过绕过所有这些,延迟降至最低。

答案 1 :(得分:5)

Couchbase通过强制执行特定数据的所有读取到集群中的单个节点来保证强一致性。您无法从副本中读取。如果可以,您最终可能会得到不一致的数据。

使用2.0 XDCR时,Couchbase仅提供最终的一致性。

我不会说这是除了他们的软件的特定设计要求之外的任何“结果”。

this blog帖子中有一些其他信息。

答案 2 :(得分:1)

我认为它不具有强一致性,因为如果一个节点具有活动的vbucket重启,数据尚未复制或尚未保留,则会丢失数据; 强一致性需要W + R> N,并且R = 1,所以我们需要W = N,这意味着所有复制品都应该是ACID; 我们可以称之为伪强一致性