Infinispan 9.2.0.Final "Gaina" is out !
Our three-month time-boxing for a minor release plan got a little bit skewed this time in order to accommodate for some additional overhauls. This also means that, for a minor release, this is much meatier than usual.
Core improvements
- Conflict resolution
Automatic conflict resolution after a partition merge is now supported for all partition handling strategies and is enabled by default. Furthermore, it is now possible to deploy custom EntryMergePolicy implementations to the server - Reactive streams-based distributed Iteration improvements
Distributed iterator now uses less threads and allows for efficient parallel retrieval providing for improved throughput - Biased reads for scattered caches
Originator can read the ‘backup’ copy locally until the data gets overwritten again. Together with improved read performance this migrates data to nodes that use it. - Off-heap sizing
Off-heap requires less overhead per entry and provides for more accurate sizing allowing you to maximize your memory used - Exception based evictionA new "eviction" that instead of removing old entries prevents new entries being inserted (supported by all memory storage and eviction types)
API improvements
- Multimap caches
Available for both Embedded and for Hot Rod, these maps which can store multiple values for the same key - Clustered Counters
Clustered counters are now available for Hot Rod and in non-clustered deployments. - Clustered Locks
Available in embedded mode. They allow concurrent synchronization between nodes in the same cluster - Wildcard configurations
Implicitly use a predefined configuration for all caches whose name matches a wildcard. This is particularly useful when using Infinispan through an API which doesn't allow for additional configuration properties (such as JCache). - Cluster-wide cache admin with optional persistence
The CacheManager API has been enhanced with methods to create/destroy caches across a cluster, in both Embedded and Hot Rod scenarios (REST will come in 9.3). Optionally, configurations can be made persistent across restarts. - Cache Stream
Overloaded collect() method to take Supplier so that collect() in clustered environments is more user-friendly.
Data Interoperability
Transcoding is a powerful new feature which allows for transparent conversion between a number of formats across different endpoints. For example, it is now possible to write ProtoBuf-encoded data through the Hot Rod endpoint and retrieve that same data as a JSON document through the REST endpoint and vice versa. Additionally, such data is also indexable and queryable.
Indexing and Query
- POJO queries over Hot Rod
It is now possible to directly use Hibernate Search-annotated objects through JBoss Marshalling/Java serialization without the need for ProtoBuf over Hot Rod. - Broadcast queries
Clustered queries have been unified with non-clustered queries under a single API, making their use transparent.
Infinispan Server
- Rebased on WildFly 11
The server baseline has been updated to WildFly 11 - Async Hot Rod server
The Hot Rod server now uses async ops, sparing CPU cycles from context-switching and reducing the latency. - Queries over REST
The REST endpoint now supports running Ickle queries. This is fully integrated with the above-mentioned JSON support, so your results will be returned to you as JSON documents. - Netty Hot Rod Client
The Hot Rod Java client network layer has been completely rewritten to use Netty, bringing true asynchronous calls and some performance benefits.
Management, monitoring and logging
- Console support for counters
- Improved remote protocol access logging
- Jolokia is now integrated as a part of the server.
Infinispan on OpenShift
We have been doing a lot of work in making Infinispan a first-class citizen of OpenShift. Check out the OpenShift templates for more details.
Integrations
- JCache 1.1
This release is now aligned with JCache 1.1. - Hibernate second-level cache provider
Traditionally shipped by our friends on the Hibernate ORM team, this component has now changed ownership over to us. This release includes a provider for both Hibernate 5.1 and 5.2. - Azure cloud discoveryCourtesy of JGroups' extras, we now support discovery in Azure.
The codename
In the grand-old tradition of giving major and minor Infinispan releases a beer-themed codename, 9.2 is no exception.
"Gaina", which means "chicken" in the milanese dialect, also happens to be one of the great beers of the Birrificio Lambrate in Milan.
Onwards to 9.3
We have already started working on our next release, 9.3 which should be with you at the end of May. This will continue the work to make Infinispan fully asynchronous inside out, reducing resource usage and increasing performance. We are also working on a new modular API which will improve usability, increase interoperability between embedded and remote scenarios and take advantage of reactive designs. Transactions should finally make their appearance in Hot Rod and security will be greatly enhanced, by taking advantages of the great work done by our friends over on the Elytron team. We have much more planned, so please consult our roadmap for details.
Download, learn and play
You will find downloads, documentation, tutorials, quickstarts and demos over on our website.
Please let us know on our forum, on IRC, on our issue tracker if you have any issues with this release, if there is any feature you would like to see in the future, or just to chat.