We've been busy with performance at Hazelcast over the last year and a half. There are many different parts of the API to test. We have mostly been using competitors benchmarks to verify our performance increases. This week we wanted to find out how the versions had changed, so we did a performance test on IAtomicLong. It is a small payload, so it is a good way to test the low-level infrastructure.
As you see, starting with 3.0 we have had a nice steady increase in performance, with 3.6 twice as fast as 3.5.
Hazelcast Open Client Protocol and New Clients
The cause of the dramatic 3.6 increase is the change to the new Java client that uses the Hazelcast Open Client Protocol, a high-performance binary protocol. This is an open protocol and anyone can implement it. All of our clients are open source and all have been updated to the new protocol. We have Java, C++, C, and just this week, Python. And of course, we now have Scala too, which is a wrapper for both the Java client and embedded member. In the works being done by the community is NodeJS and Ruby too. The new protocol performance improvements give a boost to all clients.
Hazelcast is Now Faster Than Our Competitors
This post just highlights client performance, but embedded member performance has also shot up and more than doubled from Hazelcast 3.0 to Hazelcast 3.6. It shouldn’t come as a surprise therefore that with us getting so much faster we are now faster than our competitors. You can see competitors benchmarks of 3.6 against current versions of Pivotal Gemfire/Apache Geode, JBoss Data Grid/Infinispan, and GridGain/Apache Ignite. For Oracle Coherence we cannot publish benchmark information–instead, you can download the benchmark and run it yourself.
We just went through the plan for 3.7 with our Performance team. Expect faster transactions, much faster query aggregates, and around a 10% speed boost across the whole system.