@InterfaceAudience.Private class ReversedStoreScanner extends StoreScanner implements KeyValueScanner
StoreScanner.StoreScannerCompactionRacecacheBlocks, cellsPerHeartbeatCheck, closing, columns, countPerRow, DEFAULT_HBASE_CELLS_SCANNED_PER_HEARTBEAT_CHECK, executor, explicitColumnQuery, get, HBASE_CELLS_SCANNED_PER_HEARTBEAT_CHECK, heap, lastTop, LAZY_SEEK_ENABLED_BY_DEFAULT, lazySeekEnabledGlobally, lock, matcher, maxRowSize, minVersions, now, oldestUnexpiredTS, parallelSeekEnabled, scan, store, storeLimit, storeOffset, STORESCANNER_PARALLEL_SEEK_ENABLE, useRowColBloomNO_NEXT_INDEXED_KEY| Constructor and Description | 
|---|
| ReversedStoreScanner(Scan scan,
                    ScanInfo scanInfo,
                    ScanType scanType,
                    NavigableSet<byte[]> columns,
                    List<KeyValueScanner> scanners)Constructor for testing. | 
| ReversedStoreScanner(Store store,
                    ScanInfo scanInfo,
                    Scan scan,
                    NavigableSet<byte[]> columns,
                    long readPt)Opens a scanner across memstore, snapshot, and all StoreFiles. | 
| Modifier and Type | Method and Description | 
|---|---|
| boolean | backwardSeek(Cell key)Seek the scanner at or before the row of specified Cell, it firstly
 tries to seek the scanner at or after the specified Cell, return if
 peek KeyValue of scanner has the same row with specified Cell,
 otherwise seek the scanner at the first Cell of the row which is the
 previous row of specified KeyValue | 
| protected void | checkScanOrder(Cell prevKV,
              Cell kv,
              KeyValue.KVComparator comparator)Check whether scan as expected order | 
| boolean | reseek(Cell kv)Reseek the scanner at or after the specified KeyValue. | 
| protected void | resetKVHeap(List<? extends KeyValueScanner> scanners,
           KeyValue.KVComparator comparator) | 
| boolean | seek(Cell key)Seek the scanner at or after the specified KeyValue. | 
| protected boolean | seekAsDirection(Cell kv)Do a backwardSeek in a reversed StoreScanner(scan backward) | 
| protected void | seekScanners(List<? extends KeyValueScanner> scanners,
            Cell seekKey,
            boolean isLazy,
            boolean isParallelSeek)Seek the specified scanners with the given key | 
| protected boolean | seekToNextRow(Cell kv) | 
| boolean | seekToPreviousRow(Cell key)Seek the scanner at the first Cell of the row which is the previous row
 of specified key | 
checkReseek, close, enableLazySeekGlobally, getAllScannersForTesting, getEstimatedNumberOfKvsScanned, getNextIndexedKey, getScannersNoCompaction, getSequenceID, next, next, next, peek, resetScannerStack, selectScannersFrom, updateReadersseekToLastRowdoRealSeek, enforceSeek, isFileScanner, realSeekDone, requestSeek, shouldUseScannerclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitclose, enforceSeek, getNextIndexedKey, getSequenceID, isFileScanner, next, peek, realSeekDone, requestSeek, seekToLastRow, shouldUseScannerReversedStoreScanner(Store store, ScanInfo scanInfo, Scan scan, NavigableSet<byte[]> columns, long readPt) throws IOException
store - who we scanscanInfo - scan - the speccolumns - which columns we are scanningIOExceptionReversedStoreScanner(Scan scan, ScanInfo scanInfo, ScanType scanType, NavigableSet<byte[]> columns, List<KeyValueScanner> scanners) throws IOException
IOExceptionprotected void resetKVHeap(List<? extends KeyValueScanner> scanners, KeyValue.KVComparator comparator) throws IOException
resetKVHeap in class StoreScannerIOExceptionprotected void seekScanners(List<? extends KeyValueScanner> scanners, Cell seekKey, boolean isLazy, boolean isParallelSeek) throws IOException
StoreScannerseekScanners in class StoreScannerisLazy - true if using lazy seekisParallelSeek - true if using parallel seekIOExceptionprotected boolean seekToNextRow(Cell kv) throws IOException
seekToNextRow in class StoreScannerIOExceptionprotected boolean seekAsDirection(Cell kv) throws IOException
seekAsDirection in class StoreScannerIOExceptionprotected void checkScanOrder(Cell prevKV, Cell kv, KeyValue.KVComparator comparator) throws IOException
StoreScannercheckScanOrder in class StoreScannerIOExceptionpublic boolean reseek(Cell kv) throws IOException
KeyValueScannerreseek in interface KeyValueScannerreseek in class StoreScannerkv - seek value (should be non-null)IOExceptionpublic boolean seek(Cell key) throws IOException
KeyValueScannerseek in interface KeyValueScannerseek in class StoreScannerkey - seek valueIOExceptionpublic boolean seekToPreviousRow(Cell key) throws IOException
KeyValueScannerseekToPreviousRow in interface KeyValueScannerseekToPreviousRow in class NonReversedNonLazyKeyValueScannerkey - seek valueIOExceptionpublic boolean backwardSeek(Cell key) throws IOException
KeyValueScannerbackwardSeek in interface KeyValueScannerbackwardSeek in class NonReversedNonLazyKeyValueScannerkey - seek KeyValueIOExceptionCopyright © 2007–2019 The Apache Software Foundation. All rights reserved.