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

    https://github.com/apache/spark/pull/21729#discussion_r201415032
  
    --- Diff: 
core/src/main/scala/org/apache/spark/scheduler/TaskSetManager.scala ---
    @@ -87,7 +87,7 @@ private[spark] class TaskSetManager(
       // Set the coresponding index of Boolean var when the task killed by 
other attempt tasks,
       // this happened while we set the `spark.speculation` to true. The task 
killed by others
       // should not resubmit while executor lost.
    -  private val killedByOtherAttempt: Array[Boolean] = new 
Array[Boolean](numTasks)
    +  private val killedByOtherAttempt = new HashSet[Long]
    --- End diff --
    
    @tgravescs Actually I thought HashSet meant we pay the cost of maintaining 
this data only when speculative exec is enabled and there are kill's - not in 
other cases.
    If we need the partition for the tasks which were killed, we could make it 
a HashMap[Long, Int] for [taskId, partition] to efficiently get to the info at 
minimal memory footprint. What do you think ?


---

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

Reply via email to