Internal Jenkins has submitted this change and it was merged. Change subject: IMPALA-1928: Fix Thrift client transport wrapping order ......................................................................
IMPALA-1928: Fix Thrift client transport wrapping order The thrift client incorrectly wraps the TSaslTransport around the TBufferedTransport which leads to significant performance issues. (Note that the server-side wraps the transports in the correct order already.) Currently: TSaslTransport(TBufferedTransport(socket)) Should be: TBufferedTransport(TSaslTransport(socket)) As a result, when we write a structure, we end up doing lots of write calls which hit the TSaslTransport which does no buffering. So it ends up producing output that looks like: [0, 0, 0, 1], <one char>, [0, 0, 0, 1], <one char>, etc. for each individual write call. These end up buffered so we don't get lots of tiny packets on the send side. However, on the receiver side we are doing one recv call per Sasl frame. This patch reorders the wrapping of transports in the thrift client, so that it matches the order on the thrift server which improves exhange performance making it within 10% of non-kerberos. Change-Id: I81d30b3d8d10fe6dcd8eb88cca49734af09f9d91 Reviewed-on: http://gerrit.cloudera.org:8080/3093 Reviewed-by: Dan Hecht <[email protected]> Tested-by: Internal Jenkins --- M be/src/rpc/thrift-client.h 1 file changed, 17 insertions(+), 10 deletions(-) Approvals: Internal Jenkins: Verified Dan Hecht: Looks good to me, approved -- To view, visit http://gerrit.cloudera.org:8080/3093 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I81d30b3d8d10fe6dcd8eb88cca49734af09f9d91 Gerrit-PatchSet: 2 Gerrit-Project: Impala Gerrit-Branch: cdh5-trunk Gerrit-Owner: Matthew Jacobs <[email protected]> Gerrit-Reviewer: Dan Hecht <[email protected]> Gerrit-Reviewer: Internal Jenkins Gerrit-Reviewer: Matthew Jacobs <[email protected]>
