Package org.apache.cassandra.db.rows
Class ComplexColumnData
- java.lang.Object
-
- org.apache.cassandra.db.rows.ColumnData
-
- org.apache.cassandra.db.rows.ComplexColumnData
-
- All Implemented Interfaces:
java.lang.Iterable<Cell<?>>
,IMeasurableMemory
public class ComplexColumnData extends ColumnData implements java.lang.Iterable<Cell<?>>
The data for a complex column, that is it's cells and potential complex deletion time.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ComplexColumnData.Builder
-
Nested classes/interfaces inherited from class org.apache.cassandra.db.rows.ColumnData
ColumnData.PostReconciliationFunction, ColumnData.Reconciler
-
-
Field Summary
-
Fields inherited from class org.apache.cassandra.db.rows.ColumnData
column, comparator, noOp
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <A> long
accumulate(BiLongAccumulator<A,Cell<?>> accumulator, A arg, long initialValue)
long
accumulate(LongAccumulator<Cell<?>> accumulator, long initialValue)
static ComplexColumnData.Builder
builder()
int
cellsCount()
ColumnData
clone(Cloner cloner)
DeletionTime
complexDeletion()
The complex deletion time of the complex column.int
dataSize()
The size of the data hold by thisColumnData
.void
digest(Digest digest)
Adds the data to the provided digest.boolean
equals(java.lang.Object other)
ComplexColumnData
filter(ColumnFilter filter, DeletionTime activeDeletion, DroppedColumn dropped, LivenessInfo rowLiveness)
Cell<?>
getCell(CellPath path)
Cell<?>
getCellByIndex(int idx)
int
hashCode()
boolean
hasInvalidDeletions()
Validates the deletions (ttl and local deletion time) if any.java.util.Iterator<Cell<?>>
iterator()
ComplexColumnData
markCounterLocalToBeCleared()
long
maxTimestamp()
ComplexColumnData
purge(DeletionPurger purger, long nowInSec)
ComplexColumnData
purgeDataOlderThan(long timestamp)
java.util.Iterator<Cell<?>>
reverseIterator()
SearchIterator<CellPath,Cell>
searchIterator()
java.lang.String
toString()
<V> ComplexColumnData
transform(com.google.common.base.Function<? super Cell<?>,? extends Cell<?>> function)
ComplexColumnData
transformAndFilter(com.google.common.base.Function<? super Cell<?>,? extends Cell<?>> function)
ComplexColumnData
transformAndFilter(DeletionTime newDeletion, com.google.common.base.Function<? super Cell,? extends Cell> function)
static ComplexColumnData
unsafeConstruct(ColumnMetadata column, java.lang.Object[] cells, DeletionTime complexDeletion)
long
unsharedHeapSize()
long
unsharedHeapSizeExcludingData()
ComplexColumnData
updateAllTimestamp(long newTimestamp)
Returns a copy of the data where all timestamps for live data have replaced bynewTimestamp
and all deletion timestamp bynewTimestamp - 1
.void
validate()
Validate the column data.ComplexColumnData
withOnlyQueriedData(ColumnFilter filter)
-
Methods inherited from class org.apache.cassandra.db.rows.ColumnData
column, digest, reconciler
-
-
-
-
Method Detail
-
cellsCount
public int cellsCount()
-
getCellByIndex
public Cell<?> getCellByIndex(int idx)
-
complexDeletion
public DeletionTime complexDeletion()
The complex deletion time of the complex column.The returned "complex deletion" is a deletion of all the cells of the column. For instance, for a collection, this correspond to a full collection deletion. Please note that this deletion says nothing about the individual cells of the complex column: there can be no complex deletion but some of the individual cells can be deleted.
- Returns:
- the complex deletion time for the column this is the data of or
DeletionTime.LIVE
if the column is not deleted.
-
iterator
public java.util.Iterator<Cell<?>> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<Cell<?>>
-
searchIterator
public SearchIterator<CellPath,Cell> searchIterator()
-
reverseIterator
public java.util.Iterator<Cell<?>> reverseIterator()
-
accumulate
public long accumulate(LongAccumulator<Cell<?>> accumulator, long initialValue)
-
accumulate
public <A> long accumulate(BiLongAccumulator<A,Cell<?>> accumulator, A arg, long initialValue)
-
dataSize
public int dataSize()
Description copied from class:ColumnData
The size of the data hold by thisColumnData
.- Specified by:
dataSize
in classColumnData
- Returns:
- the size used by the data of this
ColumnData
.
-
unsharedHeapSize
public long unsharedHeapSize()
- Specified by:
unsharedHeapSize
in interfaceIMeasurableMemory
- Specified by:
unsharedHeapSize
in classColumnData
- 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.
-
unsharedHeapSizeExcludingData
public long unsharedHeapSizeExcludingData()
- Specified by:
unsharedHeapSizeExcludingData
in classColumnData
-
validate
public void validate()
Description copied from class:ColumnData
Validate the column data.- Specified by:
validate
in classColumnData
-
digest
public void digest(Digest digest)
Description copied from class:ColumnData
Adds the data to the provided digest.- Specified by:
digest
in classColumnData
- Parameters:
digest
- theDigest
to add the data to.
-
hasInvalidDeletions
public boolean hasInvalidDeletions()
Description copied from class:ColumnData
Validates the deletions (ttl and local deletion time) if any.- Specified by:
hasInvalidDeletions
in classColumnData
- Returns:
- true if it has any invalid deletions, false otherwise
-
markCounterLocalToBeCleared
public ComplexColumnData markCounterLocalToBeCleared()
- Specified by:
markCounterLocalToBeCleared
in classColumnData
-
filter
public ComplexColumnData filter(ColumnFilter filter, DeletionTime activeDeletion, DroppedColumn dropped, LivenessInfo rowLiveness)
-
purge
public ComplexColumnData purge(DeletionPurger purger, long nowInSec)
- Specified by:
purge
in classColumnData
-
withOnlyQueriedData
public ComplexColumnData withOnlyQueriedData(ColumnFilter filter)
-
purgeDataOlderThan
public ComplexColumnData purgeDataOlderThan(long timestamp)
- Specified by:
purgeDataOlderThan
in classColumnData
-
transformAndFilter
public ComplexColumnData transformAndFilter(com.google.common.base.Function<? super Cell<?>,? extends Cell<?>> function)
-
transformAndFilter
public ComplexColumnData transformAndFilter(DeletionTime newDeletion, com.google.common.base.Function<? super Cell,? extends Cell> function)
-
transform
public <V> ComplexColumnData transform(com.google.common.base.Function<? super Cell<?>,? extends Cell<?>> function)
-
clone
public ColumnData clone(Cloner cloner)
- Specified by:
clone
in classColumnData
-
updateAllTimestamp
public ComplexColumnData updateAllTimestamp(long newTimestamp)
Description copied from class:ColumnData
Returns a copy of the data where all timestamps for live data have replaced bynewTimestamp
and all deletion timestamp bynewTimestamp - 1
. This exists for the Paxos path, seePartitionUpdate#updateAllTimestamp
for additional details.- Specified by:
updateAllTimestamp
in classColumnData
-
maxTimestamp
public long maxTimestamp()
- Specified by:
maxTimestamp
in classColumnData
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
unsafeConstruct
public static ComplexColumnData unsafeConstruct(ColumnMetadata column, java.lang.Object[] cells, DeletionTime complexDeletion)
-
builder
public static ComplexColumnData.Builder builder()
-
-