Software

Hazelcast IMDG – open-source distributed in-memory data store and computation platform

Hazelcast IMDG (Hazelcast) is an open-source distributed in-memory data store and computation platform supporting a wide variety of data structures such as Map, Set, List, MultiMap, RingBuffer, and HyperLogLog. Hazelcast is designed to be lightweight and easy to use.

Hazelcast provides a wide variety of distributed data structures and concurrency primitives, including:

  • a distributed, partitioned and queryable in-memory key-value store implementation, called IMap.
  • additional data structures and simple messaging constructs such as Set, MultiMap, Queue, Topic.
  • cluster-wide unique ID generator, called FlakeIdGenerator.
  • a distributed, CRDT based counter, called PNCounter.
  • a cardinality estimator based on HyperLogLog.

Additionally, Hazelcast includes a production-ready Raft implementation which allows implementation of linearizable constructs such as:

  • a distributed and reentrant lock implementation, called FencedLock
    primitives for distributed computing such as AtomicLong, AtomicReference and CountDownLatch.

Hazelcast data structures are in-memory, highly optimized and offer very low latencies. For a single get or put operation on an IMap, you can typically expect a round-trip-time of under 100 microseconds.

Hazelcast automatically replicates data across the cluster and you are able to seamlessly tolerate failures and add additional capacity to the cluster when needed.

It is implemented in Java language and has clients for Java, C++, .NET, REST, Python, Go and Node.js. Hazelcast IMDG also speaks Memcached and REST protocols. It plugs into Hibernate and can easily be used with any existing database system.

Hazelcast also has first-class support for running on different cloud providers such as AWS, GCP and Azure as well as on Kubernetes.

You can extend Hazelcast IMDG’s functionality by using its plugins.

Key Features

  • Stores everything in-memory (RAM). It is designed to perform fast reads and updates.
  • Peer-to-peer; there is no single point of failure in a Hazelcast IMDG cluster; each member in the cluster is configured to be functionally the same. They all store equal amounts of data and do equal amounts of processing. Embed Hazelcast IMDG in your existing application or use it in client and server mode where your application is a client to Hazelcast members.
  • When the size of your memory and compute requirements increase, new members can be dynamically joined to the Hazelcast IMDG cluster to scale elastically.
  • Data is resilient to member failure. Data backups are distributed across the cluster. This is a big benefit when a member in the cluster crashes as data is not lost. Hazelcast keeps the backup of each data entry on multiple members. On a member failure, the data is restored from the backup and the cluster continues to operate without downtime.
  • Members are always aware of each other unlike in traditional key-value caching solutions.
  • Build your own custom-distributed data structures using the Service Programming Interface (SPI) if you are not happy with the data structures provided.
  • Provides out-of-the-box distributed data structures.

Website: hazelcast.org
Support: Documentation, GitHub Code Repository
Developer: Hazelcast, Inc.
License: Apache License 2.0

Hazelcast is written in Java. Learn Java with our recommended free books and free tutorials.


Related Software

Caching Systems
RedisPersistent key-value database with network interface
MemcachedHigh-performance distributed memory object caching system
HazelcastDistributed in-memory data store and computation platform
Apache IgniteDistributed database, caching and processing platform
EhcacheStandards based pure Java in-process cache
Java Caching SystemDistributed caching system written in Java
CouchbaseDistributed key-value database management system
yrmcdsLRU cache library and key-value server
CachelotMemory object caching system with master/slave replication

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.

This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more.

Know a useful open source Linux program that we haven’t covered yet? Let us know by completing this form.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments