tree 6386179b9d3b88ea79717e4b849d22a31ec9f570
parent 7baa31ea04b4d025b882c46848ca682f0b5beb2a
author Qifan Chen <qchen@cloudera.com> 1598460823 -0400
committer Impala Public Jenkins <impala-public-jenkins@cloudera.com> 1599860730 +0000

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 <impala-public-jenkins@cloudera.com>
Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
