-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Blocking graphql api using quarkus only executes 2 requests concurrently. #1868
Comments
Thanks for this ! @jmartisk @mskacelik can you have a look ? |
I'll try to have a look after sorting my post-vacation backlog |
I'm trying this and I can confirm that I can only execute 2 requests, but only in Dev mode. Interestingly, in dev mode the processing seems to run on |
Yes, the said behavior was observed in dev mode. Also, when running in prod mode it only executes 8 requests parallelly. |
Hmm. I see 12 in prod mode. But right now I have no idea where that number is coming from and why it isn't using more threads |
Greetings @phillip-kruger and @jmartisk , I would like to inquire about any recent developments regarding this issue. It has come to our attention that this matter is impeding our progress, as we have implemented multiple GraphQL APIs with a blocking paradigm due to its current underperformance. I am interested in ascertaining whether there exist any potential workarounds for this issue. Furthermore, I would appreciate information on whether there are any forthcoming plans to address and resolve this matter in the near future. |
I tried investigating it but don't really know. |
I'm on PTO so don't expect any feedback from me any time soon 🙂 |
Oh, right, everybody is out :) enjoy |
🙏 |
How can I reproduce the behavior mentioned here? |
Please clone the https://github.com/Hardik-Parikh/neo4j-async/tree/main and run either in dev mode or prod mode. |
I tried the sample (in prod mode) with a different load tool and Quarkus behaves as expected - i.e. the worker pool expands to create new threads that are used to handle the incoming requests. |
You get more than 12 threads, meaning more than 12 long-running GraphQL requests being handled concurrently? |
Is there any findings on this we also saw blocking behaviour in our app due to which We have to move from GraphQL to Rest for a couple of the calls. Please let us know. |
Hello all,
I have created a graphql api that just executes a cypher query in neo4j(using quarkus-neo4j extension) in a blocking way. But upon testing the graphql API with jmeter I found that throughput was equivalent to just 4 req/min.
All requests are executed in separate worker thread. But instead of utilizing 20 threads available from the worker thread pool it only uses 2 threads. No other requests were being executed by the quarkus application when tested.
Below is the screenshot of the jmeter test:
It was also observed that after some time the server returned 5xx error:
You can find the source code of the repository here: https://github.com/Hardik-Parikh/neo4j-async/tree/main
Jmeter test plan: Fruits.zip
Zulip chat link: https://quarkusio.zulipchat.com/#narrow/stream/187030-users/topic/Blocking.20graphql.20only.20executes.202.20requests.20concurrently
The text was updated successfully, but these errors were encountered: