public static class HFileBlockIndex.BlockIndexReader extends Object implements HeapSize
| Constructor and Description | 
|---|
| HFileBlockIndex.BlockIndexReader(KeyValue.KVComparator c,
                                int treeLevel) | 
| HFileBlockIndex.BlockIndexReader(KeyValue.KVComparator c,
                                int treeLevel,
                                HFile.CachingBlockReader cachingBlockReader) | 
| Modifier and Type | Method and Description | 
|---|---|
| void | ensureNonEmpty()Verifies that the block index is non-empty and throws an
  IllegalStateExceptionotherwise. | 
| int | getRootBlockCount() | 
| int | getRootBlockDataSize(int i) | 
| byte[] | getRootBlockKey(int i) | 
| long | getRootBlockOffset(int i) | 
| long | heapSize() | 
| boolean | isEmpty() | 
| BlockWithScanInfo | loadDataBlockWithScanInfo(Cell key,
                         HFileBlock currentBlock,
                         boolean cacheBlocks,
                         boolean pread,
                         boolean isCompaction,
                         DataBlockEncoding expectedDataBlockEncoding)Return the BlockWithScanInfo which contains the DataBlock with other scan
 info such as nextIndexedKey. | 
| byte[] | midkey()An approximation to the  HFile's mid-key. | 
| void | readMultiLevelIndexRoot(HFileBlock blk,
                       int numEntries)Read the root-level metadata of a multi-level block index. | 
| void | readRootIndex(DataInput in,
             int numEntries)Read in the root-level index from the given input stream. | 
| DataInputStream | readRootIndex(HFileBlock blk,
             int numEntries)Read in the root-level index from the given input stream. | 
| int | rootBlockContainingKey(byte[] key,
                      int offset,
                      int length)Finds the root-level index block containing the given key. | 
| int | rootBlockContainingKey(Cell key)Finds the root-level index block containing the given key. | 
| HFileBlock | seekToDataBlock(Cell key,
               HFileBlock currentBlock,
               boolean cacheBlocks,
               boolean pread,
               boolean isCompaction,
               DataBlockEncoding expectedDataBlockEncoding)Return the data block which contains this key. | 
| String | toString() | 
public HFileBlockIndex.BlockIndexReader(KeyValue.KVComparator c, int treeLevel, HFile.CachingBlockReader cachingBlockReader)
public HFileBlockIndex.BlockIndexReader(KeyValue.KVComparator c, int treeLevel)
public boolean isEmpty()
public void ensureNonEmpty()
IllegalStateException otherwise.public HFileBlock seekToDataBlock(Cell key, HFileBlock currentBlock, boolean cacheBlocks, boolean pread, boolean isCompaction, DataBlockEncoding expectedDataBlockEncoding) throws IOException
key - the key we are looking forcurrentBlock - the current block, to avoid re-reading the same blockcacheBlocks - pread - isCompaction - expectedDataBlockEncoding - the data block encoding the caller is
          expecting the data block to be in, or null to not perform this
          check and return the block irrespective of the encodingIOExceptionpublic BlockWithScanInfo loadDataBlockWithScanInfo(Cell key, HFileBlock currentBlock, boolean cacheBlocks, boolean pread, boolean isCompaction, DataBlockEncoding expectedDataBlockEncoding) throws IOException
key - the key we are looking forcurrentBlock - the current block, to avoid re-reading the same blockcacheBlocks - pread - isCompaction - expectedDataBlockEncoding - the data block encoding the caller is
          expecting the data block to be in, or null to not perform this
          check and return the block irrespective of the encoding.IOExceptionpublic byte[] midkey()
              throws IOException
HFile's mid-key. Operates on block
 boundaries, and does not go inside blocks. In other words, returns the
 first key of the middle block of the file.IOExceptionpublic byte[] getRootBlockKey(int i)
i - from 0 to - 1public long getRootBlockOffset(int i)
i - from 0 to - 1public int getRootBlockDataSize(int i)
i - zero-based index of a root-level blockpublic int getRootBlockCount()
public int rootBlockContainingKey(byte[] key,
                         int offset,
                         int length)
key - Key to findkey (between 0 and the
         number of blocks - 1) or -1 if this file does not contain the
         request.public int rootBlockContainingKey(Cell key)
key - Key to findpublic void readRootIndex(DataInput in, int numEntries) throws IOException
HFileBlockIndex.BlockIndexWriter.writeIndexBlocks(FSDataOutputStream) at the
 offset that function returned.in - the buffered input stream or wrapped byte input streamnumEntries - the number of root-level index entriesIOExceptionpublic DataInputStream readRootIndex(HFileBlock blk, int numEntries) throws IOException
HFileBlockIndex.BlockIndexWriter.writeIndexBlocks(FSDataOutputStream) at the
 offset that function returned.blk - the HFile blocknumEntries - the number of root-level index entriesIOExceptionpublic void readMultiLevelIndexRoot(HFileBlock blk, int numEntries) throws IOException
readRootIndex(DataInput, int), but also reads metadata
 necessary to compute the mid-key in a multi-level index.blk - the HFile blocknumEntries - the number of root-level index entriesIOExceptionCopyright © 2007-2016 The Apache Software Foundation. All Rights Reserved.