org.apache.hadoop.hbase.regionserver
Class ScanWildcardColumnTracker

java.lang.Object
  extended by org.apache.hadoop.hbase.regionserver.ScanWildcardColumnTracker
All Implemented Interfaces:
ColumnTracker

@InterfaceAudience.Private
public class ScanWildcardColumnTracker
extends Object
implements ColumnTracker

Keeps track of the columns for a scan if they are not explicitly specified


Constructor Summary
ScanWildcardColumnTracker(int minVersion, int maxVersion, long oldestUnexpiredTS)
          Return maxVersions of every row.
 
Method Summary
 ScanQueryMatcher.MatchCode checkColumn(byte[] bytes, int offset, int length, long timestamp, byte type, boolean ignoreCount)
          Keeps track of the number of versions for the columns asked for
 boolean done()
          We can never know a-priori if we are done, so always return false.
 ColumnCount getColumnHint()
          Used by matcher and scan/get to get a hint of the next column to seek to after checkColumn() returns SKIP.
 ScanQueryMatcher.MatchCode getNextRowOrNextColumn(byte[] bytes, int offset, int qualLength)
          Retrieve the MatchCode for the next row or column
 boolean isDone(long timestamp)
          Give the tracker a chance to declare it's done based on only the timestamp to allow an early out.
 void reset()
          Resets the Matcher
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ScanWildcardColumnTracker

public ScanWildcardColumnTracker(int minVersion,
                                 int maxVersion,
                                 long oldestUnexpiredTS)
Return maxVersions of every row.

Parameters:
minVersion - Minimum number of versions to keep
maxVersion - Maximum number of versions to return
oldestUnexpiredTS - oldest timestamp that has not expired according to the TTL.
Method Detail

checkColumn

public ScanQueryMatcher.MatchCode checkColumn(byte[] bytes,
                                              int offset,
                                              int length,
                                              long timestamp,
                                              byte type,
                                              boolean ignoreCount)
                                       throws IOException
Keeps track of the number of versions for the columns asked for This receives puts *and* deletes. Deletes do not count as a version, but rather take the version of the previous put (so eventually all but the last can be reclaimed).

Specified by:
checkColumn in interface ColumnTracker
timestamp - The timeToLive to enforce.
type - The type of the KeyValue
ignoreCount - indicates if the KV needs to be excluded while counting (used during compactions. We only count KV's that are older than all the scanners' read points.)
Returns:
The match code instance.
Throws:
IOException - in case there is an internal consistency problem caused by a data corruption.

reset

public void reset()
Description copied from interface: ColumnTracker
Resets the Matcher

Specified by:
reset in interface ColumnTracker

getColumnHint

public ColumnCount getColumnHint()
Used by matcher and scan/get to get a hint of the next column to seek to after checkColumn() returns SKIP. Returns the next interesting column we want, or NULL there is none (wildcard scanner).

Specified by:
getColumnHint in interface ColumnTracker
Returns:
The column count.

done

public boolean done()
We can never know a-priori if we are done, so always return false.

Specified by:
done in interface ColumnTracker
Returns:
false

getNextRowOrNextColumn

public ScanQueryMatcher.MatchCode getNextRowOrNextColumn(byte[] bytes,
                                                         int offset,
                                                         int qualLength)
Description copied from interface: ColumnTracker
Retrieve the MatchCode for the next row or column

Specified by:
getNextRowOrNextColumn in interface ColumnTracker

isDone

public boolean isDone(long timestamp)
Description copied from interface: ColumnTracker
Give the tracker a chance to declare it's done based on only the timestamp to allow an early out.

Specified by:
isDone in interface ColumnTracker
Returns:
true to early out based on timestamp.


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