Skip to content

Releases: hz-devops-test/hazelcast

v4.0.6

11 Feb 08:09
Compare
Choose a tag to compare

This document lists the new features, enhancements, fixed issues and, removed or deprecated features for Hazelcast IMDG 4.0.6 release. The numbers in the square brackets refer to the issues in Hazelcast's GitHub repositories.

Enhancements

Fixes

  • 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. [hazelcast#19680]
  • Fixed an issue where the client state listener was not properly working with
    failover clients (in blue-green deployments); it was failing with invalid configuration exception. [hazelcast#19117]
  • Fixed an issue where the Java client was not receiving membership
    events when a member with Hot Restart Persistence enabled is restarted. [hazelcast#18269]
  • The -c parameter of the cp-subsystem.sh script was used for both
    cluster name and group variables. This has been fixed by introducing the -g parameter for groups. [hazelcast#18149]
  • Fixed an issue where data was being lost from maps in the event of a member failure in a 3-member cluster with backup count set to 1.
    This was occurring when lite members are promoted to be data members. [hazelcast#17757]
  • Fixed an issue where the service URL for Eureka could not be set using the declarative configuration. [hazelcast#17744]
  • When the user code deployment is used and the classes to be deployed have
    com.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. [hazelcast#17584]
  • Fixed an issue where the user code deployment feature was failing to work for
    inner-classes when not all the members have the user provided class on their classpaths. [hazelcast#17576]
  • Fixed an issue where Hazelcast was failing to load the configuration file
    (hazelcast.xml or user-provided files) from the classpath when in development mode for
    frameworks such as Quarkus. [hazelcast#17538]

Removed/Deprecated Features

  • The following properties have been deprecated:
    ** hazelcast.client.statistics.enabled
    ** hazelcast.client.statistics.period.seconds
    [hazelcast#19235]

v5.1-BETA-1

13 Jan 13:25
Compare
Choose a tag to compare

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 the window_start and window_end columns
    ** RIGHT JOIN
    ** Sub-queries and VALUES() execution in JOIN arguments
    ** JSON_ARRAY, JSON_OBJECT
    [hazelcast#20268], [hazelcast#20042], [hazelcast#19894], [hazelcast#19850], [hazelcast#19810], [hazelcast#19768], [hazelcast#19742], [hazelcast#19729], [hazelcast#19650], [hazelcast#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. [hazelcast#19303]

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. [hazelcast#19643]

Serialization

  • Updated the names of methods and fields in the Compact Serialization API to make them
    non-Java centric. [hazelcast#20257]
  • Added the declarative configuration elements for Compact Serialization. [hazelcast#20016]
  • Introduced the FieldKind class to get the field types for portable and compact serializations;
    previously it was FieldType. [hazelcast#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. [hazelcast#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 is true (enabled). [hazelcast#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. [hazelcast#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. hazelcast#4430

Other Enhancements

  • Updated log4j2 dependency version to 2.16.0 in Hazelcast's root pom.xml. [hazelcast#20184]
  • The hz-start script now accepts absolute paths when providing the Hazelcast configuration file's location. [hazelcast#19908]
  • JSON strings can now work with paging predicate queries. [hazelcast#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. [hazelcast#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. [hazelcast#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". [hazelcast#19543]
  • Improved the speed of connection by a member when it joins the cluster, by removing the unnecessary
    sleep statements in the code. [hazelcast#18932]

Fixes

  • Fixed an issue where a single SQL query having a mix of JSON string and HazelcastJsonValue for the INSERT statement
    was not working. [hazelcast#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. [hazelcast#20014], [hazelcast#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. [hazelcast#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). [hazelcast#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. [hazelcast#19829]
  • Fixed an issue where the command hz-stop --help was not displaying the help but executing
    the hz-stop command. [hazelcast#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. [hazelcast#19683]
  • Fixed an issue where the totalPublishes statistics for the Reliable Topic data structure
    were always generated as 0. [hazelcast#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. [hazelcast#19629]
  • Fixed an issue where the totalPublishes statistics for the Reliable Topic data structure
    were always generated as 0. [hazelcast#19555]
  • Fixed an issue where the serialization was failing when the object has enum fields, or it is an enum itself. [hazelcast#19314]

Removed/Deprecated Features

  • 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:

v5.0.1

15 Dec 16:57
Compare
Choose a tag to compare

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

Hazelcast Platform is a major release which unifies
the former Hazelcast IMDG and Jet products in a
single solution. The changes are summarized below.

For information about upgrading from previous IMDG and Jet
releases, see the Upgrade chapter at https://docs.hazelcast.com/hazelcast/latest.

To learn about the changes in previous IMDG and Jet releases, see https://docs.hazelcast.org/docs/rn/ and
https://jet-start.sh/blog/.

Enhancements

Fixes

  • 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. [hazelcast#20004]

  • 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 ([hazelcast#20002]). 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
  • 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. [hazelcast#19905]
  • Fixed an issue where there were mismatching map configurations when phone home is enabled. [hazelcast#19900]
  • Fixed an issue where the command hz-stop --help was not displaying the help but executing
    the hz-stop command. [hazelcast#19726]
  • 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. [hazelcast#19677]
  • Fixed an issue where the totalPublishes statistics for the Reliable Topic data structure
    were always generated as 0. [hazelcast#19651]
  • 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. [hazelcast#19373]

Contributors

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

v4.2.3

14 Dec 07:35
Compare
Choose a tag to compare

This document lists the new features, enhancements, fixed issues and, removed or deprecated features for Hazelcast IMDG 4.2.3 release. The numbers in the square brackets refer to the issues in Hazelcast's GitHub repositories.

Enhancements

  • Updated the version of log4j2 dependency in the pom.xml to 2.15.0. hazelcast#20163

v4.0.4

14 Dec 10:30
Compare
Choose a tag to compare

This document lists the new features, enhancements, fixed issues and, removed or deprecated features for Hazelcast IMDG 4.0.3 release. The numbers in the square brackets refer to the issues in Hazelcast's GitHub repositories.

Enhancements

  • Added the declarative configuration support for the client load balancer. [hazelcast#17482]
  • Added public classes to expose the member and client side caching
    provider implementations without referring to internal classes. [hazelcast#17421]
  • Updated the Hazelcast Kubernetes dependency to 2.0.2. [hazelcast#17255]
  • Added the ability to set the expiration times for entries when
    using entry processors. [hazelcast#17175]

Fixes

  • Fixed NullPointerException when using IMap with HASH indexes. [hazelcast#17527]
  • Fixed the rendering of diagnostics in case there is an exception inside a diagnostics plugin. [hazelcast#17502]
  • Increased the dependency versions for Jackson and SnakeYAML to mitigate the security vulnerabilities. [hazelcast#17510]
  • Fixed the propagation of exception from a function registered on a not-yet completed CompletionStage. [hazelcast#17520]
  • Fixed a race condition when overwriting CacheManager during JCache creation. [hazelcast#17292]
  • Fixed the NATIVE memory leak when using IMap.executeOnKeys() from an IMDG client. [hazelcast#17274]
  • Resolved a performance issue when using PagingPredicate in combination with JDK8. [hazelcast#17211]
  • Fixed the client behavior when cluster encounters a split-brain.
    In some cases, the client was unable to reconnect to the cluster, even after the cluster is healed. [hazelcast#17148]
  • Improved disposing of off-heap memory when metrics are being used. [hazelcast#17145]

v4.1.7

13 Dec 17:30
Compare
Choose a tag to compare

This document lists the new features, enhancements, fixed issues and, removed or deprecated features for Hazelcast IMDG 4.1.7 release. The numbers in the square brackets refer to the issues in Hazelcast's GitHub repositories.

Enhancements

  • Updated the version of log4j2 dependency in the pom.xml to 2.15.0. hazelcast#20162

v4.1.6

25 Oct 16:18
Compare
Choose a tag to compare

This document lists the new features, enhancements, fixed issues and, removed or deprecated features for Hazelcast IMDG 3.12 release. The numbers in the square brackets refer to the issues in Hazelcast's GitHub repositories.

==== 3.12 ====

  1. 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.
  1. New Features

Hazelcast IMDG Enterprise New Features:

  • Blue-Green and Disaster Recovery for Java Clients: Introduced the support for Hazelcast Java clients to switch between alternative clusters. See the Blue Green Deployment and Disaster Recovery section.

Hazelcast IMDG Open Source New Features:

  • CP Subsystem: Implementing the https://raft.github.io/[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.
  1. Enhancements

Hazelcast IMDG Enterprise Enhancements:

  • Sharing Hot Restart base-dir among Multiple Members: The base directory for the Hot Restart feature (base-dir) is now used as a shared directory between multiple members, and each member uses a unique sub-directory
    inside this base directory. This allows using the same configuration on all the members. Previously, each member had to use a separate directory which complicated the deployments on cloud-like environments. During the restart, a member tries to lock an already existing Hot Restart directory inside the base directory. If it cannot acquire any, then it creates a fresh new directory. See the Configuring Hot Restart section.
  • Lower Latencies and Higher Throughput in WAN Replication: Improved the design of the WAN replication mechanism to allow configuring it for lower latencies and higher throughput. See the Tuning WAN Replication For Lower Latencies and Higher Throughput section.
  • Add/Remove WAN Publishers in a Running Cluster: Introduced the ability to dynamically add or remove WAN publishers (target clusters). See the Dynamically Adding WAN Publishers section.
  • Automatic Removal of Stale Hot Restart Data: Introduced an option that allows the stale Hot Restart data to be removed automatically. See the description of the auto-remove-stale-data configuration element in the Configuring Hot Restart section.
  • Client Permission Handling When a New Member Joins: Introduced a declarative configuration attribute on-join-operation for the client permission in the Security configuration (its programmatic configuration equivalent is the setOnJoinPermissionOperation() method). This attribute 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.
  • Automatic Cluster Version Change after a Rolling Upgrade: Introduced the ability to automatically upgrade the cluster version after a rolling upgrade. See the Upgrading Cluster Version section.
  • FIPS 140-2 Validation: Hazelcast now can be configured to use a FIPS 140-2 validated module. See the FIPS 140-2 section.

Hazelcast IMDG Open Source 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 the REST API completely, Memcache protocol and 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. [hazelcast#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. [hazelcast#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. [hazelcast#14603]
  • Improved the code comments for the HazelcastInstance interface. [hazelcast#14439]
  • Improved the Javadoc of HazelcastClient so that the code comments now use "unisocket client" instead of "dumb client". [hazelcast#14213]
  • Added the ability to perform an LDAP subtree search for groups in Hazelcast Management Center���s LDAP authenticator. [hazelcast#14118]
  • Added the ability to set the EvictionConfig.comparatorClassName() in the client���s declarative configuration, too. [hazelcast#14093]
  • Introduced 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. [hazelcast#14089]
  • Improved the syncing of XSD files. [hazelcast#14070]
  • The IMap.removeAll() method now supports PartitionPredicate. [hazelcast#12238]
  • Improved the diagnostics tool so that it automatically creates the configured directory for the diagnostic outputs. [hazelcast#11946]
  1. Fixes
  • Fixed an issue where the state of member list on the clients were broken after a hot restart in the cluster. [hazelcast#14839]
  • Fixed an issue where the outbound pipeline was not waking up properly after merging the write-through changes. [hazelcast#14830]
  • Fixed an issue where a Hazelcast Java client was not able to connect to the cluster (which has the advanced-network configuration) after a split-brain syndrome is healed. [hazelcast#14768]
  • Fixed an issue where the like��and ilike��predicates didn���t catch any entity with the��text��field containing the '\n' character. [hazelcast#14751]
  • Fixed an issue where NullPointerExceptions was thrown recursively when a client is connected to an unreachable member during a split-brain. [hazelcast#14722]
  • Fixed an issue where Hazelcast running on RHEL (OpenJDK8) shows unknown gc in the logs, instead of major gc and minor gc. [hazelcast#14701]
  • Fixed an issue where the IP client selector was not working for the local clients. [hazelcast#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���. https://github.com/hazelcast/hazelcast/issues/14574[[#14574]]
  • Fixed an issue where a connection configured using AdvancedNetworkConfig was not denied correctly for some inappropriate endpoints. [hazelcast#14532]
  • Fixed the REST service which was not working when the REST endpoint is configured for AdvancedNetworkConfig. [hazelcast#14516]
  • Fixed an issue where the setAsync() method was throwing NullPointerException. [hazelcast#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. [hazelcast#14358]
  • Fixed an issue where mapEvictionPolicy��couldn���t be specified in the JSON configuration file. [hazelcast#14092]
  • Fixed an issue where the rolling upgrade was failing when all members change their IP addresses. [hazelcast#14088]
  • Fixed an issue where the resources were not wholly cleared when destroying DurableExecutorService causing some resources to be left in the heap. [hazelcast#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. [hazelcast#14353]
  • Fixed an issue where QueryCache was not returning the copies of the found objects. [hazelcast#14333]
  • Fixed an issue where the MultiMap's RemoveOperation was iterating through the backing collection, which caused performance degradation (when using the SET collection type). [hazelcast#14145]
  • Fixed an issue where the user code deployment feature was throwing NullPointerException while loading multiple nested classes and using entry processors. [hazelcast#14105]
  • Fixed an issue where the newly joining members could not form a cluster when the existing members are killed. [hazelcast#14051]
  • Fixed an issue where the IMap.get() method was not resetting the idle time counter when read-backup-data is enabled. [hazelcast#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. [hazelcast#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. [hazelcast#13821]
  • Fixed the discrepancy between the XSD on the website and the one in the download package. [hazelcast#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 the `PagingPredica...
Read more

v5.0

21 Sep 19:12
Compare
Choose a tag to compare

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

Hazelcast 5.0 is a major release which unifies
the former Hazelcast IMDG and Jet products in a
single solution. The changes are summarized below.

For information about upgrading from previous IMDG and Jet
releases, see the Upgrade chapter in https://docs.hazelcast.com/hazelcast/5.0/.

To learn about the changes in previous IMDG and Jet releases, see https://docs.hazelcast.org/docs/rn/ and
https://jet-start.sh/blog/.

New Features

Breaking Changes

API Changes

  • For Google Cloud Storage (GCS) file sources, the SecuredFunction interface now returns a list of permissions instead of a single
    permission. Previously, Hazelcast was returning only the permission for the bucket to be read, and this was causing a source to be
    possibly exploited for gaining information whether some file exists in the system. Now, Hazelcast also returns a permission
    for the keyfile that is required to read a bucket on GCS. [hazelcast#19407]

  • The "Hot Restart Persistence" feature name has been changed to "Persistence"; with this change
    we've performed various cleanups in its API:
    ** The HotRestartService has been deprecated; see <<removed-deprecated-features, Deprecated Features>>.
    ** Renamed com.hazelcast.hotrestart.BackupTask as com.hazelcast.persistence.BackupTask.
    ** Renamed com.hazelcast.hotrestart.BackupTaskState as com.hazelcast.persistence.BackupTaskState.
    ** Added the isBackupEnabled() to PersistenceService/HotRestartService that does
    not have a default implementation.
    [hazelcast#19404]

  • After the unification of cloud discovery plugins (see the Cloud Discovery Plugins section below),
    the exception class for the failure in generating SSLSocketFactory is changed from
    KubernetesClientException to RestClientException for the Kubernetes plugin. [hazelcast#19132]

  • Changed the type of YEAR field in the SQL client protocol from short to int. [hazelcast#18984]

  • Since the HOST and RACK metadata were deprecated in the previous Hazelcast
    release, these information are removed from the ZONE_AWARE partition grouping
    configuration. [hazelcast#18780]

  • Since DAG printing was not reflecting the real queue size, the DAG.toDotString(int defaultParallelism) method
    signature is changed as DAG.toDotString(int defaultLocalParallelism, int defaultQueueSize). You, now, need to supply the
    queue size that will be shown if it is not overriden on the edge. [hazelcast#18475]

Configuration Changes

  • Removed the following properties that were used in the former Jet product, since it
    is now part of Hazelcast 5.0:
    ** jet.home
    ** jet.imdg.version.mismatch.check.disabled
    [hazelcast#18999]

Enhancements

Distribution

The Jet and SQL Engine

  • Added support of rolling upgrades for SQL. [hazelcast#19026]
  • Added support of reading data from High-Density Memory Store backed maps via the SQL engine. [hazelcast#19328]
  • Added support of regular and index (migration tolerant) scan of High-Density Memory Store via SQL. [hazelcast#19227]
  • Tables were called mapping in information_schema.mappings and table in information_schema.columns.
    This inconsistency has been fixed by renaming mapping as table. [hazelcast#19210]
  • Added support of the CONCAT_WS function, which takes variable sized
    VARCHAR (minimum 3) and returns a VARCHAR that consists of the
    concatenation of the arguments except the first one using the first argument as a separator. [hazelcast#19094]
  • The 'SELECT' statement now also supports queries without the FROM clause
    so that you can submit queries like SELECT rand() without this clause. [hazelcast#19030]
  • The Jet engine jobs submitted in a Hazelcast cluster are now cancelled
    when you upgrade your Hazelcast version since the Jet engine doesn't provide backwards compatibility. [hazelcast#19012]
  • Implemented the partition-tolerant index scan processor for Hazelcast maps:
    during a partition migration, this processor searches all the migrated partitions on all
    available cluster members. [hazelcast#18968]
  • Added support of the putIfAbsentAsync() method for maps on the member side;
    which is required for the usage of INSERT INTO statements in SQL queries. [hazelcast#18946]
  • Added support of returning nested fields without having to
    deserialize them, which enables you to use Portable in client/server
    deployments without touching the server side; for example, SQL queries
    can now return columns without having the class on the server-side classpath. [hazelcast#18922]
  • Standardized the TIME and TIMESTAMP temporal formats for the
    SQL engine: You can now use TIME without leading zeroes and TIMESTAMP
    with space instead of the T symbol. Also added support of leading non-zero
    characters for the DATE formats. [hazelcast#18881], [hazelcast#18842]
  • Added support of OFFSET for SQL queries. [hazelcast#18866]
  • Implemented IdentifiedDataSerializable for SQL schema objects. [hazelcast#18851]
  • Changed the since tags in Jet engine API and its extension modules
    from @since x.y to @since Jet x.y. [hazelcast#18832]
  • Implemented the OnHeapMapScanP class to read the Hazelcast maps directly
    by the SQL engine. [hazelcast#18685]
  • Implemented a basic memory management for the SQL engine
    so that number of records accumulated by it can be limited
    to avoid out of memory failures. You can use the max-processor-accumulated-records
    configuration element for this purpose. [hazelcast#18671]
  • Added support of dynamic parameters for the SQL engine and file table functions. [hazelcast#18613], [hazelcast#18522]
  • Introduced QueryDataType.MAP and QueryDataTypeFamily.MAP to support map operand checks
    for file table functions. [hazelcast#18602]
  • Added support of EXTRACT(field FROM source) for the SQL engine.
    The function computes date parts from the source field. The supported types for source argument are as follow:
    ** Date
    ** Time
    ** Timestamp
    ** Timestamp With Time Zone
    [hazelcast#18570]
  • Added support of the LIMIT <n> and ORDER BY clauses for the streaming engine. [hazelcast#18479]
  • Implemented the following functions for the SQL engine:
    ** REPLACE
    ** ATAN2
    ** POWER
    ** SQUARE
    ** SQRT
    ** CBRT
    ** POSITION
    ** COALESCE
    ** NULLIF
    ** TO_EPOCH_MILLIS
    ** TO_TIMESTAMP_TZ
    [hazelcast#18900], [hazelcast#18856], [hazelcast#18510], [hazelcast#18487], [hazelcast#18450], [hazelcast#18424], [hazelcast#18405]
  • Added support of plan caching for Jet engine based queries. [hazelcast#18446]
  • Added support of plus and minus operations for interval types (date, time, etc.) for
    the SQL engine. [hazelcast#18390]
  • Added support of various new Portable types for the SQL engine. [hazelcast#18115]
  • Added support of IN and BETWEEN operators for the SQL queries. [hazelcast#18483], [hazelcast#18422], [hazelcast#18067]

Data Structures

  • The previous Replicated Map implementation was iterating all the values
    while calculating the size of map; ...
Read more

v4.1.5

17 Aug 09:07
Compare
Choose a tag to compare

This document lists the new features, enhancements, fixed issues and, removed or deprecated features for Hazelcast IMDG 4.1.5 release. The numbers in the square brackets refer to the issues in Hazelcast's GitHub repositories.

Fixes

  • Fixed an issue where a high amount of garbage collection pressure was occurring
    during repartitioning especially when having a high partition count. [hazelcast#19295]
  • Fixed an issue where the client state listener was not properly working
    with failover clients (in blue-green deployments); it was failing with
    invalid configuration exception. [hazelcast#19116]

Deprecated/Removed Features

  • Deprecated the following properties:
    ** hazelcast.client.statistics.period.seconds
    ** hazelcast.client.statistics.enabled

v5.0-BETA-2

09 Aug 18:15
Compare
Choose a tag to compare

This document lists the new features, enhancements, fixed issues and, removed or deprecated features for Hazelcast IMDG 3.12 release. The numbers in the square brackets refer to the issues in Hazelcast's GitHub repositories.

==== 3.12 ====

  1. 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.
  1. New Features

Hazelcast IMDG Enterprise New Features:

  • Blue-Green and Disaster Recovery for Java Clients: Introduced the support for Hazelcast Java clients to switch between alternative clusters. See the Blue Green Deployment and Disaster Recovery section.

Hazelcast IMDG Open Source New Features:

  • CP Subsystem: Implementing the https://raft.github.io/[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.
  1. Enhancements

Hazelcast IMDG Enterprise Enhancements:

  • Sharing Hot Restart base-dir among Multiple Members: The base directory for the Hot Restart feature (base-dir) is now used as a shared directory between multiple members, and each member uses a unique sub-directory
    inside this base directory. This allows using the same configuration on all the members. Previously, each member had to use a separate directory which complicated the deployments on cloud-like environments. During the restart, a member tries to lock an already existing Hot Restart directory inside the base directory. If it cannot acquire any, then it creates a fresh new directory. See the Configuring Hot Restart section.
  • Lower Latencies and Higher Throughput in WAN Replication: Improved the design of the WAN replication mechanism to allow configuring it for lower latencies and higher throughput. See the Tuning WAN Replication For Lower Latencies and Higher Throughput section.
  • Add/Remove WAN Publishers in a Running Cluster: Introduced the ability to dynamically add or remove WAN publishers (target clusters). See the Dynamically Adding WAN Publishers section.
  • Automatic Removal of Stale Hot Restart Data: Introduced an option that allows the stale Hot Restart data to be removed automatically. See the description of the auto-remove-stale-data configuration element in the Configuring Hot Restart section.
  • Client Permission Handling When a New Member Joins: Introduced a declarative configuration attribute on-join-operation for the client permission in the Security configuration (its programmatic configuration equivalent is the setOnJoinPermissionOperation() method). This attribute 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.
  • Automatic Cluster Version Change after a Rolling Upgrade: Introduced the ability to automatically upgrade the cluster version after a rolling upgrade. See the Upgrading Cluster Version section.
  • FIPS 140-2 Validation: Hazelcast now can be configured to use a FIPS 140-2 validated module. See the FIPS 140-2 section.

Hazelcast IMDG Open Source 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 the REST API completely, Memcache protocol and 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. [hazelcast#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. [hazelcast#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. [hazelcast#14603]
  • Improved the code comments for the HazelcastInstance interface. [hazelcast#14439]
  • Improved the Javadoc of HazelcastClient so that the code comments now use "unisocket client" instead of "dumb client". [hazelcast#14213]
  • Added the ability to perform an LDAP subtree search for groups in Hazelcast Management Center’s LDAP authenticator. [hazelcast#14118]
  • Added the ability to set the EvictionConfig.comparatorClassName() in the client’s declarative configuration, too. [hazelcast#14093]
  • Introduced 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. [hazelcast#14089]
  • Improved the syncing of XSD files. [hazelcast#14070]
  • The IMap.removeAll() method now supports PartitionPredicate. [hazelcast#12238]
  • Improved the diagnostics tool so that it automatically creates the configured directory for the diagnostic outputs. [hazelcast#11946]
  1. Fixes
  • Fixed an issue where the state of member list on the clients were broken after a hot restart in the cluster. [hazelcast#14839]
  • Fixed an issue where the outbound pipeline was not waking up properly after merging the write-through changes. [hazelcast#14830]
  • Fixed an issue where a Hazelcast Java client was not able to connect to the cluster (which has the advanced-network configuration) after a split-brain syndrome is healed. [hazelcast#14768]
  • Fixed an issue where the like and ilike predicates didn’t catch any entity with the text field containing the '\n' character. [hazelcast#14751]
  • Fixed an issue where NullPointerExceptions was thrown recursively when a client is connected to an unreachable member during a split-brain. [hazelcast#14722]
  • Fixed an issue where Hazelcast running on RHEL (OpenJDK8) shows unknown gc in the logs, instead of major gc and minor gc. [hazelcast#14701]
  • Fixed an issue where the IP client selector was not working for the local clients. [hazelcast#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”. https://github.com/hazelcast/hazelcast/issues/14574[[#14574]]
  • Fixed an issue where a connection configured using AdvancedNetworkConfig was not denied correctly for some inappropriate endpoints. [hazelcast#14532]
  • Fixed the REST service which was not working when the REST endpoint is configured for AdvancedNetworkConfig. [hazelcast#14516]
  • Fixed an issue where the setAsync() method was throwing NullPointerException. [hazelcast#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. [hazelcast#14358]
  • Fixed an issue where mapEvictionPolicy couldn’t be specified in the JSON configuration file. [hazelcast#14092]
  • Fixed an issue where the rolling upgrade was failing when all members change their IP addresses. [hazelcast#14088]
  • Fixed an issue where the resources were not wholly cleared when destroying DurableExecutorService causing some resources to be left in the heap. [hazelcast#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. [hazelcast#14353]
  • Fixed an issue where QueryCache was not returning the copies of the found objects. [hazelcast#14333]
  • Fixed an issue where the MultiMap's RemoveOperation was iterating through the backing collection, which caused performance degradation (when using the SET collection type). [hazelcast#14145]
  • Fixed an issue where the user code deployment feature was throwing NullPointerException while loading multiple nested classes and using entry processors. [hazelcast#14105]
  • Fixed an issue where the newly joining members could not form a cluster when the existing members are killed. [hazelcast#14051]
  • Fixed an issue where the IMap.get() method was not resetting the idle time counter when read-backup-data is enabled. [hazelcast#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. [hazelcast#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. [hazelcast#13821]
  • Fixed the discrepancy between the XSD on the website and the one in the download package. [hazelcast#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 the PagingPredicateQuery comparator s...
Read more