繁体   English   中英

最终在Cassandra中的一致性是什么意思?

[英]Meaning of eventual consistency in Cassandra?

当单个群集中的节点不包含相同数据的副本但数据在节点之间分布时,Cassandra中最终一致性的含义是什么。 现在,由于在单个位置(节点)记录了单个数据。 为什么Cassandra不从单个记录位置返回最近的值? 在这种情况下如何产生多份副本?

Cassandra的一致性是可调的。 可以调整什么?
*同意用于读取的数据的节点数。称其为R *同意用于写入的数据的节点数。称其为W
在3个节点的情况下,如果我们选择2R和2W ..那么在读取期间,如果2个节点都同意一个值,那就是真实值。 第三个值可能相同也可能不同。
在写入的情况下,如果选择2W,则如果将数据写入2个节点,则认为足够了。 该模型是一致的。
如果R + w <= N,其中N是节点数,则最终将保持一致。
Cassandra为每个列和每个列的字段维护一个时间戳,以最终变得一致。 在后台有一种机制可以达到一致的状态。
但是就像我说的那样,如果R + W> N,那么它是一致的固体。 这就是为什么一致性在Cassandra中被认为是可调的。

即使复制因子= 1,一致性也不一定是立即的,因为写入会在发送到的节点上进行缓冲,因此不一定会立即发送到负责该密钥的节点。

但这取决于您选择的一致性级别。

大多数情况下,Cassandra的用例的复制因子> 1,这在一致性方面变得更加重要。 RF = 3似乎是一个常见设置(因为它允许Quorum读/写,而一个节点不可用)

由客户决定适当的一致性级别(零,任意,一个,法定人数或全部)。 (一致性级别基于您的复制因子控制读取和写入行为。)在单节点群集中,任何,一个,全部和全部的一致性级别是等效的。

这是有关最终一致性的很好的解释: http : //www.allthingsdistributed.com/2008/12/eventually_consistent.html

Cassandra倾向于牺牲延迟和可用性的一致性。 它“最终是一致的”,这是用于分布式设置的NoSQL数据库一致性模型。 最终的一致性并没有维持可能会导致规模缓慢降低的严格一致性,而是提高了可用性,只是以不立即在所有服务器之间同步数据的每个实例为代价。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM