This document lists the new features, enhancements, fixed issues and, removed
or deprecated features for Hazelcast 5.1-BETA-1 release. The numbers in the square
brackets refer to the issues in Hazelcast's GitHub repository.
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 a Hazelcast Enterprise feature
and in BETA state. See the Tiered Storage section. - Persistence for Dynamic Configuration: You can now reload the updates made in the dynamic configuration
after a cluster restart. See the Persisting Changes in Dynamic Configuration section.
Enhancements
SQL Engine
- Added support of the following statements, operators, and functions:
**CREATE VIEW
**DROP VIEW
**EXPLAIN
**CREATE INDEX
**IMPOSE_ORDER
to enhance the given input table with watermarks
**UNION
**UNION ALL
**EXISTS
**NOT EXISTS
**TUMBLE(TABLE table, DESCRIPTOR(column), window_size)
to enhance the input relation with thewindow_start
andwindow_end
columns
**RIGHT JOIN
** Sub-queries andVALUES()
execution in JOIN arguments
**JSON_ARRAY
,JSON_OBJECT
[#20268], [#20042], [#19894], [#19850], [#19810], [#19768], [#19742], [#19729], [#19650], [#19589] - Added
JSON
as a supported type for the SQL engine with functions likeJSON_QUERY
andJSON_VALUE
;
they return a JSON object/array and a primitive value, respectively. [#19303]
Cloud Discovery Plugins
- Added
EndpointSlices
support for the Kubernetes discovery plugin; now theEndpointSlices
API usage is default,
and the oldEndpoints
API is not used as a fallback ifEndpointSlices
are not available. [#19643]
Serialization
- 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 wasFieldType
. [#19517]
Configuration
- 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 Instance Tracking section. [#19928]
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 istrue
(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]
Tiered Storage
- Introduced the hybrid log allocator; hybrid log is used for allocating slots for the
records stored in the log and for moving these slots between multiple devices,
such as the main memory, disks, Optane, remote devices, etc. #4430
Other Enhancements
- Updated log4j2 dependency version to 2.16.0 in Hazelcast's root
pom.xml
. [#20184] - 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
acurl
command, e.g.,curl -f http://hazelcast-host:5701/hazelcast/health/ready
. [#19664] - Hazelcast's memcached implementation was interpreting the number values and parameters
forincr
anddecr
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] - Improved the speed of connection by a member when it joins the cluster, by removing the unnecessary
sleep statements in the code. [#18932]
Fixes
- Fixed an issue where a single SQL query having a mix of JSON string and
HazelcastJsonValue
for theINSERT
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 thehazelcast.xml
file and producing an error message saying that
the configuration does not exist even though there is theyaml
configuration file. Now it automatically useshazelcast.yaml
whenhazelcast.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 commandhz-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] - Hazelcast was executing cluster wide operations when you query the state of a member using the health
check endpoint - it was causing to kill all the members in a cluster; this issue has been fixed. [#19829] - Fixed an issue where the command
hz-stop --help
was not displaying the help but executing
thehz-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 theauto-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 as0
. [#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 as0
. [#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
- Deprecated the
log(LogEvent logEvent)
method in theILogger
class (com.hazelcast.logging.ILogger
).
== Contributors
We would like to thank the contributors from our open source community
who worked on this release: