]
Bela Ban resolved JGRP-205.
---------------------------
Resolution: Done
- Added Message.setFlags(): message now has flags (e.g. OOB)
- UNICAST and NAKACK now handle OOB messages correctly (JGRP-377/379)
- Most protocols were changed to use OOB messages for asynchronous messages where
ordering is not important
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: