/** Gets the estimated total amount of data to write during compaction */ private static long getTotalWriteSize( Iterable<SSTableReader> nonExpiredSSTables, long estimatedTotalKeys, ColumnFamilyStore cfs, OperationType compactionType) { long estimatedKeysBeforeCompaction = 0; for (SSTableReader sstable : nonExpiredSSTables) estimatedKeysBeforeCompaction += sstable.estimatedKeys(); estimatedKeysBeforeCompaction = Math.max(1, estimatedKeysBeforeCompaction); double estimatedCompactionRatio = (double) estimatedTotalKeys / estimatedKeysBeforeCompaction; return Math.round( estimatedCompactionRatio * cfs.getExpectedCompactedFileSize(nonExpiredSSTables, compactionType)); }