Sapo Broker just got an huge performance boost.
There are two reasons for it. The first was the change from H2 to Berkeley DB. H2 is a very nice database but not adequate to a high performance message store. I chose H2 initially because of the ease of use and familiarity with SQL, but it just doesn't hold up against our usage patterns. I picked BDB only looking for increase stability under load, which I got, the boost in performance was a surprise. Tests in various scenarios show that BDB is rock solid and an increase in throughput that ranges from 100% to 300%!
The other source of performance improvement has to do with XML parsing. We now use Woodstox. I've heard of Woodstox, but I didn't imagine that the performance difference would be so significant compared with SJSXP - that comes bundled with the JVM. Zero code changes and an extra ".jar" file, that was the cost of having nearly twice as much throughput... I couldn't believe my eyes when I saw it.
Unexpected performance improvements.... I like them!