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]
