我有cassandra在3个节点上运行,其中一致性为1. Nodetool修复也安排在服务器上。
现在我观察到在nodetool修复过程中,我的写入超时,即使重试最终导致我的数据提取服务。
com.datastax.driver.core.exceptions.WriteTimeoutException:在com.datastax.driver.core.exceptions.WriteTimeoutException.copy(WriteTimeoutException.java)的一致性LOCAL_ONE(需要1个副本但只有0确认写入)的写查询期间的Cassandra超时:73)
当nodetool修复正在进行时,我们可以进行写操作吗?
通常这会在节点过载时发生 - 在比较不同服务器上的数据时,nodetool修复需要密集的输入/输出,这会给服务器增加额外的负载,以及额外的垃圾收集等,并可能导致超时。此外,修复可能会触发压缩,这也会增加额外的IO负载。
请检查Cassandra盒子上的system.log
,并调整一些参数 - Java垃圾收集,Java堆大小等。