org.apache.hadoop.hbase.regionserver
Interface InternalScanner

All Superinterfaces:
Closeable
All Known Implementing Classes:
HAbstractScanner

public interface InternalScanner
extends Closeable

Internal scanners differ from client-side scanners in that they operate on HStoreKeys and byte[] instead of RowResults. This is because they are actually close to how the data is physically stored, and therefore it is more convenient to interact with them that way. It is also much easier to merge the results across SortedMaps than RowResults.

Additionally, we need to be able to determine if the scanner is doing wildcard column matches (when only a column family is specified or if a column regex is specified) or if multiple members of the same column family were specified. If so, we need to ignore the timestamp to ensure that we get all the family members, as they may have been last updated at different times.


Method Summary
 void close()
          Closes the scanner and releases any resources it has allocated
 boolean isMultipleMatchScanner()
           
 boolean isWildcardScanner()
           
 boolean next(HStoreKey key, SortedMap<byte[],Cell> results)
          Grab the next row's worth of values.
 

Method Detail

next

boolean next(HStoreKey key,
             SortedMap<byte[],Cell> results)
             throws IOException
Grab the next row's worth of values. The scanner will return the most recent data value for each row that is not newer than the target time passed when the scanner was created.

Parameters:
key - will contain the row and timestamp upon return
results - will contain an entry for each column family member and its value
Returns:
true if data was returned
Throws:
IOException

close

void close()
           throws IOException
Closes the scanner and releases any resources it has allocated

Specified by:
close in interface Closeable
Throws:
IOException

isWildcardScanner

boolean isWildcardScanner()
Returns:
true if the scanner is matching a column family or regex

isMultipleMatchScanner

boolean isMultipleMatchScanner()
Returns:
true if the scanner is matching multiple column family members


Copyright © 2008 The Apache Software Foundation