Matthew Jacobs has uploaded a new change for review. http://gerrit.cloudera.org:8080/3093
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 --- M be/src/rpc/thrift-client.h 1 file changed, 17 insertions(+), 10 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala refs/changes/93/3093/1 -- To view, visit http://gerrit.cloudera.org:8080/3093 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I81d30b3d8d10fe6dcd8eb88cca49734af09f9d91 Gerrit-PatchSet: 1 Gerrit-Project: Impala Gerrit-Branch: cdh5-trunk Gerrit-Owner: Matthew Jacobs <[email protected]>
