Richard W. Eggert II created SPARK-11296:
--------------------------------------------

             Summary: FutureAction.onComplete consumes a thread while waiting 
for job
                 Key: SPARK-11296
                 URL: https://issues.apache.org/jira/browse/SPARK-11296
             Project: Spark
          Issue Type: Bug
          Components: Scheduler, Spark Core
    Affects Versions: 1.5.1, 1.5.0, 1.4.1, 1.4.0
            Reporter: Richard W. Eggert II


The implementations of the onComplete callback (and, by extension, the 
callbacks based on it) of FutureAction (SimpleFutureAction and 
ComplexFutureAction) each consume a thread that blocks waiting for the 
underlying job(s) to complete. This is unnecessary and is likely to be very 
surprising to anyone accustomed to the usual behavior of Scala Futures (i.e., 
that callbacks only occupy threads AFTER the underlying task has completed),  
and it runs the risk of causing thread starvation for any processes utilizing 
the same thread pool (especially if scala.concurrent.ExecutionContext.global is 
used). The implementations can and should be reworked to operate in a 
non-blocking manner, by modifying the underlying JobWaiter class to expose a 
non-blocking API, so that the onComplete (as well as onSuccess and onFailure) 
callbacks only utilize threads while they are actually executing.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to