在使用Cassandra 3.10群集进行了几周的压力测试后,突然出现了错误"Mutation of x bytes is too large",所有6个节点都出现了高CPU负载(例如 load average: 33.26, 32.47, 32.15 ) .

执行的查询的大小没有变化,因此我们尝试增加 commit_log_segment_size_in_mb . 它没有多大帮助 . nodetool info 的结果如同风箱 .

Gossip active          : true
Thrift active          : false
Native Transport active: true
Load                   : 126.04 GiB
Generation No          : 1498838154
Uptime (seconds)       : 68795
Heap Memory (MB)       : 3258.00 / 8004.00
Off Heap Memory (MB)   : 597.23

插入一些 blob ,具有可预测的最大尺寸(并且由退化时间保持不变)或~18kb(平均~10kb) .

数据主要使用单分区原子/记录批次(具有可配置且可预测的最大批量大小)进行更新,因为它根据压力测试提供了最佳吞吐量 . 请注意,即使现在还原为单个异步更新也无法解决此问题 .

什么可能导致表演突然退化?

数据量增加了(〜* 1.1),但我不希望它导致这种不成比例的问题(不存在与之相关的可用磁盘存储) . 我希望 Cassandra 在这种情况下能够很好地扩展 .

谢谢你的想法