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]>

Reply via email to