You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Tim Armstrong (Jira)" <ji...@apache.org> on 2020/12/15 19:54:00 UTC
[jira] [Resolved] (IMPALA-3101) AnalyticEvalNode should use
codegened TupleRowComparator instead of PrevRowCompare
[ https://issues.apache.org/jira/browse/IMPALA-3101?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tim Armstrong resolved IMPALA-3101.
-----------------------------------
Resolution: Duplicate
> AnalyticEvalNode should use codegened TupleRowComparator instead of PrevRowCompare
> ----------------------------------------------------------------------------------
>
> Key: IMPALA-3101
> URL: https://issues.apache.org/jira/browse/IMPALA-3101
> Project: IMPALA
> Issue Type: Improvement
> Components: Backend
> Affects Versions: Impala 2.6.0
> Reporter: Mostafa Mokhtar
> Priority: Minor
> Labels: codegen, performance
> Attachments: primitive_orderby_bigint_VtuneTopDown.csv
>
>
> AnalyticEvalNode uses PrevRowCompare to compare rows, which is very inefficient compared to the codegend version of TupleRowComparator::Compare
> |Function Stack||CPU Time: Total||CPU Time: Self||Module||Function (Full)||Source File||Start Address|
> |impala::AnalyticEvalNode::ProcessChildBatch|47.9%|0.810s|impalad|impala::AnalyticEvalNode::ProcessChildBatch(impala::RuntimeState*)|analytic-eval-node.cc|0xc0a870|
> | impala::AnalyticEvalNode::TryAddResultTupleForPrevRow|35.0%|0.570s|impalad|impala::AnalyticEvalNode::TryAddResultTupleForPrevRow(bool, long, impala::TupleRow*)|analytic-eval-node.cc|0xc0aa85|
> | impala::AnalyticEvalNode::PrevRowCompare|30.3%|0.040s|impalad|impala::AnalyticEvalNode::PrevRowCompare(impala::ExprContext*)|analytic-eval-node.cc|0xc0ae1d|
> | impala::ExprContext::GetBooleanVal|30.2%|0.330s|impalad|impala::ExprContext::GetBooleanVal(impala::TupleRow*)|expr-context.cc|0x7f0790|
> | impala::AndPredicate::GetBooleanVal|29.8%|1.220s|impalad|impala::AndPredicate::GetBooleanVal(impala::ExprContext*, impala::TupleRow*)|compound-predicates.cc|0x8575c0|
> | impala::OrPredicate::GetBooleanVal|28.5%|2.840s|impalad|impala::OrPredicate::GetBooleanVal(impala::ExprContext*, impala::TupleRow*)|compound-predicates.cc|0x857650|
> These queries can be used for repro
> https://github.com/cloudera/Impala/blob/cdh5-trunk/testdata/workloads/targeted-perf/queries/primitive_orderby_all.test
> https://github.com/cloudera/Impala/blob/cdh5-trunk/testdata/workloads/targeted-perf/queries/primitive_orderby_bigint.test
--
This message was sent by Atlassian Jira
(v8.3.4#803005)