org.apache.cassandra.db.compaction

## Class TimeWindowCompactionStrategy

- java.lang.Object
- - org.apache.cassandra.db.compaction.AbstractCompactionStrategy
  - - org.apache.cassandra.db.compaction.TimeWindowCompactionStrategy

    public class TimeWindowCompactionStrategy
    extends AbstractCompactionStrategy

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.cassandra.db.compaction.AbstractCompactionStrategy

`AbstractCompactionStrategy.ScannerList`

### Field Summary

Fields
`protected int` `estimatedRemainingTasks`

### Fields 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

Constructors
Constructor and Description
`TimeWindowCompactionStrategy(ColumnFamilyStore cfs, java.util.Map<java.lang.String,java.lang.String> options)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `addSSTable(SSTableReader sstable)`
`int` `getEstimatedRemainingTasks()`
`java.util.Collection<AbstractCompactionTask>` `getMaximalTask(int gcBefore, boolean splitOutput)`
`long` `getMaxSSTableBytes()`
`AbstractCompactionTask` `getNextBackgroundTask(int gcBefore)`
`AbstractCompactionTask` `getUserDefinedTask(java.util.Collection<SSTableReader> sstables, int gcBefore)`
`static Pair<java.lang.Long,java.lang.Long>` `getWindowBoundsInMillis(java.util.concurrent.TimeUnit windowTimeUnit, int windowTimeSize, long timestampInMillis)` Find the lowest and highest timestamps in a given timestamp/unit pair Returns milliseconds, caller should adjust accordingly
`void` `removeSSTable(SSTableReader sstable)`
`java.lang.String` `toString()`
`static java.util.Map<java.lang.String,java.lang.String>` `validateOptions(java.util.Map<java.lang.String,java.lang.String> options)`

### Methods inherited from class org.apache.cassandra.db.compaction.AbstractCompactionStrategy

`addSSTables, createSSTableMultiWriter, disable, enable, filterSuspectSSTables, getCompactionTask, getDirectories, getMemtableReservedSize, getName, getScanners, getScanners, getScanners, groupSSTablesForAntiCompaction, isAffectedByMeteredFlusher, pause, replaceFlushed, replaceSSTables, resume, shouldBeEnabled, shouldDefragment, shutdown, startup, strategyLogger, supportsEarlyOpen, worthDroppingTombstones`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### estimatedRemainingTasks

    protected volatile int estimatedRemainingTasks

### Constructor Detail

#### TimeWindowCompactionStrategy

    public TimeWindowCompactionStrategy(ColumnFamilyStore cfs,
                                        java.util.Map<java.lang.String,java.lang.String> options)

### Method Detail

#### getNextBackgroundTask

    public AbstractCompactionTask getNextBackgroundTask(int gcBefore)

Specified by:
  `getNextBackgroundTask` in class `AbstractCompactionStrategy`
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

    public void addSSTable(SSTableReader sstable)

Specified by:
  `addSSTable` in class `AbstractCompactionStrategy`

#### removeSSTable

    public void removeSSTable(SSTableReader sstable)

Specified by:
  `removeSSTable` in class `AbstractCompactionStrategy`

#### getWindowBoundsInMillis

    public static Pair<java.lang.Long,java.lang.Long> getWindowBoundsInMillis(java.util.concurrent.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

    public java.util.Collection<AbstractCompactionTask> getMaximalTask(int gcBefore,
                                                                       boolean splitOutput)

Specified by:
  `getMaximalTask` in class `AbstractCompactionStrategy`
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.

#### getUserDefinedTask

    public AbstractCompactionTask getUserDefinedTask(java.util.Collection<SSTableReader> sstables,
                                                     int gcBefore)

Specified by:
  `getUserDefinedTask` in class `AbstractCompactionStrategy`
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:
  `getEstimatedRemainingTasks` in class `AbstractCompactionStrategy`
Returns:
  the number of background tasks estimated to still be needed for this columnfamilystore

#### getMaxSSTableBytes

    public long getMaxSSTableBytes()

Specified by:
  `getMaxSSTableBytes` in class `AbstractCompactionStrategy`
Returns:
  size in bytes of the largest sstables for this strategy

#### validateOptions

    public static java.util.Map<java.lang.String,java.lang.String> validateOptions(java.util.Map<java.lang.String,java.lang.String> options)
                                                                            throws ConfigurationException

Throws:
  `ConfigurationException`

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`