[ https://issues.apache.org/jira/browse/IMPALA-10235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tim Armstrong resolved IMPALA-10235. ------------------------------------ Fix Version/s: Impala 4.0 Assignee: Tim Armstrong Resolution: Fixed This was introduced by part 1 of IMPALA-9382 and fixed by this part of the below patch. @@ -1842,7 +2137,8 @@ RuntimeProfileBase::AveragedCounter::GetStats() const { if (!vals.empty()) { sort(vals.begin(), vals.end()); result.num_vals = vals.size(); - result.mean = std::accumulate(vals.begin(), vals.end(), 0) / result.num_vals; + T sum = std::accumulate(vals.begin(), vals.end(), 0L); + result.mean = sum / result.num_vals; result.min = vals[0]; result.max = vals.back(); int end_idx = vals.size() - 1; @@ -1902,6 +2198,50 @@ void RuntimeProfileBase::AveragedCounter::PrettyPrintImpl( commit 9429bd779de986d3e61858bef7e258bd73a2cacd Author: Tim Armstrong <tarmstr...@cloudera.com> Date: Sun May 17 16:37:46 2020 -0700 IMPALA-9382: part 2/3: aggregate profiles sent to coordinator This reworks the status reporting so that serialized AggregatedRuntimeProfile objects are sent from executors to coordinators. These profiles are substantially denser and faster to process for higher mt_dop values. The aggregation is also done in a single step, merging the aggregated thrift profile from the executor directly into the final aggregated profile, instead of converting it to an unaggregated profile first. The changes required were: * A new Update() method for AggregatedRuntimeProfile that updates the profile from a serialised AggregateRuntimeProfile for a subset of the instances. The code is generalized from the existing InitFromThrift() code path. * Per-fragment reports included in the status report protobuf when --gen_experimental_profile=true. * Logic on the coordinator that either consumes serialized AggregatedRuntimeProfile per fragment, when --gen_experimental_profile=true, or consumes a serialized RuntimeProfile per finstance otherwise. This also adds support for event sequences and time series in the aggregated profile, so the amount of information in the aggregated profile is now on par with the basic profile. We also finish off support for JSON profile. The JSON profile is more stripped down because we do not need to round-trip profiles via JSON and it is a much less dense profile representation. Part 3 will clean up and improve the display of the profile. Testing: * Add sanity tests for aggregated runtime profile. * Add unit tests to exercise aggregation of the various counter types * Ran core tests. Change-Id: Ic680cbfe94c939c2a8fad9d0943034ed058c6bca Reviewed-on: http://gerrit.cloudera.org:8080/16057 Reviewed-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com> > Averaged timer profile counters can be negative for trivial queries > ------------------------------------------------------------------- > > Key: IMPALA-10235 > URL: https://issues.apache.org/jira/browse/IMPALA-10235 > Project: IMPALA > Issue Type: Bug > Reporter: Sahil Takiar > Assignee: Tim Armstrong > Priority: Major > Labels: newbie, ramp-up > Fix For: Impala 4.0 > > Attachments: profile-output.txt > > > Steps to reproduce on master: > {code:java} > stakiar @ stakiar-desktop -bash ~/Impala 2020-10-13 11:13:02 master > [74] → ./bin/impala-shell.sh -q "select sleep(100) from functional.alltypes > limit 25" -p > profile-output.txt > ... > Query: select sleep(100) from functional.alltypes limit 25 > Query submitted at: 2020-10-13 11:13:07 (Coordinator: > http://stakiar-desktop:25000) > Query progress can be monitored at: > http://stakiar-desktop:25000/query_plan?query_id=694f94671571d4d1:cdec9db900000000 > Fetched 25 row(s) in 2.64s > {code} > Attached the contents of {{profile-output.txt}} > Relevant portion of the profile: > {code:java} > Averaged Fragment F00:(Total: 2s603ms, non-child: 272.519us, % non-child: > 0.01%) > ... > - CompletionTime: -1665218428.000ns > ... > - TotalThreadsTotalWallClockTime: -1686005515.000ns > - TotalThreadsSysTime: 0.000ns > - TotalThreadsUserTime: 2.151ms > ... > - TotalTime: -1691524485.000ns > {code} > For whatever reason, this only affects the averaged fragment profile. For > this query, there was only one coordinator fragment and thus only one > fragment instance. The coordinator fragment instance showed normal timer > values: > {code:java} > Coordinator Fragment F00: > ... > - CompletionTime: 2s629ms > ... > - TotalThreadsTotalWallClockTime: 2s608ms > - TotalThreadsSysTime: 0.000ns > - TotalThreadsUserTime: 2.151ms > ... > - TotalTime: 2s603ms > {code} -- 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