squito commented on a change in pull request #23767: [SPARK-26329][CORE][WIP] 
Faster polling of executor memory metrics.
URL: https://github.com/apache/spark/pull/23767#discussion_r256241992
 
 

 ##########
 File path: core/src/main/scala/org/apache/spark/executor/Executor.scala
 ##########
 @@ -189,9 +203,44 @@ private[spark] class Executor(
    */
   private val HEARTBEAT_INTERVAL_MS = conf.get(EXECUTOR_HEARTBEAT_INTERVAL)
 
+  /**
+   * Interval to poll for executor metrics, in milliseconds
+   */
+  private val METRICS_POLLING_INTERVAL_MS = 
conf.get(EXECUTOR_METRICS_POLLING_INTERVAL)
+
+  // Executor for the metrics polling task
+  private val poller =
+    if (METRICS_POLLING_INTERVAL_MS > 0) {
+      ThreadUtils.newDaemonSingleThreadScheduledExecutor("executor-poller")
+    } else {
+      null
+    }
+
+  private def poll(): Unit = {
+    // get the latest values for the metrics
+    val latestMetrics = ExecutorMetrics.getCurrentMetrics(env.memoryManager)
 
 Review comment:
   it would help to have a comment explaining the multiple threads that you are 
concerned about here -- mostly just that the task runner might be trying to 
grab these metrics, at the task end, at the same time as this thread is trying 
to update them.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

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

Reply via email to