caneGuy opened a new pull request #23519: [SPARK-26601][SQL] Make 
broadcast-exchange thread pool configurable
URL: https://github.com/apache/spark/pull/23519
 
 
   ## What changes were proposed in this pull request?
   
   Currently,thread number of broadcast-exchange thread pool is fixed and 
keepAliveSeconds is also fixed as 60s.
   
   
   ```
   object BroadcastExchangeExec {
     private[execution] val executionContext = 
ExecutionContext.fromExecutorService(
       ThreadUtils.newDaemonCachedThreadPool("broadcast-exchange", 128))
   }
   
    /**
      * Create a cached thread pool whose max number of threads is 
`maxThreadNumber`. Thread names
      * are formatted as prefix-ID, where ID is a unique, sequentially assigned 
integer.
      */
     def newDaemonCachedThreadPool(
         prefix: String, maxThreadNumber: Int, keepAliveSeconds: Int = 60): 
ThreadPoolExecutor = {
       val threadFactory = namedThreadFactory(prefix)
       val threadPool = new ThreadPoolExecutor(
         maxThreadNumber, // corePoolSize: the max number of threads to create 
before queuing the tasks
         maxThreadNumber, // maximumPoolSize: because we use 
LinkedBlockingDeque, this one is not used
         keepAliveSeconds,
         TimeUnit.SECONDS,
         new LinkedBlockingQueue[Runnable],
         threadFactory)
       threadPool.allowCoreThreadTimeOut(true)
       threadPool
     }
   ```
   
   But some times, if the Thead object do not GC quickly it may caused 
server(driver) OOM. In such case,we need to make this thread pool configurable.
   A case has described in https://issues.apache.org/jira/browse/SPARK-26601
   
   ## How was this patch tested?
   UT
   

----------------------------------------------------------------
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