avro-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yang <teddyyyy...@gmail.com>
Subject Re: thread pool for Socket server?
Date Wed, 08 Jun 2011 16:53:46 GMT
Thanks Doug
I'll try betty and contribute the result
Yang
On Jun 8, 2011 7:40 AM, "Doug Cutting" <cutting@apache.org> wrote:
> 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

Mime
View raw message