[Mono-dev] An asynchronous System.Runtime.Remoting.Channels.Tcp

Dick Porter dporter at codicesoftware.com
Mon Sep 7 06:33:15 EDT 2009

Hi all

Attached is a patch to add an optional asynchronous path for the TCP  
remoting channel server.

The main benefit we see with this change is in reliability; when a  
single server is servicing many clients at once (we test with over  
100) with large data transfers the standard synchronous channel will  
often drop connections.  We tracked this down to the Accept() call in  
TcpServerChannel.cs not being able to get to incoming connections  
quickly enough.

I was hoping that throughput of large transfers might be improved by  
using the threadpool's asynchronous sockets support, but it turns out  
that performance is pretty much the same as the current implementation.

Any comments/suggestions for improvement?

- Dick

-------------- next part --------------
A non-text attachment was scrubbed...
Name: remoting.diff
Type: application/octet-stream
Size: 53794 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20090907/654ccc4f/attachment-0001.obj 
-------------- next part --------------

More information about the Mono-devel-list mailing list