Raj*_*pta 10 database eventual-consistency cassandra nosql
当单个集群中的节点不包含相同数据的副本但数据在节点之间分布时,Cassandra中的最终一致性是什么意思.现在,因为在一个地方(节点)记录了一个数据.为什么Cassandra不会从那个单一的记录中返回最近的价值?在这种情况下如何产生多个副本?
Cassandra 的一致性是可调的。什么可以调?
* 需要就读取数据达成一致的节点数.. 称之为 R * 需要就写入数据达成一致的节点数.. 称之为 W
在 3 个节点的情况下,如果我们选择 2R 和 2W.. 那么在读取,如果 2 个节点同意一个值,那就是真值。第三个可能有也可能没有相同的值。
在写的情况下,如果选择2W,那么如果数据写到2个节点,就足够了。这个模型是一致的。
如果 R + w <= N 其中 N 是节点数,它将最终一致。
Cassandra 为每一列和列的每个字段维护一个时间戳,以最终变得一致。后台有一种机制可以达到一致状态。
但就像我说的,如果 R + W > N,那么它是一致的。这就是为什么一致性在 Cassandra 中被认为是可调的。
由客户端决定适当的一致性级别(零、任意、一、法定人数或全部)。(一致性级别根据复制因子控制读取和写入行为。)在单节点集群中,一致性级别any、one、quorom 和all 是等效的。