Dear Infinispan community,
Infinispan 14 development release 03 is here! We plan to release Infinispan 14 Final this summer, so we want to share a preview of what’s coming.
Infinispan now requires Java 11 to run (it was only needed to build it before). This means we can use and expose all of the great new APIs that were added, such as
java.util.concurrent.Flow which provides a standard interface for all things reactive.
Which brings us to the…
We have finalized the design of our new user-facing API, which brings the following, much-needed, features:
a common API for both embedded and remote
a single entry-point to access all of the data-structures that we support (caches, counters, locks, multimaps, etc)
our own annotations for indexing entity fields (see below for details)
We are now working on implementing this API for the remote Hot Rod client, while the implementation for embedded will be available in Infinispan 15.
Upgrading to Java 11 also allows us to upgrade to JGroups 5.x, which brings a bunch of improvements:
Improved failure-detection protocols (
The Random Early Drop protocol (
RED), which starts dropping messages on the send side when the queue becomes full to prevent message storms caused by unneeded retransmissions.
The grouping API has a small improvement when searching for keys belonging to a group. The old code was inefficient because it iterates over all keys in the local nodes but that was changed in this release by iterating over a single segment.
The internal codeis now non-blocking, reducing the overall threads spawning and making better use of resources when transactions are committed.
The asynchronous cross-site replication updates are batched in the sender improving the overall resources utilization.
JavaEE is dead. Long-live JakartaEE. Wherever we used to depend on
javax APIs, we now depend on their
jakarta equivalent. We still provide compatibility artifacts for legacy deployments.
Hibernate ORM 6.0 compatibility
Infinispan’s Hibernate ORM second-level cache (2LC) implementation has been upgraded to work with Hibernate 6.0.
Indexing and Query
Lots has been happening in the land of indexing and querying.
Upgraded Hibernate Search to 6.1 and Lucene 8.11.
Brand-new annotations for indexing annotations in place of the old Hibernate annotations.
Schema index update to acquire ProtoBuf schema backward-compatible changes without touching the pre-existing index data.
The removal of the
@ProtoDocannotation to wrap indexing annotations for ProtoBuf generation.
New indexing startup mode configuration, to trigger purge or reindex automatically when the cache starts.
Support pagination for unbounded result size queries with the HotRod client.
Support query parameters for full-text analyzed fields.
Support normalizers with the HotRod client.
Improve the Hybrid query system.
We’ve replaced our use of SmallRye Metrics (an implementation of Microprofile Metrics), with the much better Micrometer.
RESPendpoint: a Redis-compatible endpoint connector (implementing the RESP 3 protocol) with support for a subset of commands:
ping. The connector integrates with our security and protocol auto-detections, so that it is easily usable from our single-port endpoint. The implemented commands should be enough for basic usage. If you would like to see more, reach out via our community.
Support for FIPS environments (PKCS#11)
Support for masked and external credentials
The console now sports a cache-creation wizard: a feature-driven approach to configuring caches just the way you need them.
As always, the Infinispan team hope you find the documentation useful and complete. We’d love to hear from you and really value feedback from our community. If you think something is missing from the docs or spot a correction, please get in touch and we’ll get on it straight away.
You can look at the release notes to see what has changed.
Get it, Use it, Ask us!We’re hard at work on new features, improvements and fixes, so watch this space for more announcements!
Please, download and test the latest release.
If you have questions, are experiencing a bug or want advice on using Infinispan, you can use StackOverflow. We will do our best to answer you as soon as we can.