Package org.elasticsearch.index.seqno
Class LocalCheckpointTracker
java.lang.Object
org.elasticsearch.index.seqno.LocalCheckpointTracker
This class generates sequences numbers and keeps track of the so-called "local checkpoint" which is the highest number for which all
previous sequence numbers have been processed (inclusive).
-
Constructor Summary
ConstructorDescriptionLocalCheckpointTracker(long maxSeqNo, long localCheckpoint)
Initialize the local checkpoint service. -
Method Summary
Modifier and TypeMethodDescriptionvoid
advanceMaxSeqNo(long seqNo)
Marks the provided sequence number as seen and updates the max_seq_no if needed.long
Issue the next sequence number.long
The maximum sequence number issued so far.long
The current persisted checkpoint which can be advanced bymarkSeqNoAsPersisted(long)
.long
The current checkpoint which can be advanced bymarkSeqNoAsProcessed(long)
.getStats(long globalCheckpoint)
constructs aSeqNoStats
object, using local state and the supplied global checkpoint This is needed to make sure the persisted local checkpoint and max seq no are consistentboolean
hasProcessed(long seqNo)
Checks if the given sequence number was marked as processed in this tracker.void
markSeqNoAsPersisted(long seqNo)
Marks the provided sequence number as persisted and updates the checkpoint if possible.void
markSeqNoAsProcessed(long seqNo)
Marks the provided sequence number as processed and updates the processed checkpoint if possible.
-
Constructor Details
-
LocalCheckpointTracker
public LocalCheckpointTracker(long maxSeqNo, long localCheckpoint)Initialize the local checkpoint service. ThemaxSeqNo
should be set to the last sequence number assigned, orSequenceNumbers.NO_OPS_PERFORMED
andlocalCheckpoint
should be set to the last known local checkpoint, orSequenceNumbers.NO_OPS_PERFORMED
.- Parameters:
maxSeqNo
- the last sequence number assigned, orSequenceNumbers.NO_OPS_PERFORMED
localCheckpoint
- the last known local checkpoint, orSequenceNumbers.NO_OPS_PERFORMED
-
-
Method Details
-
generateSeqNo
public long generateSeqNo()Issue the next sequence number.- Returns:
- the next assigned sequence number
-
advanceMaxSeqNo
public void advanceMaxSeqNo(long seqNo)Marks the provided sequence number as seen and updates the max_seq_no if needed. -
markSeqNoAsProcessed
public void markSeqNoAsProcessed(long seqNo)Marks the provided sequence number as processed and updates the processed checkpoint if possible.- Parameters:
seqNo
- the sequence number to mark as processed
-
markSeqNoAsPersisted
public void markSeqNoAsPersisted(long seqNo)Marks the provided sequence number as persisted and updates the checkpoint if possible.- Parameters:
seqNo
- the sequence number to mark as persisted
-
getProcessedCheckpoint
public long getProcessedCheckpoint()The current checkpoint which can be advanced bymarkSeqNoAsProcessed(long)
.- Returns:
- the current checkpoint
-
getPersistedCheckpoint
public long getPersistedCheckpoint()The current persisted checkpoint which can be advanced bymarkSeqNoAsPersisted(long)
.- Returns:
- the current persisted checkpoint
-
getMaxSeqNo
public long getMaxSeqNo()The maximum sequence number issued so far.- Returns:
- the maximum sequence number
-
getStats
constructs aSeqNoStats
object, using local state and the supplied global checkpoint This is needed to make sure the persisted local checkpoint and max seq no are consistent -
hasProcessed
public boolean hasProcessed(long seqNo)Checks if the given sequence number was marked as processed in this tracker.
-