Cassandra协调器读取超时计数操作与选择全部

时间:2018-01-12 20:21:25

标签: cassandra datastax-enterprise datastax-java-driver cassandra-3.0 cqlsh

我有4个节点dse 5.1.2 avss上的Cassandra集群每个节点都有3 gb data.i我试图查询该数据。我知道我不应该做下面的查询,因为它在cassandra中有不良影响。但我观察到的是

  

select * works,但select count(*)失败

在同一个表上,协调器超时。当读取时在后台执行相同的操作时,为什么会有区别。 我的群集100%修复,并且没有在该表中找到墓碑。我还在cqlsh命令中增加了读取请求超时。

我收到以下查询错误

select count(*) from xxx.xxxx;

ReadTimeout: Error from server: code=1200 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info={'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'}

1 个答案:

答案 0 :(得分:0)

如果您通过cqlsh运行这些命令,那么它们并不完全相同。

cqlsh的默认限制为10000行,因此,除非您更改了select *所带来的全部限制。

select count(*)将在所有节点上进行全表扫描以获取计数,从而超时。