1

We caught the error "Mutation of 17156436 bytes is too large for the maximum size of 16777216" in Cassandra.

I understand, we should increase the commitlog_segment_size_in_mb to 64 mb as mutation usually use 1/2 of commilog_segment_size and we were using 32 mb.

Now, I understand, how commitlog_segment_size_in_mb works.

Is it because the size of writes has increased, or is it because commitlog has increased because the size of writes went high? I mean multiple writes in commitlog or one write request which has more than 16mb of size.

Thanks in advance.

Cheers,

Mukesh kumar

We updated the commitlog_segment_size_in_mb to 64 so that it can write more than 16mbs of data, as mutation is half of the commitlog segment.

1 Answers1

2

This warning is issued when one mutation is greater than half of the commitlog_segment_size_in_mb. Mutation in Cassandra is a single change in data, and may correspond to one or more changes to the same partition (insert/delete/update). If you're using unlogged batch on the same partition, this change is also sent as one mutation, even it could contain hundreds or thousand of changes.

Really, you need to investigate why this happens - either you have too big unlogged batch, and it's better to decrease it, or you have a too big update of single row - for example, if you have very large number of elements in collection, or too big text - it's also not very good, so it's better to adjust data model, etc.

Alex Ott
  • 80,552
  • 8
  • 87
  • 132