Details
-
Improvement
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
None
Description
If there's not enough space for a compaction it won't do it and print the exception below. Sometimes we know compaction will free up lot of space since an ETL job could have inserted a lot of deletes. This override helps in this case.
ERROR [CompactionExecutor:17] CassandraDaemon.java (line 258) Exception in thread Thread
[CompactionExecutor:17,1,main]
java.lang.RuntimeException: Not enough space for compaction, estimated sstables = 1552, expected
write size = 260540558535
at org.apache.cassandra.db.compaction.CompactionTask.checkAvailableDiskSpace
(CompactionTask.java:306)
at org.apache.cassandra.db.compaction.CompactionTask.runMayThrow(CompactionTask.
java:106)
at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
at org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.
java:60)
at org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.
java:59)
at org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run
(CompactionManager.java:198)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)