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 longDEFAULT_SMALLEST_SSTABLE_BYTES-
Fields inherited from class org.apache.cassandra.db.compaction.writers.CompactionAwareWriter
cfs, 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 longgetExpectedWriteSize()booleanrealAppend(UnfilteredRowIterator partition)voidswitchCompactionLocation(Directories.DataDirectory location)Implementations of this method should finish the current sstable writer and start writing to this directory.-
Methods inherited from class org.apache.cassandra.db.compaction.writers.CompactionAwareWriter
append, doAbort, doCommit, doPostCleanup, doPrepare, estimatedKeys, finish, getDirectories, getWriteDirectory, maybeSwitchWriter, setRepairedAt
-
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
-
realAppend
public boolean realAppend(UnfilteredRowIterator partition)
- Specified by:
realAppendin classCompactionAwareWriter
-
switchCompactionLocation
public void switchCompactionLocation(Directories.DataDirectory location)
Description copied from class:CompactionAwareWriterImplementations of this method should finish the current sstable writer and start writing to this directory. Called once before starting to append and then whenever we see a need to start writing to another directory.- Specified by:
switchCompactionLocationin classCompactionAwareWriter
-
getExpectedWriteSize
protected long getExpectedWriteSize()
- Overrides:
getExpectedWriteSizein classCompactionAwareWriter
-
-