thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Ellis <jbel...@gmail.com>
Subject Re: slow c# server under mono
Date Mon, 07 Feb 2011 21:51:31 GMT
You're right, it doesn't set nodelay. Alexey's analysis was that "If
TFramedTransport used just one write() call per frame, there is no
need for setNoTcpDelay."

I don't know if he was right or not but it was a deliberate choice and
not an oversight.

On Mon, Feb 7, 2011 at 3:08 PM, Chris Morgan <chmorgan@gmail.com> wrote:
> Hi Bryan.
>
> Actually haven't heard this before. Just started using thrift a few
> days ago. I'll gladly try that for additional performance.
>
> I'd also like to resolve the issue for future users that may consider
> using thrift with mono and abandon the idea when they get 30 messages
> /sec.
>
> Shouldn't the c# TServerSocket work like the cpp and java ones do in
> terms of disabling nagle?
>
> Chris
>
>
>
> On Mon, Feb 7, 2011 at 4:05 PM, Bryan Duxbury <bryan@rapleaf.com> wrote:
>> You're probably tired of hearing this already, but please, please use
>> buffered or framed transport. It will make your servers and clients
>> noticeably faster in a lot of cases.
>>
>> On Mon, Feb 7, 2011 at 12:48 PM, Chris Morgan <chmorgan@gmail.com> wrote:
>>
>>> Hi Jonathan.
>>>
>>> If it were committed wouldn't it be present in svn trunk? I'm using
>>> svn trunk because I was hoping it had been fixed since the last
>>> release.
>>>
>>> I looked at the commit, c1063966, and I don't see any mention of
>>> disabling nodelay and the changes are modifying
>>> src/Transport/TFramedTransport.cs
>>>
>>> My server code looks like:
>>>
>>>                var ourProcessor = new OurProcessor();
>>>                var processor = new TheProcessor.Processor(ourProcessor);
>>>                TServerTransport serverTransport = new TServerSocket(9090);
>>>                TServer server = new TSimpleServer(processor,
>>> serverTransport);
>>>
>>> So I'm not sure how the changes made to TFramedTransport would be
>>> affecting TServerSocket since they don't seem connected.
>>>
>>> Chris
>>>
>>>
>>> On Mon, Feb 7, 2011 at 3:36 PM, Jonathan Ellis <jbellis@gmail.com> wrote:
>>> > Read the ticket you got the patch from -- it's been committed for the
>>> > next release.
>>> >
>>> > On Mon, Feb 7, 2011 at 2:32 PM, Chris Morgan <chmorgan@gmail.com>
wrote:
>>> >> On Mon, Feb 7, 2011 at 3:30 PM, Chris Morgan <chmorgan@gmail.com>
>>> wrote:
>>> >>> I just tested it out and setting NoDelay on the socket brought the
>>> >>> rate up from 30msg/sec up to ~12k msg/sec which is fine for me for
>>> >>> now.
>>> >>>
>>> >>> What now? It looks like the guy that fixed the issue reported by
>>> >>> Jonathan says the solution is to used a frame transport? It still
>>> >>> looks like this is an issue with whatever the default transport
is,
>>> >>> TServerSocket I guess?
>>> >>>
>>> >>> Chris
>>> >>>
>>> >>
>>> >> In addition the cpp TSocket.cpp sets TCP_NODELAY. Why shouldn't c# do
>>> >> what cpp and java do?
>>> >>
>>> >> Chris
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Jonathan Ellis
>>> > Project Chair, Apache Cassandra
>>> > co-founder of DataStax, the source for professional Cassandra support
>>> > http://www.datastax.com
>>> >
>>>
>>
>



-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of DataStax, the source for professional Cassandra support
http://www.datastax.com

Mime
View raw message