commit | 4bb7190549254c98eb675f3aa044085ca90084d0 | [log] [tgz] |
---|---|---|
author | Qifan Chen <qchen@cloudera.com> | Wed Aug 26 12:53:43 2020 -0400 |
committer | Impala Public Jenkins <impala-public-jenkins@cloudera.com> | Fri Sep 11 21:45:30 2020 +0000 |
tree | 6386179b9d3b88ea79717e4b849d22a31ec9f570 | |
parent | 7baa31ea04b4d025b882c46848ca682f0b5beb2a [diff] |
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>
Lightning-fast, distributed SQL queries for petabytes of data stored in Apache Hadoop clusters.
Impala is a modern, massively-distributed, massively-parallel, C++ query engine that lets you analyze, transform and combine data from a variety of data sources:
To learn more about Impala as a business user, or to try Impala live or in a VM, please visit the Impala homepage. Detailed documentation for administrators and users is available at Apache Impala documentation.
If you are interested in contributing to Impala as a developer, or learning more about Impala's internals and architecture, visit the Impala wiki.
Impala only supports Linux at the moment.
This distribution uses cryptographic software and may be subject to export controls. Please refer to EXPORT_CONTROL.md for more information.
See Impala's developer documentation to get started.
Detailed build notes has some detailed information on the project layout and build.