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

Daniel Becker commented on IMPALA-5444:
---------------------------------------

Single node performance benchmark comparing master (not the current one) with 
the patch, but with async codegen turned off:

 

Report Generated on 2020-06-16
Run Description: "ad8f468871d3a893bf4c7b702025ec70765ce8e1 vs 
f9ffed62827b22a3bb1aa18c11e350dd9310ebbc"

Cluster Name: UNKNOWN
Lab Run Info: UNKNOWN
Impala Version: impalad version 4.0.0-SNAPSHOT RELEASE ()
Baseline Impala Version: impalad version 4.0.0-SNAPSHOT RELEASE (2020-06-09)

+----------+-----------------------+---------+------------+------------+----------------+
| Workload | File Format | Avg (s) | Delta(Avg) | GeoMean(s) | Delta(GeoMean) |
+----------+-----------------------+---------+------------+------------+----------------+
| TPCDS(1) | parquet / none / none | 0.84 | -0.53% | 0.73 | -0.42% |
+----------+-----------------------+---------+------------+------------+----------------+

+----------+-------------+-----------------------+--------+-------------+------------+-----------+----------------+-------+----------------+---------+-------+
| Workload | Query | File Format | Avg(s) | Base Avg(s) | Delta(Avg) | 
StdDev(%) | Base StdDev(%) | Iters | Median Diff(%) | MW Zval | Tval |
+----------+-------------+-----------------------+--------+-------------+------------+-----------+----------------+-------+----------------+---------+-------+
| TPCDS(1) | TPCDS-Q2 | parquet / none / none | 0.59 | 0.58 | +1.85% | 7.17% | 
6.27% | 30 | +0.72% | 1.07 | 1.05 |
| TPCDS(1) | TPCDS-Q86A | parquet / none / none | 0.57 | 0.56 | +1.49% | 4.94% 
| 4.54% | 30 | +0.39% | 0.94 | 1.21 |
| TPCDS(1) | TPCDS-Q39-2 | parquet / none / none | 0.56 | 0.55 | +1.60% | 4.18% 
| 4.60% | 30 | +0.20% | 2.00 | 1.40 |
| TPCDS(1) | TPCDS-Q33 | parquet / none / none | 0.71 | 0.70 | +1.36% | 5.73% | 
4.68% | 30 | +0.25% | 1.19 | 1.00 |
| TPCDS(1) | TPCDS-Q98 | parquet / none / none | 0.50 | 0.50 | +1.08% | 3.96% | 
4.66% | 30 | +0.12% | 0.65 | 0.96 |
| TPCDS(1) | TPCDS-Q46 | parquet / none / none | 0.62 | 0.61 | +0.82% | 2.25% | 
0.25% | 30 | +0.11% | 1.84 | 1.97 |
| TPCDS(1) | TPCDS-Q88 | parquet / none / none | 0.93 | 0.93 | +0.64% | 4.60% | 
3.84% | 30 | +0.07% | 0.05 | 0.59 |
| TPCDS(1) | TPCDS-Q55 | parquet / none / none | 0.36 | 0.36 | +0.62% | 2.81% | 
0.32% | 30 | +0.06% | 1.05 | 1.20 |
| TPCDS(1) | TPCDS-Q53 | parquet / none / none | 0.62 | 0.61 | +0.53% | 2.24% | 
1.54% | 30 | +0.11% | 2.51 | 1.05 |
| TPCDS(1) | TPCDS-Q40 | parquet / none / none | 0.68 | 0.67 | +0.49% | 3.55% | 
3.31% | 30 | +0.12% | 1.86 | 0.56 |
| TPCDS(1) | TPCDS-Q11 | parquet / none / none | 1.36 | 1.36 | +0.49% | 3.94% | 
3.86% | 30 | -0.01% | -0.02 | 0.48 |
| TPCDS(1) | TPCDS-Q92 | parquet / none / none | 0.47 | 0.47 | +0.23% | 1.99% | 
2.10% | 30 | +0.10% | 1.73 | 0.43 |
| TPCDS(1) | TPCDS-Q84 | parquet / none / none | 0.71 | 0.71 | +0.15% | 0.27% | 
0.21% | 30 | +0.12% | 2.08 | 2.44 |
| TPCDS(1) | TPCDS-Q25 | parquet / none / none | 1.02 | 1.02 | +0.11% | 1.38% | 
0.17% | 30 | +0.03% | 1.11 | 0.43 |
| TPCDS(1) | TPCDS-Q81 | parquet / none / none | 1.13 | 1.13 | +0.14% | 2.85% | 
1.94% | 30 | -0.02% | -0.55 | 0.22 |
| TPCDS(1) | TPCDS-Q73 | parquet / none / none | 0.47 | 0.47 | +0.03% | 3.78% | 
3.93% | 30 | +0.02% | 0.37 | 0.03 |
| TPCDS(1) | TPCDS-Q79 | parquet / none / none | 0.51 | 0.51 | +0.04% | 0.53% | 
0.51% | 30 | +0.01% | 0.15 | 0.27 |
| TPCDS(1) | TPCDS-Q99 | parquet / none / none | 0.66 | 0.66 | +0.01% | 0.28% | 
0.31% | 30 | +0.01% | 0.26 | 0.14 |
| TPCDS(1) | TPCDS-Q18A | parquet / none / none | 1.47 | 1.47 | +0.03% | 2.71% 
| 3.13% | 30 | -0.02% | -0.12 | 0.03 |
| TPCDS(1) | TPCDS-Q91 | parquet / none / none | 0.86 | 0.86 | -0.07% | 0.23% | 
0.26% | 30 | -0.03% | -1.03 | -1.19 |
| TPCDS(1) | TPCDS-Q76 | parquet / none / none | 0.91 | 0.92 | -0.08% | 0.23% | 
0.27% | 30 | -0.03% | -1.02 | -1.27 |
| TPCDS(1) | TPCDS-Q22A | parquet / none / none | 0.77 | 0.77 | -0.18% | 4.02% 
| 4.62% | 30 | +0.03% | 0.02 | -0.16 |
| TPCDS(1) | TPCDS-Q15 | parquet / none / none | 0.51 | 0.51 | -0.10% | 0.29% | 
0.30% | 30 | -0.06% | -1.44 | -1.27 |
| TPCDS(1) | TPCDS-Q29 | parquet / none / none | 1.02 | 1.02 | -0.18% | 0.24% | 
0.98% | 30 | -0.02% | -0.74 | -0.97 |
| TPCDS(1) | TPCDS-Q97 | parquet / none / none | 0.28 | 0.28 | -0.20% | 8.68% | 
8.47% | 30 | -0.01% | -0.09 | -0.09 |
| TPCDS(1) | TPCDS-Q8 | parquet / none / none | 0.44 | 0.44 | -0.10% | 6.22% | 
5.78% | 30 | -0.10% | -0.29 | -0.07 |
| TPCDS(1) | TPCDS-Q3 | parquet / none / none | 0.36 | 0.36 | -0.16% | 0.32% | 
0.35% | 30 | -0.11% | -2.17 | -1.81 |
| TPCDS(1) | TPCDS-Q20 | parquet / none / none | 0.52 | 0.53 | -0.30% | 4.20% | 
4.47% | 30 | -0.01% | -0.13 | -0.27 |
| TPCDS(1) | TPCDS-Q54 | parquet / none / none | 0.81 | 0.81 | -0.27% | 2.77% | 
2.71% | 30 | -0.08% | -0.66 | -0.39 |
| TPCDS(1) | TPCDS-Q95 | parquet / none / none | 0.86 | 0.86 | -0.34% | 3.39% | 
2.62% | 30 | -0.02% | -0.13 | -0.44 |
| TPCDS(1) | TPCDS-Q80A | parquet / none / none | 2.15 | 2.15 | -0.33% | 2.90% 
| 3.07% | 30 | -0.06% | -0.29 | -0.43 |
| TPCDS(1) | TPCDS-Q61 | parquet / none / none | 0.83 | 0.83 | -0.40% | 2.05% | 
2.54% | 30 | -0.01% | -0.24 | -0.68 |
| TPCDS(1) | TPCDS-Q13 | parquet / none / none | 2.29 | 2.30 | -0.31% | 1.67% | 
1.21% | 30 | -0.12% | -0.68 | -0.81 |
| TPCDS(1) | TPCDS-Q34 | parquet / none / none | 0.52 | 0.52 | -0.47% | 3.07% | 
3.83% | 30 | +0.04% | 0.93 | -0.53 |
| TPCDS(1) | TPCDS-Q78 | parquet / none / none | 0.63 | 0.64 | -0.39% | 5.11% | 
4.86% | 30 | -0.05% | -0.52 | -0.31 |
| TPCDS(1) | TPCDS-Q65 | parquet / none / none | 0.92 | 0.93 | -0.46% | 2.22% | 
2.49% | 30 | +0.02% | 0.41 | -0.76 |
| TPCDS(1) | TPCDS-Q42 | parquet / none / none | 0.36 | 0.36 | -0.49% | 2.73% | 
3.66% | 30 | -0.01% | -0.23 | -0.58 |
| TPCDS(1) | TPCDS-Q39-1 | parquet / none / none | 0.55 | 0.55 | -0.48% | 4.68% 
| 4.70% | 30 | -0.03% | -0.57 | -0.39 |
| TPCDS(1) | TPCDS-Q50 | parquet / none / none | 0.77 | 0.77 | -0.50% | 1.64% | 
2.38% | 30 | -0.02% | -0.60 | -0.96 |
| TPCDS(1) | TPCDS-Q4 | parquet / none / none | 2.04 | 2.04 | -0.37% | 2.05% | 
3.03% | 30 | -0.16% | -0.82 | -0.56 |
| TPCDS(1) | TPCDS-Q6 | parquet / none / none | 0.89 | 0.90 | -0.55% | 2.94% | 
3.09% | 30 | -0.00% | -0.09 | -0.70 |
| TPCDS(1) | TPCDS-Q17 | parquet / none / none | 1.02 | 1.02 | -0.54% | 0.24% | 
1.54% | 30 | -0.03% | -0.69 | -1.91 |
| TPCDS(1) | TPCDS-Q32 | parquet / none / none | 0.46 | 0.47 | -0.51% | 0.55% | 
2.02% | 30 | -0.07% | -1.10 | -1.33 |
| TPCDS(1) | TPCDS-Q68 | parquet / none / none | 0.62 | 0.63 | -0.53% | 3.16% | 
3.48% | 30 | -0.05% | -0.85 | -0.62 |
| TPCDS(1) | TPCDS-Q96 | parquet / none / none | 0.41 | 0.41 | -0.33% | 0.52% | 
0.61% | 30 | -0.26% | -1.95 | -2.28 |
| TPCDS(1) | TPCDS-Q7 | parquet / none / none | 0.57 | 0.57 | -0.63% | 3.12% | 
4.30% | 30 | -0.02% | -1.17 | -0.65 |
| TPCDS(1) | TPCDS-Q62 | parquet / none / none | 0.66 | 0.67 | -0.60% | 0.30% | 
1.94% | 30 | -0.06% | -1.94 | -1.68 |
| TPCDS(1) | TPCDS-Q41 | parquet / none / none | 0.32 | 0.32 | -0.67% | 4.13% | 
5.18% | 30 | -0.03% | -0.32 | -0.55 |
| TPCDS(1) | TPCDS-Q71 | parquet / none / none | 0.47 | 0.47 | -0.68% | 3.38% | 
4.07% | 30 | -0.02% | -0.40 | -0.71 |
| TPCDS(1) | TPCDS-Q19 | parquet / none / none | 0.75 | 0.75 | -0.68% | 3.32% | 
3.47% | 30 | -0.04% | -0.54 | -0.78 |
| TPCDS(1) | TPCDS-Q64 | parquet / none / none | 2.57 | 2.58 | -0.50% | 1.38% | 
1.41% | 30 | -0.24% | -1.89 | -1.39 |
| TPCDS(1) | TPCDS-Q74 | parquet / none / none | 1.23 | 1.24 | -0.59% | 3.49% | 
3.52% | 30 | -0.17% | -0.97 | -0.65 |
| TPCDS(1) | TPCDS-Q75 | parquet / none / none | 1.45 | 1.46 | -0.65% | 2.16% | 
2.13% | 30 | -0.19% | -1.64 | -1.17 |
| TPCDS(1) | TPCDS-Q43 | parquet / none / none | 0.42 | 0.42 | -0.96% | 3.85% | 
5.03% | 30 | +0.13% | 1.25 | -0.84 |
| TPCDS(1) | TPCDS-Q16 | parquet / none / none | 0.70 | 0.71 | -0.96% | 3.42% | 
3.42% | 30 | -0.07% | -0.77 | -1.09 |
| TPCDS(1) | TPCDS-Q1 | parquet / none / none | 0.92 | 0.93 | -0.70% | 1.97% | 
2.39% | 30 | -0.34% | -1.83 | -1.24 |
| TPCDS(1) | TPCDS-Q56 | parquet / none / none | 0.79 | 0.80 | -0.91% | 3.88% | 
4.31% | 30 | -0.16% | -0.99 | -0.86 |
| TPCDS(1) | TPCDS-Q52 | parquet / none / none | 0.36 | 0.36 | -1.06% | 0.32% | 
3.74% | 30 | -0.03% | -0.55 | -1.55 |
| TPCDS(1) | TPCDS-Q82 | parquet / none / none | 0.50 | 0.50 | -0.90% | 4.18% | 
3.61% | 30 | -0.21% | -2.08 | -0.90 |
| TPCDS(1) | TPCDS-Q77A | parquet / none / none | 2.14 | 2.15 | -0.66% | 2.56% 
| 2.53% | 30 | -0.46% | -1.10 | -1.00 |
| TPCDS(1) | TPCDS-Q21 | parquet / none / none | 0.54 | 0.55 | -1.05% | 4.84% | 
4.58% | 30 | -0.12% | -1.03 | -0.87 |
| TPCDS(1) | TPCDS-Q70A | parquet / none / none | 1.08 | 1.09 | -0.93% | 2.89% 
| 4.19% | 30 | -0.33% | -0.77 | -1.01 |
| TPCDS(1) | TPCDS-Q37 | parquet / none / none | 0.50 | 0.51 | -1.18% | 4.48% | 
3.66% | 30 | -0.22% | -1.44 | -1.13 |
| TPCDS(1) | TPCDS-Q51 | parquet / none / none | 0.42 | 0.42 | -1.45% | 8.51% | 
9.31% | 30 | -0.15% | -0.46 | -0.63 |
| TPCDS(1) | TPCDS-Q94 | parquet / none / none | 0.70 | 0.71 | -1.52% | 3.77% | 
3.15% | 30 | -0.23% | -1.52 | -1.71 |
| TPCDS(1) | TPCDS-Q12 | parquet / none / none | 0.53 | 0.54 | -1.67% | 4.71% | 
5.04% | 30 | -0.22% | -1.25 | -1.33 |
| TPCDS(1) | TPCDS-Q10A | parquet / none / none | 0.73 | 0.74 | -1.57% | 2.73% 
| 3.55% | 30 | -0.39% | -1.59 | -1.93 |
| TPCDS(1) | TPCDS-Q69 | parquet / none / none | 0.96 | 0.99 | -2.31% | 3.06% | 
3.95% | 30 | -0.45% | -2.45 | -2.56 |
| TPCDS(1) | TPCDS-Q60 | parquet / none / none | 0.76 | 0.78 | -2.38% | 4.49% | 
4.42% | 30 | -0.79% | -2.17 | -2.10 |
| TPCDS(1) | TPCDS-Q51A | parquet / none / none | 1.33 | 1.36 | -1.97% | 3.11% 
| 4.33% | 30 | -1.63% | -1.64 | -2.04 |
| TPCDS(1) | TPCDS-Q72 | parquet / none / none | 1.33 | 1.35 | -2.15% | 1.34% | 
1.81% | 30 | -3.79% | -3.69 | -5.27 |
| TPCDS(1) | TPCDS-Q67A | parquet / none / none | 1.85 | 1.92 | -3.76% | 3.39% 
| 4.37% | 30 | -3.14% | -2.87 | -3.78 |
+----------+-------------+-----------------------+--------+-------------+------------+-----------+----------------+-------+----------------+---------+-------+

 

