-
Bug
-
Resolution: Done
-
Major
-
3.5
-
None
When a message M is multicast by sender P and has the DONT_LOOPBACK transient flag set, it will not get looped back up the stack.
When M passes MFC on the way down, it decrements the sent credits for P. When M is received by P, the received credits are decrements and possibly credits are sent back to P.
However, M is never received by P because DONT_LOOPBACK causes it to be dropped.
This results in credits for P getting exhausted if we send many messages. Credit requests sent by P (every 5 s by default) do replenish P's credits, but if P sends many messages this is not enough, and slows things down.
SOLUTION:
- Don't use DONT_LOOPBACK in upper protocols or application space. JGroups itself uses it for discovery (lower protocols)
- Don't maintain credits for self; ie. P doesn't decrement or replenish credits for itself, only for others
- Make sure P doesn't starve processing of messages from all other members (who use flow control) by circumventing flow control...
- When sending a message tagged as DONT_LOOPBACK, decrement the received credits immediately and send new credits if needed
- relates to
-
ISPN-4250 PR for ISPN-4190 causes a performance drop in repl mode
- Closed