org.apache.cassandra.io.sstable

## Class IndexSummary

- java.lang.Object
- - org.apache.cassandra.utils.concurrent.SharedCloseableImpl
  - - org.apache.cassandra.utils.concurrent.WrappedSharedCloseable
    - - org.apache.cassandra.io.sstable.IndexSummary

- All Implemented Interfaces:
    java.lang.AutoCloseable, SharedCloseable

      public class IndexSummary
      extends WrappedSharedCloseable

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `IndexSummary.IndexSummarySerializer`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static IndexSummary.IndexSummarySerializer` | `serializer`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IndexSummary(IPartitioner partitioner, Memory offsets, int offsetCount, Memory entries, long entriesLength, int sizeAtFullSampling, int minIndexInterval, int samplingLevel)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `binarySearch(RowPosition key)`
    `double` | `getEffectiveIndexInterval()`
    `int` | `getEffectiveIndexIntervalAfterIndex(int index)` Returns the number of primary (on-disk) index entries between the index summary entry at `index` and the next index summary entry (assuming there is one).
    `long` | `getEndInSummary(int index)`
    `long` | `getEstimatedKeyCount()` Returns an estimate of the total number of keys in the SSTable.
    `byte[]` | `getKey(int index)`
    `int` | `getMaxNumberOfEntries()` Returns the number of entries this summary would have if it were at the full sampling level, which is equal to the number of entries in the primary on-disk index divided by the min index interval.
    `int` | `getMinIndexInterval()`
    `long` | `getOffHeapSize()`
    `long` | `getPosition(int index)`
    `int` | `getPositionInSummary(int index)` Gets the position of the actual index summary entry in our Memory attribute, 'bytes'.
    `int` | `getSamplingLevel()`
    `IndexSummary` | `sharedCopy()`
    `int` | `size()`

    - ### Methods inherited from class org.apache.cassandra.utils.concurrent.SharedCloseableImpl

      `close, close, isCleanedUp`

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

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

- - ### Field Detail

    - #### serializer

          public static final IndexSummary.IndexSummarySerializer serializer

  - ### Constructor Detail

    - #### IndexSummary

          public IndexSummary(IPartitioner partitioner,
                              Memory offsets,
                              int offsetCount,
                              Memory entries,
                              long entriesLength,
                              int sizeAtFullSampling,
                              int minIndexInterval,
                              int samplingLevel)

  - ### Method Detail

    - #### binarySearch

          public int binarySearch(RowPosition key)

    - #### getPositionInSummary

          public int getPositionInSummary(int index)

      Gets the position of the actual index summary entry in our Memory attribute, 'bytes'.
      Parameters:
        `index` - The index of the entry or key to get the position for
      Returns:
        an offset into our Memory attribute where the actual entry resides

    - #### getKey

          public byte[] getKey(int index)

    - #### getPosition

          public long getPosition(int index)

    - #### getEndInSummary

          public long getEndInSummary(int index)

    - #### getMinIndexInterval

          public int getMinIndexInterval()

    - #### getEffectiveIndexInterval

          public double getEffectiveIndexInterval()

    - #### getEstimatedKeyCount

          public long getEstimatedKeyCount()

      Returns an estimate of the total number of keys in the SSTable.

    - #### size

          public int size()

    - #### getSamplingLevel

          public int getSamplingLevel()

    - #### getMaxNumberOfEntries

          public int getMaxNumberOfEntries()

      Returns the number of entries this summary would have if it were at the full sampling level, which is equal to the number of entries in the primary on-disk index divided by the min index interval.

    - #### getOffHeapSize

          public long getOffHeapSize()

    - #### getEffectiveIndexIntervalAfterIndex

          public int getEffectiveIndexIntervalAfterIndex(int index)

      Returns the number of primary (on-disk) index entries between the index summary entry at `index` and the next index summary entry (assuming there is one). Without any downsampling, this will always be equivalent to the index interval.
      Parameters:
        `index` - the index of an index summary entry (between zero and the index entry size)
      Returns:
        the number of partitions after `index` until the next partition with a summary entry

    - #### sharedCopy

          public IndexSummary sharedCopy()

      Returns:
        a new instance of the object representing the same state and backed by the same underlying resources. Coordinates with the original (and other instances) when the underlying resource should be closed. Throws an exception if the shared resource has already been closed.

Copyright © 2018 The Apache Software Foundation