QUIC was Inets http2 support

Lukas Larsson lukas@REDACTED
Thu Nov 21 21:23:30 CET 2019


On Thu, 21 Nov 2019, 19:00 Loïc Hoguin, <essen@REDACTED> wrote:

> On 21/11/2019 18:21, Lukas Larsson wrote:
> > I don't think it is too bad an idea to start now either. From what I can
> > tell the rfc:s are pretty stable already.
>
> The QUIC ones yes, minus the priority mechanism. But HTTP/3 depends on
> both priorities being figured out and also the pushed mechanism. I'm not
> sure how far the latter got or if it's going to be supported at all
> initially. So for my use case it's not as stable as it could be.
>

Ah yes, I've not been following those at all as they don't matter for the
distribution case.


> >     On 21/11/2019 17:22, Lukas Larsson wrote:
> >      > One of the use-cases (besides the obvious HTTP/3 use-case) that
> >     we have
> >      > been thinking about would be to allow the Erlang distribution to
> run
> >      > over QUIC.
> >
> >     That's what I want for RabbitMQ and based on experiments emulating
> some
> >     aspects of QUIC, this is an insanely promising prospect. I expect
> QUIC
> >     to triple the throughput for mirrored RabbitMQ queues *at the very
> >     least*.
> >
> >
> > Do you? Why? What aspect of it do you think would do that?
>
> I said too much. :-)
>
> >     Some aspects of the distribution do not play well with QUIC though,
> >     like
> >     `monitor(process, {Name, Node})`. This is the one thing in the
> >     distribution protocol for which you can't guarantee ordering over
> >     multiple QUIC streams because you don't have the pid that you have
> for
> >     all other messages.
> >
> >
> > Hmm, yes. Not trivial to solve but should be doable.
>
> My current solution is "don't use it". rpc:call(whereis) plus monitor is
> almost the same as well.
>

Mhm, it is rare enough that using some slow fall back would work.

>
> >     Right now you also must parse the message in order
> >     to figure out on which stream you have to send it, it would probably
> be
> >     better to have this info readily available.
> >
> >
> > Fixing this should be very simple. The information is there we just need
> > to put it in the tuple returned.
>
> I'd love to have this today. :-)
>

I'll see what we can do.


> >     Of course you could always
> >     use a single QUIC channel but then what's the point. :-)
> >
> >      > We were thinking about re-using the ssl applications TLS 1.3
> >      > implementation. It is not trivial as transport and TLS are
> >     upsidedown
> >      > for QUIC, but should be doable sais Ingela and Peter :p
> >
> >     If we can have a good interface that has TLS return the
> >     encrypted/decrypted binary data rather than write it directly to the
> >     socket, I could also use it in Gun to support TLS connections over
> TLS
> >     proxies. Right now it uses the callback module and while it works
> it's
> >     fairly complex.
> >
> >
> > Maybe this would be a good starting point for us. Building an API that
> > makes this possible.
>
> So much to do so little time. :-)
>

Indeed.


> --
> Loïc Hoguin
> https://ninenines.eu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20191121/88d64aee/attachment.htm>


More information about the erlang-questions mailing list