org.apache.cassandra.io.sstable.format.big

## Class BigTableReader

- java.lang.Object
- - org.apache.cassandra.io.sstable.SSTable
  - - org.apache.cassandra.io.sstable.format.SSTableReader
    - - org.apache.cassandra.io.sstable.format.big.BigTableReader

All Implemented Interfaces:
  RefCounted<SSTableReader>, SelfRefCounted<SSTableReader>

    public class BigTableReader
    extends SSTableReader

SSTableReaders are open()ed by Keyspace.onStart; after that they are created by SSTableWriter.renameAndOpen. Do not re-call open() on existing SSTable files; use the references kept by ColumnFamilyStore post-start instead.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.cassandra.io.sstable.format.SSTableReader

`SSTableReader.Factory, SSTableReader.OpenReason, SSTableReader.Operator, SSTableReader.UniqueIdentifier`

### Nested classes/interfaces inherited from interface org.apache.cassandra.utils.concurrent.RefCounted

`RefCounted.Tidy`

### Field Summary

### Fields inherited from class org.apache.cassandra.io.sstable.format.SSTableReader

`bf, bloomFilterTracker, dfile, generationReverseComparator, header, ifile, indexSummary, instanceId, isSuspect, keyCache, keyCacheHit, keyCacheRequest, maxDataAge, maxTimestampComparator, openReason, rowIndexEntrySerializer, sizeComparator, sstableComparator, sstableMetadata, sstableOrdering`

### Fields inherited from class org.apache.cassandra.io.sstable.SSTable

