Hi<div><br></div><div>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.</div>
<div>1. Increasing the window size to a larger value (4 * 4096) </div><div>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).</div>
<div><br></div><div>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?</div>
<div><div><font color="#000099">vortex_channel.c(1495):<span class="Apple-tab-span" style="white-space:pre">        </span>channel->window_size = </font><font color="#ff0000">4096</font><font color="#000099">;</font></div>
<div><font color="#000099">vortex_channel.c(1496):</font><span class="Apple-tab-span" style="color:rgb(0,0,153);white-space:pre">        </span><font color="#000099">channel->seq_no_window = </font><span style="color:rgb(204,0,0)">4096</span><span style="color:rgb(0,0,153)">;</span></div>
<div><font color="#000099">vortex_channel.c(1497):<span class="Apple-tab-span" style="white-space:pre">        </span>channel->desired_window_size = </font><font color="#cc0000">4096</font><font color="#000099">;</font></div>
<div><font color="#000099">vortex_channel.c(1503):<span class="Apple-tab-span" style="white-space:pre">        </span>channel->remote_window = </font>
<span style="color:rgb(204,0,0)">4096</span> <font color="#000099">;</font></div><div><font color="#000099">vortex_channel.c(3729):<span class="Apple-tab-span" style="white-space:pre">        </span>return VORTEX_MIN (remote_buffer_available, VORTEX_MIN (channel->window_size, VORTEX_MIN (message_size, </font>
<span style="color:rgb(204,0,0)">4096</span> <font color="#000099">)));</font></div><div><br></div><div>And, in the following function</div><div><font color="#000099">axl_bool vortex_channel_update_incoming_buffer (VortexChannel * channel, </font></div>
<div><font color="#000099"><span class="Apple-tab-span" style="white-space:pre">                                                </span> VortexFrame * frame,</font></div><div><font color="#000099"><span class="Apple-tab-span" style="white-space:pre">                                                </span> unsigned int * ackno,</font></div>
<div><font color="#000099"><span class="Apple-tab-span" style="white-space:pre">                                                </span> int * window)</font></div><div>below condition has to be modified to send SEQ frames little more frequently.</div>
<div><font color="#000099">bytes_available = vortex_channel_incoming_bytes_available (channel, frame);</font></div><div><font color="#000099"> <span class="Apple-tab-span" style="white-space:pre">        </span>if (</font><font color="#cc0000">bytes_available > (channel->seq_no_window / 2)</font><font color="#000099">) {</font></div>
</div><div><br></div><div>The text marked in <span style="color:rgb(204,0,0)">RED </span>are those places to be modified.</div><div><br></div><div>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.</div>
<div><br></div><div>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.</div><div><br></div><div>Thanks</div><div>Subrahmanya</div>