You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by jo...@apache.org on 2023/09/12 21:01:03 UTC

[impala] branch master updated: IMPALA-12417: Fix query timeline issue during asynchronous codegen

This is an automated email from the ASF dual-hosted git repository.

joemcdonnell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git


The following commit(s) were added to refs/heads/master by this push:
     new 89d95f28d IMPALA-12417: Fix query timeline issue during asynchronous codegen
89d95f28d is described below

commit 89d95f28d4252d843bce403beea875c1d221dff3
Author: Surya Hebbar <sh...@cloudera.com>
AuthorDate: Wed Sep 6 18:38:15 2023 +0530

    IMPALA-12417: Fix query timeline issue during asynchronous codegen
    
    When ASYNC_CODEGEN = 1, async code generation is enabled,
    this switches the compiled function pointers during runtime.
    Hence, enabling codegen to run on a parallel thread.
    
    In this case, a new event sequence is added to each fragment's profile.
    These additional events exhaust the default phase's colors available
    and disturb the correlation between them.
    
    AsyncCodegen events can be skipped to render the fragment diagram
    correctly.
    
    Change-Id: I01b29b869b16a5f2f2e398ac7e937f137614d6fe
    Reviewed-on: http://gerrit.cloudera.org:8080/20458
    Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 www/query_timeline.tmpl | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/www/query_timeline.tmpl b/www/query_timeline.tmpl
index 1347b7308..83fe97cd1 100644
--- a/www/query_timeline.tmpl
+++ b/www/query_timeline.tmpl
@@ -272,6 +272,10 @@ function collectFragmentEventsFromProfile(ignored_arg) {
 
         // Build list of timestamps that spans instances for each event
         for (var en = 0; en < fevents.length; ++en) {
+          if (fevents[en].label.includes("AsyncCodegen")) {
+            fevents[en].no_bar = true;
+            continue;
+          }
           fevents[en].tslist = [ fevents[en].timestamp ];
           for (var instance = 1; instance < fp.child_profiles.length; ++instance) {
             if (fp.child_profiles[instance].event_sequences != undefined) {