Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
8.7
-
None
Description
In SOLR-14354, caomanhdat created an API to use Jetty async API to make more thread efficient HttpShardHandler requests. This added public async request APIs to Http2SolrClient and LBHttp2SolrClient. There are a few ways this API can be improved, that I will track in this issue:
1) Using a CompletableFuture-based async API signature, instead of using internal custom interfaces (Cancellable, AsyncListener) - based on this discussion.
—
The below was removed from the scope of what was delivered in 9.6; a linked JIRA will address it.
2) An async API is also useful in other HTTP/2 Solr clients as well, particularly CloudHttp2SolrClient (SOLR-14675). I will add a requestAsync method to the SolrClient class, with a default method that initially throws an unsupported operation exception (maybe this can be later updated to use an executor to handle the async request as a default impl). For now, I'll override the default implementation in the Http2SolrClient and CloudHttp2SolrClient.
Attachments
Issue Links
- is related to
-
SOLR-17234 LBHttp2SolrClient does not skip "zombie" endpoints
- Resolved
-
SOLR-14354 HttpShardHandler send requests in async
- Closed
- is required by
-
SOLR-14675 CloudSolrClient requestAsync API
- Open
- relates to
-
SOLR-17211 HttpJdkSolrClient: Support Async
- Closed
- links to