markrmiller commented on code in PR #4431:
URL: https://github.com/apache/solr/pull/4431#discussion_r3486352061


##########
solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java:
##########
@@ -84,6 +85,13 @@ public class HttpShardHandlerFactory extends 
ShardHandlerFactory
   // This executor is initialized in the init method
   protected ExecutorService commExecutor;

Review Comment:
   Because they are different executors for different purposes.
   
   The commExecutor is used by the jetty httpclient as the async 
callback/worker executor. It's the non blocking I/O executor.
   
   The shardExecutor is the new virtual thread per task executor that does the 
blocking scatter/gather. Each virtual thread blocks on jettyFuture.get() while 
jetty's own executor drives completion.
   
   If you point the LB to the shardExecutor, you will get the httpclient using 
virtual threads for callbacks and such, which requires a Solrj change (the 
LBAsyncSolrClient and HttpJettySolrClient.withExecutor(E) plumbing). Which is 
the larger Solrj rework you were suspecting.



-- 
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: [email protected]

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to