jpountz commented on PR #13472:
URL: https://github.com/apache/lucene/pull/13472#issuecomment-2155882665

   Your suggestion is how it used to work before: 
https://github.com/apache/lucene/pull/12499/files#diff-e744fc99cb74627f02e30c1cbda56dede66d2ecdfd57db2ce869b9a9a43fa41cR49-R64.
 The context switching isn't great indeed, but executing some tasks on the 
current thread makes it hard to correctly reason about and configure the number 
of threads that should perform work. The idea behind this other PR was that you 
would have a worker executor that would do almost all the work, and a 
coordination executor that would be mostly coordinating work in the worker 
threadpool. I'm not sure if we're at a point where this coordination executor 
could run on virtual threads, but at least conceptually this is how I'm 
thinking of it.
   
   Something tangential that we touched a couple times but haven't implemented 
for now would consist of introducing an API on `IndexSearcher` that doesn't 
require waiting on futures to complete, e.g. something like `public <C extends 
Collector, T> void search(Query query, CollectorManager<C, T> collectorManager, 
IOConsumer<T> resultConsumer)`.
   
   Also related, we are replacing some of the forking with the new support we 
introduced for I/O concurrency: 
https://github.com/apache/lucene/pull/13359/files#diff-ad7c504406afec8940592f1fda0062d3e5321cdc5693c24ec6f5cfb02f8dd90dL100-R114.


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

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to