我们在cassandra中发现错误“17156436字节的变异对于16777216的最大大小来说太大了”。
我知道,我们应该把commitlog\u segment\u size\u(单位:mb)增加到64 mb,因为变异通常使用commitlog\u segment\u size的1/2,而我们使用的是32 mb。
现在,我明白了,commitlog\u segment\u size\u in\u mb是如何工作的。
是因为写入的大小增加了,还是因为commitlog增加了,因为写入的大小变大了?我的意思是commitlog中的多个写操作或者一个大小超过16mb的写请求。
提前谢谢。
干杯,
库马尔
我们将commitlog_segment_size_in_mb更新为64,以便它可以写入超过16mbs的数据,因为变异是commitlog segment的一半。
1条答案
按热度按时间zpqajqem1#
当一个突变大于基因的一半时,就会发出警告
commitlog_segment_size_in_mb
. cassandra中的突变是数据中的一个变化,可能对应于同一分区的一个或多个变化(insert/delete/update)。如果您在同一个分区上使用unlogged批处理,那么这个更改也会作为一个变种发送,即使它可能包含成百上千个更改。实际上,您需要研究为什么会发生这种情况—要么是因为有太大的未标记批处理,最好减少它,要么是因为单行的更新太大—例如,如果集合中有非常多的元素,或者文本太大—也不是很好,所以最好调整数据模型,等等。