Github user edwinalu commented on a diff in the pull request:

    https://github.com/apache/spark/pull/21221#discussion_r187507940
  
    --- Diff: 
core/src/main/scala/org/apache/spark/scheduler/EventLoggingListener.scala ---
    @@ -93,6 +94,10 @@ private[spark] class EventLoggingListener(
       // Visible for tests only.
       private[scheduler] val logPath = getLogPath(logBaseDir, appId, 
appAttemptId, compressionCodecName)
     
    +  // map of live stages, to peak executor metrics for the stage
    +  private val liveStageExecutorMetrics = mutable.HashMap[(Int, Int),
    --- End diff --
    
    This is tracking peak metric values for executors for each stage, so that 
the peak values for the stage can be dumped at stage end. The purpose is to 
reduce the amount of logging, to only number of stages * number of executors 
ExecutorMetricsUpdate events.
    
    I originally tried logging for new peak values, resetting when a new stage 
begins -- this is simpler, but can lead to more events being logged.
    
    Having stage level information is useful for users trying to identify which 
stages are more memory intensive. This information could be useful they are 
trying to reduce the amount of memory used, since they would know which stages 
(and the relevant code) to focus on.


---

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

Reply via email to