Open-source in-memory data management company Hazelcast announced the version 3.10 release of Hazelcast IMDG as a production-ready build today, bringing a conflict-free replicated data type (CRDT) for high-performance counting operations, a Flake ID generator and several enhancements for split-brain protection and functionality, all based on open-source community input.
Hazelcast IMDG 3.10 is the first iteration of the utility to include a CRDT implementation, “a specially designed data structure used to achieve strong eventual consistency,” the company wrote in its announcement. Hazelcast’s CRDT PN-Counter localizes operations to each user and maintains consistency of increment, decrement and query counting operations between users, which the company says the software can achieve with little latency and high-performance regardless of load. Hazelcast uses counting likes, page views or connected users as typical examples of CRDT operations.
“Now that we have our first CRDT, additional CRDTs will be easier to implement so we are eager to hear what you think and which CRDTs you would like to see next,” Matko Medenjak, software engineer at Hazelcast, wrote in a release blog.
Also introduced in the new release is the Hazelcast FlakeIDGenerator, providing higher throughput than the existing Hazelcast IdGenerator for generating cluster-wide unique identifiers.
“In single-node systems, unique ID generation is a relatively straightforward process,” the company wrote in the announcement. “However, problems can occur in distributed implementations, for example preserving uniqueness, eliminating contention, and maintaining safety during failures. The Hazelcast FlakeIDGenerator replaces the existing ID Generator. It generates IDs without coordination between Hazelcast members, meaning it can generate unique IDs even during split-brain and network partitioning failures.”
The final major addition to Hazelcast IMDG in version 3.10 are improvements to split-brain protection and functions. Where version 3.9 only supported merging after a network partition occurred in Map, ICache and ReplicatedMap, this function has been expanded with split-brain merging policies for ISet, IList, IQueue, Ringbuffer, MultiMap, IAtomicLong, IAtomicReference, IScheduledExecutorService and CardinalityEstimator.
The company says that it has improved the flexibility of split-brain protection in Hazelcast 3.10, in which users can now set severity levels to split-brain protection. This protection will now take into account member heartbeats, membership changes, lost ICMP pings and successful ping reattempts, whereas in version 3.9, only the number of currently-observed members was considered.
Medenjak says that many small improvements and optimizations have also been made version 3.10, alongside JCache 1.1 compliance and an interface for protecting sensitive information in XML configuration files.
“A major reason why we are adopted by open source projects and developers is because we listen to community feedback and act upon it,” Hazelcast CEO Greg Luck said. “This new release is a testament to the strength of our community following and the quality advice we receive from it. This release brings the fastest split-brain detection, protection against mutation across almost all data structures during split brain and comprehensive healing across almost all data structures. To cap all that off, we have added some conflict-free data structures such as Flake IDs for ID generation, and CRDT Counters, as a conflict free alternative to AtomicLong.”