Hazelcast

Hazelcast IMDG (In Memory Data Grid) is a Java-based NoSQL open-source distributed in-memory data store and computation platform. It spreads and replicates data across a cluster of machines, therefore ensuring high availability, fault-tolerance and painless horizontal scalability. Hazelcast provides APIs for many of the most commonly used programming languages, including Java, C++, Python, Go and others. It can also be deployed on several different cloud environments, thanks to its multiple discovery plugins. Hazelcast's most common use cases include database caching, in-memory data computing and in-memory messaging.

History

Hazelcast is both the name of the product and the company that created it. The start-up was founded in 2008 by Talip Ozturk and Fuad Malikov. The first open-source implementation of Hazelcast was released at the beginning of 2009. Several updated versions have been made public since then, the latest one dating from February 4, 2020.

Query Interface

Custom API

Hazelcast currently provides client implementations for the following programming languages: Java, .NET, C++, Node.js, Python, Go and Scala. Most of those APIs were implemented using the Hazelcast's Open Binary Protocol, which was released with Hazelcast version 3.6 in 2016.

Storage Model

Custom

All data structures are kept on the heap, in serialized form. In the Entreprise version of Hazelcast, the High-Density Memory Store solves garbage collection limitations and allows efficient access of hardware memory. ---

Storage Architecture

In-Memory

Hazelcast is a fully in-memory distributed data store. Data is kept on the heap, in a serialized form (using the java.io.Serializable interface). Hazelcast was not initially build to persist. However, the current Entreprise version of the product implements the "Hot Restart Persistence" feature, which provides faster restarts by storing cluster member states on disk. Hazelcast also supports integration with new persistent memory technologies such as Intel Optane.

Data Model

Key/Value

Hazelcast's main data storage model is a partitioned and queryable in-memory key-value store. However, Hazelcast also supports a variety of additional distributed data structures derived from the Java programming language, such as Queue, Set, MultiMap, Topic and others.

System Architecture

Shared-Nothing

Hazelcast can be deployed on a single machine or a clusters, following a peer-to-peer model. There is no single point of failure. Every member of the cluster stores equal amount of data ( a partition) and performs equal amount of processing/computation. Partitions are also replicated across cluster members and follow a primary-copy model.

Hazelcast Logo
Website

https://hazelcast.org/

Source Code

https://github.com/hazelcast/hazelcast/

Developer

Hazelcast

Country of Origin

US

Project Type

Commercial, Open Source

Licenses

Apache v2

Wikipedia

https://en.wikipedia.org/wiki/Hazelcast