[Opensim-dev] Question about the udp receiver algorithm

Matt Lehmann mattlehma at gmail.com
Sat Apr 26 03:17:01 UTC 2014


That makes sense to me.

If I recall, the packet handlers will create more threads if they expect
delays, such as when waiting for a client to finish movement into the sim.

Considering that I have 65 threads running on my standalone instance, with
4 cores that leaves about 15 threads competing.  You have to do the work at
some point.

Matt

On Friday, April 25, 2014, Dahlia Trimble <dahliatrimble at gmail.com> wrote:

> Depends on what you mean by "services the packets". Decoding and ACKing
> could probably work well in a socket read loop but dispatching the packet
> to the proper part of the simulation could incur many delays which can
> cause a lot of packet loss in the lower level operating system routines as
> the buffers are only so large and any excessive data is discarded. Putting
> them in a queue for another thread to service is a good compromise which
> tends to keep things working under most load conditions.
>
> However, if your design seems to improve things under a wide range of
> operating conditions, feel free to submit a patch! But please don't expect
> it to be accepted as it may need a *lot* of testing to show it's benefit
> over the current implementation.
>
>
>
>
> On Fri, Apr 25, 2014 at 7:45 PM, Matt Lehmann <mattlehma at gmail.com<javascript:_e(%7B%7D,'cvml','mattlehma at gmail.com');>
> > wrote:
>
>> As of the last release, the algorithm for handling udp packets from
>> clients is as so...
>>
>>    Start an async read cycle on the socket, adding packets  to a blocking
>> queue.
>>    Also start a smart thread which waits on the queue and services the
>> packets.
>>
>> Wouldn't it be more efficient to use a single thread that waits on the
>> socket by looping on a socket.poll call,  immediately servicing packets?
>>
>> I have tried this locally and I really think it would improve
>> efficiency.   If you want I can submit a patch.
>>
>> Thanks
>>
>> Matt
>>
>> _______________________________________________
>> Opensim-dev mailing list
>> Opensim-dev at opensimulator.org<javascript:_e(%7B%7D,'cvml','Opensim-dev at opensimulator.org');>
>> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20140425/8bdfb7d2/attachment.html>


More information about the Opensim-dev mailing list