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]