Open Source Projects:
Pricing
Chat
Contact
Back to top

Hazelcast IMDG 3.12 is Released

April 09, 2019
Hazelcast IMDG 3.12 is Released

We are pleased to announce the production-ready release of Hazelcast IMDG 3.12.

We’ve crushed a lot of bugs, provided general performance improvements, plus we’ve added some great new features (more of which below).

The release by numbers:

  • 676 Issues
  • 784 Pull Requests
  • 47 Committers
  • 168 Days Elapsed

CP Subsystem

The new CP Subsystem provides implementations of Hazelcast’s existing concurrency APIs (locks, atomics, semaphores, latches) using a system based on the Raft Consensus Algorithm. Correct operation of concurrent data structures is a must, especially during network failures. This new feature provides a level of consistency not available in other IMDG and many NoSQL products. As the name of the module implies, these implementations are CP with respect to the CAP principle and live alongside AP data structures in the same Hazelcast IMDG cluster. They maintain linearizability in all cases, including client and server failures, network partitions, and prevent split-brain situations. This also includes reiterated and clarified distributed execution and failure semantics of APIs, as well as multiple improvements on the API level. Last, we introduce a new API, FencedLock, that extends the semantics of java.util.concurrent.locks.Lock to cover various failures models faced in distributed environments.

Hazelcast is the first and only IMDG that offers a linearizable and distributed implementation of the Java concurrency primitives backed by the Raft consensus algorithm.

You can find a more in-depth blog post on this new feature by one of the engineers that wrote it, here

JSON Support

Hazelcast now recognises JSON data structures when saved as a value to an IMap using the new HazelcastJsonValue type. Once saved, all standard operations can be carried out, such as Predicate Queries and Aggregations. Hazelcast support for in-memory JSON storage provides a 400% increase in throughput when compared to other NoSQL Document Stores. JSON support will be available for all Hazelcast Clients including Java, C#, C++, Python, NodeJS & Go.

Advanced Network Configuration

Before IMDG 3.12, all network communications to a cluster member were handled via the same listener configuration. Now, unique network configurations can be applied to client-member, member-member, wan-wan, rest & memcache endpoints. Practically, this now means that different public addresses and ports can be used, as well as different TLS certificates and TCP/IP configurations per service.

YAML Configuration Support

Cluster and Client configuration can now be expressed in YAML, as well as existing XML, Spring Beans or API Config.

First-Class Support for Kubernetes

A first-class experience for users of Hazelcast in Kubernetes is one of the primary goals of this release. We’ve now made it easier to connect Hazelcast clients that sit outside the K8s network. Previously, clients could only connect via a single member, which added an extra hop and additional latency. Now smart clients outside of the K8s network can connect directly to all members of the Hazelcast cluster, and therefore perform 1 hop operations on data. There are new improvements around the placement of backups within the Hazelcast cluster, assuming correct labeling of the K8s cluster members, Hazelcast can now place backups on different physical hardware. Thus ensuring no data loss when a physical machine in the K8s cluster crashes. Finally, extensive verification work has been carried out to ensure that Hazelcast Enterprise features work smoothly within K8s.

Blue/Green Deployments (Enterprise Only)

Blue/Green Deployments reduce downtime and risk by running two identical Hazelcast® Enterprise IMDG clusters called Blue and Green. One of the clusters provides production services to clients while the other cluster is upgraded with the new application code. Hazelcast Blue/Green Deployment functionality allows clients to be migrated from one cluster to another without client interaction or cluster downtime. All clients of a cluster may be migrated, or groups of clients can be moved with the use of label filtering and black/white lists.

Automatic Disaster Recovery Fail-over (Enterprise Only)

Automatic disaster recovery fail-over provides clients connected to Hazelcast® Enterprise IMDG clusters with the ability to automatically fail-over to a Disaster Recovery cluster should there be an unplanned outage of the primary production Hazelcast cluster.

Add and Remove WAN Publishers (Enterprise Only)

WAN Publishers can now be added and removed in a running cluster via a new REST API.

WAN Replication Performance Improvements (Enterprise Only)

During lab benchmarks, optimisations to the WAN service now show a 300% increase in throughput and average latencies are reduced by 600%.

Java 8

Java 8 is now the minimum required run-time SDK for Hazelcast.

Cloud Discovery

The AWS discovery plugin has been a part of the main Hazelcast distribution jar for some time now, in this release we now add Kubernetes and Google Cloud Platform (GCP). Previously, Kubernetes and GCP discovery were available as separate downloadable plugins.

Ingestion Pipeline Convenience

A new convenience API for rapid populations of the cluster is now available. The Pipelining API manages multiple async ingests.

Client Labelling and Naming Improvements

Clients can now pass labels and instance names to the cluster.

Closing Words

Please download Hazelcast IMDG 3.12 and try it out. We want to hear what you think, so please stop by our Gitter channel and Google Group. If you would like to introduce some changes or contribute, please take a look at our or GitHub repository.

About the Author

About the Author

David Brimley

David Brimley

VP Product Management

David has travelled the world, helping people make sense of in-memory data grids. With 30 years in the IT industry, he began his career as a Cobol programmer before moving into investment banking IT as a Java developer and architect. During this time, David developed a deep interest in distributed systems research, focusing on consensus and reliability. He has deep expertise in server-side Java, developing highly concurrent, high-throughput systems. Throughout his career, he has programmed and architected business-critical trading systems using technologies such as Oracle Coherence, Pivotal Gemfire and Hazelcast. In addition to being a Hazelcast blog contributor, David provides IMDG technology insight through his own blog at http://davebrimley.com.

Follow me on

Latest Blogs

In-Memory Data Grids Popularity Trend Continues Upward

In-Memory Data Grids Popularity Trend Continues Upward

Hazelcast IMDG 3.12 BETA is Released

Hazelcast IMDG 3.12 BETA is Released

Hazelcast Management Center 3.10

View all blogs by the author

Free Hazelcast Online Training Center

Whether you're interested in learning the basics of in-memory systems, or you're looking for advanced, real-world production examples and best practices, we've got you covered.