All Downloads are FREE. Search and download functionalities are using the official Maven repository.

.hazelcast.3.6-EA.source-code.release_notes.txt Maven / Gradle / Ivy

There is a newer version: 5.5.0
Show newest version

In this Release Notes document, you will find the new features, enhancements and fixes of the Hazelcast 3.5 release.
The numbers in the square brackets refer to the number of the issues in Hazelcast’s GitHub repository. You can reach
to the full descriptions of the issues at https://github.com/hazelcast/hazelcast/issues/.

1. New Features
This section provides the new features introduced with Hazelcast 3.5 release. 

- Async Back Pressure: The Back Pressure introduced with Hazelcast 3.4 now supports async operations.

- Client Configuration Import: Hazelcast now supports replacing variables with system properties in the declarative configuration of Hazelcast client. Moreover, now you can compose the Hazelcast client declarative configuration out of smaller configuration snippets.

- Cluster Quorum: This feature enables you to define the minimum number of machines required in a cluster for the cluster to remain in an operational state. 

- Hazelcast Client Protocol: Starting with 3.5, Hazelcast introduces the support for different versions of clients in a cluster. Please keep in mind that this support is not valid for the releases before 3.5.

- Listener for Lost Partitions: This feature notifies you for possible data loss occurrences.

- Increased Visibility of Slow Operations: With the introduction of the `SlowOperationDetector` feature, slow operations are logged and can be seen on the Hazelcast Management Center.

- Enterprise WAN Replication: Hazelcast Enterprise implementation of the WAN Replication.

- Sub-Listener Interfaces for Map Listener: This feature enables you to listen to map-wide or entry-based events. With this new feature, the listener formerly known as `EntryListener` has been changed to `MapListener` and `MapListener` has sub-interfaces to catch map/entry related events.

- Scalable Map Loader: With this feature, you can load your keys incrementally if the number of your keys is large.

- Near Cache for JCache: Now you can use a near cache with Hazelcast's JCache implementation.

- Fail Fast on Invalid Configuration: With this feature, Hazelcast throws a meaningful exception if there is an error in the declarative or programmatic configuration.

- Continuous Query Caching

- Dynamic Selector Rebalancing

- Management of Unbounded Return Values



2. Enhancements

This section lists the enhancements performed for Hazelcast 3.5 release.

- Eventing System Improvements: RingBuffer and Reliable Topic structures are introduced.
- XA Transactions Improvements: With this improvement, you can now obtain a Hazelcast XA Resource instance through `HazelcastInstance`. 
- Query and Indexing Improvements 

The following are the other improvements performed to solve the enhancement issues opened by the Hazelcast customers.

