我收到了这些错误:
java.lang.IllegalArgumentException:16.000MiB的突变太大,最大大小为16.000MiB
在Apache Cassandra 3.x中。我正在插入4MB或8MB blob,但不能超过8MB。为什么我达到了16MB的限制? Cassandra是否批量编写多个写入(插入)并创建"突变"太大了? (如果是这样,为什么会这样做,因为配置的限制是8MB?)
关于突变的文档很少 - 除了说突变是插入或删除。我该如何防止这些错误?
答案 0 :(得分:4)
您可以在cassandra.yaml
中将提交日志大小增加到64 MBcommitlog_segment_size_in_mb:64
默认情况下,commitLog大小为32 MB。
根据设计意图,允许的最大段大小是配置的commit_log_segment_size_in_mb的50%。这是如此Cassandra避免编写具有大量空白空间的段。
你应该调查写入大小突然增加的原因。如果不是预期的,即由于计划的更改,那么客户端应用程序可能需要进一步检查。