Cassandra:范围选择结果不正确

标签 cassandra

我对 cassandra 中的范围选择有疑问:它有时不会返回所有数据。 它是一个 2.1.0 集群。可从 Apache 获得二进制文件。

这是我的 table :

CREATE TABLE metrics.main_cnt (
gran ascii,
ctx ascii,
io ascii,
eid uuid,
dt bigint,
apdex_s counter,
apdex_t counter,
"count" counter,
error counter,
time counter,
PRIMARY KEY ((gran, ctx, io, eid), dt))

我在该表中有很多行,如果我执行此查询:

SELECT * from main_cnt WHERE gran = 'min' AND ctx ='A' AND io = 'i' AND eid =4379eec6-ba09-4f70-8862-1c864595c371 and dt in (1420644000000, 1420640400000);

我得到了那个结果:

 gran | ctx | io | eid                                  | dt            | apdex_s | apdex_t | count | error | time
------+-----+----+--------------------------------------+---------------+---------+---------+-------+-------+--------
  min |   A |  i | 4379eec6-ba09-4f70-8862-1c864595c371 | 1420640400000 |     671 |       4 |   677 |     0 | 168253
  min |   A |  i | 4379eec6-ba09-4f70-8862-1c864595c371 | 1420644000000 |     554 |      10 |   566 |     0 | 192666

但是如果我像这样使用范围选择:

SELECT * from main_cnt WHERE gran = 'min' AND ctx ='A' AND io = 'i' AND eid =4379eec6-ba09-4f70-8862-1c864595c371 and dt >= 1420640400000 and dt <= 1420644000000;

我只得到一行:

 gran | ctx | io | eid                                  | dt            | apdex_s | apdex_t | count | error | time
------+-----+----+--------------------------------------+---------------+---------+---------+-------+-------+--------
  min |   A |  i | 4379eec6-ba09-4f70-8862-1c864595c371 | 1420640400000 |     671 |       4 |   677 |     0 | 168253

我也尝试增加范围但没有更好的结果。 这不是唯一的情况,但如果我更改 dt 参数,我有时会得到多行的正确结果。

nodetool 修复 无法解决问题。

我没有在 Jira 中找到任何关于此类问题的工单。 有谁知道这个问题? 感谢您的帮助。

编辑:更多信息: 复制因子 = 3 集群大部分时间有 8 或 9 个节点 增量使用 java 驱动程序 2.1.5 完成,并使用此命令准备语句:UPDATE main_cnt SET time = time + ?,\"count\"=\"count\"+ ?, error = error + ?, apdex_s = apdex_s + ?, apdex_t = apdex_t + ?在哪里格兰=?和 dt = ?和 ctx = ?和开斋节=?和 io = ?

正常选择的跟踪: trace1.log 跟踪不正确的范围选择: trace2.log

最佳答案

不知道为什么,但在将集群升级到 cassandra 2.1.8 后问题得到解决。

关于Cassandra:范围选择结果不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30713744/

相关文章:

cassandra - 为什么 Cassandra 忽略我的架构修改?

cassandra - 如何在 ubuntu 上重新安装 cassandra?

linux - 以编程方式加载 Cassandra 架构

cassandra - 如何删除 Cassandra 列族中的所有数据?

Cassandra 表的常量墓碑压缩

indexing - cassandra索引多列

c# - DataStax Cassandra C# 驱动程序 : WHERE IN (? ) 使用集合参数进行查询

serialization - 无法使用 spark streaming、cassandra 和 mllib 序列化的任务

cassandra - 如何更改 cassandra/scylla 中的默认压缩策略?

Cassandra 脚本将日期更改为即时类型