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

UNICAST3/UNICAST2: sync receiver table with sender table

    Details

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

      Description

      If a receiver B closes its recv-table and the sender A doesn't, then (when receiving msgs from the sender) the receiver engages in a protocol using GET-FIRST-SEQNO to sync itself with the sender. This has several problems, detailed in JGRP-1873 and JGRP-1874. (Note that the other way round (sender closing send-table), there is no issue, as the sender will create a new connection with a new conn-id).
      To prevent STABLE messages interfering with GET-FIRST-SEQNO messages (JGRP-1873), we could run an additional SYNC protocol round, e.g.

      • B needs to get the lowest and highest seqno sent from A
      • B sends a SYNC message to A (instead of a GET-FIRST-SEQNO message)
      • B sets a flag that discards all STABLE or ACK messages on reception of SYNC
      • B replies with a SYNC-OK containing the lowest and highest sent seqnos
      • B creates an entry for A with the lowest and highest seqnos
      • B sends a SYNC-ACK to A
      • A resets the flag and starts accepting STABLE / ACK messages from B again
      • A and B now use the usual protocols to retransmit missing messages

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

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

                  Dates

                  • Created:
                    Updated:
                    Resolved: