I'm working on my first XData project. Initial tests were very successful.
XData seems to fit our requirements.
Now I'm encountering a scaling issue.
The response time increases with each concurrent request. A single request takes about 3 seconds. Three concurrent requests take about 9 seconds. It seems as if the requests are being processed sequentially rather than simultaneously. CPU utilization is only around 30% at most.
I ran a test with a load balancer that distributes the requests across multiple service instances. The response time met my expectations.
Are there special parameters for using multiple CPU cores by a service instance? My customer would like to avoid using multiple service instances if possible.
The 3-second request is just a dummy test that calculates prime numbers to simulates CPU load.
The real project (developed as a desktop application in the last 25 years) involves extensive financial planning, the calculation of which can take approximately 3 seconds on a standard PC.
We want to provide the calculation core of this financial planning as a service and build the GUI as a web interface.
Oracle with ODAC is used as the database. The current IDE is Delphi 10.4.2 (32-bit).
To analyze the scaling problem, we reduced "the bussiness" to the prime number function.
That is strange. Have you checked if this is a CPU load issue or serialization issue?
I mean, are the requests being effectively processed simultaneously, or sequentially? If that is a simple project I can compile and run at my side, maybe you can share the project so the issue is reproducible here?
I'll set up a small example project using the prime number function in the next few days. I'll send it to you.
Can you give me a personal email address?
For now, the question has been resolved. My measurement method was wrong. I was simply using two browser instances and the Swagger UI. The Chrome process sent the requests one after the other. My mistake. ;-) Thanks for the help.
By the way, XData has been working very well for me so far. Cool product.