Package org.infinispan.distribution
Class TriangleOrderManager
java.lang.Object
org.infinispan.distribution.TriangleOrderManager
It manages the order of updates from the primary owner to backup owner.
It depends on the cache topology id. The primary owner assigns the sequence number to the backup command and then sends it to the backup owner. In the backup owner, the command awaits until it is its turn to be executed.
If the command topology id does not match, it throws an OutdatedTopologyException
.
The sequence order starts with 1 and it is per segment based. This allows segments to be updated concurrently.
- Since:
- 9.0
- Author:
- Pedro Ruivo
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
isNext
(int segmentId, long sequenceNumber, int commandTopologyId) long
latestSent
(int segmentId, int topologyId) Meant for testing only.void
markDelivered
(int segmentId, long sequenceNumber, int commandTopologyId) long
next
(int segmentId, int commandTopologyId)
-
Constructor Details
-
TriangleOrderManager
public TriangleOrderManager(int segments)
-
-
Method Details
-
next
public long next(int segmentId, int commandTopologyId) -
isNext
public boolean isNext(int segmentId, long sequenceNumber, int commandTopologyId) -
markDelivered
public void markDelivered(int segmentId, long sequenceNumber, int commandTopologyId) -
latestSent
public long latestSent(int segmentId, int topologyId) Meant for testing only.- Returns:
- The latest sequence number sent for segment
segmentId
in topologytopologyId
.
-