[Vortex] Tuning window size in vortex to achieve more performance

subrahmanya sum.sagar at gmail.com
Wed Sep 5 14:05:11 CEST 2012


In vortex channel window size is hard-coded to 4096. It is the same in Java
implementation of BEEP that we are using. While testing the performance of
Java BEEP implementation we observed that changing the following gives very
good performance improvement.
1. Increasing the window size to a larger value (4 * 4096)
2. Changing the condition to identify when to send sequence frames. After
the change the peer would not wait for half of the window to become free to
send SEQ frame instead it would send once the free window size reaches a
particular limit which will be lesser than 2048 (around 500 or so).

Now I want to make similar changes in vortex and test it. For that I looked
at vortex source to find out the places where to make these changes. Below
are the identified places. Can someone confirm whether these are the
only/correct places to make the changes?
vortex_channel.c(1495): channel->window_size                    = 4096;
vortex_channel.c(1496): channel->seq_no_window                  = 4096;
vortex_channel.c(1497): channel->desired_window_size            = 4096;
vortex_channel.c(1503): channel->remote_window                  =  4096 ;
vortex_channel.c(3729): return VORTEX_MIN (remote_buffer_available,
VORTEX_MIN (channel->window_size, VORTEX_MIN (message_size,  4096 )));

And, in the following function
axl_bool      vortex_channel_update_incoming_buffer (VortexChannel *
     VortexFrame   * frame,
     unsigned int  * ackno,
     int           * window)
below condition has to be modified to send SEQ frames little more
bytes_available = vortex_channel_incoming_bytes_available (channel, frame);
  if (bytes_available > (channel->seq_no_window / 2)) {

The text marked in RED are those places to be modified.

I would reply back to this forum once we perform some tests. If we actually
see a performance improvement probably these values can be made user
configurable so that each user/developer can choose to set a value
according to his requirement.

Note that I am using vortex version 1.1.8 and hence the line numbers
mentioned above may not match with the latest code base.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.aspl.es/pipermail/vortex/attachments/20120905/4ef5ea93/attachment.htm>

More information about the Vortex mailing list