Package org.elasticsearch.index.seqno
Class RetentionLease
- java.lang.Object
-
- org.elasticsearch.index.seqno.RetentionLease
-
- All Implemented Interfaces:
Writeable
,ToXContent
public final class RetentionLease extends java.lang.Object implements ToXContent, 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").
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent
ToXContent.DelegatingMapParams, ToXContent.MapParams, ToXContent.Params
-
Nested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable
Writeable.Reader<V>, Writeable.Writer<V>
-
-
Field Summary
-
Fields inherited from interface org.elasticsearch.common.xcontent.ToXContent
EMPTY_PARAMS
-
-
Constructor Summary
Constructors Constructor Description RetentionLease(java.lang.String id, long retainingSequenceNumber, long timestamp, java.lang.String source)
Constructs a new retention lease.RetentionLease(StreamInput in)
Constructs a new retention lease from a stream.
-
Method Summary
Modifier and Type Method Description boolean
equals(java.lang.Object o)
static RetentionLease
fromXContent(XContentParser parser)
Parses a retention lease fromXContent
.int
hashCode()
java.lang.String
id()
The identifier for this retention lease.boolean
isFragment()
long
retainingSequenceNumber()
The retaining sequence number of this retention lease.java.lang.String
source()
The source of this retention lease.long
timestamp()
The timestamp of when this retention lease was created or renewed.java.lang.String
toString()
XContentBuilder
toXContent(XContentBuilder builder, ToXContent.Params params)
void
writeTo(StreamOutput out)
Writes a retention lease to a stream in a manner suitable for later reconstruction viaRetentionLease(StreamInput)
.
-
-
-
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 leaseretainingSequenceNumber
- the retaining sequence numbertimestamp
- the timestamp of when the retention lease was created or renewedsource
- 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 viawriteTo(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 viaRetentionLease(StreamInput)
.
-
toXContent
public XContentBuilder toXContent(XContentBuilder builder, ToXContent.Params params) throws java.io.IOException
- Specified by:
toXContent
in interfaceToXContent
- Throws:
java.io.IOException
-
isFragment
public boolean isFragment()
- Specified by:
isFragment
in interfaceToXContent
-
fromXContent
public static RetentionLease fromXContent(XContentParser parser)
Parses a retention lease fromXContent
. This method assumes that the retention lease was converted toXContent
viatoXContent(XContentBuilder, Params)
.- Parameters:
parser
- the parser- Returns:
- a retention lease
-
equals
public boolean equals(java.lang.Object o)
- 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
-
-