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.
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.
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.
Hazelcast uses a thread pool model for each Executor. When a task is received by Executor E, it is placed on E's work queue until one of the threads becomes free. Although they all share the same underlying hardware, Executors are fully isolated from one another.
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.
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.
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. ---
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.