Uploaded image for project: 'JGroups'
  1. JGroups
  2. JGRP-2327

UNICAST3: create receiver table when non-first message is received first

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Done
    • Icon: Major Major
    • 4.1.5
    • None
    • None

      • A and B
      • B sends 2 messages to A: B1 and B2
      • A receives B2 before B1 (both B1 and B2 are OOB)
      • The current code has A drop B2 and B1 and send a SEND_FIRST_SEQNO message to B
      • B resends B1, but not B2
      • Retransmission needs to kick in before A receives B2. This might take up to xmit_interval * 2 ms before B2 is retransmitted and delivered

      Scenario (JGRP-2293):

      • A installs a new view
      • B sends a LEAVE-REQ to A (B is leaving, too) on the view installation and a VIEW-ACK for the view. Both messages are unicasts to A and OOB
      • The VIEW-ACK (B2) is received first and dropped, so it will have to be retransmitted
      • This delays the view installation, as A waits for view_ack_collection_timeout ms until it has received all VIEW-ACKs

      Workaround

      • Set GMS.leave_timeout to a higher value (say 8000ms)

      Solution

      • When B2 is received, and it is not the first message and we don't have a receiver table for B yet, investigate whether we can create the receiver table anyway
      • However, this requires the first seqno from B to always be 0
        --> Investigate whether the first seqno in UNICAST3 is always 0, then this solution will work

              rhn-engineering-bban Bela Ban
              rhn-engineering-bban Bela Ban
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: