andygrove opened a new issue, #7465:
URL: https://github.com/apache/datafusion-comet/issues/7465

   ### What is the problem the feature request solves?
   
   Ballista takes a task's metrics from the operators of its stage plan. On a 
Comet Native Executor cluster, a stage's plan is a shuffle writer over a 
`CometFragmentExec`, whose children are the stage's partition descriptor and 
its shuffle readers. `CometFragmentExec` reports no metrics, and the Comet 
operators run in a plan it builds inside `execute`, which Ballista never sees. 
So in the scheduler's event logs (`COMET_SCHEDULER_EVENT_LOG_DIR`, #7420) and 
stage summaries:
   
   - A task's compute time (`elapsed_compute_nanos`) covers only its shuffle 
readers' poll time, and is 0 for a stage with no shuffle input.
   - Input rows count only the rows a stage reads from other stages, so a stage 
that reads files or makes its own rows logs 0.
   - The plan shows each block only as `CometFragmentExec: block=N bytes`.
   
   In a two-stage query, a range stage hash-shuffled into a stage that reads 
it, the range stage's task logged 0 input rows and 0 compute time, and the 
reading stage's task logged 1000 input rows and 3.3 ms, the shuffle reader's 
poll time. Output rows and task times are right.
   
   ### Describe the potential solution
   
   `CometFragmentExec` could keep the plan it builds for each partition and 
report the block's metrics from `metrics()`: its operators' `elapsed_compute`, 
and the output rows of its file scans and other leaves. Ballista sums 
`elapsed_compute` over every operator of the stage, so the block's figure 
shouldn't count the time its inputs spend in the shuffle readers, which report 
their own. Ballista counts a stage's input rows from the plan's leaves, and 
`CometFragmentExec` isn't one, so rows read from files need another way in, 
whether a leaf that reports them or a change to how Ballista counts input rows.
   
   #7373 needs the block's per-operator metrics too, to fill in the Spark UI.
   
   ### Additional context
   
   Found in the review of #7420: 
https://github.com/apache/datafusion-comet/pull/7420#discussion_r4460104688
   
   Part of #7288.
   
   ### Willingness to contribute
   
   Yes. I can contribute this feature independently.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to