You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2020/09/12 05:05:00 UTC

[jira] [Commented] (IMPALA-4065) Inline comparator calls into TopN::InsertBatch()

    [ https://issues.apache.org/jira/browse/IMPALA-4065?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17194613#comment-17194613 ] 

ASF subversion and git services commented on IMPALA-4065:
---------------------------------------------------------

Commit 4bb7190549254c98eb675f3aa044085ca90084d0 in impala's branch refs/heads/master from Qifan Chen
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=4bb7190 ]

IMPALA-4065 Inline comparator calls into TopN::InsertBatch()

This work addresses the current limitation in TopN node by replacing
std::priority_queue with an in-house priority queue implementation.
In this way, call-site replacement of calls to a more efficient
version of tuple comparator becomes possible. The tuple comparator is
optimized by removing the condition test on whether the code-gen
version is ready or not.

Testing:
1. Added a new test TestBasic in a new test harness
   priority-queue-test.cc to verify that the priority queue works
   properly;
2. Ran ad-hoc performance test against tpcds.store_sales (2880404
   rows) and saw 16% and 24% top-100 performance improvement on integer
   and decimal columns respectively. The test queries are as follows.

    -- SQL integer column version
    select ss_sold_time_sk, ss_item_sk, ss_customer_sk
    from tpcds.store_sales
    order by ss_sold_time_sk, ss_item_sk
    limit 100;

    -- SQL decimal column version
    select ss_ext_wholesale_cost, ss_ext_list_price, ss_ext_tax
    from tpcds.store_sales
    order by ss_ext_wholesale_cost, ss_ext_list_price
    limit 100;

3. Ran Core tests successfully.

Change-Id: I676b4c05cf10a6946c05e317b0002c1e29e78aa8
Reviewed-on: http://gerrit.cloudera.org:8080/16373
Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
Tested-by: Impala Public Jenkins <im...@cloudera.com>


> Inline comparator calls into TopN::InsertBatch()
> ------------------------------------------------
>
>                 Key: IMPALA-4065
>                 URL: https://issues.apache.org/jira/browse/IMPALA-4065
>             Project: IMPALA
>          Issue Type: Improvement
>          Components: Backend
>    Affects Versions: Impala 2.7.0
>            Reporter: Tim Armstrong
>            Assignee: Qifan Chen
>            Priority: Minor
>              Labels: codegen, ramp-up
>         Attachments: 0001-WIP-IMPALA-3816-IMPALA-4065-full-TupleRowComparator-.patch
>
>
> This is the more interesting follow-on from IMPALA-3815. We should inline the Compare() calls in the codegen'd TopN code to avoid the indirect function pointer call.
> The tricky aspect is that the Compare() calls are called from std::priority_queue, and we don't have a way to force-inline those functions at the moment.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org