Neptune openCypher queries returning on wrong connection at high concurrency

0

I've spent the last few days attempting to debug a pretty surprising issue with our use of Neptune in our API servers. The symptom was, if we tried to execute the same query on two connections, but with different parameters, sometimes the connections would get the responses meant for the other connection.

We discovered this using a bolt client, with connection pooling. I stripped back our connection pooling, then worked all the way back to manually creating two separate connections and executing our queries. I set it up so each connection would only execute the same query over and over. Around 15% of the time, we still see this behavior.

Finally, to isolate against any errors in the bolt client, I implemented the same behavior using the HTTPS endpoint instead of bolt and I am still able to produce this behavior. It's hard to fathom this could be true, but I'm struggling to see how this isn't an issue with Neptune itself.

With bolt, I was doing something like:

reset
begin
run <query> <parameters>
pull
commit

With HTTP, I'm just simply doing:

POST https://host:port/openCypher
<http stuff>

query=<query>
parameters=<parameters>

With both of these implementations, with a concurrency of 2, I start seeing corrupt responses in as few as 10 requests. The query itself is small and only returns a few records.

What could I be doing wrong?

asked a year ago73 views
No Answers

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions