我遇到了从卡桑德拉那里读到的间歇性问题。使用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'}
配置(这本质上是一个测试系统):
正在查询的表有大约1.22亿行(相当均匀)分布在730个分区键值上。
问题的不一致令人不安,我完全不确定如何解释它。也许服务器中的某些东西是超时的,但如果是这种情况,我会期望更一致的失败,特别是因为系统上的负载总是相同的。
对此的任何想法都将不胜感激。