Couchbase如何实现强一致性

Couchbase如何实现强一致性,couchbase,membase,Couchbase,Membase,我寻找关于Couchbase如何在集群内实现强一致性的解释。所有这些都是使用membase的结果吗?Couchbase通过强制将对特定数据段的所有读取转到集群中的单个节点来保证强一致性。无法从复制副本中读取。如果可以,最终可能会得到不一致的数据 使用2.0 XDCR时,Couchbase只提供最终的一致性 我不会说这是他们对软件的特定设计要求之外的任何东西的“结果” 帖子中还有一些附加信息。Couchbase是membase顺便说一句。Couchbase是一个产品和一家公司,该公司是NorthS

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

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

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

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


帖子中还有一些附加信息。

Couchbase是membase顺便说一句。Couchbase是一个产品和一家公司,该公司是NorthScale(membase)和CouchDB创始人的合并,由此产生的公司和产品名称都是Couchbase

更新操作(replace和[forced]set)首先更新RAM缓存,后续读取是新值,这是一致性模型

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


如WiredPairie所述,单个节点负责/激活给定密钥。密钥被散列,散列的结果是它应该存在的特定分区。sdk维护的partition->couchbase节点映射允许它们直接转到每个分区的活动节点。同样,这减少了延迟,因为它不需要通过负载平衡器(它的负载由体系结构本身平衡),也不需要通过“主”节点,每个节点都是主节点,也不需要通过“分片主节点”,其任务是将客户机重定向到特定分片。通过绕过所有这些,延迟被减少到最小值。

我认为这不是很强的一致性,因为如果一个具有活动vbucket的节点重新启动,数据尚未被复制或保留,它将丢失数据; 强一致性需要W+R>N,这里R=1,所以我们需要W=N,这意味着所有副本都应该是酸性的;
我们可以称之为假强一致性

你说的“强一致性”是什么意思?我的意思是在写操作时立即一致。在这个官方的Riak比较中,它说这是完全一致的,如果存在潜在的数据丢失,你怎么能称之为“最终持久化”呢?此外,观点最终是一致的,而不是直接的。