SplittingSizeTieredCompactionWriter (apache-cassandra API)
Date: 2018-02-14

org.apache.cassandra.db.compaction.writers

## 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 and Description
    --- | ---
    `static long` | `DEFAULT_SMALLEST_SSTABLE_BYTES`

    - ### Fields inherited from class org.apache.cassandra.db.compaction.writers.CompactionAwareWriter

      `cfs, directories, estimatedTotalKeys, maxAge, minRepairedAt, nonExpiredSSTables, sstableWriter, txn`

  - ### Constructor Summary

    Constructors
    Constructor and 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 and 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, permitRedundantTransitions, 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 class `CompactionAwareWriter`

    - #### 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 class `CompactionAwareWriter`

Copyright © 2018 The Apache Software Foundation