[ 
https://issues.apache.org/jira/browse/MESOS-6127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15465400#comment-15465400
 ] 

Aaron Wood commented on MESOS-6127:
-----------------------------------

- Multiplexing in HTTP/2 gets you multiple concurrent communications to happen 
over a single connection (heavy use of stream identifiers here). That's the big 
thing persistent connections with HTTP 1.1 doesn't get you.
- My understanding of the compression is that the overhead you gain from the 
compression computation is far outweighed by the data savings and high 
compression ratio. I think you can expect to almost always have at least > 90% 
of the data saved. The algorithm used is here 
https://http2.github.io/http2-spec/compression.html
- I think if the code was changed carefully so that we're always reusing one 
connection per origin then we'd only ever have one TLS handshake per connection 
to worry about. I think the overhead of the encryption and compression work 
will be negated by modern CPUs (especially since almost everything has AES-NI 
built in now).

I could be wrong on some of these points, there might be more overhead than 
expected if we introduce TLS into the picture. But since most of the tech 
giants have switched to HTTP/2 (Google, Akami, YouTube, CloudFlare, etc. etc.) 
I am fairly confident it's the way to go.

> Implement suppport for HTTP/2
> -----------------------------
>
>                 Key: MESOS-6127
>                 URL: https://issues.apache.org/jira/browse/MESOS-6127
>             Project: Mesos
>          Issue Type: Epic
>          Components: HTTP API, libprocess
>            Reporter: Aaron Wood
>              Labels: performance
>
> HTTP/2 will allow us to take advantage of connection multiplexing, header 
> compression, streams, server push, etc. Add support for communication over 
> HTTP/2 between masters and agents, framework endpoints, etc.
> Should we support HTTP/2 without TLS? The spec allows for this but most major 
> browser vendors, libraries, and implementations aren't supporting it unless 
> TLS is used. If we do require TLS, what can be done to reduce the performance 
> hit of the TLS handshake? Might need to change more code to make sure that we 
> are taking advantage of connection sharing so that we can (ideally) only ever 
> have a one-time TLS handshake per shared connection.
> Potential library that could be helpful: 
> https://nghttp2.org/documentation/libnghttp2_asio.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to