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 Link icon

    • TriangleOrderManager Link icon

      public TriangleOrderManager(int segments)
  • Method Details Link icon

    • next Link icon

      public long next(int segmentId, int commandTopologyId)
    • isNext Link icon

      public boolean isNext(int segmentId, long sequenceNumber, int commandTopologyId)
    • markDelivered Link icon

      public void markDelivered(int segmentId, long sequenceNumber, int commandTopologyId)
    • latestSent Link icon

      public long latestSent(int segmentId, int topologyId)
      Meant for testing only.
      Returns:
      The latest sequence number sent for segment segmentId in topology topologyId.