[
https://issues.apache.org/jira/browse/SOLR-14763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rishi Sankar updated SOLR-14763:
--------------------------------
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|https://lists.apache.org/thread.html/r548f318d9176c84ad1a4ed49ff182eeea9f82f26cb23e372244c8a23%40%3Cdev.lucene.apache.org%3E].
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.
3) Performance benchmarks
was:
In [SOLR-14354|https://issues.apache.org/jira/browse/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|[https://lists.apache.org/thread.html/r548f318d9176c84ad1a4ed49ff182eeea9f82f26cb23e372244c8a23%40%3Cdev.lucene.apache.org%3E]].
2) An async API is also useful in other HTTP/2 Solr clients as well,
particularly CloudHttp2SolrClient
([SOLR-14675|https://issues.apache.org/jira/browse/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.
3) Performance benchmarks
> SolrJ Client Async HTTP/2 Requests
> ----------------------------------
>
> Key: SOLR-14763
> URL: https://issues.apache.org/jira/browse/SOLR-14763
> Project: Solr
> Issue Type: Improvement
> Security Level: Public(Default Security Level. Issues are Public)
> Components: SolrJ
> Affects Versions: 8.7
> Reporter: Rishi Sankar
> Priority: Major
>
> 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|https://lists.apache.org/thread.html/r548f318d9176c84ad1a4ed49ff182eeea9f82f26cb23e372244c8a23%40%3Cdev.lucene.apache.org%3E].
> 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.
> 3) Performance benchmarks
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]