|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.hadoop.hbase.regionserver.ScanWildcardColumnTracker
@InterfaceAudience.Private public class ScanWildcardColumnTracker
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,
byte type)
Checks if the column is present in the list of requested columns by returning the match code instance. |
ScanQueryMatcher.MatchCode |
checkVersions(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 |
|---|
public ScanWildcardColumnTracker(int minVersion,
int maxVersion,
long oldestUnexpiredTS)
minVersion - Minimum number of versions to keepmaxVersion - Maximum number of versions to returnoldestUnexpiredTS - oldest timestamp that has not expired according
to the TTL.| Method Detail |
|---|
public ScanQueryMatcher.MatchCode checkColumn(byte[] bytes,
int offset,
int length,
byte type)
throws IOException
ColumnTracker.checkVersions(byte[], int, int, long, byte, boolean)
method based on the return type (INCLUDE) of this method. The values that can be returned by
this method are ScanQueryMatcher.MatchCode.INCLUDE, ScanQueryMatcher.MatchCode.SEEK_NEXT_COL and
ScanQueryMatcher.MatchCode.SEEK_NEXT_ROW.
This receives puts *and* deletes.
checkColumn in interface ColumnTrackertype - The type of the KeyValue
IOException - in case there is an internal consistency problem caused by a data
corruption.
public ScanQueryMatcher.MatchCode checkVersions(byte[] bytes,
int offset,
int length,
long timestamp,
byte type,
boolean ignoreCount)
throws IOException
ColumnTracker.checkColumn(byte[], int, int, byte) method. The enum values returned by this method
are ScanQueryMatcher.MatchCode.SKIP, ScanQueryMatcher.MatchCode.INCLUDE,
ScanQueryMatcher.MatchCode.INCLUDE_AND_SEEK_NEXT_COL and ScanQueryMatcher.MatchCode.INCLUDE_AND_SEEK_NEXT_ROW.
Implementations which include all the columns could just return ScanQueryMatcher.MatchCode.INCLUDE in
the ColumnTracker.checkColumn(byte[], int, int, byte) method and perform all the operations in this
checkVersions method.
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).
checkVersions in interface ColumnTrackertimestamp - The timeToLive to enforce.type - the type of the key value (Put/Delete)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.)
IOException - in case there is an internal consistency problem caused by a data
corruption.public void reset()
ColumnTracker
reset in interface ColumnTrackerpublic ColumnCount getColumnHint()
getColumnHint in interface ColumnTrackerpublic boolean done()
done in interface ColumnTracker
public ScanQueryMatcher.MatchCode getNextRowOrNextColumn(byte[] bytes,
int offset,
int qualLength)
ColumnTracker
getNextRowOrNextColumn in interface ColumnTrackerpublic boolean isDone(long timestamp)
ColumnTracker
isDone in interface ColumnTrackertrue to early out based on timestamp.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||