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]