`components, compression, descriptor, first, last, metadata, optimizationStrategy, TOMBSTONE_HISTOGRAM_BIN_SIZE, TOMBSTONE_HISTOGRAM_SPOOL_SIZE, TOMBSTONE_HISTOGRAM_TTL_ROUND_SECONDS`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected RowIndexEntry` `getPosition(PartitionPosition key, SSTableReader.Operator op, boolean updateCacheAndStats, boolean permitMatchPastLast, SSTableReadsListener listener)`
`ISSTableScanner` `getScanner(java.util.Collection<Range<Token>> ranges, com.google.common.util.concurrent.RateLimiter limiter)` Direct I/O SSTableScanner over a defined collection of ranges of tokens.
`ISSTableScanner` `getScanner(ColumnFilter columns, DataRange dataRange, com.google.common.util.concurrent.RateLimiter limiter, boolean isForThrift, SSTableReadsListener listener)`
`ISSTableScanner` `getScanner(java.util.Iterator<AbstractBounds<PartitionPosition>> boundsIterator)` Direct I/O SSTableScanner over an iterator of bounds.
`ISSTableScanner` `getScanner(com.google.common.util.concurrent.RateLimiter limiter)` Direct I/O SSTableScanner over the full sstable.
`UnfilteredRowIterator` `iterator(DecoratedKey key, Slices slices, ColumnFilter selectedColumns, boolean reversed, boolean isForThrift, SSTableReadsListener listener)`
`UnfilteredRowIterator` `iterator(FileDataInput file, DecoratedKey key, RowIndexEntry indexEntry, Slices slices, ColumnFilter selectedColumns, boolean reversed, boolean isForThrift)`
`UnfilteredRowIterator` `simpleIterator(FileDataInput dfile, DecoratedKey key, RowIndexEntry position, boolean tombstoneOnly)`

### Methods inherited from class org.apache.cassandra.io.sstable.format.SSTableReader

`addTo, cacheKey, cloneWithNewStart, cloneWithNewSummarySamplingLevel, cloneWithRestoredStart, createLinks, equals, estimateCompactionGain, estimatedKeys, estimatedKeysForRanges, firstKeyBeyond, forceFilterFailures, getApproximateKeyCount, getAvgColumnSetPerRow, getBloomFilter, getBloomFilterFalsePositiveCount, getBloomFilterOffHeapSize, getBloomFilterSerializedSize, getBloomFilterTruePositiveCount, getCachedPosition, getCachedPosition, getCacheKey, getCompressionMetadata, getCompressionMetadataOffHeapSize, getCompressionRatio, getCrcCheckChance, getCreationTimeFor, getDataChannel, getDroppableTombstonesBefore, getEffectiveIndexInterval, getEstimatedColumnCount, getEstimatedDroppableTombstoneRatio, getEstimatedPartitionSize, getFileDataInput, getFilename, getIndexChannel, getIndexFile, getIndexScanPosition, getIndexScanPositionFromBinarySearchResult, getIndexSummaryIndexFromBinarySearchResult, getIndexSummaryKey, getIndexSummaryOffHeapSize, getIndexSummarySamplingLevel, getIndexSummarySize, getKeyCache, getKeyCacheHit, getKeyCacheRequest, getKeySamples, getMaxIndexSummarySize, getMaxLocalDeletionTime, getMaxTimestamp, getMaxTTL, getMinIndexInterval, getMinLocalDeletionTime, getMinTimestamp, getMinTTL, getPosition, getPosition, getPosition, getPositionsForRanges, getReadMeter, getRecentBloomFilterFalsePositiveCount, getRecentBloomFilterTruePositiveCount, getScanner, getScanner, getScanner, getSSTableLevel, getSSTableMetadata, getTotalBytes, getTotalColumnsSet, getTotalRows, getTotalUncompressedBytes, hashCode, incrementReadCount, internalOpen, isKeyCacheSetup, isMarkedCompacted, isMarkedSuspect, isRepaired, isReplaced, keyAt, loadSummary, logOpenException, markObsolete, markSuspect, mayHaveTombstones, newSince, onDiskLength, open, open, open, open, openAll, openDataReader, openDataReader, openForBatch, openIndexReader, openNoValidation, openNoValidation, overrideReadMeter, ref, releaseSummary, reloadSSTableMetadata, resetTidying, runOnClose, saveSummary, saveSummary, selfRef, setCrcCheckChance, setReplaced, setupOnline, stats, tryRef, uncompressedLength`

### Methods inherited from class org.apache.cassandra.io.sstable.SSTable

`addComponents, appendTOC, bytesOnDisk, componentsFor, decorateKey, delete, discoverComponentsFor, estimateRowsFromIndex, getAllFilePaths, getColumnFamilyName, getIndexFilename, getKeyspaceName, getMinimalKey, getPartitioner, readTOC, toString, tryComponentFromFilename`

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

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

### Method Detail

#### iterator

    public UnfilteredRowIterator iterator(DecoratedKey key,
                                          Slices slices,
                                          ColumnFilter selectedColumns,
                                          boolean reversed,
                                          boolean isForThrift,
                                          SSTableReadsListener listener)

Specified by:
  `iterator` in class `SSTableReader`

#### iterator

    public UnfilteredRowIterator iterator(FileDataInput file,
                                          DecoratedKey key,
                                          RowIndexEntry indexEntry,
                                          Slices slices,
                                          ColumnFilter selectedColumns,
                                          boolean reversed,
                                          boolean isForThrift)

Specified by:
  `iterator` in class `SSTableReader`

#### getScanner

    public ISSTableScanner getScanner(ColumnFilter columns,
                                      DataRange dataRange,
                                      com.google.common.util.concurrent.RateLimiter limiter,
                                      boolean isForThrift,
                                      SSTableReadsListener listener)

Specified by:
  `getScanner` in class `SSTableReader`
Parameters:
  `columns` - the columns to return.
  `dataRange` - filter to use when reading the columns
  `listener` - a listener used to handle internal read events
Returns:
  A Scanner for seeking over the rows of the SSTable.

#### getScanner

    public ISSTableScanner getScanner(java.util.Iterator<AbstractBounds<PartitionPosition>> boundsIterator)

Direct I/O SSTableScanner over an iterator of bounds.

Specified by:
  `getScanner` in class `SSTableReader`
Parameters:
  `boundsIterator` - the keys to cover
Returns:
  A Scanner for seeking over the rows of the SSTable.

#### getScanner

    public ISSTableScanner getScanner(com.google.common.util.concurrent.RateLimiter limiter)

Direct I/O SSTableScanner over the full sstable.

Specified by:
  `getScanner` in class `SSTableReader`
Returns:
  A Scanner for reading the full SSTable.

#### getScanner

    public ISSTableScanner getScanner(java.util.Collection<Range<Token>> ranges,
                                      com.google.common.util.concurrent.RateLimiter limiter)

Direct I/O SSTableScanner over a defined collection of ranges of tokens.

Specified by:
  `getScanner` in class `SSTableReader`
Parameters:
  `ranges` - the range of keys to cover
Returns:
  A Scanner for seeking over the rows of the SSTable.

#### simpleIterator

    public UnfilteredRowIterator simpleIterator(FileDataInput dfile,
                                                DecoratedKey key,
                                                RowIndexEntry position,
                                                boolean tombstoneOnly)

Specified by:
  `simpleIterator` in class `SSTableReader`

#### getPosition

    protected RowIndexEntry getPosition(PartitionPosition key,
                                        SSTableReader.Operator op,
                                        boolean updateCacheAndStats,
                                        boolean permitMatchPastLast,
                                        SSTableReadsListener listener)

Specified by:
  `getPosition` in class `SSTableReader`
Parameters:
  `key` - The key to apply as the rhs to the given Operator. A 'fake' key is allowed to allow key selection by token bounds but only if op != * EQ
  `op` - The Operator defining matching keys: the nearest key to the target matching the operator wins.
  `updateCacheAndStats` - true if updating stats and cache
  `listener` - a listener used to handle internal events
Returns:
  The index entry corresponding to the key, or null if the key is not present