Class Row.Deletion

  • Enclosing interface:
    Row

    public static class Row.Deletion
    extends java.lang.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.

    • Constructor Detail

      • Deletion

        public Deletion​(DeletionTime time,
                        boolean isShadowable)
    • Method Detail

      • 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​(Cell<?> cell)
      • digest

        public void digest​(Digest digest)
      • dataSize

        public int dataSize()
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • unsharedHeapSize

        public long unsharedHeapSize()
      • hashCode

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

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object