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

UNICAST3/UNICAST2: sync receiver table with sender table


    • Icon: Enhancement Enhancement
    • Resolution: Done
    • Icon: Major Major
    • 3.5.1, 3.6
    • None
    • None

      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

            rhn-engineering-bban Bela Ban
            rhn-engineering-bban Bela Ban
            0 Vote for this issue
            1 Start watching this issue