November 01, 2002

The Great "PetStore" Debate

In case you just got back from a trip to Mars and missed the start of all the fun, there is a big bun-fight going on at the moment over a new "PetStore" demo published by The Middleware Company:
The Petstore Revisited: J2EE vs .NET Application Server Performance Benchmark

Naturally enough, the J2EE supporters are up in arms about this and crying foul because the figures show the .NET version wins on performance, culminating in the headline "Pet vs Pet: .NET 'trounces' Java" on TheRegister. Some sample comments from TheServerSide and Rickard Oberg provide a good flavor of these objections, most of them perfectly valid points I have to say - the results of comparing the performance of a "structural demo app" with a "performance demo app" should not take too much guessing!

Leaving aside the religious fervor of the eternal galactic struggle of .NET vs. J2EE, it seems to me that the really fundamental point here boils down to the different application architectures used in the two examples and the performance characteristics of each.
So the main conclusion from all this then is that application architecture can have a massive impact on performance? Well there's a complete surprise! Not.

Having done this stuff for real when working on a very high volume data feed project for a data warehouse project at Reuters, I can attest to that - I pushed performance through the roof (over 10,000 records per second after vs. under 100 records per second before) just by changes to the application architecture to accommodate proper parallelism and pipelined processing. The fact that the application then showed properties of "acceleration" (where the more work you threw at it, the faster it ran), and horizontal scalability (adding more forked processes to the application increased the workload that could be handled) just went to prove the application architecture was correct.

So, a lesson to enterprise architects everywhere: You can have a major impact on the performance of a business application by careful consideration and design of the application architecture! I guess we all have jobs for a bit longer ;-)

Entry categories: Architecture Dot NET J2EE
Posted by Jorgen Thelin at November 1, 2002 10:00 AM - [PermaLink]