@InterfaceAudience.Private public abstract class TimeRangeTracker extends Object
TimeRange at read time instead of this. See toTimeRange() to make TimeRange to use.
MemStores use this class to track minimum and maximum timestamps. The TimeRangeTracker made by
the MemStore is passed to the StoreFile for it to write out as part a flush in the the file
metadata. If no memstore involved -- i.e. a compaction -- then the StoreFile will calculate its
own TimeRangeTracker as it appends. The StoreFile serialized TimeRangeTracker is used
at read time via an instance of TimeRange to test if Cells fit the StoreFile TimeRange.| Modifier and Type | Class and Description |
|---|---|
static class |
TimeRangeTracker.NonSyncTimeRangeTracker |
static class |
TimeRangeTracker.SyncTimeRangeTracker |
static class |
TimeRangeTracker.Type |
| Constructor and Description |
|---|
TimeRangeTracker() |
| Modifier and Type | Method and Description |
|---|---|
protected abstract boolean |
compareAndSetMax(long expect,
long update) |
protected abstract boolean |
compareAndSetMin(long expect,
long update) |
static TimeRangeTracker |
create(TimeRangeTracker.Type type) |
static TimeRangeTracker |
create(TimeRangeTracker.Type type,
long minimumTimestamp,
long maximumTimestamp) |
static TimeRangeTracker |
create(TimeRangeTracker.Type type,
TimeRangeTracker trt) |
abstract long |
getMax() |
abstract long |
getMin() |
boolean |
includesTimeRange(TimeRange tr)
Check if the range has ANY overlap with TimeRange
|
void |
includeTimestamp(Cell cell)
Update the current TimestampRange to include the timestamp from
cell. |
static TimeRangeTracker |
parseFrom(byte[] data) |
static TimeRangeTracker |
parseFrom(byte[] data,
TimeRangeTracker.Type type) |
protected abstract void |
setMax(long ts) |
protected abstract void |
setMin(long ts) |
static byte[] |
toByteArray(TimeRangeTracker tracker) |
String |
toString() |
public static TimeRangeTracker create(TimeRangeTracker.Type type)
public static TimeRangeTracker create(TimeRangeTracker.Type type, TimeRangeTracker trt)
public static TimeRangeTracker create(TimeRangeTracker.Type type, long minimumTimestamp, long maximumTimestamp)
protected abstract void setMax(long ts)
protected abstract void setMin(long ts)
protected abstract boolean compareAndSetMin(long expect,
long update)
protected abstract boolean compareAndSetMax(long expect,
long update)
public void includeTimestamp(Cell cell)
cell.
If the Key is of type DeleteColumn or DeleteFamily, it includes the
entire time range from 0 to timestamp of the key.cell - the Cell to includepublic boolean includesTimeRange(TimeRange tr)
tr - TimeRange, it expects [minStamp, maxStamp)public abstract long getMin()
public abstract long getMax()
public static TimeRangeTracker parseFrom(byte[] data) throws IOException
data - the serialization data. It can't be null!timeRangeTrackerBytes.IOExceptionpublic static TimeRangeTracker parseFrom(byte[] data, TimeRangeTracker.Type type) throws IOException
IOExceptionpublic static byte[] toByteArray(TimeRangeTracker tracker)
Copyright © 2007–2018 The Apache Software Foundation. All rights reserved.