jpountz commented on issue #12347:
URL: https://github.com/apache/lucene/issues/12347#issuecomment-1584130071

   I wonder if we should make SliceExecutor configurable, or if we should 
instead fix it? Having both the Executor and the SliceExecutor be 
user-configurable feels too much to me, we should either make the executor 
configurable, or if we think that this abstraction is not sophisticated enough 
then have a more complex abstraction configurable whole concrete 
implementations would likely wrap an executor?
   
   SliceExecutor is based on the assumption that it is sometimes a good idea to 
run in the current thread instead of delegating to the executor. I have become 
increasingly doubtful about this because it make it very hard to reason about 
the total number of threads that may run searches, since the threadpool that 
would call `IndexSearcher#search` would have part of its threads running 
searches, and part of its threads joining tasks that are running in the 
executor threadpool. Should we simplify this and always run searches in the 
executor threadpool? And the other threadpool (the one that calls 
`IndexSearcher#search`) would only be joining tasks running in the executor and 
running cheap operations like `TopDocs#merge` to combine the results of the 
various slices?


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