We are using NIO - the configuration settings you provided in an earlier email failed to configure the OIO UDP buffer size<br>-Neil.<br><br><div class="gmail_quote">2009/6/27 &quot;ÀÌÈñ½Â (Trustin Lee)&quot; <span dir="ltr">&lt;<a href="mailto:trustin@gmail.com">trustin@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Thanks for the feed back. &nbsp;It seems like your application is running in a controlled network. &nbsp;Otherwise such a large UDP packet could be truncated or discarded.<br>

<br>
Out of curiosity, do you use OIO UDP or NIO UDP?<br>
<br>
Trustin<br>
<br>
Neil Avery wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">
Oops - forgot to add my point - thats our particular use case - so 768<br>
is probably ok for most cases!<br>
Cheers.<br>
<br></div>
2009/6/26 Neil Avery &lt;<a href="mailto:neil@liquidlabs.co.uk" target="_blank">neil@liquidlabs.co.uk</a> &lt;mailto:<a href="mailto:neil@liquidlabs.co.uk" target="_blank">neil@liquidlabs.co.uk</a>&gt;&gt;<div class="im">
<br>
<br>
 &nbsp; &nbsp;We are using it (udp) to burst a search request to hundreds or<br>
 &nbsp; &nbsp;thousands of machines. Sending using TCP degrades as more machines<br>
 &nbsp; &nbsp;are added to the network - even when using our custom connection<br>
 &nbsp; &nbsp;pooling we still see degradation - using udp provides much better<br>
 &nbsp; &nbsp;performance (and we cannot use multicast). Our message size is a<br>
 &nbsp; &nbsp;maximum of 5K, - btw - we use netty tcp elsewhere when reliablity is<br>
 &nbsp; &nbsp;required.<br>
 &nbsp; &nbsp;Cheers Neil.<br>
<br>
 &nbsp; &nbsp;2009/6/26 &quot;ÀÌÈñ½Â (Trustin Lee)&quot; &lt;<a href="mailto:trustin@gmail.com" target="_blank">trustin@gmail.com</a><br></div>
 &nbsp; &nbsp;&lt;mailto:<a href="mailto:trustin@gmail.com" target="_blank">trustin@gmail.com</a>&gt;&gt;<div><div></div><div class="h5"><br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;By the way, please let me know if you think the default (768) is<br>
 &nbsp; &nbsp; &nbsp; &nbsp;not sane and should be increased. I&#39;m not really a UDP expert so<br>
 &nbsp; &nbsp; &nbsp; &nbsp;other people&#39;s suggestion is appreciated.<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;Thanks<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;ÀÌÈñ½Â (Trustin Lee) wrote:<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Hi Neil,<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;It&#39;s because the default receiveBufferSizePredictor of<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DatagramChannel<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;is FixedReceiveBufferSizePredictor(768). You can configure<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;the channel<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;to a FixedReceiveBufferSizePredictor with different payload<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;size. For<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;example:<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DatagramChannel ch = ...;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ch.getConfig().setReceiveBufferSizePredictor(<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new FixedReceiveBufferSizePredictor(1024));<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;or:<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ConnectionlessBootstrap b = ...;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;b.setOption(&quot;receiveBufferSizePredictor&quot;,<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new FixedReceiveBufferSizePredictor(1024));<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BTW, I wouldn&#39;t recommend to using<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AdaptiveReceiveBufferSizePrediector<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for datagrams.<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HTH,<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Trustin<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;On 2009-06-25 ¿ÀÀü 4:49, neilson9 wrote:<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Hi,<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Im having a couple of problems sending UDP byte[]&gt; 768K<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For example if Im passing 1024bytes the buffer.readIndex<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;does not get<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;updated. The sender only passes 768 bytes and if I<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;manually set the<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;readIndex to 768 it sends another 768 bytes on the<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;second send. I would like<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;to iterate of the byte[] and use the offsets to prevent<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;copying data etc.<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Any help appreciated.<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Regards Neil.<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For example:<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;byte[] payload = userdata....;<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;channel = (DatagramChannel) b.bind(new<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;InetSocketAddress(0));<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ChannelBuffer buffer = dynamicBuffer(bytes.length);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;buffer.writeBytes(bytes);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LOGGER.info(&quot;Sending:&quot; + bytes.length + &quot; sent:&quot; +<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;buffer.readerIndex());<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ChannelFuture channelFuture = channel.write(buffer, new<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;InetSocketAddress(uri.getHost(), port));<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// manually setting to see if it sends the remainder<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;buffer.readerIndex(768);<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;channelFuture = channel.write(buffer, new<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;InetSocketAddress(uri.getHost(), port));<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LOGGER.info(&quot;Sending:&quot; + buffer.readerIndex());<br>
<br>
<br>
<br>
<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;------------------------------------------------------------------------<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_______________________________________________<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;netty-users mailing list<br></div></div>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="mailto:netty-users@lists.jboss.org" target="_blank">netty-users@lists.jboss.org</a> &lt;mailto:<a href="mailto:netty-users@lists.jboss.org" target="_blank">netty-users@lists.jboss.org</a>&gt;<div class="im">
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="https://lists.jboss.org/mailman/listinfo/netty-users" target="_blank">https://lists.jboss.org/mailman/listinfo/netty-users</a><br>
<br>
<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;--<br></div>
 &nbsp; &nbsp; &nbsp; &nbsp;Trustin Lee, <a href="http://gleamynode.net" target="_blank">http://gleamynode.net</a> &lt;<a href="http://gleamynode.net/" target="_blank">http://gleamynode.net/</a>&gt;<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;_______________________________________________<br>
 &nbsp; &nbsp; &nbsp; &nbsp;netty-users mailing list<br>
 &nbsp; &nbsp; &nbsp; &nbsp;<a href="mailto:netty-users@lists.jboss.org" target="_blank">netty-users@lists.jboss.org</a> &lt;mailto:<a href="mailto:netty-users@lists.jboss.org" target="_blank">netty-users@lists.jboss.org</a>&gt;<div class="im">
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;<a href="https://lists.jboss.org/mailman/listinfo/netty-users" target="_blank">https://lists.jboss.org/mailman/listinfo/netty-users</a><br>
<br>
<br>
<br>
<br>
------------------------------------------------------------------------<br>
<br>
_______________________________________________<br>
netty-users mailing list<br>
<a href="mailto:netty-users@lists.jboss.org" target="_blank">netty-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/netty-users" target="_blank">https://lists.jboss.org/mailman/listinfo/netty-users</a><br>
</div></blockquote><div><div></div><div class="h5">
<br>
<br>
-- <br>
Trustin Lee, <a href="http://gleamynode.net" target="_blank">http://gleamynode.net</a><br>
<br>
_______________________________________________<br>
netty-users mailing list<br>
<a href="mailto:netty-users@lists.jboss.org" target="_blank">netty-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/netty-users" target="_blank">https://lists.jboss.org/mailman/listinfo/netty-users</a><br>
</div></div></blockquote></div><br>