Class ColumnData

java.lang.Object
org.apache.cassandra.db.rows.ColumnData
All Implemented Interfaces:
IMeasurableMemory
Direct Known Subclasses:
Cell, ComplexColumnData

public abstract class ColumnData extends Object implements IMeasurableMemory
Generic interface for the data of a given column (inside a row). In practice, there is only 2 implementations of this: either Cell for simple columns or ComplexColumnData for complex columns.
  • Field Details

  • Constructor Details

  • Method Details

    • reconciler

      public static ColumnData.Reconciler reconciler(ColumnData.PostReconciliationFunction updateF, DeletionTime activeDeletion)
      Construct an UpdateFunction for reconciling normal ColumnData (i.e. not suitable for ComplexColumnDeletion sentinels, but suitable ComplexColumnData or Cell)
      Parameters:
      updateF - a consumer receiving all pairs of reconciled cells
      activeDeletion - the row or partition deletion time to use for purging
    • column

      public final ColumnMetadata column()
      The column this is data for.
      Returns:
      the column this is a data for.
    • dataSize

      public abstract int dataSize()
      The size of the data hold by this ColumnData.
      Returns:
      the size used by the data of this ColumnData.
    • unsharedHeapSizeExcludingData

      public abstract long unsharedHeapSizeExcludingData()
    • unsharedHeapSize

      public abstract long unsharedHeapSize()
      Specified by:
      unsharedHeapSize in interface IMeasurableMemory
      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.
    • validate

      public abstract void validate()
      Validate the column data.
      Throws:
      MarshalException - if the data is not valid.
    • hasInvalidDeletions

      public abstract boolean hasInvalidDeletions()
      Validates the deletions (ttl and local deletion time) if any.
      Returns:
      true if it has any invalid deletions, false otherwise
    • digest

      public abstract void digest(Digest digest)
      Adds the data to the provided digest.
      Parameters:
      digest - the Digest to add the data to.
    • digest

      public static void digest(Digest digest, ColumnData cd)
    • clone

      public abstract ColumnData clone(Cloner cloner)
    • updateAllTimestamp

      public abstract ColumnData updateAllTimestamp(long newTimestamp)
      Returns a copy of the data where all timestamps for live data have replaced by newTimestamp and all deletion timestamp by newTimestamp - 1. This exists for the Paxos path, see PartitionUpdate#updateAllTimestamp for additional details.
    • markCounterLocalToBeCleared

      public abstract ColumnData markCounterLocalToBeCleared()
    • purge

      public abstract ColumnData purge(DeletionPurger purger, long nowInSec)
    • purgeDataOlderThan

      public abstract ColumnData purgeDataOlderThan(long timestamp)
    • maxTimestamp

      public abstract long maxTimestamp()