[jboss-jira] [JBoss JIRA] Commented: (JGRP-1090) Bundle OOB messages

Bela Ban (JIRA) jira-events at lists.jboss.org
Wed Apr 7 06:55:37 EDT 2010


    [ https://jira.jboss.org/jira/browse/JGRP-1090?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12524197#action_12524197 ] 

Bela Ban commented on JGRP-1090:
--------------------------------

For now, the bundlers were changed to store messages per *cluster and destination address*, e.g. messages with dest=null for "cluster1" are stored separately from messages to "cluster2".

This way, messages sent on a shared transport to different clusters won't get handled by the same thread at the receiver(s). Also, multicast messages won't interfere with unicast messages.

The old solution stored messages under only the destination as key, and didn't take the cluster name into account.

So the only messages that will be delivered by the same thread are messages from the same sender to the same destination and cluster.

To be investigated: should we neverthless bundle OOB messages as well ? This would entail having a separate hashmap in the bundlers, and handle every OOB message of a message bundle with a separate thread at the receiver(s).

> Bundle OOB messages
> -------------------
>
>                 Key: JGRP-1090
>                 URL: https://jira.jboss.org/jira/browse/JGRP-1090
>             Project: JGroups
>          Issue Type: Task
>            Reporter: Bela Ban
>            Assignee: Bela Ban
>             Fix For: 2.10
>
>
> When message bundling is enabled, we queue *regular* messages until max_bundle_size has been reached or max_bundle_timeout has exceeded.
> The problem is that - when sending OOB (as opposed to regular) messages - they're *not* queued. This means the OOB message is possibly received *before* the regular messages and thus causes retransmission !
> E.g. we send regular message 1-10, then OOB message 11.
> Say 1-3 are sent immediately (because the bundle timeout kicked in or the size was exceeded). Messages 4-10 are queued and sent later. Message 11 is sent immediately.
> On the receiver side, message reception could be for example: 1-3, 11, 4-10
> When OOB message 11 is received, the receiver asks for retransmission of messages 4-10 !
> This is not incorrect, but causes a lot of unneeded retransmissions !
>   public static void main(String[] args) throws Exception {
>         JChannel c1=new JChannel("/home/bela/fast.xml");
>         c1.connect("bla3");
>         JChannel c2=new JChannel("/home/bela/fast.xml");
>         c2.connect("bla3");
>         for(int i=1; i <= 20; i++) {
>             c1.send(null, null, "hello-" + i);
>         }
>         Message oob_msg=new Message(null, null, "oob msg");
>         oob_msg.setFlag(Message.OOB);
>         c1.send(oob_msg);
>         Util.sleep(20000);
>         Util.close(c2, c1);
>     }

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

        


More information about the jboss-jira mailing list