Details
-
Feature Request
-
Resolution: Done
-
Major
-
None
-
None
-
0
-
0%
Description
When flag DONT_LOOPBACK, then multicast messages (dest == null) are not looped back up the stack. This can be useful in some cases, e.g. discovery:
- A multicasts a discovery request
- A gets the discovery request and adds information shipped with it (A's logical-physical address mapping and logical name) to its local cache(s)
- A sends a discovery response to itself
- A gets the discovery response and adds its information again
--> Because the information was already present, it doesn't need to be added, but was added 2 more times !
--> This unneeded processing costs threads from the pool, processing power, locks etc
SOLUTION: - When sending a multicast message we loop it back up and then multicast it. When received by the sender, we drop it.
- We now don't even loop back the message if DONT_LOOPBACK is set