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
IllegalStateException otherwise. |
int |
getRootBlockCount() |
int |
getRootBlockDataSize(int i) |
byte[] |
getRootBlockKey(int i) |
long |
getRootBlockOffset(int i) |
long |
heapSize() |
boolean |
isEmpty() |
BlockWithScanInfo |
loadDataBlockWithScanInfo(byte[] key,
int keyOffset,
int keyLength,
HFileBlock currentBlock,
boolean cacheBlocks,
boolean pread,
boolean isCompaction)
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.
|
HFileBlock |
seekToDataBlock(byte[] key,
int keyOffset,
int keyLength,
HFileBlock currentBlock,
boolean cacheBlocks,
boolean pread,
boolean isCompaction)
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(byte[] key, int keyOffset, int keyLength, HFileBlock currentBlock, boolean cacheBlocks, boolean pread, boolean isCompaction) throws IOException
key - the key we are looking forkeyOffset - the offset of the key in its byte arraykeyLength - the length of the keycurrentBlock - the current block, to avoid re-reading the same
blockIOExceptionpublic BlockWithScanInfo loadDataBlockWithScanInfo(byte[] key, int keyOffset, int keyLength, HFileBlock currentBlock, boolean cacheBlocks, boolean pread, boolean isCompaction) throws IOException
key - the key we are looking forkeyOffset - the offset of the key in its byte arraykeyLength - the length of the keycurrentBlock - the current block, to avoid re-reading the same
blockcacheBlocks - pread - isCompaction - 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 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 © 2014 The Apache Software Foundation. All rights reserved.