Internal Jenkins has submitted this change and it was merged.

Change subject: IMPALA-2548: Codegen Tuple::MaterializeExprs() and use in TopN 
node
......................................................................


IMPALA-2548: Codegen Tuple::MaterializeExprs() and use in TopN node

For the following benchmark query:
 select count(*) from (select l_orderkey from biglineitem order by l_orderkey 
limit 1000) a

The overall query time goes from 2.74s to 1.74s, with the top-n node
time going from 2.2s to 1.0s. There is no effect on sort node time.

The overall approach of this patch is to move the
TopNNode::InsertTupleRow() call into a cross-compiled batched function
(InsertBatch()), and then replace the MaterializeExprs() calls with
new functions built using the IRBuilder. This involves new codegen
utilities, such as CodegenAnyVal::WriteToSlot() and the ability to
hardcode in a MemPool pointer from which to make varlen data
allocations. This patch also adds a new timer measuring the time spent
inserting tuple rows.

The existing TestQueries::test_top_n and TestQueries::test_sort tests
pass with this patch.

Change-Id: Ib422a8d50303c21c6a228675157bf867e8619444
Reviewed-on: http://gerrit.cloudera.org:8080/1901
Reviewed-by: Skye Wanderman-Milne <[email protected]>
Tested-by: Internal Jenkins
---
M be/src/codegen/codegen-anyval.cc
M be/src/codegen/codegen-anyval.h
M be/src/codegen/gen_ir_descriptions.py
M be/src/codegen/impala-ir.cc
M be/src/codegen/llvm-codegen.cc
M be/src/codegen/llvm-codegen.h
M be/src/exec/CMakeLists.txt
A be/src/exec/topn-node-ir.cc
M be/src/exec/topn-node.cc
M be/src/exec/topn-node.h
M be/src/runtime/descriptors.cc
M be/src/runtime/descriptors.h
M be/src/runtime/mem-pool.h
M be/src/runtime/raw-value.cc
M be/src/runtime/sorter.cc
M be/src/runtime/tuple.cc
M be/src/runtime/tuple.h
17 files changed, 517 insertions(+), 95 deletions(-)

Approvals:
  Internal Jenkins: Verified
  Skye Wanderman-Milne: Looks good to me, approved



-- 
To view, visit http://gerrit.cloudera.org:8080/1901
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib422a8d50303c21c6a228675157bf867e8619444
Gerrit-PatchSet: 19
Gerrit-Project: Impala
Gerrit-Branch: cdh5-trunk
Gerrit-Owner: Skye Wanderman-Milne <[email protected]>
Gerrit-Reviewer: Dan Hecht <[email protected]>
Gerrit-Reviewer: Internal Jenkins
Gerrit-Reviewer: Marcel Kornacker <[email protected]>
Gerrit-Reviewer: Michael Ho <[email protected]>
Gerrit-Reviewer: Skye Wanderman-Milne <[email protected]>

Reply via email to