The probe level for most of the network related statistics has been changed to "DEBUG" to decrease the pressure on Management Center; now they are not sent to Management Center by default. If you want to see these statistics, you need to set the "hazelcast.metrics.debug.enabled" property to true.#21275
Introduced a configuration property to ignore errors during enabling theXXE protection. This protection works with JAXP 1.5 (Java 7 Update 40) and newer.When an older JAXP implementation is added to the classpath, e.g., Xerces and Xalan,an exception is thrown. The newly introduced property, namely hazelcast.ignoreXxeProtectionFailures,allows you to ignore those exceptions.#17839
Hazel 4.1.1
To decrease the load on the Management Center for large clusters, the level of network related metrics has been changed to DEBUG. When you need these metrics, you can use the hazelcast.metrics.debug.enabled property.#21260
Improved the log message that is displayed when using the hazelcast.io.selectorModeproperty to decrease the high CPU usage. The previous misleading message read as"Recreated Selector because of possible java/network stack bug". It has been changedto "Selector was rebuilt, consider updating Java and/or your network stack drivers".#19761
Introduced the hazelcast.internal.map.expired.key.scan.timeout.nanos propertyto limit the execution time of the cleanup operations, i.e., entry expiration tasks of a map;this is to prevent the increased CPU usage as the partition size grows.#19663
When the user code deployment is used and the classes to be deployedhave com.hazelcast prefix, it was causing failures in other Hazelcastproducts, e.g., Jet. This has been fixed by making use of the context classloaderwhen loading such classes.#17915
Introduced a configuration property to ignore errors duringenabling the XXE protection. This protection works with JAXP 1.5 (Java 7 Update 40)and newer. When an older JAXP implementation is added tothe classpath, e.g., Xerces and Xalan, an exception is thrown.The newly introduced property, namely hazelcast.ignoreXxeProtectionFailures,allows you to ignore those exceptions.See the System Properties appendix of the IMDG Reference Manual for more information.
Parallel Independent Migrations: Parallelized the partition replica migrations so thatthe time needed for rebalancing the partitions after addingor removing a member to/from a cluster is reduced. See the hazelcast.partition.max.parallel.migrations property explanation in theSystem Properties appendix.
Introduced the hazelcast.logging.details.enabled propertyto make the logging of cluster version, name and IP optional todecrease the noise in the logs when, for example, you have a single-member cluster.#16622
Introduced a configuration property to ignore errors during enabling the XXE protection.This protection works with JAXP 1.5 (Java 7 Update 40) and newer. When an older JAXPimplementation is added to the classpath, e.g., Xerces and Xalan, an exception is thrown.The newly introduced property, namely hazelcast.ignoreXxeProtectionFailures, allows you to ignore those exceptions.See System Properties for more information.#17869
When the user code deployment is used and the classes to be deployed havecom.hazelcast prefix, it was causing failures in other Hazelcast products, e.g., Jet.This has been fixed by making use of the context classloader when loading such classes.#17584
Introduced the hazelcast.logging.details.enabled property to make the loggingof cluster version, name and IP optional to decrease the noise in the logs when, forexample, you have a single-member cluster.#16630
Moby Naming: Introduced friendly names for the Hazelcast instances to be shownin the Hazelcast Management Center. See the Checking the Instances' Name section. Also, a new system property, hazelcast.member.naming.moby.enabled, is introduced for this purpose.
Single Thread Hazelcast Clients Performance: Hazelcast clients have been designed to beused by multiple threads; the more threads you throw at it, the better the performance(until it is saturated). Now, it has also been optimized for a single thread doing requests:The default values for the hazelcast.client.io.write.through and hazelcast.client.response.thread.dynamichave been changed from false to true.
Fixed an issue where the Hazelcast IMDG configuration files, thathave an extension other than .xml, .yaml or .yml or do not havean extension, were ignored silently. This was happeningwhen the configuration file is set by using the hazelcast.configsystem property.#14953
Fixed an issue where the Hazelcast IMDG configuration files, thathave an extension other than .xml, .yaml or .yml or do not havean extension, were ignored silently. This was happeningwhen the configuration file is set by using the hazelcast.configsystem property. #14945
Introduced a new system property (hazelcast.security.permissions.operation.on-join) that allows to choose whether a new member joining to a cluster will apply the client permissions stored in its own configuration, or will use the ones defined in the cluster. See the Handling Permissions When a New Member Joins section.
Due to the API change in evictionPolicy in maps (related issue is listed above as #14086), you may face witha configuration conflict while using dynamic configuration,i.e., the exception Cannot add a dynamic configuration. You can use thehazelcast.dynamicconfig.ignore.conflicts property when restarting your cluster afterthis conflict to heal it.
When using the hazelcast-all artifact for 3.10.1, the version of hazelcast-hibernate included within is the one built using Hibernate 3. This is fixed by updating the default Hibernate version to 5. #13250
ConfigXmlGenerator masking should be optional: it masks certain fields like passwords. This is unnecessary since the user creating the hazelcast.xml should already know the values or they should be input by the user installing the application. By masking the fields automatically, the user is forced to manually edit the hazelcast.xml creating a manual step. #12012
The value of Main-Class in hazelcast-all.jar should be fixed. The class StartServer should be used instead of ConsoleApp. Currently, when the JAR is executed, the ConsoleApp demo application is started. #11655
The Javadoc for SHUFFLE_MEMBER_LIST in the class ClientProperty is not correct. The shuffling is done when the related property (hazelcast.client.shuffle.member.list) is set to true. Also the description in the Hazelcast Reference Manual should be corrected accordingly. #12082
Default value of the system property hazelcast.mc.max.visible.instance.count changed from 100 to Integer.MAX_VALUE. So you may see more than usual data in your Management Center, if you have more than 100 data structures in your Hazelcast cluster.
The method addressTranslator.translate(target) of com.hazelcast.client.connection.nio.ClientConnectionManagerImpl.InitConnectionTask.run() may return null. The returned value is used as an argument for the method createSocketConnection(Address) which uses the value without a null-check. #11771
Gigantic Cache Migration Enhancements: It enables manual control onthe partition migrations. Partitions can be migrated/replicated in smallfragments. See thehazelcast.partition.migration.fragments.enabledsystem property andNO_MIGRATIONcluster state.
Maximum timeout of heartbeat for a member to assume it is dead was 300seconds. Starting with Hazelcast 3.9, it is reduced to 60 seconds.Related property is hazelcast.max.no.heartbeat.seconds. Also, startingwith Hazelcast 3.9, maximum timeout of master confirmation from othermembers is reduced to 150 seconds from 450 seconds. Related property ishazelcast.max.no.master.confirmation.seconds.
Client has a configurablehazelcast.client.max.concurrent.invocations property which limits theoutstanding client requests. It is observed that at some cases, forasync calls, it is possible that this limit may not work as expected andthis may cause outstanding requests to grow which may cause OOM.#8568
The method com.hazelcast.topic.impl.TopicProxy#publish serializesthe message even if the message is never sent due to having nosubscribers. In the case of non-global-ordering and non-client use, theimplementation should defer serialization until it has established thatthere are subscribers. #8262
Hazelcast 3.6.x client cannot obtain cache proxy from 3.7.x cluster.Configuration creation and retrieval seem to be not working on 3.6.xclients when they connect to a 3.7.x cluster. Two new system propertiesadded, namely hazelcast.compatibility.3.6.server andhazelcast.compatibility.3.6.client. When upgrading from (assuming thatyou are using ICache) 3.6.x to 3.7.3 then the servers should be startedwith -Dhazelcast.compatibility.3.6.client=true to enable existing3.6.x clients work properly. When upgrading from 3.7.1 and 3.7.2 to3.7.3 this is not needed. [#9006]
Issue with continuous query natural filtering event types: When theproperty hazelcast.map.entry.filtering.natural.event.types is set totrue, updating a map entry whose value did not match the predicate toa new value that matches the predicate should publish an event of typeADDED instead of UPDATED. #8648
Using Hazelcast out of the box with no configuration creates aPeer-to-Peer cluster. As soon as the configuration file hazelcast.xmlis created by the user, in which only the logging type is set, Hazelcastdoes not create a cluster but starts in standalone mode. #8481
The addInterceptor() method incom.hazelcast.map.impl.MapContainer() is not thread safe. For example,if two concurrent attempts are made to inject the same interceptor,these will be different interceptor objects with the same ID. In thiscase, the call to interceptorMap.put(id, interceptor) will increasethe map size by one, but the call to interceptors.add(interceptor)will increase the list size by two. #7520 2ff7e9595c
Comments