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 50MB, 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, 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 boolean
realAppend(UnfilteredRowIterator partition)
void
switchCompactionLocation(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:
realAppend
in classCompactionAwareWriter
-
switchCompactionLocation
public void switchCompactionLocation(Directories.DataDirectory location)
Description copied from class:CompactionAwareWriter
Implementations 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:
switchCompactionLocation
in classCompactionAwareWriter
-
-