org.apache.cassandra.db.compaction

## Class CompactionController

- java.lang.Object
- - org.apache.cassandra.db.compaction.CompactionController

- Direct Known Subclasses:
    SSTableSplitter.SplitController

      public class CompactionController
      extends java.lang.Object

  Manage compaction options.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `ColumnFamilyStore` | `cfs`
    `int` | `gcBefore`
    `int` | `mergeShardBefore`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `CompactionController(ColumnFamilyStore cfs, java.util.Collection<SSTableReader> sstables, int gcBefore)`
    `protected` | `CompactionController(ColumnFamilyStore cfs, int maxValue)` Constructor that subclasses may use when overriding shouldPurge to not need overlappingTree

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()`
    `java.lang.String` | `getColumnFamily()`
    `AbstractCompactedRow` | `getCompactedRow(java.util.List<SSTableIdentityIterator> rows)`
    `AbstractCompactedRow` | `getCompactedRow(SSTableIdentityIterator row)` convenience method for single-sstable compactions
    `java.lang.String` | `getKeyspace()`
    `void` | `invalidateCachedRow(DecoratedKey key)`
    `void` | `removeDeletedInCache(DecoratedKey key)`
    `boolean` | `shouldPurge(DecoratedKey key, long maxDeletionTimestamp)`

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

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

- - ### Field Detail

    - #### cfs

          public final ColumnFamilyStore cfs

    - #### gcBefore

          public final int gcBefore

    - #### mergeShardBefore

          public final int mergeShardBefore

  - ### Constructor Detail

    - #### CompactionController

          public CompactionController(ColumnFamilyStore cfs,
                              java.util.Collection<SSTableReader> sstables,
                              int gcBefore)

    - #### CompactionController

          protected CompactionController(ColumnFamilyStore cfs,
                              int maxValue)

      Constructor that subclasses may use when overriding shouldPurge to not need overlappingTree

  - ### Method Detail

    - #### getKeyspace

          public java.lang.String getKeyspace()

    - #### getColumnFamily

          public java.lang.String getColumnFamily()

    - #### shouldPurge

          public boolean shouldPurge(DecoratedKey key,
                            long maxDeletionTimestamp)

      Returns:
        true if it's okay to drop tombstones for the given row, i.e., if we know all the verisons of the row are included in the compaction set

    - #### invalidateCachedRow

          public void invalidateCachedRow(DecoratedKey key)

    - #### removeDeletedInCache

          public void removeDeletedInCache(DecoratedKey key)

    - #### getCompactedRow

          public AbstractCompactedRow getCompactedRow(java.util.List<SSTableIdentityIterator> rows)

      Returns:
        an AbstractCompactedRow implementation to write the merged rows in question. If there is a single source row, the data is from a current-version sstable, we don't need to purge and we aren't forcing deserialization for scrub, write it unchanged. Otherwise, we deserialize, purge tombstones, and reserialize in the latest version.

    - #### getCompactedRow

          public AbstractCompactedRow getCompactedRow(SSTableIdentityIterator row)

      convenience method for single-sstable compactions

    - #### close

          public void close()

Copyright © 2014 The Apache Software Foundation