Monday, 15 August 2011

Hazelcast, Distributed Data Grid

Being on the threshold of high computing decade, there is a growing demand for ultra fast computing and data access. Until recently it has been quite a tough task to accomplish distributed messaging and data processing solutions, particularly requiring C/C++ interactions over JNI for java applications.

Luckily java platform has been fortified for parallel computing after jdk 1.5 platform release which includes a new concurrency package and improved util.collections. Probably these new features and technology advancements, multi core processors, high speed networks, like InfiniBand, made possible developing java-native parallel computing and data grid solutions.

Hazelcast is one of the data grid innovations promoting itself as “open source clustering and highly scalable data distribution platform for Java” amongst these latest java platform enhancements.

Using Hazelcast is quite easy as it’s a single deployable jar and does not include any external dependency. It scales linearly as the number of nodes increases on the grid. Hazelcast can fit the following scenarios perfectly.
  • Share data/state among many servers (e.g. web session sharing)
  • Cache your data (distributed cache)
  • Cluster your application
  • Provide secure communication among servers
  • Partition your in-memory data
  • Distribute workload onto many servers
  • Take advantage of parallel processing
  • Provide fail-safe data management

There is a demo application presenting Hazelcast’s scalability on a 50-node grid processing Mozilla crash reports.