代码=1200将cassandra升级到3.11.3后出错

bakd9h0s  于 2021-06-15  发布在  Cassandra
关注(0)|答案(1)|浏览(617)

我刚刚继承了一个具有3个节点的系统,其中2个在一个数据中心中,复制因子为2,1个在另一个数据中心中,复制因子为1。系统从cassandra 3.9升级到cassandra 3.11.3。升级后,cqlsh中的任何查询都会返回错误

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': 2, 'consistency': 'LOCAL_QUORUM'}

有没有人能告诉我是什么导致了这个问题,或者我应该在哪里找出问题?
编辑:我以一致性1重试了查询,但仍然收到错误

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'}
3qpi33ja

3qpi33ja1#

评论时间太长了。。。
有一些事情可能会导致这种情况。
1-最大的分区有多大?我会用以下方法检查:

bin/nodetool tablestats yourKeyspaceName.ablog | grep "partition maximum"

如果返回的是两位数gb范围内的内容,您就有麻烦了。
有墓碑吗?您可以使用类似的命令检查:

bin/nodetool tablestats yourKeyspaceName.ablog | grep "tombstones"

如果返回的是3或4位数字,那可能是个问题。
3-降级至3.11.2。3.11.2和3.11.3使用相同的sstable格式。这只是一个关闭二进制文件的问题。下载/untar3.11.2,将conf dir从3.11.3目录中移入,就可以了。
我只是建议你这样做,因为你可能会遇到Cassandra-14672。
4-local\u quorum w/rf=2正如我在评论中提到的,在rf<3的local\u quorum处查询与查询没有任何区别。Cassandra计算法定人数(多数)如下:
仲裁=(rf/2)+1=(2/2)+1=2(副本需要响应)
说真的,你这样做什么也得不到。只有当射频为3或更多时,才有意义:
仲裁=(rf/2)+1=(3/2)+1=2(副本需要响应)
实际上,在rf=2的quorum中查询会对您造成伤害,因为您不能容忍单个节点关闭。

相关问题