Skip to content

Releases: hazelcast/hazelcast

v5.4.0

15 Apr 17:55
Compare
Choose a tag to compare

This document lists the new features, enhancements, fixed issues and, removed or deprecated features for Hazelcast Platform 5.4.0 release. The numbers in the square brackets refer to the issues and pull requests in Hazelcast's GitHub repository.

Caution

Starting with this release of Hazelcast Platform, the minimum supported Java version is 17.

New Features

  • Enterprise User Code Namespaces: Enable deployment and redeployment of your custom classes. See the User Code Namespaces documentation.
  • Enterprise CPMap: Added CPMap as a minimal key-value CP data structure. See CPMap documentation. [#25802]
  • Enterprise Thread-Per-Core (TPC): TPC is now generally available. You can enable this feature on the clients and cluster members for improved performance. See the Thread-Per-Core (TPC) documentation.

Breaking Changes

  • The MergingValue interface within the SPI package now requires the getDeserializedValue() method to be defined within implementations, replacing the getValue() definition. [#25942]
  • Moved the MongoDB connector to the extensions module, that is, its classes and related dependencies relocated;
    if you are using Maven to install the connector, you must add <classifier>jar-with-dependencies</classifier> to your pom.xml. Also removed the permissions for MongoDB connector. [#25744], [#25701]
  • Method names used as parameters in SecurityInterceptor checks were reviewed and unified into a single place - class com.hazelcast.security.SecurityInterceptorConstants. Some client messages have the method name changed to reflect their purpose better. Some client messages are newly covered by SecurityInterceptor checks now. [#25020]
  • Renamed the service port for Hazelcast clusters deployed in Kubernetes environments to hazelcast.
    The previous name, hazelcast-service-port, caused member auto-discovery for embedded deployments to fail. [#24834], [#24705], [#24688]
  • Fixed an issue where Hazelcast was not failing fast when a member is started with a blank public address. This has been fixed by introducing a configuration validation that might break any existing, but invalid, configuration. [#24729]

Enhancements

SQL/Jet Engine

  • Removed the beta annotations from the data connection classes. [#26000]
  • Replaced the user-defined types (UDTs) feature flag with the cyclic UDT feature flag, to prevent querying such type data. [#25977]
  • Added support for loading and storing a single column as the value using the GenericMapStore. [#25878]
  • Each Jet engine job was creating a client for connecting to the remote cluster, resulting in an excessive number of clients. This has been fixed by introducing a single data connection, which can be reused for all job instances. [#25754], [#25731]
  • Added support for resolving fields from Avro schemas in Kafka mappings. [#25935]
  • Changed the exception type from CancellationException to CancellationByUserException when the user cancels a job before it is initialized. [#25383]
  • Added nested field support for Avro serialization format. [#25269]
  • Removed the redundant sort and merge operations in sorted index scans, for the computations where the index order is not needed, for example, aggregations. [#25180]
  • Updated the data comparator to improve the performance of sorted index operations. [#25196]
  • Added support for partition pruning for the __key filters. [#25105]
  • Added support for partitioned edges in Jet engine's partition pruning. [#25062]
  • Added a new mechanism to compute the required partitions to be scanned, if attribute partitioning strategy is applied. [#25006]
  • Added the condition type to the EXPLAIN PLAN statement outputs for all physical joins. [#24899]
  • Added support for nullable types when reading Avro files. [#24840]
  • Added the ability to pass parameters for JDBC configuration, such as the fetch size for large tables. [#24835]
  • Added support for partition pruning for SQL queries that have trivial filter predicates. [#24813]
  • Reflected the change of javax.jms to jakarta.jms in Hazelcast distributions. [#24804]
  • Added support for member pruning for Platform jobs to optimize a job's performance by picking up only the members required for the job. [#24689]
  • Added the stream() method to the SQL service to return the stream of result rows. [#24525]
  • Introduced a new configuration object to control the exact initial partition offsets when consuming records from Kafka via the Jet engine. [#21546]
  • Aligned the behavior of hashCode() method of KeyedWindowResult with that of Map.Entry. #697
  • Boxing of partitionId is now avoided in the getPartitionAssignment() method when the partition pruning is not used. #486
  • Added the ability to limit the creation of objects through reflection. #296
  • Added the ability to use reusable processor meta supplier for forceTotalParallelismOne () on random members without permissions. #227
  • Added a comparator for the High-Density Memory Store's index entries. Previously, on-heap entries comparators were used which causes incorrect query outputs. #52

Connectors

  • Implemented a new SQL mapping option to define the preferred local parallelism for connectors that support this configuration. Currently, only the Kafka connector supports this. See Creating a Kafka Mapping for example configurations. [#26194]
  • Removed the beta annotations from the MongoDB classes. [#25743]
  • Added TLS support for MongoDB data connections. [#25301]
  • Added Oracle database support to the JDBC SQL connector. [#25255]
  • Added support for inline Avro schemas for Kafka mappings. [#25207]
  • Added support for DataSerializable serialization to Mongo connector. [#25197]
  • Check for existing resources for Mongo connector is now done only once; previously, it was performed on every processor. [#24953]
  • Hazelcast JDBC connector now supports Microsoft SQL server. [#25071]
  • Added the ability to configure the pool size of a MongoDB data connection. See Creating a MongoDB Mapping. [#25027]

Data Structures

  • Added check for negative positions on the collections' getItemAtPositionOrNull() method. [#25672]
  • Introduced a cluster state check to improve the removal of expired map/cache entries from the cluster. The removal operation is no longer executed if the cluster is in passive state. [#24808]
  • Added the IMap.localValues() and IMap.localValues(Predicate) methods for a faster access to locally owned values in maps. [#24763]
  • Added the deleteAsync() for maps to asynchronously remove a provided map entry key. [#23509]
  • Fixed the Javadoc for caches where it was referring incorrectly to statistics instead of management, for the setManagementEnabled() method. [#22575]
  • Added the getCPObjectInfos() method to create a snapshot of all existing CP objects for a given service on the group leader. #615
  • Added the getCPGroupIds() method to the CP Subsystem API to allow listing all data structures within a CP group. #591
  • The "last update time" record of the map entries recovered from the disk persistence is not used anymore when calculating the entries' expiration times. #233
  • Enterprise Added the ability to check whether the ADVANCED_CP feature is present in the Hazelcast Platform Enterprise license, to enable CPMap. #157

Enterprise WAN Replication

  • Improved dead connection handling for WAN replication static IP discovery, by introducing health check to the discovery strategy. [#25364]
  • Added support for the dynamic adding of WAN replication configurations using Java API. [#25118]
  • Added support for evicting map and cache entries through WAN replication by introducing two new properties. When enabled, WAN replication events are fired when values are evicted from the map and cache objects. See Replicating IMap/ICache Evictions. [#24941]

Enterprise Security

  • Added the ability to check map permissions before suggesting a schema. If a client has permission to read a map, then a suggestion with schema is sent. Otherwise a warning that no permissions to read maps have been set is generated. [#26058]
  • Updated permission checks in CacheCreateConfig and GetSemaphoreType tasks. [#25529]
  • Improved the permission checks in the file connectors by adding a method that returns the permissions required to resolve field names. [#25348]
  • Added support for permission subtraction (deny permissions) in client connections. See Deny Permissions. [#25154]

Storage

  • Improved the hit/miss cache statistics counter performance. [#25146]
  • Enterprise Tiered Store can now be used with map...
Read more

v5.3.7

03 Apr 10:23
Compare
Choose a tag to compare

This document lists the enhancements, fixed issues, and removed or deprecated features for Hazelcast Platform 5.3.7 release. The numbers in the square brackets refer to the issues and pull requests in Hazelcast's GitHub repository.

Enhancements

  • Improved the time spent on the first partition migration, in case a new member joins a cluster with high partition count. [#1201]
  • Updated the versions of following dependencies:
    • gRPC to 1.60.0
    • Jetty to 9.4.53.v20231009
    • AWS SDK to 1.12.688
      [#1207], [#1208], [#1209]

v5.2.5

26 Feb 14:47
Compare
Choose a tag to compare

This document lists the enhancements and fixed issues for the Hazelcast Platform 5.2.5 release. The numbers in the square brackets refer to the issues and pull requests in Hazelcast's GitHub repository.

Enhancements

  • Improved the permission checks in the file connectors by adding a method that returns the permissions required to resolve field names. [#25674]
  • Updated the versions of following dependencies:
    ** Snappy to 1.1.10.5
    ** gRPC to 1.59
    ** Netty to 4.1.100.Final
    ** Elasticsearch to 7.17.13
    ** Everit JSON Schema to 1.14.3
    [#24866], [#25820], [#25708], [#25729], [#25775]

Fixes

  • Fixed an issue where the entry listeners for Replicated Maps were checking the Map permissions instead of the Replicated Map permissions. [#25971]
  • Fixed an issue where the map entries' metadata, such as time-to-live and expiration, was not replicated correctly over WAN after updating existing entries. [#25506]
  • Fixed an issue where there was a difference between the elapsed clock time and elapsed total time when listening to migration events. [#25066]
  • Fixed an issue where the member list was not updated after a cluster failover scenario. [#24944]
  • Renamed the service port for Hazelcast clusters deployed in Kubernetes environments to hazelcast. The previous name, hazelcast-service-port, caused member auto-discovery for embedded deployments to fail. [#24841]
  • Fixed an issue where Hazelcast was sending empty map interceptor information to the members that are newly joined to the cluster; it was causing eager map initializations. [#24669]

Removed/Deprecated Features

  • Removed the evaluation tool (for trying out Platform 5.x features for IMDG 3.x users) and the relevant IMDG 3.x JAR libraries from Hazelcast Platform distributions. [#25697]

Contributors

We would like to thank the contributors from our open source community
who worked on this release:

v5.3.6

09 Nov 14:00
Compare
Choose a tag to compare

This document lists the enhancements, fixed issues, and removed or deprecated features for Hazelcast Platform 5.3.6 release. The numbers in the square brackets refer to the issues and pull requests in Hazelcast's GitHub repository.

Fixes

  • Fixed a WAN replication failure - when using maps with WAN replication enabled, and BINARY or NATIVE in-memory formats for the entries, WAN replication was failing when an entry is updated with the same key/value pair, and the cluster members lack serialization information. [#25899]

v5.3.5

24 Oct 14:59
Compare
Choose a tag to compare

This document lists the enhancements, fixed issues, and removed or deprecated features for Hazelcast Platform 5.3.5 release. The numbers in the square brackets refer to the issues and pull requests in Hazelcast's GitHub repository.

NOTE: Due to an error in the tooling, the Platform releases 5.3.3 and 5.3.4 needed to be skipped numerically.

Enhancements

  • Improved the permission checks by fixing the CVE-2023-45859 and CVE-2023-45860 vulnerabilities.
  • Changed the exception type from CancellationException to CancellationByUserException in case the user cancels a job before it is initialized. [#25452]
  • Updated the versions of the following dependencies
    • gRPC to 1.57.0, [#25430]
    • Netty to 4.1.100, [#25670]
    • Avro to 1.1.13, [#25659]
    • Snappy Java to 1.1.10.5
    • Elasticsearch to 7.17.13, [#25660]
  • Renamed the service port for Hazelcast clusters deployed in Kubernetes environments as hazelcast.
    Previously, the name was hazelcast-service-port causing the member auto-discovery (for embedded deployments) to fail. [#24834]

Fixes

  • Fixed an issue where the map entries' metadata, such as time-to-live and expiration, was not replicated correctly over WAN after updating existing entries. [#25505]
  • Fixed an issue where the member list was not updated after a cluster failover scenario. [#25504]
  • Fixed a memory leak issue happening in Hazelcast members and clients while destroying fenced locks. [#25421]

Removed/Deprecated Features

  • Removed the evaluation tool (to try out Platform 5.x features for IMDG 3.x users) and the relevant IMDG 3.x JAR libraries from Hazelcast Platform distributions. [#25663]

v5.3.2

21 Aug 15:41
Compare
Choose a tag to compare

This document lists the enhancements and fixed issues for Hazelcast Platform 5.3.2 release. The numbers in the square brackets refer to the issues and pull requests in Hazelcast's GitHub repository.

Enhancements

  • Updated the Janino dependency version to 3.1.10. [#25094]

Fixes

  • Renamed the service port for Hazelcast clusters deployed in Kubernetes environments as hazelcast.
    Previously, the name was hazelcast-service-port causing the member auto-discovery (for embedded deployments) to fail. [#25228]
  • Fixed an issue where the getDistributedObjects() was returning inconsistent results when multiple members are simultaneously joining to the cluster. [#25153]
  • Fixed an issue where the Hot Restart procedure was failing on Hazelcast Viridian, when the cluster is in the FROZEN state. [#25081]
  • Fixed an issue where the retry mechanism for the communications between CP leader and followers was generating too many retries, due to incorrect backoff timeout reset behavior. [#25074]

v5.0.5

28 Jun 13:47
Compare
Choose a tag to compare

This document lists the enhancements and fixed issues for Hazelcast Platform 5.0.5 release. The numbers in the square brackets refer to the issues in Hazelcast's GitHub repositories.

Enhancements

Fixes

  • Fixed protocol handshake issues in the IO subsystem, including the TLSv1.3 handshake. [#24893]
  • Fixed an issue where Hazelcast was sending empty map interceptor information to the members which are newly joined to the cluster; it was causing eager map initializations. [#24667]
  • Fixed an issue where lastAccessTime and expirationTime were not updated when an entry is accessed via executeOnEntries. [#24010]
  • Fixed a parsing issue in JSON arrays when using predicate queries; it was causing the JSON query results to be varied according to the property order. [#23451]

Contributors

We would like to thank the contributors from our open source community who worked on this release:

v5.1.7

19 Jun 14:02
Compare
Choose a tag to compare

This document lists the enhancements and fixed issues for Hazelcast Platform 5.1.7 release. The numbers in the square brackets refer to the issues in Hazelcast's GitHub repositories.

Enhancements

  • Added support of [IMDSv2] for Hazelcast’s AWS Discovery plugin. [#23594]
  • Updated the version of jackson-core dependency to 2.15.2. [#24731]

Fixes

  • Fixed an issue where Hazelcast was sending empty map interceptor information to the members which are newly joined to the cluster;
    it was causing eager map initializations. [#24668]
  • Fixed various issues in Health Monitor including incorrect metric names. [#24633]
  • Fixed an issue where the REST calls were failing for Hazelcast clusters with TLS v1.3 configured, and deployed on Kubernetes. [#24625]
  • Fixed a parsing issue in JSON arrays when using predicate queries; it was causing the JSON query results to be varied according to the property order. [#23452]

Contributors

We would like to thank the contributors from our open source community who worked on this release:

v5.2.4

13 Jun 12:40
Compare
Choose a tag to compare

This document lists the enhancements and fixed issues for the Hazelcast Platform 5.2.4 release. The numbers in the square brackets refer to the issues and pull requests in Hazelcast's GitHub repository (github.com/hazelcast/hazelcast).

Enhancements

  • Updated the version of jackson-core dependency to 2.15.2. [#24730]
  • Hazelcast was sending requests to Kubernetes API when deploying an application with embedded Hazelcast and service-dns (DNS lookup mode) specified to a Kubernetes cluster. This was causing the requests to be unsuccessful and the application not to start. This mechanism has been improved by creating Kubernetes client only for the DNS lookup mode. [#24045]

Fixes

  • Fixed an issue where some of the members in a Hazelcast cluster deployed on Kubernetes (as a statefulset) shut down with en exception in a delayed manner. [#24709]
  • Fixed an issue where Jet job snapshots could be prematurely deleted after a restart of a cluster, having lossless restart enabled. [#24576]
  • Fixed an issue where the SELECT COUNT(DISTINCT COLUMN) query for maps was producing incorrect results. [#24490]
  • Fixed various issues in [Health Monitor] including incorrect metric names. [#24634]
  • Fixed an issue where the REST calls were failing for Hazelcast clusters with TLS v1.3 configured, and deployed on Kubernetes. [#24624]
  • Fixed an issue where SQL statements were failing when a class (to determine the fields of a key/value pair) no longer exists but the mapping is still valid. [#24043]
  • Fixed an issue where lastAccessTime and expirationTime was not updated when an entry is accessed via executeOnEntries. [#24012]

v5.3.1

09 Jun 09:24
Compare
Choose a tag to compare

This document lists the new features, enhancements, fixed issues and, removed or deprecated features for Hazelcast Platform 5.3.1 release. The numbers in the square brackets refer to the issues and pull requests in Hazelcast's GitHub repository.

Enhancements

  • Updated the version of jackson-core dependency to 2.15.2. [#24727]

Fixes

  • Fixed an issue where submitting a job was failing when it is done using Hazelcast Command-Line Client (CLC). [#24704]
  • Fixed an issue where the REST calls were failing for Hazelcast clusters with TLS v1.3 configured, and deployed on Kubernetes. [#24623]
  • Fixed various issues in Health Monitor including incorrect metric names. [#24636]