Class IndexSummary

All Implemented Interfaces:
AutoCloseable, SharedCloseable

public class IndexSummary extends WrappedSharedCloseable
  • Field Details

  • Constructor Details

    • IndexSummary

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

    • binarySearch

      public int binarySearch(PartitionPosition 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)
    • addTo

      public void addTo(Ref.IdentityCollection identities)
      Specified by:
      addTo in interface SharedCloseable
      Overrides:
      addTo in class SharedCloseableImpl
    • 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
    • getSampleIndexesForRanges

      public List<SSTableReader.IndexesBounds> getSampleIndexesForRanges(Collection<Range<Token>> ranges)
    • getKeySamples

      public Iterable<byte[]> getKeySamples(Range<Token> range)
    • getScanPosition

      public long getScanPosition(PartitionPosition key)
    • getScanPositionFromBinarySearchResult

      public long getScanPositionFromBinarySearchResult(int binarySearchResult)
    • getIndexFromBinarySearchResult

      public static int getIndexFromBinarySearchResult(int binarySearchResult)
    • 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.