Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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
Cassandra 使用一致性级别仲裁进行读写,并使用降级一致性策略重试_Cassandra - Fatal编程技术网

Cassandra 使用一致性级别仲裁进行读写,并使用降级一致性策略重试

Cassandra 使用一致性级别仲裁进行读写,并使用降级一致性策略重试,cassandra,Cassandra,我使用的读写查询的CL为quorum,但我使用了DowngradingConsistencyRetryPolicy以获得更高的可用性。在以下情况下会发生什么情况: 集群有3个节点,RF为3。由于重试策略,一个写入查询导致CL One。因此,该单元的值为v0,节点0和节点1的时间戳为t0。节点2处时间戳为t1的v1。t1>t0 当我尝试读取此单元格的CL为quorum时会发生什么?我是否得到过时的数据或某些错误。当执行读取修复时?在复制系数为3且读取一致性级别为仲裁的单个数据中心群集中,给定行的3

我使用的读写查询的CL为quorum,但我使用了DowngradingConsistencyRetryPolicy以获得更高的可用性。在以下情况下会发生什么情况:

集群有3个节点,RF为3。由于重试策略,一个写入查询导致CL One。因此,该单元的值为v0,节点0和节点1的时间戳为t0。节点2处时间戳为t1的v1。t1>t0


当我尝试读取此单元格的CL为quorum时会发生什么?我是否得到过时的数据或某些错误。当执行读取修复时?

在复制系数为3且读取一致性级别为仲裁的单个数据中心群集中,给定行的3个副本中的2个必须响应以满足读取请求。如果联系的复制副本具有不同的行版本,则具有最新版本的复制副本将返回请求的数据。在后台,将检查第三个副本与前两个副本的一致性,如果需要,将为过期的副本启动读取修复


读取修复还取决于在columnfamily级别设置的读取修复机会值。默认情况下,该值为
0.10
,这意味着100个读取请求中有10个将启动读取修复

,因此,如果选择了Node0和Node1,则有可能获得过时数据。但后台修复将运行,我将在下次查询时获得实际数据。另外,从您发布的链接中,我了解到read_repair_chance仅用于CL ONE。对于QUORUM,总是有一个读取修复阶段。在这种情况下,您将获得具有最新时间戳的数据