我正在使用Cassandra处理应用程序,并且正在尝试跟踪我的查询以监控执行速度。
我一直在使用datastax中的python驱动程序并设置跟踪
prepared_statement = session.prepare(statement)
cmd = prepared_statement.bind(binding_params)
result = session.execute(cmd, trace = True)
print 'Duration: ', result.get_query_trace().duration.total_seconds()
这适用于upserts(插入或更新)。但是,对于select语句,我收到错误
Error from server: code=1000 [Unavailable exception] message="Cannot achieve
consistency level LOCAL_ONE" info={'required_replicas': 1, 'alive_replicas':
0, 'consistency': 'LOCAL_ONE'}
Traceback (most recent call last):
File <source>, line 99, in processCQLRequest
trace = result.get_query_trace()
File "xxxx/python-packages/cassandra/cluster.py", line 4124, in get_query_trace
return self.response_future.get_query_trace(max_wait_sec)
File "xxxx/python-packages/cassandra/cluster.py", line 3867, in get_query_trace
return self._get_query_trace(len(self._query_traces) - 1, max_wait, query_cl)
File "xxxx/python-packages/cassandra/cluster.py", line 3882, in _get_query_trace
trace.populate(max_wait=max_wait, query_cl=query_cl)
File "xxxx/python-packages/cassandra/query.py", line 942, in populate
SimpleStatement(self._SELECT_SESSIONS_FORMAT, consistency_level=query_cl), (self.trace_id,), time_spent, max_wait)
File "xxxx/python-packages/cassandra/query.py", line 981, in _execute
return future.result()
File "xxxx/python-packages/cassandra/cluster.py", line 3840, in result
raise self._final_exception
我可以说这是系统密钥空间中某个表的一致性问题,但有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
在您的请求中,看起来其中一个Cassandra节点可能已关闭。插入/更新进行得很顺利,因为当Cassandra集群中的节点关闭时,Cassandra能够存储提示。
检查&#34; NODETOOL STATUS&#34;的输出命令并确保所有节点都已启动。如果它们已经停机较长时间,请在继续进行查询处理之前尝试运行修复。