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

SEQUENCER2: new impl of total order protocol

    XMLWordPrintable

Details

    • Feature Request
    • Resolution: Done
    • Major
    • 3.5
    • None
    • None
    • 0
    • 0% 0%

    Description

      When in SEQUENCER a member P wants to send a multicast message M, it unicasts it to the coordinator, who multicasts it on behalf of P.

      The new impl SEQUENCER2 is different:

      • P asks the coord for a seqno
      • The coord responds with a (monotonically increasing) seqno
      • P multicasts M with that seqno
      • Everyone uses one global Table to deliver messages and weed out duplicates

      Advantages:

      1. A sender sends messages itself, so the sequencer doesn't need to do sending (and potential retransmissions)
      2. Compared to SEQUENCER, the data is only sent and marshalled once (better for large messages)
      3. A sender grabs entire ranges of seqnos, so this should be efficient

      The edge case handling though requires some work, e.g.

      • A member B crashes after having received a seqno (e.g. 4)
        • The sequencer will give out 5 next, but since nobody received 4, all subsequent messages will get stuck, waiting for 4
      • The sequencer (coord) dies or leaves
        • The next-in-line probably needs to run some reconciliation protocol, asking all members for their highest received seqnos
        • Messages like 4 would get marked as dummy, removed from table and dropped

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: