我们在Cassandra中发现错误“17156436字节的突变对于16777216的最大大小来说太大了”。
我理解,我们应该将commitlog_segment_size_in_mb增加到64mb,因为突变通常使用commilog_segment_size的1/2,而我们使用的是32mb。
现在,我明白了,commitlog_segment_size_in_mb是如何工作的。
是因为写入的大小增加了,还是因为写入的大小变高而增加了提交日志?我指的是提交日志中的多个写操作,或者一个大小超过16mb的写请求。
提前谢谢。
干杯,
穆凯什·库马尔
我们将commitlog_segment_size_in_mb更新为64,这样它可以写入超过16MB的数据,因为突变是提交日志段的一半。
发布于 2019-11-12 18:32:05
当一个突变大于commitlog_segment_size_in_mb的一半时,将发出此警告。Cassandra中的突变是数据中的单个更改,可能对应于对同一分区的一个或多个更改(插入/删除/更新)。如果您在同一分区上使用未记录的批处理,则此更改也会作为一个突变发送,即使它可能包含数百或数千个更改。
实际上,你需要调查为什么会发生这种情况--要么你有太大的未记录的批处理,最好减少它,要么你有太大的单行更新-例如,如果你在集合中有非常多的元素,或者太大的文本-这也不是很好,所以最好调整数据模型,等等。
https://stackoverflow.com/questions/58816451
复制相似问题