This post originated from an RSS feed registered with Java Buzz
by Talip Ozturk.
Original Post: Hazelcast 1.7.1: Fast, flexible and smooth
Feed Title: Shared Memory
Feed URL: http://www.jroller.com/talipozturk/feed/entries/rss
Feed Description: about java, jcache, jini, javaspaces, distributed data structures and a little bit of me and life.
1.7.1 is probably the most significant refactoring ever for the following reasons:
Performance: You will see around 30-70% performance increase because
Reads for locally owned entries are not going through ServiceThread.
Data object is much simpler requiring less CPU cycles to read/write and serialize.
Data is assumed to be immutable so no need to copy when reading.
Multiple Hazelcast members on the same JVM: Yes you can start 5 totally distinct cluster members on the same JVM. This is my favorite because this enables us to write cluster unit tests on a single JVM. If we find a cluster bug, then we write a test case for it, fix the bug. After the fix, the test case becomes a part of Hazelcast test suite. This is also lowering our development time because we have a programmable test case that we can run easily until it passes; no more having to run things on multiple JVMs. I highly recommend you to learn and write cluster-wide test cases for Hazelcast, if you really want to help us. Check out this quick how-to for more info.
Smoother ownership migration: If you have a member with 2 million map entries on it, when a second member joins, ownership of about a million entries will migrate to the second member and during migration, many of the put/get calls will have to redo for correctness. If we migrate everything in once then it can take a long time and all the calls happening during migration will have to redo/wait. With the new 1.7.1 though, migration is an on-going and step by step (block by block) operation running in the background all the time. It is even not much related to joins or disconnects. So when the new members join you won't notice any delay/pause, calls are much more responsive. You will love that.
Memory consumption: Hazelcast uses less memory to hold the data. For distributed queue each item takes about entry.serialization.size + 40 bytes and each distributed map entry takes about key.serialization.size + value.serialization.size + 200 bytes.
Many bug fix and enhancements.
You should definitely upgrade to 1.7.1. Do not even think about it, just do it :)