Class RetentionLease

  • All Implemented Interfaces:
    Writeable, ToXContent, ToXContentObject

    public final class RetentionLease
    extends java.lang.Object
    implements ToXContentObject, Writeable
    A "shard history retention lease" (or "retention lease" for short) is conceptually a marker containing a retaining sequence number such that all operations with sequence number at least that retaining sequence number will be retained during merge operations (which could otherwise merge away operations that have been soft deleted). Each retention lease contains a unique identifier, the retaining sequence number, the timestamp of when the lease was created or renewed, and the source of the retention lease (e.g., "ccr").
    • Constructor Detail

      • RetentionLease

        public RetentionLease​(java.lang.String id,
                              long retainingSequenceNumber,
                              long timestamp,
                              java.lang.String source)
        Constructs a new retention lease.
        Parameters:
        id - the identifier of the retention lease
        retainingSequenceNumber - the retaining sequence number
        timestamp - the timestamp of when the retention lease was created or renewed
        source - the source of the retention lease
      • RetentionLease

        public RetentionLease​(StreamInput in)
                       throws java.io.IOException
        Constructs a new retention lease from a stream. The retention lease should have been written via writeTo(StreamOutput).
        Parameters:
        in - the stream to construct the retention lease from
        Throws:
        java.io.IOException - if an I/O exception occurs reading from the stream
    • Method Detail

      • id

        public java.lang.String id()
        The identifier for this retention lease. This identifier should be unique per lease and is set during construction by the caller.
        Returns:
        the identifier
      • retainingSequenceNumber

        public long retainingSequenceNumber()
        The retaining sequence number of this retention lease. The retaining sequence number is the minimum sequence number that this retention lease wants to retain during merge operations. The retaining sequence number is set during construction by the caller.
        Returns:
        the retaining sequence number
      • timestamp

        public long timestamp()
        The timestamp of when this retention lease was created or renewed.
        Returns:
        the timestamp used as a basis for determining lease expiration
      • source

        public java.lang.String source()
        The source of this retention lease. The source is set during construction by the caller.
        Returns:
        the source
      • writeTo

        public void writeTo​(StreamOutput out)
                     throws java.io.IOException
        Writes a retention lease to a stream in a manner suitable for later reconstruction via RetentionLease(StreamInput).
        Specified by:
        writeTo in interface Writeable
        Parameters:
        out - the stream to write the retention lease to
        Throws:
        java.io.IOException - if an I/O exception occurs writing to the stream
      • equals

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

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

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