Quanlong Huang created IMPALA-12391:
---------------------------------------
Summary: Missing EventSequence names in the JSON profile
Key: IMPALA-12391
URL: https://issues.apache.org/jira/browse/IMPALA-12391
Project: IMPALA
Issue Type: Bug
Components: Backend
Reporter: Quanlong Huang
When retrieving profiles in JSON format, I realized theĀ event_sequences are
represented as an array of sequences instead of a map:
{code:json}
"event_sequences": [{
"offset": 0,
"events": [{
"label": "Metadata of all 0 tables cached",
"timestamp": 13596041
}, {
"label": "Analysis finished",
"timestamp": 84345355
}, {
"label": "Authorization finished (noop)",
"timestamp": 84499136
}, {
"label": "Value transfer graph computed",
"timestamp": 105314431
}, {
"label": "Single node plan created",
"timestamp": 110919848
}, {
"label": "Distributed plan created",
"timestamp": 115423306
}, {
"label": "Planning finished",
"timestamp": 187260424
}]
}, {
"offset": 0,
"events": [{
"label": "Query submitted",
"timestamp": 125578
}, {
"label": "Planning finished",
"timestamp": 197022887
}, {
"label": "Submit for admission",
"timestamp": 197377109
}, {
"label": "Completed admission",
"timestamp": 197591734
}, {
"label": "Ready to start on 1 backends",
"timestamp": 197690271
}, {
"label": "All 1 execution backends (1 fragment
instances) started",
"timestamp": 207852394
}, {
"label": "Rows available",
"timestamp": 209102814
}, {
"label": "First row fetched",
"timestamp": 300799735
}, {
"label": "Last row fetched",
"timestamp": 300879566
}, {
"label": "Released admission control resources",
"timestamp": 302725368
}, {
"label": "Unregister query",
"timestamp": 306153314
}]
}],{code}
Related codes are in be/src/util/runtime-profile.cc
https://github.com/apache/impala/blob/57964c83d37bdd61ec08b738c56725940138ab7d/be/src/util/runtime-profile.cc#L1398
{code:cpp}
void RuntimeProfile::ToJsonSubclass(
Verbosity verbosity, Value* parent, Document* d) const {
Document::AllocatorType& allocator = d->GetAllocator();
// 1. Events
{
lock_guard<SpinLock> l(event_sequence_lock_);
if (!event_sequence_map_.empty()) {
Value event_sequences_json(kArrayType); // <-- We explicitly use array
here
for (EventSequenceMap::const_iterator it = event_sequence_map_.begin();
it != event_sequence_map_.end(); ++it) {
Value event_sequence_json(kObjectType);
it->second->ToJson(verbosity, *d, &event_sequence_json);
event_sequences_json.PushBack(event_sequence_json, allocator); // <--
'it->first' is not used. It's the name of the EventSequence.
}
parent->AddMember("event_sequences", event_sequences_json, allocator);
}
}
{code}
We can change 'event_sequences_json' to use kObjectType and add the
EventSequence names.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)