Hazelcast IMDG 3.12 BETA is Released David Brimley February 26, 2019 Share Subscribe We’re all really excited here at Hazelcast as we announce what we believe is the largest release ever and you can take a look for yourselves with the release of 3.12-BETA-1. Some of the features we’re bringing to 3.12 open up new use cases and opportunities for developers and architects, we’ve just made the best IMDG even better. Lets take a tour now. 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 they 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 What's New In Hazelcast 3.12 Live Webinar Please join us in hearing from David Brimley, VP of Hazelcast® Product Management, as he takes us through the many improvements of the biggest release we’ve ever made to the Open Source community. Sign Up Now 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 popular NoSQL Document Stores. JSON support will be available for all Hazelcast Clients including Java, C#, C++, Python, NodeJS & Go. Advanced Network Configuration Prior to 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 labelling 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 can be upgraded with 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. Disclaimer and Closing Words Remember this is a BETA release, so is not currently suitable for release in Production. We anticipate GA will be around the end of March or early April. In addition to the above-mentioned functionalities, countless hours have gone into small improvements, optimisations and community issues, so please download Hazelcast IMDG 3.12 BETA-1 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.