public class RangeTombstoneList extends java.lang.Object implements java.lang.Iterable<RangeTombstone>, IMeasurableMemory
This is essentially a sorted list of non-overlapping (tombstone) ranges.
A range tombstone has 4 elements: the start and end of the range covered, and the deletion infos (markedAt timestamp and local deletion time). The markedAt timestamp is what define the priority of 2 overlapping tombstones. That is, given 2 tombstones [0, 10]@t1 and [5, 15]@t2, then if t2 > t1 (and are the tombstones markedAt values), the 2nd tombstone take precedence over the first one on [5, 10]. If such tombstones are added to a RangeTombstoneList, the range tombstone list will store them as [[0, 5]@t1, [5, 15]@t2].
The only use of the local deletion time is to know when a given tombstone can be purged, which will be done by the purge() method.
Modifier and Type | Class and Description |
---|---|
class |
RangeTombstoneList.InOrderTester
This object allow testing whether a given column (name/timestamp) is deleted
or not by this RangeTombstoneList, assuming that the column given to this
object are passed in (comparator) sorted order.
|
static class |
RangeTombstoneList.Serializer |
Constructor and Description |
---|
RangeTombstoneList(java.util.Comparator<Composite> comparator,
int capacity) |
Modifier and Type | Method and Description |
---|---|
void |
add(Composite start,
Composite end,
long markedAt,
int delTime)
Adds a new range tombstone.
|
void |
add(RangeTombstone tombstone) |
void |
addAll(RangeTombstoneList tombstones)
Adds all the range tombstones of
tombstones to this RangeTombstoneList. |
java.util.Comparator<Composite> |
comparator() |
RangeTombstoneList |
copy() |
RangeTombstoneList |
copy(AbstractAllocator allocator) |
int |
dataSize() |
RangeTombstoneList |
diff(RangeTombstoneList superset)
Evaluates a diff between superset (known to be all merged tombstones) and this list for read repair
|
boolean |
equals(java.lang.Object o) |
int |
hashCode() |
boolean |
hasPurgeableTombstones(int gcBefore)
Returns whether
purge(gcBefore) would remove something or not. |
boolean |
isDeleted(Cell cell)
Returns whether the given name/timestamp pair is deleted by one of the tombstone
of this RangeTombstoneList.
|
boolean |
isEmpty() |
java.util.Iterator<RangeTombstone> |
iterator() |
java.util.Iterator<RangeTombstone> |
iterator(Composite from,
Composite till) |
long |
maxMarkedAt() |
long |
minMarkedAt() |
void |
purge(int gcBefore)
Removes all range tombstones whose local deletion time is older than gcBefore.
|
RangeTombstone |
search(Composite name) |
DeletionTime |
searchDeletionTime(Composite name)
Returns the DeletionTime for the tombstone overlapping
name (there can't be more than one),
or null if name is not covered by any tombstone. |
int |
size() |
long |
unsharedHeapSize() |
void |
updateAllTimestamp(long timestamp) |
void |
updateDigest(java.security.MessageDigest digest)
Calculates digest for triggering read repair on mismatch
|
public RangeTombstoneList(java.util.Comparator<Composite> comparator, int capacity)
public boolean isEmpty()
public int size()
public java.util.Comparator<Composite> comparator()
public RangeTombstoneList copy()
public RangeTombstoneList copy(AbstractAllocator allocator)
public void add(RangeTombstone tombstone)
public void add(Composite start, Composite end, long markedAt, int delTime)
public void addAll(RangeTombstoneList tombstones)
tombstones
to this RangeTombstoneList.public boolean isDeleted(Cell cell)
public DeletionTime searchDeletionTime(Composite name)
name
(there can't be more than one),
or null if name
is not covered by any tombstone.public RangeTombstone search(Composite name)
public int dataSize()
public long minMarkedAt()
public long maxMarkedAt()
public void updateAllTimestamp(long timestamp)
public void purge(int gcBefore)
public boolean hasPurgeableTombstones(int gcBefore)
purge(gcBefore)
would remove something or not.public java.util.Iterator<RangeTombstone> iterator()
iterator
in interface java.lang.Iterable<RangeTombstone>
public java.util.Iterator<RangeTombstone> iterator(Composite from, Composite till)
public RangeTombstoneList diff(RangeTombstoneList superset)
public void updateDigest(java.security.MessageDigest digest)
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public final int hashCode()
hashCode
in class java.lang.Object
public long unsharedHeapSize()
unsharedHeapSize
in interface IMeasurableMemory
Copyright © 2018 The Apache Software Foundation