A few weeks ago, I wrote a lengthy post on the benchmark results of Activiti called ‘The Activiti Performance Showdown‘. In that post, I shouted out to the community if someone could help me with testing on a ‘real’ Oracle database system, as I had only an Oracle XE installation available.
And so it happened. I was contacted by Jure Grom, who had an Oracle installation at his disposition (and managed by a real DBA). He ran the benchmark in the same way as I did in my original article. Of course, the machines are different, so comparing them is hard. But you can definitely learn something from the patterns and the graphs which were produced.
Interestingly, the benchmark was done on two machines: one dedicated DB machine (2 six-core AMD Opteron with 32GB RAM) and one for running the processes (a quad core Intel Xeon 3.07Ghz with 4GB RAM). In my orginal benchmark, there was no network latency as both ran on the same machine. Not keeping you in suspense anymore, here are the numbers:
Like I said before, it’s hard to compare with the numbers of the original article due to different machines and the network latency. The single threaded tests are slower than on my setup, but I think that is due to the network here. Which proves that even with network latency, Activiti performes very, very good!
But if you compare the numbers with my Oracle results, you can see that my suspicion was right about the crippled Oracle XE. Once you go up to a ‘realistic’ number of threads (around 8, it seems here), the results of the real Oracle installation start to blow away the other ones. The throughput is much, much higher, while still keeping the average timings very acceptable.
Jure also extended the tests to run up to 20 threads (my tests only went to 10) and the numbers prove that a real Oracle installation nicely scales when hit with many threads at the same time. Take for example a look at the numbers for the last result, 20 threads:
|PROCESS||NR OF EXECUTIONS||TOTAL TIME (ms)||AVERAGE (ms)||THROUGHPUT/SEC||THROUGHPUT/HOUR|
The throughput numbers are better than any of the MYSQL results at this high concurrency. Of course, I know, you can’t compare the machines at all. But the main conclusion of the original article remains: Activiti performs and scales very good, and is extremely capable of coping with high-concurrency scenarios.
Many, many thanks to Jure Grom for his efforts and time!