Class Row.Deletion

java.lang.Object
org.apache.cassandra.db.rows.Row.Deletion
Enclosing interface:
Row

public static class Row.Deletion extends Object
A row deletion/tombstone.

A row deletion mostly consists of the time of said deletion, but there is 2 variants: shadowable and regular row deletion.

A shadowable row deletion only exists if the row has no timestamp. In other words, the deletion is only valid as long as no newer insert is done (thus setting a row timestamp; note that if the row timestamp set is lower than the deletion, it is shadowed (and thus ignored) as usual).

That is, if a row has a shadowable deletion with timestamp A and an update is made to that row with a timestamp B such that B > A (and that update sets the row timestamp), then the shadowable deletion is 'shadowed' by that update. A concrete consequence is that if said update has cells with timestamp lower than A, then those cells are preserved(since the deletion is removed), and this is contrary to a normal (regular) deletion where the deletion is preserved and such cells are removed.

Currently, the only use of shadowable row deletions is Materialized Views, see CASSANDRA-10261.

  • Field Details

  • Constructor Details

    • Deletion

      public Deletion(DeletionTime time, boolean isShadowable)
  • Method Details

    • regular

      public static Row.Deletion regular(DeletionTime time)
    • shadowable

      @Deprecated(since="4.0") public static Row.Deletion shadowable(DeletionTime time)
      Deprecated.
      See CAASSANDRA-10261
    • time

      public DeletionTime time()
      The time of the row deletion.
      Returns:
      the time of the row deletion.
    • isShadowable

      public boolean isShadowable()
      Whether the deletion is a shadowable one or not.
      Returns:
      whether the deletion is a shadowable one. Note that if isLive(), then this is guarantee to return false.
    • isLive

      public boolean isLive()
      Wether the deletion is live or not, that is if its an actual deletion or not.
      Returns:
      true if this represents no deletion of the row, false if that's an actual deletion.
    • supersedes

      public boolean supersedes(DeletionTime that)
    • supersedes

      public boolean supersedes(Row.Deletion that)
    • isShadowedBy

      public boolean isShadowedBy(LivenessInfo primaryKeyLivenessInfo)
    • deletes

      public boolean deletes(LivenessInfo info)
    • deletes

      public boolean deletes(Cell<?> cell)
    • digest

      public void digest(Digest digest)
    • dataSize

      public int dataSize()
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • unsharedHeapSize

      public long unsharedHeapSize()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object