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

Simple Flow Control (SFC)

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Done
    • Icon: Major Major
    • 2.5
    • 2.4
    • None
    • Medium

      SFC is a simple flow control protocol for group (= multipoint) messages.

      Every sender has max_credits bytes for sending multicast messages to the group.

      Every multicast message (we don't consider unicast messages) decrements max_credits by its size.
      When max_credits falls below 0, the sender asks all receivers for new credits and blocks
      until all credits have been received from all members.

      When the receiver receives a credit request, it checks whether it has received max_credits bytes from the requester since
      the last credit request. If yes, it sends new credits to the requester and resets the max_credits for the requester.
      Else, it takes a note of the credit request from P and - when max_credits bytes have finally been received from P - it
      sends the credits to P and resets max_credits for P.

      The maximum amount of memory for received messages is therefore <number of senders> * max_credits.

      The relationship with STABLE is as follows: when a member Q is slow, it will prevent STABLE from collecting messages above
      the ones seen by Q (everybody else has seen more messages). However, because Q will not send credits back to the senders
      until it has processed all messages worth max_credits bytes, the senders will block. This in turn allows STABLE to
      progress and eventually garbage collect most messages from all senders. Therefore, SFC and STABLE complement each other,
      with SFC blocking senders so that STABLE can catch up.

      See doc/design/SimpleFlowControl.txt for details

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

                Created:
                Updated:
                Resolved: