As some of you may know Hazelcast is an open source distributed cache and distributed in-memory data structure storage for Java. It is developed by a small team in Turkey. It is kind of inspirational since it is a successful, mature and robust product and used by many large companies worldwide as a distributed caching solution. For those interested, source code is here.
Today, I asked a few questions that you might find interesting to Fuad Malikov, co-founder and developer of Hazelcast. Hope you enjoy.
**When did Hazelcast project begin, when was the first code written? **
Talip Ozturk started the project in the Spring of 2008 and the initial version had “distributed Queue” implementation. Later we implemented distributed Set, List, Map, Executor Service and Native Client etc.
Is it derived from an existing project?
****No actually. There was no P2P distributed data structures project.The idea was to create a simple library with single jar, no dependency that can distribute data and dynamically scale to 100s of JVM’s.
Who is the known biggest (in terms of server count) user of Hazelcast?
So far the biggest single cluster in production we have seen is 135 nodes at crashplan.com. Also Mozilla is expected to reach 150 nodes but I don’t know their current status. Right know we are talking with AT&T. We are talking about really big clusters here.
**How many developers are there in Hazelcast team? **
Currently we have 4 full time developers and 1 part-time.
What did you get from open source contributors?
****From the very beginning we have many contributions. People really help with issues and often with fixes. Hibernate and spring modules, as well as implementations of distributed CountDownLatch and Semaphore are completely contributed by the community. We are very happy to have all these contributions and looking forward for more from enthusiasts.
**How good is Hazelcast as a key-value store? **
Well I am biased and the answer is obvious I guess:) We value others to speak about Hazelcast rather than us. Hazelcast is partitioned and scales linearly. You can add nodes on the fly and increase the capacity.
Did you conduct any benchmarks e.g. Memcached vs Hazelcast?
****We don’t and expect users, independent ones to do the benchmarks and share them.
I remember once someone tweeted the following: “Hazelcast, Memcached with brains”. Hazelcast gives you more than Memcached. We have backups, fail-over, add/remove nodes dynamically and etc. With these extras we never claim to be faster than Memcached. It is very simple and very good at what it does. Consider Hazelcast if you want more. Needless to say, Hazelcast supports the memcache protocol and one can easily switch from Memcached to Hazelcast.
**Are you planning to offer persistent (non-volatile) data structure solutions? **
With the distributed map it is easy to plug a MapStore implementation and have your entries persisted. Queue’s are also backed by Maps, so they can be persisted as well. But still we are not true non-volatile solution and I think it will remain as is in the short term as well.
Are you looking for developers?
We are looking for highly motivated people who believes in Hazelcast and is willing to change the way distributed applications are built. The ones who have contributed to Hazelcast are always preferred.
What are the opportunities at Hazelcast Software?
To work with most challenging problems of distributed programming. Building a software that is used by thousands including Apple Inc, Atlassian, Morgan Stanley, AT&T, Ericsson, Mozilla and many others.
Thank you for your participation. :)