[infinispan-dev] Single Endpoint design
Sebastian Laskawiec
slaskawi at redhat.com
Thu Apr 6 05:31:46 EDT 2017
The design has been moved here:
https://github.com/infinispan/infinispan-designs/pull/2
Are there any last comments? I plan to start working on that shortly.
Thanks,
Sebastian
On Fri, Mar 31, 2017 at 4:20 PM Sebastian Laskawiec <slaskawi at redhat.com>
wrote:
> With TLS+ALPN the use case is very simple. The protocol is negotiated
> during the handshake. Then the existing TCP connection is reused and the
> client starts to send Hot Rod binary bits through the wire. Sadly, TLS adds
> some significant overhead to the transmission.
>
> With HTTP/1.1 Upgrade it's a bit more complicated. The Upgrade request
> might issued by the client as well as by the server. Each of the parties
> can ignore the request if it doesn't recognize it (or doesn't support
> protocols proposed by the other side). The more I think about this, the
> more I lean towards to server initiated upgrade requests. This way, only
> clients which supports the upgrade will react to it. It still needs some
> more thought...
>
> Of course you are right, some additional code will need to be added to the
> clients to support switching protocols. The good news is that you won't be
> forced to use the Single Endpoint. You may want to expose our old, good Hot
> Rod Endpoint and forget about all this switching complexity.
>
> Regarding to network hops - no, there is no additional network hops. The
> router component simply identifies the incoming request and plugs proper
> Netty Handler stack to it. Here's an example how it is done with
> multi-tenancy based on SNI [1].
>
> [1]
> https://github.com/infinispan/infinispan/blob/master/server/router/src/main/java/org/infinispan/server/router/router/impl/hotrod/handlers/SniRouteHandler.java#L48-L61
>
> On Fri, Mar 31, 2017 at 2:22 PM Tristan Tarrant <ttarrant at redhat.com>
> wrote:
>
> No, once the connection is established, I believe the netty pipeline can
> be trimmed to the necessary elements.
>
> Tristan
>
> On 31/03/2017 13:57, Gustavo Fernandes wrote:
> > On Fri, Mar 31, 2017 at 11:02 AM, Tristan Tarrant <ttarrant at redhat.com
> > <mailto:ttarrant at redhat.com>> wrote:
> >
> > You understood incorrectly.
> > The only change to the Hot Rod clients is that, if they get a 400
> error
> > from a HR PING request, they will initiate an upgrade to Hot Rod and
> > then proceed with the usual Hot Rod protocol after that.
> >
> >
> > Thanks for the clarification. Still, after the HR protocol is
> > negotiated, communication will go
> > through a router, thus adding an extra hop?
> >
> > Gustavo
> >
> > Tristan
> >
> > On 31/03/2017 11:58, Gustavo Fernandes wrote:
> > > Hi Sebastian,
> > >
> > > If I understood it correctly, all the Hot Rod clients will be
> changed
> > > from using:
> > >
> > > - Binary over TCP, circa 40 bytes header, no hops to contact the
> server,
> > > no protocol negotiation, no encryption (default)
> > >
> > > to
> > >
> > > - HTTP/2 with SSL, protocol upgrade negotiation, and a hop
> (router) to
> > > connect to the server.
> > >
> > >
> > > Any idea of how significant would be this extra overhead
> introduced?
> > >
> > >
> > > Thanks,
> > > Gustavo
> > >
> > >
> > > On Thu, Mar 30, 2017 at 2:01 PM, Sebastian Laskawiec
> > > <slaskawi at redhat.com <mailto:slaskawi at redhat.com>
> > <mailto:slaskawi at redhat.com <mailto:slaskawi at redhat.com>>> wrote:
> > >
> > > Hey!
> > >
> > > My plan is to start working on a Single Point support for
> > Infinispan
> > > Server very soon and I prepared a design:
> > > https://github.com/infinispan/infinispan/pull/5041
> > <https://github.com/infinispan/infinispan/pull/5041>
> > > <https://github.com/infinispan/infinispan/pull/5041
> > <https://github.com/infinispan/infinispan/pull/5041>>
> > >
> > > As you can see I did not use our Wiki (as we used to) because
> it
> > > doesn't support inline comments (which is pretty bad in my
> > opinion).
> > > I would like to propose to keep all the designs along with our
> > > source code. This approach has been successfully used by the
> > > Kubernetes [1] folks (although they migrated designs into the
> new
> > > Community repository [2] recently). I think it might be a
> > good idea
> > > to do something similar.
> > >
> > > Feedback on both items is more than welcome.
> > >
> > > Thanks,
> > > Sebastian
> > >
> > > [1]
> > >
> > https://github.com/kubernetes/kubernetes/tree/master/docs/proposals
> > <https://github.com/kubernetes/kubernetes/tree/master/docs/proposals
> >
> > >
> > <
> https://github.com/kubernetes/kubernetes/tree/master/docs/proposals <
> https://github.com/kubernetes/kubernetes/tree/master/docs/proposals>>
> > > [2]
> > >
> >
> https://github.com/kubernetes/community/tree/master/contributors/design-proposals
> > <
> https://github.com/kubernetes/community/tree/master/contributors/design-proposals
> >
> > >
> > <
> https://github.com/kubernetes/community/tree/master/contributors/design-proposals
> <
> https://github.com/kubernetes/community/tree/master/contributors/design-proposals
> >>
> > >
> > > _______________________________________________
> > > infinispan-dev mailing list
> > > infinispan-dev at lists.jboss.org
> > <mailto:infinispan-dev at lists.jboss.org>
> > <mailto:infinispan-dev at lists.jboss.org
> > <mailto:infinispan-dev at lists.jboss.org>>
> > > https://lists.jboss.org/mailman/listinfo/infinispan-dev
> > <https://lists.jboss.org/mailman/listinfo/infinispan-dev>
> > > <https://lists.jboss.org/mailman/listinfo/infinispan-dev
> > <https://lists.jboss.org/mailman/listinfo/infinispan-dev>>
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > infinispan-dev mailing list
> > > infinispan-dev at lists.jboss.org <mailto:
> infinispan-dev at lists.jboss.org>
> > > https://lists.jboss.org/mailman/listinfo/infinispan-dev
> > <https://lists.jboss.org/mailman/listinfo/infinispan-dev>
> > >
> >
> > --
> > Tristan Tarrant
> > Infinispan Lead
> > JBoss, a division of Red Hat
> > _______________________________________________
> > infinispan-dev mailing list
> > infinispan-dev at lists.jboss.org <mailto:
> infinispan-dev at lists.jboss.org>
> > https://lists.jboss.org/mailman/listinfo/infinispan-dev
> > <https://lists.jboss.org/mailman/listinfo/infinispan-dev>
> >
> >
> >
> >
> > _______________________________________________
> > infinispan-dev mailing list
> > infinispan-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/infinispan-dev
> >
>
> --
> Tristan Tarrant
> Infinispan Lead
> JBoss, a division of Red Hat
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
> --
SEBASTIAN ŁASKAWIEC
INFINISPAN DEVELOPER
Red Hat EMEA <https://www.redhat.com/>
<https://red.ht/sig>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20170406/f6abb1b4/attachment-0001.html
More information about the infinispan-dev
mailing list