我有一个简单的单节点 Cassandra 集群,它具有基本的键空间配置replication_factor=1
在这个键空间中,我们有大约 230 个表。每个表大约有 40 列。我们对这些表的写入速度大约是每天一次在五分钟内写入 30k 次。我有大约 6 个python
工作脚本,它们一次对任何一张表进行这些写入,并且它们都将继续进行这些写入,直到当天所有 230 个表都被写入。脚本使用python cassandra-driver
一个简单的会话来进行这些写入。就这里写入的数据而言,其中很多是nulls
.
实际上,如果我是对的,这可以被认为是 6 个并发连接,每天 5 分钟内产生 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 的性能吗?
到目前为止,我读过的所有解决方案都与多节点集群有关,而我找不到适用于单节点集群的解决方案。
我觉得我们的集群不健康,我的努力应该针对那里的修复。如果是这样,我不确定从哪里开始。谁能指出我正确的方向?
如果有任何进一步的信息我可以提供帮助,请告诉我。