Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 《卡桑德拉》中最终一致性的含义?_Database_Nosql_Cassandra_Eventual Consistency - Fatal编程技术网

Database 《卡桑德拉》中最终一致性的含义?

Database 《卡桑德拉》中最终一致性的含义?,database,nosql,cassandra,eventual-consistency,Database,Nosql,Cassandra,Eventual Consistency,当单个集群中的节点不包含相同数据的副本,但数据分布在节点之间时,Cassandra中最终一致性的含义是什么。现在,由于在单个位置(节点)记录单个数据点。为什么卡桑德拉不从记录的那个地方返回最近的值?在这种情况下如何产生多个副本?由客户决定适当的一致性级别(零、任意、一、quoram或全部)。 (一致性级别根据您的replicationfactor控制读写行为。) 在单节点集群中,一致性级别any、one、quorom和all是等效的。即使复制因子为1,一致性也不一定是立即的,因为写入操作在发送到

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

由客户决定适当的一致性级别(零、任意、一、quoram或全部)。 (一致性级别根据您的replicationfactor控制读写行为。)
在单节点集群中,一致性级别any、one、quorom和all是等效的。

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

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


Cassandra的主要用例是复制因子>1,这是一致性成为一个更大问题的地方。RF=3似乎是一个常见的设置(因为它允许在一个节点不可用的情况下进行仲裁读/写)

下面是关于最终一致性的一个很好的解释:

Cassandra倾向于牺牲可用性的延迟和一致性。它是“最终一致的”,一个用于分布式设置的NoSQL数据库一致性模型。最终的一致性实现了高可用性,而不是保持严格的一致性,这可能会在一定程度上降低速度。代价是,您的每个数据实例都不能立即在所有服务器上同步。

Cassandra的一致性是可调的。可以调谐什么?
*在读取数据上达成一致所需的节点数。。叫它R *就写入数据达成一致所需的节点数。。称之为W
对于3个节点,如果我们选择2R和2W。。然后在读取过程中,如果两个节点在一个值上达成一致,则该值为真值。第三个可能有,也可能没有相同的值。
在写的情况下,如果选择2W,那么如果将数据写入2个节点,则认为已经足够了。此模型是一致的。

如果R+wn,那么它是一致的。这就是为什么一致性在Cassandra中被认为是可调的。

但是什么数据之间的一致性呢?因为单个数据位于集群中的单个位置。。没有数据的多个副本..那么一致性是什么呢?在单节点群集上,您不必担心一致性(只要您不进行异步写入(CL.ZERO,不要使用这个)。很抱歉,我想您弄错了。。我的意思是,在一个有多个节点的集群中,数据是分布式/分片的(而不是复制的),因此n节点cassandra集群中的不同节点之间不存在单个数据段的多个副本,那么在这种情况下,实际上没有多个副本的情况下,一致性是如何定义的呢?。。。我希望你明白我的意思。如果你有一个replicationfactor=1,那么每个数据集只有一个副本。正如我在上面的回答中所说:“一致性级别根据您的复制因子控制读写行为”写入从memtable(内存缓冲区)刷新到磁盘(=到负责节点)需要多长时间?