【发布时间】:2016-09-04 00:15:28
【问题描述】:
我在尝试从 Cassandra 表中读取数据时遇到了一个奇怪的错误。我有一个单节点安装,使用默认设置。这是我正在做的查询:
SELECT component_id,
reading_1,
reading_2,
reading_3,
date
FROM component_readings
WHERE park_id=2
AND component_id IN (479)
AND date >= '2016-04-09+0000'
AND date <= '2016-05-08+0000';
component_readings 是一个简单的表,没有聚类条件:
CREATE TABLE component_readings (
park_id int,
component_id int,
date timestamp,
reading_1 decimal,
reading_2 decimal,
...
PRIMARY KEY ((park_id), component_id, date)
);
使用一些 component_id 值,它可以工作,而使用其他值,它会失败。这是我得到的错误:
cassandra.ReadFailure: code=1300 [Replica(s) failed to execute read]
message="Operation failed - received 0 responses and 1 failures"
info={'required_responses': 1, 'received_responses': 0, 'failures': 1,
'consistency': 'LOCAL_ONE'}
而 cassandra 的 system.log 显示此错误:
ERROR [SharedPool-Worker-1] 2016-05-09 15:33:58,872 StorageProxy.java:1818 -
Scanned over 100001 tombstones during query 'SELECT * FROM xrem.component_readings
WHERE park_id, component_id = 2, 479 AND date >= 2016-04-09 02:00+0200 AND date <=
2016-05-08 02:00+0200 LIMIT 5000' (last scanned row partion key was ((2, 479),
2016-05-04 17:30+0200)); query aborted
奇怪的是,我只有在从外部程序(通过 python cassandra-connector)进行查询时才会收到错误消息。如果我直接在 cqlsh shell 中制作,它可以完美运行。
我的安装是 cassandra 2.2,但我已经升级到 3.5,我得到了同样的错误。
【问题讨论】:
-
如果在请求中将一致性级别设置为仲裁会发生什么?
-
同样的问题:
cassandra.ReadFailure: code=1300 [Replica(s) failed to execute read] message="Operation failed - received 0 responses and 1 failures" info={'received_responses': 0, 'failures': 1, 'required_responses': 1, 'consistency': 'QUORUM'} -
你只有一个副本?
-
是的。正如我所说,这是一个单节点安装。
-
如果这真的是墓碑问题,你看过stackoverflow.com/questions/27340812/…吗?
标签: cassandra