间歇性的Cassandra读取失败,可能是因为超时

时间:2016-06-16 19:09:57

标签: cassandra

我遇到了从卡桑德拉那里读到的间歇性问题。使用cqlsh和java驱动程序会出现问题。

例如,在cqlsh中,命令

  

从a_table中选择distinct count(partitionKeyColumnName);

通常按预期工作,但偶尔会抛出

function charcount(c, str) {
  return str.replace(new RegExp('[^'+c+']','g'),'').length
}

console.log = function(x) { document.write(x + "<br />"); };
console.log( "'*' in '4*5*6' = " + charcount('*', '4*5*6') ) // outputs 2
console.log( "'p' in 'pineapples' = " + charcount('p', 'pineapples') )// outputs 3

如果我使用java驱动程序发出相同的命令,结果通常是正确的,但偶尔会抛出驱动程序

Traceback (most recent call last):
File "/home/moi/h/sw_projects/senta12/apache-cassandra-3.5/bin/cqlsh.py", line 1317, in perform_simple_statement
result = future.result()
File "/home/user/apache_dir/apache-cassandra-3.5/bin/../lib/cassandra-driver-internal-only-3.0.0-6af642d.zip/cassandra-driver-3.0.0-6af642d/cassandra/cluster.py", line 3122, in result raise self._final_exception
ReadFailure: code=1300 [Replica(s) failed to execute read] message="Operation failed - received 0 responses and 1 failures" info={'failures': 1, 'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'}

配置(这本质上是一个测试系统):

  • 在单个节点上运行的完全运行的apache-cassandra-3.5。
  • 没有更改任何参数。
  • 卡桑德拉-java的驾驶员3.0.0。
  • 密钥空间的复制因子= 1.
  • 客户端(cqlsh和java驱动程序)与Cassandra服务器位于同一物理系统上(即所有访问都是本地的)
  • 一次只有一个客户端访问Cassandra。

正在查询的表有大约1.22亿行(相当均匀)分布在730个分区键值上。

问题的不一致令人不安,我完全不确定如何解释它。也许服务器中的某些东西是超时的,但如果是这种情况,我会期望更一致的失败,特别是因为系统上的负载总是相同的。

对此的任何想法都将不胜感激。

0 个答案:

没有答案