解决写入时 Cassandra 协调器节点超时的方法



我有一个简单的单节点 Cassandra 集群,具有基本的密钥空间配置,具有replication_factor=1

在这个密钥空间中,我们有大约 230 个表。每个表大约有 40 列。我们对这些表进行的写入大约是每天一次在五分钟内写入 30k 次的速度。我有大约 6 个pythonworker 脚本一次对任何一个表进行这些写入,它们都将继续进行这些写入,直到当天所有 230 个表都写入。脚本使用具有简单会话的python cassandra-driver来进行这些写入。就这里写入的数据而言,其中很多都是nulls.

实际上,如果我是对的,这可以被认为是 6 个并发连接,每天在五分钟内制作 30k+ 条目。

我了解 cassandra 如何编写和删除工作,并且熟悉协调器节点等。我观察到间歇性发生的回溯,如下所述:

"cassandra/cluster.py", line 2030, in cassandra.cluster.Session.execute (cassandra/cluster.c:38536)
app_nstablebuilder.1.69j772led82k@swarm-worker-gg37    |   File "cassandra/cluster.py", line 3844, in cassandra.cluster.ResponseFuture.result (cassandra/cluster.c:80834)
app_nstablebuilder.1.69j772led82k@swarm-worker-gg37    | cassandra.WriteTimeout: Error from server: code=1100 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info={'consistency': 'ONE', 'required_responses': 1, 'received_responses': 0}

我的问题与如何解决这个问题有关。我无法验证问题是否来自我的工人脚本或 Cassandra 集群本身。我应该放慢我的工人写字的速度吗?我应该运行某种诊断来提高Cassandra的性能吗?

到目前为止,我读过的所有解决方案都与多节点集群有关,我找不到单节点集群的解决方案。

我觉得我们的集群不健康,我的努力应该针对那里的修复。如果是这样,我不确定从哪里开始。谁能指出我正确的方向?

如果我可以提供任何进一步的信息来提供帮助,请告诉我。

插入空值将创建逻辑删除。从查询中排除空列不会创建逻辑删除。你可以在这里阅读一些关于这个问题的内容。我不确定插入空值是否会导致这种情况,但插入空值(这将创建墓碑(绝对是一个需要考虑的改进。

最新更新