public class RangeTombstoneList extends java.lang.Object implements java.lang.Iterable<RangeTombstone>
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 |
Modifier and Type | Field and Description |
---|---|
static RangeTombstoneList.Serializer |
serializer |
Constructor and Description |
---|
RangeTombstoneList(java.util.Comparator<java.nio.ByteBuffer> comparator,
int capacity) |
Modifier and Type | Method and Description |
---|---|
void |
add(java.nio.ByteBuffer start,
java.nio.ByteBuffer 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<java.nio.ByteBuffer> |
comparator() |
RangeTombstoneList |
copy() |
int |
dataSize() |
boolean |
equals(java.lang.Object o) |
int |
hashCode() |
boolean |
hasIrrelevantData(int gcBefore)
Returns whether
purge(gcBefore) would remove something or not. |
boolean |
isDeleted(java.nio.ByteBuffer name,
long timestamp)
Returns whether the given name/timestamp pair is deleted by one of the tombstone
of this RangeTombstoneList.
|
boolean |
isEmpty() |
java.util.Iterator<RangeTombstone> |
iterator() |
long |
maxMarkedAt() |
long |
minMarkedAt() |
void |
purge(int gcBefore)
Removes all range tombstones whose local deletion time is older than gcBefore.
|
DeletionTime |
search(java.nio.ByteBuffer 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() |
void |
updateAllTimestamp(long timestamp) |
public static final RangeTombstoneList.Serializer serializer
public RangeTombstoneList(java.util.Comparator<java.nio.ByteBuffer> comparator, int capacity)
public boolean isEmpty()
public int size()
public java.util.Comparator<java.nio.ByteBuffer> comparator()
public RangeTombstoneList copy()
public void add(RangeTombstone tombstone)
public void add(java.nio.ByteBuffer start, java.nio.ByteBuffer end, long markedAt, int delTime)
public void addAll(RangeTombstoneList tombstones)
tombstones
to this RangeTombstoneList.public boolean isDeleted(java.nio.ByteBuffer name, long timestamp)
public DeletionTime search(java.nio.ByteBuffer name)
name
(there can't be more than one),
or null if name
is not covered by any tombstone.public int dataSize()
public long minMarkedAt()
public long maxMarkedAt()
public void updateAllTimestamp(long timestamp)
public void purge(int gcBefore)
public boolean hasIrrelevantData(int gcBefore)
purge(gcBefore)
would remove something or not.public java.util.Iterator<RangeTombstone> iterator()
iterator
in interface java.lang.Iterable<RangeTombstone>
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public final int hashCode()
hashCode
in class java.lang.Object
Copyright © 2013 The Apache Software Foundation