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?

質問済み 1年前77ビュー
回答なし

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