org.apache.hadoop.hbase.regionserver
Class StoreFile.Reader

java.lang.Object
  extended by org.apache.hadoop.hbase.regionserver.StoreFile.Reader
Direct Known Subclasses:
HalfStoreFileReader
Enclosing class:
StoreFile

public static class StoreFile.Reader
extends Object

Reader for a StoreFile.


Field Summary
protected  BloomFilter bloomFilter
           
protected  StoreFile.BloomType bloomFilterType
           
protected  long sequenceID
           
protected  TimeRangeTracker timeRangeTracker
           
 
Constructor Summary
StoreFile.Reader(org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path path, CacheConfig cacheConf)
           
 
Method Summary
 void close(boolean evictOnClose)
           
 StoreFile.BloomType getBloomFilterType()
           
 org.apache.hadoop.io.RawComparator<byte[]> getComparator()
           
 long getEntries()
           
 long getFilterEntries()
          The number of Bloom filter entries in this store file, or an estimate thereof, if the Bloom filter is not loaded.
 byte[] getFirstKey()
           
 int getHFileVersion()
           
 byte[] getLastKey()
           
 HFileScanner getScanner(boolean cacheBlocks, boolean pread)
          Deprecated. 
 HFileScanner getScanner(boolean cacheBlocks, boolean pread, boolean isCompaction)
          Deprecated. 
 long getSequenceID()
           
 org.apache.hadoop.hbase.regionserver.StoreFileScanner getStoreFileScanner(boolean cacheBlocks, boolean pread)
          Get a scanner to scan over this StoreFile.
 org.apache.hadoop.hbase.regionserver.StoreFileScanner getStoreFileScanner(boolean cacheBlocks, boolean pread, boolean isCompaction)
          Get a scanner to scan over this StoreFile.
 long getTotalBloomSize()
           
 long getTotalUncompressedBytes()
           
 long indexSize()
           
 long length()
           
 void loadBloomfilter()
           
 Map<byte[],byte[]> loadFileInfo()
           
 byte[] midkey()
           
 boolean passesBloomFilter(byte[] row, int rowOffset, int rowLen, byte[] col, int colOffset, int colLen)
          A method for checking Bloom filters.
 void setBloomFilterFaulty()
           
 void setSequenceID(long sequenceID)
           
 boolean shouldSeek(Scan scan, SortedSet<byte[]> columns)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bloomFilter

protected BloomFilter bloomFilter

bloomFilterType

protected StoreFile.BloomType bloomFilterType

timeRangeTracker

protected TimeRangeTracker timeRangeTracker

sequenceID

protected long sequenceID
Constructor Detail

StoreFile.Reader

public StoreFile.Reader(org.apache.hadoop.fs.FileSystem fs,
                        org.apache.hadoop.fs.Path path,
                        CacheConfig cacheConf)
                 throws IOException
Throws:
IOException
Method Detail

getComparator

public org.apache.hadoop.io.RawComparator<byte[]> getComparator()

getStoreFileScanner

public org.apache.hadoop.hbase.regionserver.StoreFileScanner getStoreFileScanner(boolean cacheBlocks,
                                                                                 boolean pread)
Get a scanner to scan over this StoreFile.

Parameters:
cacheBlocks - should this scanner cache blocks?
pread - use pread (for highly concurrent small readers)
Returns:
a scanner

getStoreFileScanner

public org.apache.hadoop.hbase.regionserver.StoreFileScanner getStoreFileScanner(boolean cacheBlocks,
                                                                                 boolean pread,
                                                                                 boolean isCompaction)
Get a scanner to scan over this StoreFile.

Parameters:
cacheBlocks - should this scanner cache blocks?
pread - use pread (for highly concurrent small readers)
isCompaction - is scanner being used for compaction?
Returns:
a scanner

getScanner

@Deprecated
public HFileScanner getScanner(boolean cacheBlocks,
                                          boolean pread)
Deprecated. 

Warning: Do not write further code which depends on this call. Instead use getStoreFileScanner() which uses the StoreFileScanner class/interface which is the preferred way to scan a store with higher level concepts.

Parameters:
cacheBlocks - should we cache the blocks?
pread - use pread (for concurrent small readers)
Returns:
the underlying HFileScanner

getScanner

@Deprecated
public HFileScanner getScanner(boolean cacheBlocks,
                                          boolean pread,
                                          boolean isCompaction)
Deprecated. 

Warning: Do not write further code which depends on this call. Instead use getStoreFileScanner() which uses the StoreFileScanner class/interface which is the preferred way to scan a store with higher level concepts.

Parameters:
cacheBlocks - should we cache the blocks?
pread - use pread (for concurrent small readers)
isCompaction - is scanner being used for compaction?
Returns:
the underlying HFileScanner

close

public void close(boolean evictOnClose)
           throws IOException
Throws:
IOException

shouldSeek

public boolean shouldSeek(Scan scan,
                          SortedSet<byte[]> columns)

passesBloomFilter

public boolean passesBloomFilter(byte[] row,
                                 int rowOffset,
                                 int rowLen,
                                 byte[] col,
                                 int colOffset,
                                 int colLen)
A method for checking Bloom filters. Called directly from StoreFileScanner in case of a multi-column query.

Parameters:
row -
rowOffset -
rowLen -
col -
colOffset -
colLen -
Returns:
True if passes

loadFileInfo

public Map<byte[],byte[]> loadFileInfo()
                                throws IOException
Throws:
IOException

loadBloomfilter

public void loadBloomfilter()

getFilterEntries

public long getFilterEntries()
The number of Bloom filter entries in this store file, or an estimate thereof, if the Bloom filter is not loaded. This always returns an upper bound of the number of Bloom filter entries.

Returns:
an estimate of the number of Bloom filter entries in this file

setBloomFilterFaulty

public void setBloomFilterFaulty()

getLastKey

public byte[] getLastKey()

midkey

public byte[] midkey()
              throws IOException
Throws:
IOException

length

public long length()

getTotalUncompressedBytes

public long getTotalUncompressedBytes()

getEntries

public long getEntries()

getFirstKey

public byte[] getFirstKey()

indexSize

public long indexSize()

getBloomFilterType

public StoreFile.BloomType getBloomFilterType()

getSequenceID

public long getSequenceID()

setSequenceID

public void setSequenceID(long sequenceID)

getTotalBloomSize

public long getTotalBloomSize()

getHFileVersion

public int getHFileVersion()


Copyright © 2012 The Apache Software Foundation. All Rights Reserved.