[jboss-jira] [JBoss JIRA] (JGRP-2171) New bundler with max_bundle_size for each destination

Bela Ban (JIRA) issues at jboss.org
Tue May 23 03:51:00 EDT 2017


Bela Ban created JGRP-2171:
------------------------------

             Summary: New bundler with max_bundle_size for each destination
                 Key: JGRP-2171
                 URL: https://issues.jboss.org/browse/JGRP-2171
             Project: JGroups
          Issue Type: Feature Request
            Reporter: Bela Ban
            Assignee: Bela Ban
             Fix For: 4.0.4


The current bundlers queue all messages and when the total size of all messages for all destinations would exceed {{max_bundle_size}}, message batches for each destination are sent.

This negatively affects latency-sensitive applications, e.g. when we have a queue such as this: {{A B B C B B D B B}}, then the message for A has to wait until either the queue is full ({{max_bundle_size exceeded}}), or no more messages are received (and then we send the batches anyway).

The goal is to write a new bundler which keeps a count for _each destination_ and sends batches to different destinations sooner. Also introduce a counter {{num_flips}} (find a better name!), which determines when a message batch is to be sent.

This counter is decremented when a message to be sent has a destination that's different from the previous destination. When the counter is 0, we send the batch to the previous destination(s).

Example:
* {{num_flips}} is 2
* A message for A is sent; it is queued
* Another message for A is sent. Also queued (queue: {{A A}})
* A message to B is sent: {{num_flips}} is now 1, the queue is {{A A B}}
* Another message to A is sent. This resets {{num_flips}} to 2
* 2 messages to C are sent. This causes {{num_flips}} for A to be 0, so the batch to A (with 3 msgs) is sent
* No more messages are received, so the batches to B and C are also sent

The value of {{num_flips}} should be computed as the rolling (weighted) average of the number of *adjacent messages to the same destination*.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jboss-jira mailing list