Package org.apache.cassandra.db
Class RangeTombstoneList
- java.lang.Object
-
- org.apache.cassandra.db.RangeTombstoneList
-
- All Implemented Interfaces:
java.lang.Iterable<RangeTombstone>,IMeasurableMemory
public class RangeTombstoneList extends java.lang.Object implements java.lang.Iterable<RangeTombstone>, IMeasurableMemory
Data structure holding the range tombstones of a ColumnFamily.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.
-
-
Constructor Summary
Constructors Constructor Description RangeTombstoneList(ClusteringComparator comparator, int capacity)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(ClusteringBound<?> start, ClusteringBound<?> end, long markedAt, int delTime)Adds a new range tombstone.voidadd(RangeTombstone tombstone)voidaddAll(RangeTombstoneList tombstones)Adds all the range tombstones oftombstonesto this RangeTombstoneList.RangeTombstoneListclone(ByteBufferCloner cloner)voidcollectStats(EncodingStats.Collector collector)ClusteringComparatorcomparator()RangeTombstoneListcopy()intdataSize()booleanequals(java.lang.Object o)inthashCode()booleanisDeleted(Clustering<?> clustering, Cell<?> cell)Returns whether the given name/timestamp pair is deleted by one of the tombstone of this RangeTombstoneList.booleanisEmpty()java.util.Iterator<RangeTombstone>iterator()java.util.Iterator<RangeTombstone>iterator(boolean reversed)java.util.Iterator<RangeTombstone>iterator(Slice slice, boolean reversed)longmaxMarkedAt()RangeTombstonesearch(Clustering<?> name)DeletionTimesearchDeletionTime(Clustering<?> name)Returns the DeletionTime for the tombstone overlappingname(there can't be more than one), or null ifnameis not covered by any tombstone.intsize()longunsharedHeapSize()voidupdateAllTimestamp(long timestamp)
-
-
-
Constructor Detail
-
RangeTombstoneList
public RangeTombstoneList(ClusteringComparator comparator, int capacity)
-
-
Method Detail
-
isEmpty
public boolean isEmpty()
-
size
public int size()
-
comparator
public ClusteringComparator comparator()
-
copy
public RangeTombstoneList copy()
-
clone
public RangeTombstoneList clone(ByteBufferCloner cloner)
-
add
public void add(RangeTombstone tombstone)
-
add
public void add(ClusteringBound<?> start, ClusteringBound<?> end, long markedAt, int delTime)
Adds a new range tombstone. This method will be faster if the new tombstone sort after all the currently existing ones (this is a common use case), but it doesn't assume it.
-
addAll
public void addAll(RangeTombstoneList tombstones)
Adds all the range tombstones oftombstonesto this RangeTombstoneList.
-
isDeleted
public boolean isDeleted(Clustering<?> clustering, Cell<?> cell)
Returns whether the given name/timestamp pair is deleted by one of the tombstone of this RangeTombstoneList.
-
searchDeletionTime
public DeletionTime searchDeletionTime(Clustering<?> name)
Returns the DeletionTime for the tombstone overlappingname(there can't be more than one), or null ifnameis not covered by any tombstone.
-
search
public RangeTombstone search(Clustering<?> name)
-
dataSize
public int dataSize()
-
maxMarkedAt
public long maxMarkedAt()
-
collectStats
public void collectStats(EncodingStats.Collector collector)
-
updateAllTimestamp
public void updateAllTimestamp(long timestamp)
-
iterator
public java.util.Iterator<RangeTombstone> iterator()
- Specified by:
iteratorin interfacejava.lang.Iterable<RangeTombstone>
-
iterator
public java.util.Iterator<RangeTombstone> iterator(boolean reversed)
-
iterator
public java.util.Iterator<RangeTombstone> iterator(Slice slice, boolean reversed)
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public final int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
unsharedHeapSize
public long unsharedHeapSize()
- Specified by:
unsharedHeapSizein interfaceIMeasurableMemory- Returns:
- the amount of on-heap memory retained by the object that might be reclaimed if the object were reclaimed, i.e. it should try to exclude globally cached data where possible, or counting portions of arrays that are referenced by the object but used by other objects only (e.g. slabbed byte-buffers), etc.
-
-