Uploaded image for project: 'JGroups'
  1. JGroups
  2. JGRP-1090

Bundle OOB messages

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Done
    • Icon: Major Major
    • 2.10
    • None
    • None

      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);

      }

              rhn-engineering-bban Bela Ban
              rhn-engineering-bban Bela Ban
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: