我在cassandra中的范围选择有一个问题:它有一段时间不会返回所有数据。它是一个2.1.0集群。可从Apache获得二进制文件。
这是我的桌子:
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但是,如果我像这样使用a范围选择:
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参数,有时会得到几行的正确结果。
一个节点工具的修复不能解决问题。
我在吉拉没有找到任何关于这个问题的票。有人知道这个问题吗?谢谢你的帮助。
编辑:更多信息:复制因子=3集群有8个或9个节点,大部分时间增量使用javaDriver2.1.5完成,并使用以下命令准备语句:UPDATE main_cnt SET time = time + ?, \"count\" = \"count\" + ?, error = error + ?, apdex_s = apdex_s + ?, apdex_t = apdex_t + ? WHERE gran = ? AND dt = ? AND ctx = ? AND eid = ? AND io = ?
正常选择的跟踪:不正确范围选择的trace1.log跟踪:trace2.log
发布于 2015-07-26 12:39:05
不知道为什么,但在将集群升级到cassandra 2.1.8之后,问题就解决了。
https://stackoverflow.com/questions/30713744
复制相似问题