DataStax Help Center

Mutation of <x> bytes is too large for the maxiumum size of <y>

Summary

Apache Cassandra will discard mutations larger than a predetermined size. This note addresses why this happens and what can be done to address this.

Symptoms

The following message is an example of what might be seen in the system.log

WARN  [SharedPool-Worker-4] 2015-11-28 20:04:44,663  AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread Thread[SharedPool-Worker-4,5,main]: {}
java.lang.IllegalArgumentException: Mutation of 28087887 bytes is too large for the maxiumum size of 16777216

This means Cassandra will discard this write as it exceeds 50% of the configured commit log segment size.

Cause

By design intent the maximum allowed segment size is 50% of the configured commit_log_segment_size_in_mb. This is so Cassandra avoids writing segments with large amounts of empty space.

To elaborate; up to two 32MB segments will fit into 64MB, however 40MB will only fit once leaving a larger amount of unused space. 

Workaround

In this case the following setting in the cassandra.yaml file can be increased:

commitlog_segment_size_in_mb: 64

Solution

The user should investigate as to why their write size has suddenly increased. If it is not expected i.e. due to a planned change then it may well be a problem with the client application that needs further inspection.

Was this article helpful?
2 out of 3 found this helpful
Have more questions? Submit a request

Comments

Powered by Zendesk