On Tue, May 28, 2013 at 7:39 AM, Víctor Hugo Oliveira Molinar
<vhmoli...@gmail.com> wrote:
> So I'd like to know more about what does happens in a cleanup operation.
> Appreciate any help.

./src/java/org/apache/cassandra/db/compaction/CompactionManager.java"
line 591 of 1175
"
logger.info("Cleaning up " + sstable);
            // Calculate the expected compacted filesize
            long expectedRangeFileSize =
cfs.getExpectedCompactedFileSize(Arrays.asList(sstable),
OperationType.CLEANUP);
            File compactionFileLocation =
cfs.directories.getDirectoryForNewSSTables(expectedRangeFileSize);
            if (compactionFileLocation == null)
                throw new IOException("disk full");
"

It looks like it is actually saying your disk is "too full to complete
compaction", not actually full right now.

That said, a cleanup compaction does a 1:1 traversal of all SSTables,
writing out a new one without any data that no longer belongs on the
node due to range ownership changes. There is some lag in Cassandra
before the JVM is able to actually delete files from disk, perhaps you
are hitting this race condition?

=Rob

Reply via email to