Package org.infinispan.distribution
Class TriangleOrderManager
- java.lang.Object
-
- org.infinispan.distribution.TriangleOrderManager
-
public class TriangleOrderManager extends Object
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
Constructors Constructor Description TriangleOrderManager(int segments)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
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)
-
-
-
Method Detail
-
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
.
-
-