[jboss-jira] [JBoss JIRA] Updated: (JGRP-205) Out-of-band messages

Bela Ban (JIRA) jira-events at jboss.com
Sun Oct 29 12:19:41 EST 2006


     [ http://jira.jboss.com/jira/browse/JGRP-205?page=all ]

Bela Ban updated JGRP-205:
--------------------------

    Description: 
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



  was:
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)

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




> Out-of-band messages
> --------------------
>
>                 Key: JGRP-205
>                 URL: http://jira.jboss.com/jira/browse/JGRP-205
>             Project: JGroups
>          Issue Type: Feature Request
>    Affects Versions: 2.2.8, 2.2.9, 2.3, 2.2.9.1
>            Reporter: Bela Ban
>         Assigned To: Bela Ban
>             Fix For: 2.5
>
>
> 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

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list