@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.| 限定符和类型 | 类和说明 |
|---|---|
static class |
TimeRangeTracker.NonSyncTimeRangeTracker |
static class |
TimeRangeTracker.SyncTimeRangeTracker |
static class |
TimeRangeTracker.Type |
| 构造器和说明 |
|---|
TimeRangeTracker() |
| 限定符和类型 | 方法和说明 |
|---|---|
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)
This method used to serialize TimeRangeTracker (TRT) by protobuf while this breaks the
forward compatibility on HFile.
|
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) throws IOException
tracker - TimeRangeTracker needed to be serialized.IOException - if something goes wrong in writeLong.Copyright © 2007–2019 The Apache Software Foundation. All rights reserved.