High-Density Memory Store
Feature of Enterprise HD IMDG
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 hops
High-Density Memory Store
High-Density (HD) Memory Store is a feature of Hazelcast Enterprise HD that allows applications to near cache 100s of GBs of data from off-heap memory without garbage collection overhead and up to nanosecond access times.
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 without 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 will 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 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.
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. Hazelcast 3.6 adds high-density caching capability for Map deployments along with JCache now. Indeed entire data sets can now be held in cache for extreme in-memory performance. And 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.