Class 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
    • 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)  
    • Constructor Detail

      • TriangleOrderManager

        public TriangleOrderManager​(int segments)
    • 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 topology topologyId.