background preloader

Hazelcast

Facebook Twitter

Getting Started with Hazelcast. In July I wrote a blog introducing erlang to Java developers, highlighting some of the similarities and differences between the two languages. The erlang virtual machine has a number of impressive, built-in features, one of which is that they are location independent and can talk to each other. This means that that data can be synchronised between VMs by writing very few lines of code. This is really good news if you have a networked cluster of servers all doing the same thing. You could argue that there's something lacking in the JVM if it can't even perform the most basic interprocess communication; however, Java takes opposite view, it has a basic VM and then layers different services on top as and when required. Whether this is right is a matter of opinion and I'll leave it as a subject for a future blog, because it seems that the Hazelcast Guys have solved the problem of JVM talking to each other; which is the point of this blog.

So, what is Hazelcast? So, what does that really mean? Hazelcast 2.0: Big Data In-Memory. As it is said in the recent article "Google: Taming the Long Latency Tail - When More Machines Equals Worse Results" , latency variability has greater impact in larger scale clusters where a typical request is composed of multiple distributed/parallel requests. The overall response time dramatically decreases if latency of each request is not consistent and low. In dynamically scalable partitioned storage systems, whether it is a NoSQL database, filesystem or in-memory data grid, changes in the cluster (adding or removing a node) can lead to big data moves in the network to re-balance the cluster. Re-balancing will be needed for both primary and backup data on those nodes. If a node crashes for example, dead node’s data has to be re-owned (become primary) by other node(s) and also its backup has to be taken immediately to be fail-safe again. Shuffling MBs of data around has a negative effect in the cluster as it consumes your valuable resources such as network, CPU and RAM.

Hazelcast - Project Hosting on Google Code. Issue 459 - hazelcast - MultiMap does not use equals() for value comparisons - Project Hosting on Google Code. IMap.entrySet predicate retrieves all values in the map - Hazelcast | Google Groupes. Issue 711 - hazelcast - IMap.entrySet(predicate) retrieves all values in the map - In-Memory Data Grid for Java.