westonpace opened a new pull request #10420:
URL: https://github.com/apache/arrow/pull/10420


   Following the spirit of the literature I've done my best to keep things lock 
free.  Most management tasks (resizing, launching new workers, shutting down, 
etc.) still require locking.  In addition, when a thread runs out of work it 
must lock so it can safely sleep.
   
   Finally, we will probably require locking when requests come in from outside 
the thread pool. (at the moment we are naively assuming these requests will 
come from a single external thread).
   
   However, the hot path of working through tasks submitted by tasks should be 
able to be done with a minimal amount of synchronization (although I'm not 
entirely convinced this benefit is worth the complexity at the moment, see 
upcoming discussion in ARROW-10117).  Very early benchmarking shows ~2x speedup 
on this hot path.
   
   Of course, the more interesting case, is the case where work stealing saves 
us from losing cache locality.  I haven't gotten around to benchmarking that 
yet.
   
   Keeping in draft at the moment:
   
   * In addition to the above work still needing to be done the current 
implementation does not support incoming requests from multiple outside threads.
   * Also, resize is not currently supported.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to