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 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 topology topologyId.