Class SplittingSizeTieredCompactionWriter
- java.lang.Object
-
- org.apache.cassandra.utils.concurrent.Transactional.AbstractTransactional
-
- org.apache.cassandra.db.compaction.writers.CompactionAwareWriter
-
- org.apache.cassandra.db.compaction.writers.SplittingSizeTieredCompactionWriter
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,Transactional
public class SplittingSizeTieredCompactionWriter extends CompactionAwareWriter
CompactionAwareWriter that splits input in differently sized sstables Biggest sstable will be total_compaction_size / 2, second biggest total_compaction_size / 4 etc until the result would be sub 50MiB, all those are put in the same
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.cassandra.utils.concurrent.Transactional.AbstractTransactional
Transactional.AbstractTransactional.State
-
Nested classes/interfaces inherited from interface org.apache.cassandra.utils.concurrent.Transactional
Transactional.AbstractTransactional
-
-
Field Summary
Fields Modifier and Type Field Description static long
DEFAULT_SMALLEST_SSTABLE_BYTES
-
Fields inherited from class org.apache.cassandra.db.compaction.writers.CompactionAwareWriter
cfs, currentDirectory, directories, estimatedTotalKeys, isTransient, maxAge, minRepairedAt, nonExpiredSSTables, pendingRepair, sstableWriter, txn
-
-
Constructor Summary
Constructors Constructor Description SplittingSizeTieredCompactionWriter(ColumnFamilyStore cfs, Directories directories, LifecycleTransaction txn, java.util.Set<SSTableReader> nonExpiredSSTables)
SplittingSizeTieredCompactionWriter(ColumnFamilyStore cfs, Directories directories, LifecycleTransaction txn, java.util.Set<SSTableReader> nonExpiredSSTables, long smallestSSTable)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected long
getExpectedWriteSize()
protected boolean
shouldSwitchWriterInCurrentLocation(DecoratedKey key)
Returns true if the writer should be switched for reasons other than switching to a new data directory (e.g.protected long
sstableKeyCount()
Returns the key count with which created sstables should be set up.protected int
sstableLevel()
Returns the level that should be used when creating sstables.-
Methods inherited from class org.apache.cassandra.db.compaction.writers.CompactionAwareWriter
append, doAbort, doCommit, doPostCleanup, doPrepare, estimatedKeys, finish, getDirectories, getSStableDirectory, getWriteDirectory, maybeSwitchLocation, maybeSwitchWriter, newWriterBuilder, realAppend, setRepairedAt, sstableWriter, switchCompactionWriter
-
Methods inherited from class org.apache.cassandra.utils.concurrent.Transactional.AbstractTransactional
abort, abort, close, commit, commit, doPreCleanup, prepareToCommit, state
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.cassandra.utils.concurrent.Transactional
abort, close, commit, prepareToCommit
-
-
-
-
Field Detail
-
DEFAULT_SMALLEST_SSTABLE_BYTES
public static final long DEFAULT_SMALLEST_SSTABLE_BYTES
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SplittingSizeTieredCompactionWriter
public SplittingSizeTieredCompactionWriter(ColumnFamilyStore cfs, Directories directories, LifecycleTransaction txn, java.util.Set<SSTableReader> nonExpiredSSTables)
-
SplittingSizeTieredCompactionWriter
public SplittingSizeTieredCompactionWriter(ColumnFamilyStore cfs, Directories directories, LifecycleTransaction txn, java.util.Set<SSTableReader> nonExpiredSSTables, long smallestSSTable)
-
-
Method Detail
-
shouldSwitchWriterInCurrentLocation
protected boolean shouldSwitchWriterInCurrentLocation(DecoratedKey key)
Description copied from class:CompactionAwareWriter
Returns true if the writer should be switched for reasons other than switching to a new data directory (e.g. because an sstable size limit has been reached).- Specified by:
shouldSwitchWriterInCurrentLocation
in classCompactionAwareWriter
-
sstableLevel
protected int sstableLevel()
Description copied from class:CompactionAwareWriter
Returns the level that should be used when creating sstables.- Overrides:
sstableLevel
in classCompactionAwareWriter
-
sstableKeyCount
protected long sstableKeyCount()
Description copied from class:CompactionAwareWriter
Returns the key count with which created sstables should be set up.- Specified by:
sstableKeyCount
in classCompactionAwareWriter
-
getExpectedWriteSize
protected long getExpectedWriteSize()
- Overrides:
getExpectedWriteSize
in classCompactionAwareWriter
-
-