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

Out-of-band messages

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Done
    • Icon: Major Major
    • 2.5
    • 2.2.8, 2.2.9, 2.2.9.1, 2.3
    • None
    • 0
    • 0% 0%

      We need to be able to tag individual messages with a quality-of-service bit: ASYNC. This means that, when such a message is received, it can be delivered asynchronously, e.g. by a thread from a separate threadpool (compared this to http://jira.jboss.com/jira/browse/JGRP-181).
      Examples for OOB messages:

      • ACKs (unicast)
      • XMIT requests (NAKACK)
      • Credit replenishment messages (FC)
      • Failure detection: heartbeats and are-you-alive messages, plus acks

      We might even introduce priority based message delivery

      One example for FC:

      • We have members A and B
      • A and B continuously invoke put()s on the TreeCache in synchronous mode
      • When B receives a put() request, it applies it and wants to send the response. However, assume that the response is blocked in FC.down() because we don't have enough credits available to send the response to A
      • Now A sent a REPLENISH message to B, but B is still stuck in the FC.down() method, which blocks the up thread !
      • Therefore B cannot handle the replenishment message from A and therefore won't unblock: deadlock !
      • If we could deliver the REPLENISH message from A to B on a separate thread, B would receive the REPLENISH message and unblock the FC.down() method

            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: