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

    https://github.com/apache/spark/pull/2030#discussion_r16435754
  
    --- Diff: 
core/src/main/scala/org/apache/spark/broadcast/TorrentBroadcast.scala ---
    @@ -109,99 +155,30 @@ private[spark] class TorrentBroadcast[T: ClassTag](
       private def readObject(in: ObjectInputStream) {
         in.defaultReadObject()
         TorrentBroadcast.synchronized {
    --- End diff --
    
    block size is limited to 4mb iirc - while deserializing two 100mb 
broadcasts (as mentioned in usecase) in parallel will mean first has to 
complete before second (or any other) can even start : so 50 requests have to 
finish (half of which are pulling 4 mb each).
    Even assuming both cores are pulling same broadcast, assuming reasonable 
shuffle and large enough sizes, they could complement each other (best case, 
reduce time taken by half, worst case, double IO assuming horrible shuffle or 
single block).
    From latency point of view, current option is not very good when waves of 
tasks are getting scheduled and we have multiple cores per executors : from 
network IO incurred point of view, maybe it is better.
    Tradeoff question is, which is dominating.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

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

Reply via email to