- While configuring JCache, duration of the `ExpiryPolicy` can be set programmatically but not declaratively [#5347].
- Since near cache is not supported as embedded but only at client, at the moment, there is no need for `NearCacheConfig` in `CacheConfig` [#5215].
- `SlowOperationDetector` should have an option to not to log the stacktraces to the log file. There is no need to have the stacktraces written to the normal log file if the Hazelcast Management Center or the performance monitor is being used [#5043].
- There are no Spring tags available for Native Memory configuration [#4772].
- In the class `BasicInvocationFuture`, there is no need to create an additional `AtomicInteger` object. It should be replaced with `AtomicIntegerFieldUpdater` [#4408].
- There is no need to use the class `IsStillExecutingOperation` to check if an operation is running locally. One can directly access to the scheduler [#4407].
- Configuring NearCache in a Client/Server system only talks about the programmatic configuration of NearCache on the clients. The declarative configuration (XML) of the same is not mentioned [#4376].
- The JavaDoc for the methods `KeyValueSource.hasNext/element/key` and `Iterator.hasNext/next` should emphasize the differences between each other, i.e. the state changing behavior should be clarified [#4218].
- While migration is in progress, the nodes will have different partition state versions. If the query is running at that time, it can get results from the nodes at different stages of the migration. By adding partition state version to the query results, it can be checked whether the migration was happening and the query can be re-run [#4206].
- XML Config Schema does not allow to set a `SecurityInterceptor` Implementation [#4118].
- Currently, certain types of remote executed calls are stored into the `executingCalls` map. The key (and value) is a `RemoteCallKey` object. The functionality provided is the ability to ask on the remote side if an operation is still executing. For a partition-aware operation, this is not needed. When an operation is scheduled by a partition specific operation thread, the operation can be stored in a volatile field in that thread [#4079].
- The class `TcpIpJoinerOverAWS` fails at AWS' recently launched eu-central-1 region. The reason for the fail is that the region requires v4 signatures [#3963].
- The `hazelcast-spring-<`*version*`>.xsd` should include the User Defined Services (SPI) elements and attributes [#3565].
- Map wildcard matching is confusing. There should be a pluggable wildcard configuration
resolver [#2431].


3. Fixes

*3.5 Fixes*

This section lists issues solved for **Hazelcast 3.5** release.

- Operation timeout mechanism is not working [#5468].
- `MapLoader` exception is not logged: Exception should be logged and propagated back to the client that triggered the loading of the map [#5430].
- Replicated Map documentation page does not mention that it is in the beta stage [#5424].
- The method `XAResource.rollback()` should not need the transaction to be in the prepared state when called from another member/client [#5401].
- The method `XAResource.end()` should not need to check `threadId` [#5400].
- The method `IList::remove()` should publish the event `REMOVED` [#5386].
- `IllegalStateException` with wrong partition is thrown when the method `IMap::getOperation()` is invoked [#5341].
- `WrongTarget` warnings appear in the log since the operations are not sent to the replicas when a map has no backups [#5324].
- When the method `finalizeCombine()` is used, Hazelcast throws `NullPointerException` [#5283].
- `WanBatchReplication` causes `OutOfMemoryException` when the default value for WAN Replication Batch Size (50) is used [#5280].
- When testing Hazelcast, it does not start as an OSGI bundle. After the OSGI package was refactored, the dynamic class loading of the Script engine was missed [#5274].
- XA Example from Section 11.3.5 in the Reference Manual broken after the latest XA Improvements are committed [#5273].
- XA Transaction throws `TransactionException` instead of an `XAException` on timeout [#5260].
- The test for unbounded return values runs forever with the new client implementation [#5230].
- The new client method `getAsync()` fails with a `NegativeArraySizeException` [#5229].
- The method `putTransient` actuated the MapStore unexpectedly in an environment with multiple instances [#5225].
- Changes made by the interceptor do not appear in the backup [#5211].
- The method `removeAttribute` will prevent any updates by the method `setAttribute` in the deferred write mode [#5186].
- Backward compatibility of eviction configuration for cache is broken since `CacheEvictionConfig` class was renamed to `EvictionConfig` for general usage [#5180].
- Value passed into `ICompletableFuture.onResponse()` is not deserialized [#5158].
- Map Eviction section in the Reference Manual needs more clarification [#5120].
- When host names are not registered in DNS or in `/etc/hosts` and the members are configured manually with IP addresses and while one node is running, a second node joins to the cluster 5 minutes after it started [#5072].
- The method `OperationService.asyncInvokeOnPartition()` sometimes fails [#5069].
- The `SlowOperationDTO.operation` shows only the class name, not the package. This can lead to ambiguity and the actual class cannot be tracked [#5041].
- There is no documentation comment for the `MessageListener` interface of ITopic [#5019].
- The method `InvocationFuture.isDone` returns `true` as soon as there is a response including `WAIT_RESPONSE`. However, `WAIT_RESPONSE` is an intermediate response, not a final one [#5002].
- The method `InvocationFuture.andThen` does not deal with the null response correctly [#5001].
- `CacheCreationTest` fails due to the multiple `TestHazelcastInstanceFactory` creations in the same test [#4987].
- When Spring dependency is upgraded to 4.1.x, an exception related to the `putIfAbsent` method is thrown [#4981].
- HazelcastCacheManager should offer a way to access the underlying cache manager [#4978].
- Hazelcast Client code allows to use the value *0* for the `connectionAttemptLimit` property which internally results in `int.maxValue`. However, the XSD of the Hazelcast Spring configuration requires it to be at least 1 [#4967].
- Updates from Entry Processor does not take `write-coalescing` into account [#4967].
- CachingProvider does not honor custom URI [#4943].
- Test for the method `getLocalExecutorStats()` fails spuriously [#4911].
- Missing documentation of network configuration for JCache [#4905].
- Slow operation detector throws a `NullPointerException` [#4855].
- Consider use of `System.nanoTime` in `sleepAtLeast` test code [#4835].
- When upgraded to 3.5-SNAPSHOT for testing, Hazelcast project gives a warning that mentions a missing configuration for `hazelcastmq.txn-topic` [#4790].
- `ClassNotFoundException` when using WAR classes with JCache API [#4775].
- When Hazelcast is installed using Maven in Windows environment, the test `XmlConfigImportVariableReplacementTest` fails [#4758].
- When a request cannot be executed due to a problem (connection error, etc.), if the operation redo is enabled, request is retried. Retried operations are offloaded to an executor, but after offloading, the user thread still tries to retry the request. This causes anomalies like operations being executed twice or operation responses being handled incorrectly [#4693].
- Client destroys all connections when a reconnection happens [#4692].
- The `size()` method for a replicated map should return `0` when the entry is removed [#4666].
- `NullPointerException` on the `CachePutBackupOperation` class [#4660].
- When removing keys from a MultiMap with a listener, the method `entryRemoved()` is called. In order to get the removed value, one must call the `event.getValue()` instead of `event.getOldValue()` [#4644].
- Unnecessary deserialization at the server side when using `Cache.get()` [#4632].
- Operation timeout exception during `IMap.loadAllKeys()` [#4618].
- There have been Hazelcast AWS exceptions after the version of AWS signer had changed (from v2 to v4) [#4571].
- In the declarative configuration; when a variable is used to specify the value of an element or attribute, Hazelcast ignores the strings that come before the variable [#4533].
- `LocalRegionCache` cleanup is working wrongly [#4445].
- Repeatable-read does not work in a transaction [#4414].
- Hazelcast instance name with `Hibernate` still creates multiple instances [#4374].
- In Hazelcast 3.3.4, `FinalizeJoinOperation` times out if the method `MapStore.loadAllKeys()` takes more than 5 seconds [#4348].
- JCache sync listener completion latch problems: Status of `ICompletableFuture` while waiting for completion latch in the cache must be checked [#4335].
- Classloader issue with `javax.cache.api` and Hazelcast 3.3.1 [#3792].
- Failed backup operation on transaction commit causes ""Nested transactions are not allowed!" warning [#3577].
- Hazelcast Client should not ignore the fact that the XML is for server and should not use default XML feature to connect to `localhost` [#3256].
- Owner connection `read()` forever [#3401].







© 2015 - 2024 Weber Informatics LLC | Privacy Policy