What's New in Hazelcast 3.2
Release Notes
New Features
This section provides the new features introduced with Hazelcast 3.2 release.
- NIO Client: New architecture based on NIO introduced to support more scalable and concurrent client usage.
- MapReduce Framework: MapReduce implemented for your key-value collections that need to be reduced by grouping the keys. Please see the interview and Chapter 14 - Hazelcast MapReduce.
- Order/Limit Support: Now you can order and limit results returned by queries performed on Hazelcast Distributed Map.
- C++ Client: Native C++ client developed for C++ users which can connect to a Hazelcast cluster and realize almost all operations that a node can perform. Please see Native Clients.
- C# Client: Also, Native C# client that has a very similar API with Native Java client developed. Please see Native Clients.
Improvements
This section provides the improvements performed for Hazelcast 3.2 release.
- Size of a distributed queue via REST API can be returned. [#1809]
- InitialLoadMode configuration parameter (having Lazy and Eager as values) added to MapStoreConfig. [#1751]
- Tagging support for Executor Service introduced such that nodes can be tagged for IExecutorService. [1457]
getForUpdate()
operation for transactional map introduced. [#1033]
- Entry processor can run on a set of keys with the introduction of
executeOnKeys(keys,entryprocessor)
method for IMap. [1423]
getNearCacheStats()
introduced. Statistics for near cache can be retrieved. [#30]
Please see the list of all enhancement issues here.
Fixes
This section lists issues solved for Hazelcast 3.2 release.
LocalMapStats.getNearCacheStats()
can return null when it is called before a map get that calls initNearCache()
. [#2009]
testMapWithIndexAfterShutDown
fails in OpenJDK. [#2001]
- Portable Serialization needs objects to be shared between client and server. [#1957]
- Near cache entries should be locally invalidate on
IMap.executeOnKey()
. [#1951]
- OperationTimeoutException is thrown when executing task that runs longer than
hazelcast.operation.call.timeout.millis
. [#1949]
MapStore#store
was called when executing AbstractEntryProcessor on backup. [#1940]
- After an OperationTimeoutException is thrown from `ILock.tryLock() (and after the system is back in a normal state), the named lock remains locked. [#1937]
- Hazelcast client needs OutOfMemoryErrorDispatcher. [#1933]
- Near Cache: Caching of local entries may lead to race condition. [#1905]
- After key owner node dies, it takes too much time for threads to wakeup from
condition.await()
. [#1879]
- Possible improvements/fixes for NearCache. [#1863]
MultipleEntryBackupOperation
does not handle deletion of entries. [#1854]
- If topics are created/destroyed, then the statistics for that topic are not destroyed and this can cause a memory leak. [#1847]
- PartitionService backup/replication fixes. [#1840]
- Cached null values remain in near cache after
evict
is called. [#1829]
- NullPointerException in MultiMap when the service is shutdown before the migration is processed. [#1823]
- Network interruption causes node to continually warn with WrongTargetException. [#1815]
DefaultRecordStore#removeAll
should be modified so that it keeps "key objects to delete" as a list, not a set. [#1795]
- Very long
operation.run()
call stack especially when high partition count is used. [#1745]
- When executing an entry processor with an index aware predicate, the index is not used, instead the predicate is applied to the entire entry set. [#1719]
- When one node goes down in a cluster with 2 nodes (where near cache is enabled),
containsKey
call hangs in the second node. [#1688]
- When deleting an entry from an entry processor by setting the value to null, it is not removed from the backup store. [#1687]
- Client calls executed at server side cause unwanted (de)serialization. [#1669]
- In
TrackableJobFuture.get(long, TimeUnit)
, there is a 100 ms of sleep-spin while waiting for the result of a MapReduce task to be set. [#1648]
- If
storeAll
takes much time and if instance terminates while map store is running, data can be lost. [#1644]
- A missing Spring 4 Cache method added to hazelcast-spring package (namely
public T get(Object key, Class type)
). [#1627]
- When eviction tasks are canceled,
scheduledExecutorService
is not cleaned. [#1595]
storeAll()
with new value for the same key should not be executed until any previous storeAll()
operations with the same key are not completed. [#1592]
- When using native client to interact with Hazelcast cluster, some JMX MBean attribute values on cluster nodes are not set/updated. [#1576]
IMap.getAll(keys)
method does not read from near cache. [#1532]
- Near Cache cache-local-entries attribute is missing in
hazelcast-spring-3.2
XSD. [#1524]
- Exception while executing script in OpenJDK 8. [#1518]
- Infinite waiting on merge operations when cluster shuts down. [#1504]
- Client side socket interceptor is not needed to be MemberSocketInterceptor. [#1444]
- Near cache on the local node should be enabled if its InMemoryFormat is different from that of the map. [#1438]
- Async EntryProcessor does not deserialize the value before it is called back. [#1433]
- A submitted task cannot be canceled via the native client. [#1394]
executeOnKeys(keys,entryprocessor)
introduced on IMap. With this feature entry processor can be run on a set of keys. [#1339]
- FINEST logging should be guarded where appropriate. [#1332]
- False errors reported in Eclipse due to schema definition. [#1330]
- Index based operations are not synchronized with partition changes. [#1297]
- Management Center: InvocationTargetException in Tomcat console when a node is started and then stopped. [#1267]
- The system property
hazelcast.map.load.chunk.size
is being ignored in Hazelcast 3.1. [#1110]
- Master should fire repartitioning after getting confirmation from nodes. [#1058]
- SqlPredicate does not Implement equals/hashCode. [#960]
DelegatingFuture.isDone
seems to always return false until the method DelegatingFuture.get
is called. [#850]
- Predicate support for entry processor. [#826]
RC2 Fixes
ClientService.getConnectedClients
returns all end points [#1883].
- MultiMap is throwing
ConcurrentModificationExceptions
[#1882].
executorPoolSize
field of ClientConfig cannot be configured using XML [#1867].
- Partition processing cannot be postponed [#1856].
- Memory leak at client endpoints [#1842].
- Errors related to management center configuration on startup [#1821].
- XML parsing error by client [#1818].
ClientReAuthOperation
cannot return response without call ID [#1816].
MemberAttributeOperationType
should be introduced to remove the dependency to MapOperationType
[#1811].
- Entry listener removal from MultiMap [#1810].
- Change
DefaultRecordStore#removeAll
to keep "key objects to delete" as a list, not a set [#1795].
RC1 Fixes
- TransactionalMap does not support
put(K,V,long,TimeUnit)
[#1718].
- Entry is not removed from backup store when it is deleted using entry processor [#1687].
- Possibility of losing data when MapStore takes a long time [#1644].
- When eviction tasks are cancelled,
scheduledExecutorService
should be cleaned [#1595].
- A fix related to StoreAll is needed in a write-behind scenario [#1592].
- Update problem at map statistics [#1576].
- Exception while executing script in OpenJDK 8 [#1518].
- StackOverflowError at
AndResultSet
[#1501].
- Near Cache using
InMemoryFormat.OBJECT
also for local node [#1438].
- Async entry processor is not deserializing the value before returning [#1433].
- Distributed Executor; Future Cancel is not working [#1394].
HazelcastInstanceFactory$InstanceFuture.get()
never returns when newHazelcastInstance()
method fails/throws exception [#1253].
- Changes for Vertx on Openshift [#1176].
- Serialization should be performed after database interaction for MapStore [#1115].
- System property related to chunk size is passed over in Hazelcast 3.1 [#1110].
- Map backups lack eviction of some specific data [#1085].
DelegatingFuture.isDone
always returns false until get is called [#850].
- Predicate support for entry processor [#826].
- Full replication of Maps should be performed [#360].
- Near cache statistics [#30].
Known Issues & Workarounds
Plese see here for the known issues.