elasticsearch icon indicating copy to clipboard operation
elasticsearch copied to clipboard

support HTTP/2.0

Open inotnako opened this issue 9 years ago • 49 comments

Is ElasticSearch planning to add support (or maybe plugin for) protocol HTTP/2.0? Like in https://github.com/grpc/grpc(used HTTP/2.0) or may be with grpc

inotnako avatar May 05 '15 13:05 inotnako

This is now possible since we have moved to Netty 4, since Netty supports HTTPP/2.0 in 4.1+ /cc @jasontedor

dakrone avatar Sep 27 '16 14:09 dakrone

To be clear, Netty 4 supports HTTP/2 but there is effort required to make Elasticsearch use it, and ensure that it works properly.

jasontedor avatar Sep 27 '16 22:09 jasontedor

Is there any new thinking on supporting h2? It seems like a fruit hanging so high it'll probably take a magic beanstalk to reach, but I'm interested in any thoughts you might have on the cost-benefit equation. I imagine there are bigger wins in first-class client support and alternative APIs that take advantage of more stream-oriented connections in supporting h2 within Elasticsearch itself over just exposing through a h2-enabled proxy.

KodrAus avatar Sep 11 '17 00:09 KodrAus

Any updates on this? With the deprecated TransportClient, there should for sure be HTTP/2 or/and gRPC support.

mantasindrasius avatar Apr 03 '19 20:04 mantasindrasius

At this time there is no update on this other than that we are not currently working on it; this not to say that we will not, only that we feel there are higher priority projects. I do not agree that the deprecation of the transport client implies that there should be HTTP/2 support. Can share why you think that the two are tied together?

jasontedor avatar Apr 03 '19 20:04 jasontedor

Thanks for a quick answer.

HTTP/1.1 is limited in the sense that any concurrent operations cannot happen on the same connection and creating a new connection is a huge performance trade-off.

HTTP/2 or gRPC which is based on the former is multiplexing by nature, so is closer to the non-blocking TransportClient.

If we want to keep the transport overhead low, we can't go with REST+HTTP/1.1.

mantasindrasius avatar Apr 03 '19 20:04 mantasindrasius

@mantasindrasius Thanks for the feedback. I agree with you on the benefits of HTTP/2.

I do think it's worth noting that with HTTP/1.1 keep alive behavior and a connection pool that you can mitigate some of the disadvantages of HTTP/1.1 versus HTTP/2.0. The best that HTTP/1.1 can offer related to multiplexing is pipelining. Yes, this suffers from head-of-line blocking but it does allow some connection reuse too.

That said, even weighing these advantages and disadvantages, I would prefer that we continue to not tie removal of the transport client to the introduction of HTTP/2. Removing the transport client will bring us major advantages in continuing to develop the server side of Elasticsearch without maintaining a client that is so intimately tied to the internal protocol. These advantages outweigh the loss of benefits of the transport client.

Rest assured that HTTP/2 is on our roadmap, just not at the top of the list at the moment.

jasontedor avatar Apr 03 '19 21:04 jasontedor

Thanks for that. Do you also think there could be gRPC support for elastic or it's not on the table?

mantasindrasius avatar Apr 04 '19 03:04 mantasindrasius

@mantasindrasius gRPC is not on the table at the moment.

jasontedor avatar Apr 04 '19 03:04 jasontedor

@jasongoodwin ELK don't work in OKD 3.11 (Openshift) correctly because there is no support of H2\grpc protocols. See: https://github.com/elastic/kibana/issues/7104 and https://github.com/openshift/origin-aggregated-logging/issues/1465

UPD#1: Yeah...i disable h2 and kibana work perfectly. Enable and stop working) Is there ant information when kibana will support h2?

Asgoret avatar Jun 14 '19 12:06 Asgoret

Any updates on the support of Http 2.0 in ES?

ayushsangani avatar Oct 29 '19 20:10 ayushsangani

Any actions to support gRPC or HTTP/2?

cangiremir avatar Jun 16 '20 19:06 cangiremir

Are there any news here? AWS NLB has finally ALPN support for the TLS Listener, which would help for the gRPC handshake/http2 connection

https://www.reddit.com/r/aws/comments/gsdo3w/nlb_now_supports_alpn_on_tls_listeners/

weitzjdevk avatar Jun 18 '20 07:06 weitzjdevk

Waiting for http2 (gRPC maybe) supporting.

bachden avatar Aug 13 '20 06:08 bachden

A team at Verizon is asking for gRPC support. +1

bradquarry avatar Aug 19 '20 13:08 bradquarry

Do you have any update to share about HTTP/2 support please ?

YohanSciubukgian avatar Nov 01 '20 19:11 YohanSciubukgian

Do you have any plan to do that in near future ? i would like to see it if it is in your roadmap. Thanks

gokcesurenkok avatar Nov 13 '20 07:11 gokcesurenkok

Any updates here?

AWS ALB has finally gRPC support built in GCP had it all the time

weitzj avatar Nov 13 '20 07:11 weitzj

+1 from Compass. We need this feature.

cyberfifi avatar Feb 10 '21 15:02 cyberfifi

This is definitely needed!

emcpadden avatar Mar 19 '21 20:03 emcpadden

I endorse http2 too!

One solution for me at this moment, if anyone is interested, is to avoid elasticsearch oficcial client (in a nodejs service that only uses _search), and to use superagent + agentkeepalive, with, in my case of use, maxSockets uninformed, assuming the default value of Infinity. This way I have the connection pool working under the hood, mitigating the http1 limitation as @jasontedor well said.

Farenheith avatar Jun 03 '21 13:06 Farenheith

+1 Upvote

gguillen avatar Jun 18 '21 18:06 gguillen

A team at Platzi is asking for gRPC support. +1

JhennerTigreros avatar Aug 10 '21 23:08 JhennerTigreros

+1 Upvote

Dyqer avatar Nov 11 '21 06:11 Dyqer

+1 Upvote

blackheaven avatar Dec 19 '21 11:12 blackheaven

+1 as a nice to have.

JoeGilkey avatar Feb 06 '22 02:02 JoeGilkey

+1 Upvote

Jaimenms avatar Feb 09 '22 17:02 Jaimenms

+1 this would be very helpful to my company

cjmcgraw avatar Apr 15 '22 22:04 cjmcgraw

+1 please

kkdeok avatar Jun 09 '22 07:06 kkdeok

+1 Upvote

marinrusu1997 avatar Jun 29 '22 07:06 marinrusu1997