> Asynchronous code generation
> ----------------------------
>
>                 Key: IMPALA-5444
>                 URL: https://issues.apache.org/jira/browse/IMPALA-5444
>             Project: IMPALA
>          Issue Type: Improvement
>          Components: Backend
>            Reporter: Michael Ho
>            Assignee: Daniel Becker
>            Priority: Minor
>              Labels: codegen
>
> Currently, codegen happens during the preparation phase of a query fragment. 
> In other words, the query fragment cannot start running until the code 
> generation is complete. There are queries in which the code generation time 
> is taking a huge amount of time. While we should disable codegen in some exec 
> nodes if we can accurately estimate in the planner that running without 
> codegen will be better off (e.g. number of rows to process is relatively 
> small), we will still pay the price if say the stats is stale or the 
> estimation is off.
> With async codegen, the idea is that we should run the code generation in a 
> separate thread so that codegen is not on the critical path of the query 
> execution. Once codegen completes for a fragment, we can atomically swap the 
> function pointers of compiled functions embedded in the exec nodes. The exec 
> nodes all currently support falling back to interpretation if the codegend 
> functions don't exist anyway (i.e. the pointer to the compiled function is 
> NULL). In some cases, it can occur that the query may run to completion 
> before codegen completes. Once IMPALA-3259 is fixed (if feasible), we should 
> be able to cancel the codegen execution.
> Another thing to note is that we should be able to bound the codegen work to 
> a set of threads in thread pool so as to control the CPU and memory resources 
> consumed by codegen.
> Another potential extension of this decoupling is IMPALA-9660.



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

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

Reply via email to