Class TimeWindowCompactionStrategy
java.lang.Object
org.apache.cassandra.db.compaction.AbstractCompactionStrategy
org.apache.cassandra.db.compaction.TimeWindowCompactionStrategy
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.cassandra.db.compaction.AbstractCompactionStrategy
AbstractCompactionStrategy.ScannerList -
Field Summary
FieldsFields inherited from class org.apache.cassandra.db.compaction.AbstractCompactionStrategy
cfs, COMPACTION_ENABLED, DEFAULT_LOG_ALL_OPTION, DEFAULT_TOMBSTONE_COMPACTION_INTERVAL, DEFAULT_TOMBSTONE_THRESHOLD, DEFAULT_UNCHECKED_TOMBSTONE_COMPACTION_OPTION, disableTombstoneCompactions, isActive, LOG_ALL_OPTION, logAll, ONLY_PURGE_REPAIRED_TOMBSTONES, TOMBSTONE_COMPACTION_INTERVAL_OPTION, TOMBSTONE_THRESHOLD_OPTION, tombstoneCompactionInterval, tombstoneThreshold, UNCHECKED_TOMBSTONE_COMPACTION_OPTION, uncheckedTombstoneCompaction -
Constructor Summary
ConstructorsConstructorDescriptionTimeWindowCompactionStrategy(ColumnFamilyStore cfs, Map<String, String> options) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddSSTable(SSTableReader sstable) Adds sstable, note that implementations must handle duplicate notifications here (added already being in the compaction strategy)intgetMaximalTask(long gcBefore, boolean splitOutput) longgetNextBackgroundTask(long gcBefore) protected Set<SSTableReader>Returns the sstables managed by this strategy instancegetUserDefinedTask(Collection<SSTableReader> sstables, long gcBefore) getWindowBoundsInMillis(TimeUnit windowTimeUnit, int windowTimeSize, long timestampInMillis) Find the lowest and highest timestamps in a given timestamp/unit pair Returns milliseconds, caller should adjust accordinglygroupSSTablesForAntiCompaction(Collection<SSTableReader> sstablesToGroup) TWCS should not group sstables for anticompaction - this can mix new and old datavoidremoveSSTable(SSTableReader sstable) Removes sstable from the strategy, implementations must be able to handle the sstable having already been removed.toString()validateOptions(Map<String, String> options) Methods inherited from class org.apache.cassandra.db.compaction.AbstractCompactionStrategy
addSSTables, createSSTableMultiWriter, filterSuspectSSTables, getCompactionTask, getDirectories, getName, getScanners, getScanners, getScanners, metadataChanged, pause, removeSSTables, replaceSSTables, resume, shutdown, startup, strategyLogger, supportsEarlyOpen, worthDroppingTombstones
-
Field Details
-
estimatedRemainingTasks
protected volatile int estimatedRemainingTasks
-
-
Constructor Details
-
TimeWindowCompactionStrategy
-
-
Method Details
-
getNextBackgroundTask
- Specified by:
getNextBackgroundTaskin classAbstractCompactionStrategy- Parameters:
gcBefore- throw away tombstones older than this- Returns:
- the next background/minor compaction task to run; null if nothing to do. Is responsible for marking its sstables as compaction-pending.
-
addSSTable
Description copied from class:AbstractCompactionStrategyAdds sstable, note that implementations must handle duplicate notifications here (added already being in the compaction strategy)- Specified by:
addSSTablein classAbstractCompactionStrategy
-
removeSSTable
Description copied from class:AbstractCompactionStrategyRemoves sstable from the strategy, implementations must be able to handle the sstable having already been removed.- Specified by:
removeSSTablein classAbstractCompactionStrategy
-
getSSTables
Description copied from class:AbstractCompactionStrategyReturns the sstables managed by this strategy instance- Specified by:
getSSTablesin classAbstractCompactionStrategy
-
getWindowBoundsInMillis
public static Pair<Long,Long> getWindowBoundsInMillis(TimeUnit windowTimeUnit, int windowTimeSize, long timestampInMillis) Find the lowest and highest timestamps in a given timestamp/unit pair Returns milliseconds, caller should adjust accordingly -
getMaximalTask
- Specified by:
getMaximalTaskin classAbstractCompactionStrategy- Parameters:
gcBefore- throw away tombstones older than this- Returns:
- a compaction task that should be run to compact this columnfamilystore as much as possible. Null if nothing to do. Is responsible for marking its sstables as compaction-pending.
-
groupSSTablesForAntiCompaction
public Collection<Collection<SSTableReader>> groupSSTablesForAntiCompaction(Collection<SSTableReader> sstablesToGroup) TWCS should not group sstables for anticompaction - this can mix new and old data- Overrides:
groupSSTablesForAntiCompactionin classAbstractCompactionStrategy
-
getUserDefinedTask
- Specified by:
getUserDefinedTaskin classAbstractCompactionStrategy- Parameters:
sstables- SSTables to compact. Must be marked as compacting.gcBefore- throw away tombstones older than this- Returns:
- a compaction task corresponding to the requested sstables. Will not be null. (Will throw if user requests an invalid compaction.) Is responsible for marking its sstables as compaction-pending.
-
getEstimatedRemainingTasks
public int getEstimatedRemainingTasks()- Specified by:
getEstimatedRemainingTasksin classAbstractCompactionStrategy- Returns:
- the number of background tasks estimated to still be needed for this columnfamilystore
-
getMaxSSTableBytes
public long getMaxSSTableBytes()- Specified by:
getMaxSSTableBytesin classAbstractCompactionStrategy- Returns:
- size in bytes of the largest sstables for this strategy
-
getSSTableCountByBuckets
-
validateOptions
public static Map<String,String> validateOptions(Map<String, String> options) throws ConfigurationException- Throws:
ConfigurationException
-
toString
-