Java server performance regression in 0.6
-----------------------------------------
Key: THRIFT-1121
URL: https://issues.apache.org/jira/browse/THRIFT-1121
Project: Thrift
Issue Type: Bug
Components: Java - Library
Affects Versions: 0.6
Reporter: Todd Lipcon
A user reports a 30% performance regression after upgrading some
high-request-rate Java software from Thrift 0.3 to 0.6. After some inspection,
it turns out that the changes for THRIFT-959 caused the slowdown. However, even
after altering the code to use the TFramedTransport, performance was still only
80% of version 0.3. I believe the problem is that the TFramedTransport must
read the length (unbuffered) before reading (only) one message. In one
particular workload, sent with oneway streaming, the server is making many more
system calls.
It wasn't obvious how to compose a Transport that would add back the buffering
using existing components. We created our own trivial TServerSocket that adds
the socket buffering back. Performance is now back where it was with 0.3.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira