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 "Daniel Becker (Jira)" <ji...@apache.org> on 2020/06/24 13:28:00 UTC

[jira] [Commented] (IMPALA-5444) Asynchronous code generation

    [ 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-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org