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  BloomType bloomFilterType
           
protected  BloomFilter deleteFamilyBloomFilter
           
protected  BloomFilter generalBloomFilter
           
protected  long sequenceID
           
protected  TimeRangeTracker timeRangeTracker
           
 
Constructor Summary
StoreFile.Reader(org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path path, CacheConfig cacheConf, org.apache.hadoop.conf.Configuration conf)
           
StoreFile.Reader(org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path path, FSDataInputStreamWrapper in, long size, CacheConfig cacheConf, org.apache.hadoop.conf.Configuration conf)
           
 
Method Summary
 void close(boolean evictOnClose)
           
 BloomType getBloomFilterType()
           
 KeyValue.KVComparator getComparator()
           
 long getDeleteFamilyCnt()
           
 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 getHFileMinorVersion()
           
 HFile.Reader getHFileReader()
           
 int getHFileVersion()
           
 byte[] getLastKey()
           
 byte[] getLastRowKey()
           
 long getMaxTimestamp()
           
 HFileScanner getScanner(boolean cacheBlocks, boolean pread)
          Deprecated. 
 HFileScanner getScanner(boolean cacheBlocks, boolean pread, boolean isCompaction)
          Deprecated. 
 long getSequenceID()
           
 StoreFileScanner getStoreFileScanner(boolean cacheBlocks, boolean pread)
          Get a scanner to scan over this StoreFile.
 StoreFileScanner getStoreFileScanner(boolean cacheBlocks, boolean pread, boolean isCompaction, long readPt)
          Get a scanner to scan over this StoreFile.
 long getTotalBloomSize()
           
 long getTotalUncompressedBytes()
           
 long indexSize()
           
 boolean isBulkLoaded()
           
 long length()
           
 void loadBloomfilter()
           
 Map<byte[],byte[]> loadFileInfo()
           
 byte[] midkey()
           
 boolean passesDeleteFamilyBloomFilter(byte[] row, int rowOffset, int rowLen)
           
 boolean passesGeneralBloomFilter(byte[] row, int rowOffset, int rowLen, byte[] col, int colOffset, int colLen)
          A method for checking Bloom filters.
 boolean passesKeyRangeFilter(Scan scan)
          Checks whether the given scan rowkey range overlaps with the current storefile's
 void setBulkLoaded(boolean bulkLoadResult)
           
 void setDeleteFamilyBloomFilterFaulty()
           
 void setGeneralBloomFilterFaulty()
           
 void setSequenceID(long sequenceID)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

generalBloomFilter

protected BloomFilter generalBloomFilter

deleteFamilyBloomFilter

protected BloomFilter deleteFamilyBloomFilter

bloomFilterType

protected 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,
                        org.apache.hadoop.conf.Configuration conf)
                 throws IOException
Throws:
IOException

StoreFile.Reader

public StoreFile.Reader(org.apache.hadoop.fs.FileSystem fs,
                        org.apache.hadoop.fs.Path path,
                        FSDataInputStreamWrapper in,
                        long size,
                        CacheConfig cacheConf,
                        org.apache.hadoop.conf.Configuration conf)
                 throws IOException
Throws:
IOException
Method Detail

getComparator

public KeyValue.KVComparator getComparator()

getStoreFileScanner

public StoreFileScanner getStoreFileScanner(boolean cacheBlocks,
                                            boolean pread)
Get a scanner to scan over this StoreFile. Do not use this overload if using this scanner for compactions.

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

getStoreFileScanner

public StoreFileScanner getStoreFileScanner(boolean cacheBlocks,
                                            boolean pread,
                                            boolean isCompaction,
                                            long readPt)
Get a scanner to scan over this StoreFile. Bulk loaded files may or may not have mvcc info. We will consistently ignore MVCC info in bulk loaded file. They will be visible to scanners immediately following bulk load.

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

passesDeleteFamilyBloomFilter

public boolean passesDeleteFamilyBloomFilter(byte[] row,
                                             int rowOffset,
                                             int rowLen)

passesGeneralBloomFilter

public boolean passesGeneralBloomFilter(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

passesKeyRangeFilter

public boolean passesKeyRangeFilter(Scan scan)
Checks whether the given scan rowkey range overlaps with the current storefile's

Parameters:
scan - the scan specification. Used to determine the rowkey range.
Returns:
true if there is overlap, false otherwise

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

setGeneralBloomFilterFaulty

public void setGeneralBloomFilterFaulty()

setDeleteFamilyBloomFilterFaulty

public void setDeleteFamilyBloomFilterFaulty()

getLastKey

public byte[] getLastKey()

getLastRowKey

public byte[] getLastRowKey()

midkey

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

length

public long length()

getTotalUncompressedBytes

public long getTotalUncompressedBytes()

getEntries

public long getEntries()

getDeleteFamilyCnt

public long getDeleteFamilyCnt()

getFirstKey

public byte[] getFirstKey()

indexSize

public long indexSize()

getBloomFilterType

public BloomType getBloomFilterType()

getSequenceID

public long getSequenceID()

setSequenceID

public void setSequenceID(long sequenceID)

getTotalBloomSize

public long getTotalBloomSize()

getHFileVersion

public int getHFileVersion()

getHFileMinorVersion

public int getHFileMinorVersion()

getHFileReader

public HFile.Reader getHFileReader()

getMaxTimestamp

public long getMaxTimestamp()

setBulkLoaded

public void setBulkLoaded(boolean bulkLoadResult)

isBulkLoaded

public boolean isBulkLoaded()


Copyright © 2015 The Apache Software Foundation. All rights reserved.