A thread pool might indeed provide an improvement.  However the Netty
and Jetty-based servers are probably better starting points for reliable
performance.

Also, please use SaslSocketServer instead of SocketSerer, with the
anonymous mechanism if no security is required.  I'd like to standardize
on SASL for non-HTTP, high-performance Avro RPC.

It would be great if someone could contribute a Netty-based
implementation of Avro's SASL profile.  That would provide a
high-performance client and server that can support authentication
and/or encryption.

Doug

On 06/08/2011 03:58 AM, Yang wrote:
> currently SocketServer basically does this:
> 
>       while (true) {
>           new Connection(channel.accept());
> 
>       }
> 
> 
> 
> so it faithfully accepts any incoming connection and creates a worker
> thread processing the request.
> 
> I think this is prone to DOS attacks, or ungraceful failure in the case
> of heavy traffic.
> 
> if we use a limited thread pool inside Connection() implementation, we
> can reject connections if we are too heavily loaded.
> 
> thought it's basically a trivial thing to implement, but considering
> this is a very common use case, is it worthwhile to put
> such an implementation into the avro source?
> 
> Thanks
> Yang 

Reply via email to