I’ve been running a test against a web-served memory-cached database. It’s supposed to provide personalised tracking information on the banks website.
Bizarrely, given our usual results, it’s amazingly fast: 0.007s per transaction with 50 users and a “breakpoint” of around 1800 transactions per second. 500 per second was the maximised NFR – it was 470 really but I like round numbers.
The reason I put breakpoint in speech-marks by, the way, is quite simple – nothings broken, no NFR has been breached, the server is up and responsive. But the throughput has bottlenecked and adding more load isn’t having any effect. Clearly there’s a resource issue somewhere but no-one’s looking for it. We’re ~4 times our maximum load and still well below the transaction time requirements.
Now I’m fine with that but it’s left me at a bit of a loose end, this project was meant to run until the end of the week. It’s barely lunchtime on thursday as I’m typing this. So, I was thinking of something else I could do until the end of the week before I scream for more work (hey, it’s Thursday, nothing too taxing to lead up to the weekend).
And so, I was wondering:
It occurs to me that in order to tell the difference the payload of the form would need to be extra-ordinarily high, think 100s of elements rather than the usual 5-10. Also that I’ll need to hit the server quite hard to make it struggle a bit. I’d expect at low-load-levels there will be virtually no difference. But at higher load, there might be a clear victor…
I’m betting on PHP as it most cleanly translates directly into the database insertion. If I can find a c-script method, I’d go for that but I’m not sure such a thing exists yet.
Anyway, I’m gonna see if I can find out. Place your bets
Also, it might be interesting to see which is quickest to retrieve that data once inserted. At the very least, I’ll refresh my scripting skills in a few different languages.