Skip to content

Commit

Permalink
Update release_notes.txt
Browse files Browse the repository at this point in the history
  • Loading branch information
Serdaro committed May 10, 2023
1 parent bf4f9dc commit 029cff5
Showing 1 changed file with 7 additions and 223 deletions.
230 changes: 7 additions & 223 deletions hazelcast/src/main/resources/release_notes.txt
Original file line number Diff line number Diff line change
@@ -1,229 +1,13 @@
This document lists the new features, enhancements, fixed issues and, removed or deprecated features for Hazelcast Platform 5.1.x releases. The numbers in the square brackets refer to the issues in Hazelcast's GitHub repositories.

==== 5.1.5 ====

## Fixes

* Fixed an issue where `NullPointerException` was thrown around the `CREATE JOB` statement which is using Kafka Sink connector when Kafka has no records yet. Now, it produces an appropriate log message. [#22697]
* Fixed an issue where the map entries recovered from persistence were not expiring after their time-to-live durations. [#22558]
* Fixed an issue where replication over WAN was failing on the source cluster members, when there are multiple batch publishers configured in a single WAN replication. [#22500]

==== 5.1.4 ====

## Enhancements

* Removed the `hazelcast-jet-cdc-mysql` module from the Hazelcast Platform Enterprise distributions due to licensing.
You need to manually download this module if you have the Enterprise edition. See Capture Changes from MySQL for details. [#5312]
* The Kubernetes discovery plugin has been enhanced to support the service token expiration. The token is time-bound and its content
is refreshed periodically in the recent Kubernetes versions. A new token reader has been implemented to get the token value periodically. [#22394]
* You can now provide comma-separated lists to give multiple labels for the Kubernetes Discovery Plugin configurations `service-label-name`, `service-label-value`, `pod-label-name`, and `pod-label-value`. [#22401]

==== 5.1.3 ====

## Enhancements

* Improved connection handling. [#21641]

## Fixes

* When the `hazelcast.socket.buffer.direct` property is enabled, clusters no longer throw exceptions in response to text protocols such as the REST API. [#21700]

==== 5.1.2 ====

## Fixes

* Fixed an issue where a cluster could not be formed when security is enabled, various client permissions are set, and multiple members
are started simultaneously. [#21510]
* Fixed an issue where a cluster was unresponsive when you perform a health check to see the members are in the safe state;
cluster members were hanging in the `REPLICA_NOT_SYNC` state during such health checks. [#21208]
* Fixed an issue where the list of members in the cluster was reset to an empty list when the UUID of a cluster changes after its restart:
this was causing startup failures since Hazelcast could not manage the events due to the empty member list after a restart. [#21178]
* Fixed an issue where the statistics like puts and removals were not increasing when these operations are executed through Transactional interface. [#21107]
* Fixed a data race in `SingleProtocolEncoder`; while one method of this interface is called from the input thread,
another one is called from the output thread which was causing the race. [#20994]
* Fixed an issue where the automatic module name in `hazelcast-5.x.jar` could not be detected using Gradle. The reason was
`/META-INF/MANIFEST.MF` not being the first or second entry in the JAR file; now this manifest file is the second entry. [#20976]

==== 5.1.1 ====

## Fixes

* Fixed an issue where the partition migrations were failing when there is a single map in the cluster with Merkle trees enabled. [#20929]
* Fixed a potential deadlock during partition migrations and inability to make progress while performing graceful shutdown with persistence enabled. [#20813]

==== 5.1 ====

## New Features

* **Tiered Storage (BETA)**: Introduced the Tiered Storage feature which is an extension to Hazelcast Map
assigning data to various types of storage media based on access patterns. It is an Hazelcast Enterprise feature
and in BETA state. See https://docs.hazelcast.com/hazelcast/5.1/tiered-storage/overview.
* **Persistence for Dynamic Configuration:** You can now reload the updates made in configuration dynamically (at runtime)
after a cluster restart. See https://docs.hazelcast.com/hazelcast/5.1/configuration/dynamic-config.
This document lists the new features, enhancements, fixed issues and, removed or deprecated features for Hazelcast Platform 5.1.6 release. The numbers in the square brackets refer to the issues in Hazelcast's GitHub repositories.

## Enhancements

### SQL Engine

* Added support of the following statements, operators, and functions:
** `CREATE VIEW`
** `DROP VIEW`
** `EXPLAIN`
** `CREATE INDEX`
** `UNION`
** `UNION ALL`
** `EXISTS`
** `NOT EXISTS`
** `RIGHT JOIN`
** Sub-queries and `VALUES()` execution in JOIN arguments
** `JSON_ARRAY`, `JSON_OBJECT`
** `SHOW VIEWS`
** Added support for stream aggregation (HOP and TUMBLE functions)
[#20413], [#20342], [#20268], [#20042], [#19894], [#19850], [#19810], [#19768], [#19742], [#19729], [#19650], [#19589]

* Added `JSON` as a supported type for the SQL engine with functions like `JSON_QUERY` and `JSON_VALUE`;
they return a JSON object/array and a primitive value, respectively. For an overview of JSON in SQL, see https://docs.hazelcast.com/hazelcast/5.1/sql/working-with-json. [#19303]

### Distribution

* Hazelcast command line interface is now available within the Hazelcast distribution package; previously
it needed to be installed separately. [#20062]

### Cloud Discovery Plugins

* Added `EndpointSlices` support for the Kubernetes discovery plugin; now the `EndpointSlices` API usage is default,
and the old `Endpoints` API is not used as a fallback if `EndpointSlices` are not available. [#19643]

### Serialization

* Added zero-configuration support for the Java records in compact serialization. [#20724]
* Updated the names of methods and fields in the Compact Serialization API to make them
non-Java centric. [#20257]
* Added the declarative configuration elements for Compact Serialization. [#20016]
* Introduced the `FieldKind` class to get the field types for portable and compact serializations;
previously it was `FieldType`. [#19517]

### Data Structures

* Added the support of `include-value` parameter for MultiMap item listeners; you can set it to `true`
if you want the item event to contain the item values. [#18815]

### Configuration

* Added support of the `jar` scheme in the JCache URI configuration. Without this support,
when, for example, `hazelcast-client.zip` is provided in Spring boot application properties file and packaged
as a boot JAR, then the Hazelcast caching provider was failing to load the file. [#20543]
* Introduced a system property for allowing you to audit that all the Hazelcast instances
running in your environment have the instance tracking file name set correctly in the configuration.
See the note in https://docs.hazelcast.com/hazelcast/5.1/maintain-cluster/monitoring#instance-tracking. [#19928]
* Introduced the module integrity checker configuration property. Integrity checker is a component
which verifies that the executable contains all the required `META-INF/services`.
https://github.com/hazelcast/hazelcast/pull/19971[#19971]

### Logging

* Added support of customizing the logging pattern and specifying configuration files via environment
variables. We also added support for `JsonTemplateLayout` for which the JSON template can be customized. [#20528]

### Management Center

* Added the `data-access-enabled` property for the Management Center configuration on the member side.
This allows you to enable or disable the access of Management Center to the data stored by the data structures in the cluster.
Management Center can't access the data if at least one member has the data access disabled. Its default value is `true` (enabled). [#19991]
* Added the `console-enabled` property for the Management Center configuration on the member side.
This allows you to disable the console feature on Management Center as it supports lots of operations and it's not subject
to the regular access restrictions; it can read from/write to any data structure even if Management Center is restricted
to access those via client permissions. [#19718]

### Licensing

* Hazelcast now shows the possible solutions in the terminal, if the license key is not set while starting a Hazelcast Enterprise cluster. #4614
* Added the ability to persist the renewal of a Hazelcast license key when this change is made without shutting down the cluster.
Renewing a license key has already been possible using the REST API; https://docs.hazelcast.com/hazelcast/5.1/deploy/updating-license-rest.
This enhancement makes such license renewals to be persisted so that when a member or the cluster is restarted, you will not need to
re-update the license. [#20446]

### Other Enhancements

* Added `safe-serialization` property to protect `MulticastDiscoveryStrategy` against Java deserialization attacks. [#20728]
* Upgraded the Elasticsearch client in Hazelcast's `elasticsearch-7` Jet engine connector.
Since the client license was changed from Apache 2.0 to Elastic 2.0 in Elasticsearch 7.11, we also added the new
https://github.com/hazelcast/hazelcast/blob/master/extensions/elasticsearch/elasticsearch-7/ELASTIC-LICENSE-README.md[license] to explain the changes. [#20427]
* Updated log4j2 dependency version to 2.17.1 in Hazelcast's root `pom.xml`. [#20184]
* With the introduction of Tiered Storage feature, we've improved the partition migration system to support chunked partition migrations.
By this way, the data is sent as a stream of chunks while the partitions are migrated upon member failures or new member additions.
Previously, at most 250 MB was recommended as the maximum size for a partition; however, if a partition is backed by Tiered Storage,
this size may go beyond this limit and may cause out of memory errors during the migrations of partitions having large data. Chunked
partition migrations eliminate these errors. [#20005]
* The `hz-start` script now accepts absolute paths when providing the Hazelcast configuration file's location. [#19908]
* JSON strings can now work with paging predicate queries. [#19880]
* You can now check if Hazelcast is started properly in the Docker environment simply by using
a `curl` command, e.g., `curl -f http://hazelcast-host:5701/hazelcast/health/ready`. [#19664]
* Hazelcast's memcached implementation was interpreting the number values and parameters
for `incr` and `decr` wrongly (numbers were being converted into byte arrays instead of decimals).
This has been fixed by making these commands' implementations strictly follow the
memcached protocol specification. [#19653]
* Since the name of Hot Restart Persistence feature changed to Persistence, the prefix for its
metrics also has been changed from "hot-restart" to "persistence". [#19543]
* Aligned the Near Cache and query cache behaviors when the in-memory format is `OBJECT`:
** Improved query cache methods to eliminate extra deserialization
** Added `serializeKeys` flag to query cache configuration to align the behavior with Near Cache. [#20265]
* Improved the speed of connection by a member when it joins the cluster, by removing the unnecessary
sleep statements in the code. [#18932]
* Updated the parquet dependency to 1.13.0. #24469
* 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. #24044
* Updated the everit-json-schema dependency to 1.14.2. #23971
* When advanced networking is enabled, the Kubernetes discovery plugin might have been discovering several endpoints (per each port) for each member’s pod. The discovery plugin now matches only the private IP per endpoint, ignoring the port values. #23932
* Introduced the hazelcast.discovery.public.address.fallback property to enable smart client connectivity to Hazelcast clusters deployed on Kubernetes, and having advanced network configuration enabled. #23921

## Fixes

* Fixed the `NullPointerException` issue when running the `SELECT` statement
if there is a mapping for a map with partitioned indexes. [#20601]
* Fixed an issue where a single SQL query having a mix of JSON string and `HazelcastJsonValue` for the `INSERT` statement
was not working. [#20303]
* Fixed various issues when using hostnames in Hazelcast's network and WAN Replication configurations.
With this fix, you can seamlessly use hostnames wherever the IP addresses of the members are used. [#20014], [#15722]
* Fixed an issue where the `hazelcast.yaml` file was ignored when it is the only configuration file present in the
Hazelcast setup; during startup it was looking only for the `hazelcast.xml` file and producing an error message saying that
the configuration does not exist even though there is the `yaml` configuration file. Now it automatically uses `hazelcast.yaml`
when `hazelcast.xml` is not available. [#20003]
* Fixed an issue where the Hazelcast command line interfaces commands were outputting incorrect command names
when you want to see their usages using the `--help` argument. For example, the command `hz-start --help` was outputting
the following:

Usage: hazelcast-start [-d]
-d, --daemon Starts Hazelcast in daemon mode


instead of the following:

Usage: hz-start [-d]
-d, --daemon Starts Hazelcast in daemon mode

* Fixed an issue where querying a map with `SELECT` (SQL) was failing when the data has compact serialization
and the cluster has more than one member (with the class not being on the classpath). [#19952]
* In Kubernetes environment, when the health check endpoint was taking too long to respond, the
Hazelcast members were considered to be unresponsive and terminated; this issue has been fixed. [#19829]
* Fixed an issue where the command `hz-stop --help` was not displaying the help but executing
the `hz-stop` command. [#19749]
* When you both enable the persistence and automatic removal of stale data in the configuration,
member startup failures were occurring. This has been fixed by adding the `auto-remove-stale-data`
element to the configuration schema. [#19683]
* Fixed an issue where the `totalPublishes` statistics for the Reliable Topic data structure
were always generated as `0`. [#19642]
* Fixed an issue where some Spring XML configuration elements having values as property placeholders
were not working when Hazelcast is upgraded to a newer version. [#19629]
* Fixed an issue where the `totalPublishes` statistics for the Reliable Topic data structure
were always generated as `0`. [#19555]
* Fixed an issue where the serialization was failing when the object has enum fields, or it is an enum itself. [#19314]

## Removed/Deprecated Features

* Removed the `elasticsearch-5` module from Hazelcast distributions since the version 5.0 Elasticsearch has passed its end of life date; see its https://www.elastic.co/guide/en/elasticsearch/reference/5.0/release-notes-5.0.0.html[release notes]. [#20458]
* Deprecated the `log(LogEvent logEvent)` method in the `ILogger` class (`com.hazelcast.logging.ILogger`).

## Contributors

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

* [Lenny Primak](https://github.com/lprimak)
* [Chelsea31](https://github.com/Chelsea31)
* [Tomasz Gaweda](https://github.com/TomaszGaweda)
* [Katha Patel](https://github.com/kathapatel)
* Fixed an issue where lastAccessTime and expirationTime was not updated when an entry is accessed via executeOnEntries. #24011

0 comments on commit 029cff5

Please sign in to comment.