Hello Andrew Wong, I'd like you to do a code review. Please visit
http://gerrit.cloudera.org:8080/8554 to review the following change. Change subject: wire_protocol: optimize RewriteRowBlockPointers ...................................................................... wire_protocol: optimize RewriteRowBlockPointers I was looking at why our tpch1 benchmark performance seems to have been creeping up over recent months and started profiling it a bit. I didn't see any reason for a regression but did notice that RewriteRowBlockPointers ends up being memory-bandwidth-bound, so took a few minutes to optimize it. The old code did one pass through the data for each column. In the case that the rowblock was larger than CPU cache, this meant streaming a lot of data from L2, L3, or even memory, which bottlenecked it. The new code is branchier but does only a single pass through the data. This reduced the client side CPU usage of the query in tpch_real_world from about 70ms/iteration to about 40ms/iteration. Change-Id: Ie428e595e9f564762bbdbd09dc6a5f312abe9aec --- M src/kudu/common/wire_protocol.cc 1 file changed, 48 insertions(+), 29 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/54/8554/1 -- To view, visit http://gerrit.cloudera.org:8080/8554 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie428e595e9f564762bbdbd09dc6a5f312abe9aec Gerrit-Change-Number: 8554 Gerrit-PatchSet: 1 Gerrit-Owner: Todd Lipcon <t...@apache.org> Gerrit-Reviewer: Andrew Wong <andrew.w...@cloudera.com>