Hazelcast v3.12 Release Notes
Release Date: 2019-06-18 // almost 5 years ago-
๐ This document includes the new features, enhancements and fixed issues for Hazelcast IMDG v3.12, Open Source edition release.
๐ฅ Breaking Changes
- ๐ Support for JDK 6 and 7 has been dropped. The minimum Java version that Hazelcast supports now is Java 8. See the Supports JVMs section.
๐ New Features
CP Subsystem: Implementing the Raft consensus algorithm, Hazelcast introduces its CP subsystem which runs within a Hazelcast cluster and offers linearizable implementations of Hazelcast's concurrency APIs. See the CP Subsystem chapter.
Querying JSON Strings: You can now query JSON strings stored inside your Hazelcast clusters. See the Querying JSON Strings section.
Pipelining: Introduced pipelining mechanism using which you can send multiple requests in parallel to Hazelcast members or clients, and read the responses in a single step. See the Pipelining section.
๐ Support for Multiple Endpoints When Configuring Member's Networking: Added the ability to configure the Hazelcast members with separate server sockets for different protocols. See the Advanced Network Configuration section.
๐ง YAML Configuration Support: Added the support for configuring Hazelcast in YAML. See the Configuring Declaratively with YAML section.
โจ Enhancements
Client Instance Names and Labels: You can now retrieve the names of client instances on the member side. Moreover, client labels have been introduced so that you can group your clients and/or perform special operations for specific clients. See the Defining Client Labels section.
Composite Indexes: Introduced the ability to recognize the queries that use all the indexed properties and treat them as a composite, e.g.,
foo = 1 and bar = 2 and foobar = 3
. See the Composite Indexes section.REST Endpoint Groups: With this enhancement you can enable or disable:
REST API completely
Memcache protocol
REST endpoint groups
๐ See the Using the REST Endpoint Groups section.
The following are the other improvements performed to solve the enhancement issues opened by the Hazelcast customers/team.
๐ Improved the YAML configuration so that you can configure multiple WAN member sockets. #14800
๐ Members now fail fast when the
max-idle-seconds
element for the entries in a map is set to 1 second. See the note in the Configuring Map Eviction section for this element. #14697โ Removed group password from the Hazelcast's default XML configuration file. Also improved the non-empty password
INFO
message. It's now only logged if security is disabled, password is not empty and password is not the Hazelcast default one. #14603๐ Improved the code comments for the
HazelcastInstance
interface. #14439๐ Improved the Javadoc of
HazelcastClient
so that the code comments now use "unisocket client" instead of "dumb client". #14213โ Added the ability to perform an LDAP
subtree
search for groups in Hazelcast Management Center's LDAP authenticator. #14118โ Added the ability to set the
EvictionConfig.comparatorClassName()
in the client's declarative configuration, too. #14093Introduced the
/ready
endpoint to the REST API to allow checking a member if it is ready to be used after it joins to the cluster. #14089๐ Improved the syncing of XSD files. #14070
๐ The
IMap.removeAll()
method now supportsPartitionPredicate
. #12238๐ Improved the diagnostics tool so that it automatically creates the configured directory for the diagnostic outputs. #11946
๐ Fixes
๐ Fixed an issue where the state of member list on the clients were broken after a hot restart in the cluster. #14839
๐ Fixed an issue where the outbound pipeline was not waking up properly after merging the write-through changes. #14830
๐ Fixed an issue where the
like
andilike
predicates didn't catch any entity with thetext
field containing the\n
character. #14751๐ Fixed an issue where
NullPointerException
s was thrown recursively when a client is connected to an unreachable member during a split-brain. #14722๐ Fixed an issue where Hazelcast running on RHEL (OpenJDK8) shows
unknown gc
in the logs, instead ofmajor gc
andminor gc
. #14701๐ Fixed an issue where the IP client selector was not working for the local clients. #14654
๐ Fixed the wording of a misleading error in the first attempt to connect to a wrongly configured cluster. The error message has been changed to "Unable to connect to any cluster". #14574
๐ Fixed an issue where the
setAsync()
method was throwingNullPointerException
. #14445๐ Fixed an issue where the collection attributes indexed with
[any]
were causing incorrect SQL query results, if the first data inserted to the map has no value for the attribute or the collection is empty. #14358๐ Fixed an issue where
mapEvictionPolicy
couldn't be specified in the JSON configuration file. #14092๐ Fixed an issue where the rolling upgrade was failing when all members change their IP addresses. #14088
๐ Fixed an issue where the resources were not wholly cleared when destroying
DurableExecutorService
causing some resources to be left in the heap. #14087๐ Fixed an issue where the REST API was not handling the HTTP requests without headers correctly: when a client sends an HTTP request without headers to the Hazelcast REST API, the
HttpCommand
class was wrongly expecting an additional new line. #14353๐ Fixed an issue where
QueryCache
was not returning the copies of the found objects. #14280๐ Fixed an issue where the locks were not cleaned up after the members are restarted. #14215
๐ Fixed an issue where the MultiMap's
RemoveOperation
was iterating through the backing collection, which caused performance degradation (when using theSET
collection type). #14145๐ Fixed an issue where the user code deployment feature was throwing
NullPointerException
while loading multiple nested classes and using entry processors. #14105๐ Fixed an issue where the newly joining members could not form a cluster when the existing members are killed. #14051
๐ Fixed an issue where the
IMap.get()
method was not resetting the idle time counter whenread-backup-data
is enabled. #14026๐ Fixed an issue where the
addIndex()
method was performing a full copy of entries when a new member joins the cluster, which is not needed. #13964๐ Fixed an issue where the initialization failure of
discoveryService
was causing some threads to remain open and the JVM could not be terminated because of these threads. #13821๐ Fixed the discrepancy between the XSD on the website and the one in the download package.#13011
๐
PagingPredicate
with comparator was failing to serialize when sending from the client or member when the cluster size is more than 1. This has been fixed by making thePagingPredicateQuery
comparator serializable. #12208๐ Fixed an issue where
TcpIpConnectionManager
was putting the connections in a map under the remote endpoint bind address but not under the address to which Hazelcast connects. #11256โ Removed/Deprecated Features
๐
ILock
interface and implementation ofILock
has been deprecated, andFencedLock
has been introduced.๐ The original implementations of
IAtomicLong
,IAtomicReference
,ISemaphore
andICountDownLatch
have been deprecated. Instead, the implementations provided by the CP Subsystem have been introduced.๐ The following system properties are deprecated:
hazelcast.rest.enabled
hazelcast.mc.url.change.enabled
hazelcast.memcache.enabled
hazelcast.http.healthcheck.enabled