Skye Wanderman-Milne has uploaded a new patch set (#10). 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 3.32s to 2.22s, with the top-n node time going from 2.9s to 1.6s. 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 tests pass with this patch. Change-Id: Ib422a8d50303c21c6a228675157bf867e8619444 --- 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, 498 insertions(+), 92 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala refs/changes/01/1901/10 -- To view, visit http://gerrit.cloudera.org:8080/1901 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib422a8d50303c21c6a228675157bf867e8619444 Gerrit-PatchSet: 10 Gerrit-Project: Impala Gerrit-Branch: cdh5-trunk Gerrit-Owner: Skye Wanderman-Milne <[email protected]> Gerrit-Reviewer: Michael Ho <[email protected]> Gerrit-Reviewer: Skye Wanderman-Milne <[email protected]>
