Class ReceivedMessageSequenceTracker
java.lang.Object
io.nosqlbench.adapters.api.metrics.ReceivedMessageSequenceTracker
- All Implemented Interfaces:
AutoCloseable
Detects message loss, message duplication and out-of-order message delivery
based on a monotonic sequence number that each received message contains.
Out-of-order messages are detected with a maximum look behind of 1000 sequence number entries.
This is currently defined as a constant, DEFAULT_MAX_TRACK_OUT_OF_ORDER_SEQUENCE_NUMBERS.
-
Constructor Summary
ConstructorsConstructorDescriptionReceivedMessageSequenceTracker(com.codahale.metrics.Counter msgErrOutOfSeqCounter, com.codahale.metrics.Counter msgErrDuplicateCounter, com.codahale.metrics.Counter msgErrLossCounter) ReceivedMessageSequenceTracker(com.codahale.metrics.Counter msgErrOutOfSeqCounter, com.codahale.metrics.Counter msgErrDuplicateCounter, com.codahale.metrics.Counter msgErrLossCounter, int maxTrackOutOfOrderSequenceNumbers, int maxTrackSkippedSequenceNumbers) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Handles the possible pending out of sequence numbers.intintvoidsequenceNumberReceived(long sequenceNumber) Notifies the tracker about a received sequence number
-
Constructor Details
-
ReceivedMessageSequenceTracker
public ReceivedMessageSequenceTracker(com.codahale.metrics.Counter msgErrOutOfSeqCounter, com.codahale.metrics.Counter msgErrDuplicateCounter, com.codahale.metrics.Counter msgErrLossCounter) -
ReceivedMessageSequenceTracker
public ReceivedMessageSequenceTracker(com.codahale.metrics.Counter msgErrOutOfSeqCounter, com.codahale.metrics.Counter msgErrDuplicateCounter, com.codahale.metrics.Counter msgErrLossCounter, int maxTrackOutOfOrderSequenceNumbers, int maxTrackSkippedSequenceNumbers)
-
-
Method Details
-
sequenceNumberReceived
public void sequenceNumberReceived(long sequenceNumber) Notifies the tracker about a received sequence number- Parameters:
sequenceNumber- the sequence number of the received message
-
close
public void close()Handles the possible pending out of sequence numbers. Mainly needed in unit tests to assert the counter values.- Specified by:
closein interfaceAutoCloseable
-
getMaxTrackOutOfOrderSequenceNumbers
public int getMaxTrackOutOfOrderSequenceNumbers() -
getMaxTrackSkippedSequenceNumbers
public int getMaxTrackSkippedSequenceNumbers()
-