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

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

    Details

    • Type: Enhancement
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: 4.1.5
    • Labels:
      None

      Description

      • 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

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                belaban Bela Ban
                Reporter:
                belaban Bela Ban
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: