@SuppressWarnings("resource") public MaxSSTableSizeWriter( ColumnFamilyStore cfs, Directories directories, LifecycleTransaction txn, Set<SSTableReader> nonExpiredSSTables, long maxSSTableSize, int level, boolean offline, boolean keepOriginals) { super(cfs, directories, txn, nonExpiredSSTables, offline, keepOriginals); this.allSSTables = txn.originals(); this.level = level; this.maxSSTableSize = maxSSTableSize; long totalSize = getTotalWriteSize(nonExpiredSSTables, estimatedTotalKeys, cfs, txn.opType()); expectedWriteSize = Math.min(maxSSTableSize, totalSize); estimatedSSTables = Math.max(1, totalSize / maxSSTableSize); }