Cassandra有时会跳过SELECT查询中的记录

时间:2019-05-17 12:16:29

标签: cassandra

我的设置是:

  • 卡桑德拉1.2.19
  • 具有4个节点的单个数据中心集群
  • 复制因子为3的NetworkTopologyStrategy
  • 写入数据库的一致性级别设置为LOCAL_QUORUM

我正在尝试对给定表中的所有记录进行迭代,并且使用一些旧有的应用程序代码来进行迭代,该代码使用这种类型的连续选择查询批量获取数据:

SELECT * FROM records WHERE TOKEN(partition_key) > last_partition_key_of_previous_batch LIMIT 1000;

问题在于某些记录有时会被跳过。我还注意到,这些跳过的记录是旧的,是几个月前添加到数据库中的。

所有选择查询均以一致性级别ONE执行。

这可能是原因吗?

根据我对读取的一致性级别为ONE时的一致性级别的了解,仅要求一个节点执行查询。

是否有可能有时执行查询的节点未包含所有记录,这就是为什么有时会丢失某些记录的原因?

1 个答案:

答案 0 :(得分:1)

将查询的一致性级别更改为QUORUM可以解决此问题。