Hazelcast IMDG

High-Density Memory Store

Feature of IMDG Enterprise HD

At A Glance

High-Density Memory Store adds the ability for Hazelcast® Enterprise HD IMDG to store very large amounts of data in Hazelcast members (servers) and in the Hazelcast Client (near cache) limited only by available RAM for extreme scale-up.

  • High-Density Memory Store is a feature of Hazelcast Enterprise HD
  • Very large amounts of data can be stored in Hazelcast limited only by available RAM
  • Approx. 96% reduction in CPUs and Hazelcast nodes
  • Garbage collection pauses are eliminated, providing predictable performance
  • Works with Maps and JCache
  • When used with JCache, it provides High-Density Caching, for caching entire datasets with very simple and standard APIs
  • When used with Map deployments, it provides High-Density Caching for caching entire datasets with richer, less standardized APIs
  • When combined with Near Cache, it provides applications with nanosecond access to very large amounts of data––all in-process with no network overheads

High-Density Memory Store

High-Density (HD) Memory Store is a Hazelcast Enterprise HD feature that allows applications to store 100s of GBs of data in the memory of Hazelcast servers without garbage collection overhead, hence, operating within consistent and predictable latencies.

Hazelcast is typically deployed in a scale-out paradigm on large clusters of commodity hardware. This allows for elastic scalability for applications requiring dynamic cluster sizing. This deployment pattern can use dozens or even low hundreds of nodes with Java Virtual Machines (JVMs).

Modern hardware has much more available memory. If you want to make use of that memory and scale up by specifying larger heap sizes, garbage collection becomes an increasing problem. Garbage collection, the automatic process managing the program’s runtime memory, often forces you into configurations where multiple JVMs with small heaps (in sizes of 2-4GB
per node) are run on a single physical hardware device to avoid garbage collection pauses. This results in oversized clusters to hold the data and maintain performance level requirements. Hazelcast High-Density Memory Store solves garbage collection limitations so that applications can exploit hardware memory more efficiently, eliminating the need of oversized clusters.

Scale Up then Scale Out

For large scale enterprise use cases, it’s often preferable to first scale-up to fully utilize the resources of a machine, then scale-out for redundancy and greater capacity. Scale-up then scale-out. Using a smaller number of large computers creates a more stable and predictable cluster. Even an average sized server can have 256GB of RAM, thus requiring new ways to access this memory. Enterprise shared data services or enterprise caching-as-a-service typically need large amounts of data and are particularly suited to scale-up. These types of applications provide large-scale shared memory infrastructure to multiple applications across your organization.

High-Density Memory Store Architecture

In order to scale-up using Hazelcast Enterprise HD, Hazelcast offers High-Density Memory Store– a way for Hazelcast to utilize all available RAM on a machine from a single Java process without incurring garbage collection overhead.

Architecturally, Hazelcast has an on-heap memory store and a separate High-Density Memory Store. The High-Density Memory Store has multiple implementations: an on-heap SLAB Allocator which uses heap memory and a native memory implementation which allocates memory using sun.misc.Unsafe. These implementations have different ergonomics but share the ability to hold data in the JVM process while avoiding garbage collection pauses.

The High-Density Memory Store can be used in Hazelcast members (server nodes). Here it enables each member to hold large amounts of data. It can also be used in the Hazelcast Java Client to provide very large near caches (100s of GBs). The client runs inside your application server, so the near cache can be accessed with an in-process call avoiding the network entirely. Data access speeds happen in nanoseconds rather than milliseconds.

High-Density Memory Store Architecture Diagram

High-Density Memory Store may be configured for use with Map, which provides a highly capable and feature rich distributed Map, and JCache.

See the documentation for further information.

High-Density Caching

We call the combination of High-Density Memory Store with MAP or JCache, “high-density caching”. JCache is the Java standard for accessing frequently used objects from RAM, thus providing a standard and easy-to-use way to deliver extreme application performance. Adding High-Density Memory Store allows very large caches to be created. Since version 3.6, Hazelcast now has high-density caching capability for Map deployments along with JCach. The entire data sets can now be held in cache for extreme in-memory performance, all with the simplicity of JCache or Map. See Hazelcast ICache to learn more about our JCache implementation.

Availability and Pricing

High-Density Memory Store is available now as a feature of Hazelcast Enterprise HD.