08-17-2017 10:55 PM
In the query profile, under the ImpalaServer section, there are ClientFetchWaitTimer, InactiveTotalTIme, RowMaterializationTimer, and TotalTime. Below is an example from the query profile of a query I ran:
- ClientFetchWaitTimer: 3,884,245,220
- InactiveTotalTime: 0
- RowMaterializationTimer: 59,959,236,928
- TotalTime: 0
What exactly does RowMaterializationTimer measure? There are no comments for this counter in the code. I traced the code to client-request-state.cc and saw that in FetchRowsInternal() there's the line: SCOPED_TIMER(row_materialization_timer_);
and then nothing else. It seems like row_materialization_timer_ is updated via PeriodicCounterUpdater. But I don't understand how taking samples periodically would contribute to a single value shown in "RowMaterializationTimer". Any insights would be appreciated.
Also, is it possible that TotatlTime is 0 whenClientFetchWaitTimer and RowMaterializationTimer are > 0? Isn't that the total elapsed time from ImpalaServer?