I like the idea of consolidating to a single protocol and HTTP > websockets
sounds reasonable to me.

I was wondering if it would be worth moving to gRPC instead of HTTP 1.1/1.2
though.

There's some interesting benefits, such as bidirectional streaming and
backpressure. This would be beneficial if TinkerPop ever wanted to have an
official bulk loader of some sort.

That's just my 2 cents. Overall replacing the websockets sounds like a good
idea.

- Lyndon

On Tue, Feb 27, 2024 at 2:29 PM Ken Hu <kenhu...@gmail.com> wrote:

> Hi All,
>
> I would like to start the discussion of making HTTP the only protocol that
> Apache TinkerPop supports starting with the next major version. There are
> several reasons I'm suggesting this. First, we already support both
> WebSockets and HTTP in Gremlin Server which causes a maintenance burden of
> having to support both. Also, I ran some tests and a streaming version of
> HTTP using chunked transfer encoding performs just as well as streaming via
> WebSockets so there won't be a performance loss in terms of latency.
> Second, HTTP is significantly more popular so it will be easier for other
> third party clients to connect to. Third, this is an opportunity to rework
> the remote Transaction API which in its current form causes unnecessary
> complexity in the server. This will also serve as a good opportunity to
> make the connection options more similar among all the GLVs.
>
> I've experimented with replacing WebSockets with HTTP (both 1.1 and 2) and
> noticed similar performance in most cases. For HTTP/1.1, there was some
> slowdown in cases where thousands of queries with few results were issued
> per second as lots of HTTP connections needed to be opened, but I feel like
> this isn't a practical use case. My recommendation for now is to go with
> HTTP/1.1 as it has all the features we need and it has mostly been
> implemented already on the server side.
>
> To ease the transition, I'm suggesting that we maintain WebSockets for the
> foreseeable future in the 3.x line while the 4.x line is moved to use HTTP
> exclusively. This will also give more time for us to build out support for
> transactions over HTTP which is the only missing feature that is supported
> when using WebSockets.
>
> I'd like to hear any thoughts regarding this.
>
> Thanks,
> Ken
>


-- 

*Lyndon Bauto*
*Senior Software Engineer*
*Aerospike, Inc.*
www.aerospike.com
lba...@aerospike.com

Reply via email to