Todd Lipcon has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/15678 )
Change subject: Avoid calling Schema::find_column() once per RowBlock in columnar serialization ...................................................................... Avoid calling Schema::find_column() once per RowBlock in columnar serialization Prior to this patch, each row block being serialized in the columnar format would result in a call to Schema::find_column(name) for each projected column. That was relatively expensive, involving a hash computation and string equality check, etc. This changes the projection calculation to happen "up front" once per Scan RPC and per-rowblock calls. This optimization could also apply to the rowwise serialization, but I found that the other overheads inherent in that code path are so high that the find_column calls aren't particularly noticeable. Nonetheless I left a TODO. Change-Id: I1b683c7d6d6fe1026ee06c8b5ebfe2a5f1ee6cb1 Reviewed-on: http://gerrit.cloudera.org:8080/15678 Reviewed-by: Andrew Wong <[email protected]> Tested-by: Todd Lipcon <[email protected]> --- M src/kudu/common/columnar_serialization.cc M src/kudu/common/columnar_serialization.h M src/kudu/common/wire_protocol-test.cc M src/kudu/tserver/tablet_service.cc 4 files changed, 112 insertions(+), 79 deletions(-) Approvals: Andrew Wong: Looks good to me, approved Todd Lipcon: Verified -- To view, visit http://gerrit.cloudera.org:8080/15678 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1b683c7d6d6fe1026ee06c8b5ebfe2a5f1ee6cb1 Gerrit-Change-Number: 15678 Gerrit-PatchSet: 4 Gerrit-Owner: Todd Lipcon <[email protected]> Gerrit-Reviewer: Andrew Wong <[email protected]> Gerrit-Reviewer: Andrew Wong <[email protected]> Gerrit-Reviewer: Grant Henke <[email protected]> Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Todd Lipcon <[email protected]>
