Chapter 1. Data Grid release information
Learn about new features and get the latest Data Grid release information.
1.1. Removal notice for Data Grid release 8.4.7
In Data Grid 8.4.7, the following features and functionality are removed.
Hot Rod .NET client
The Hot Rod .NET client is not provided with Data Grid 8.4.7.
1.2. Deprecation notice for Data Grid release 8.4.7
In Data Grid 8.4.7, the following features and functionality are deprecated and planned to be removed in future Data Grid releases.
Red Hat will provide support for these features and functionalities during the current release lifecycle, but they will no longer receive enhancements and will be eventually removed. It is recommended to transition to alternative solutions to ensure future compatibility.
Hot Rod C++ client
The support for Hot Rod C++ client is deprecated and planned to be removed in future releases.
You can continue using Hot Rod C++ client client in combination with the latest Data Grid Server version.
Hot Rod Node.js client
The support for Hot Rod Node.js client client is deprecated and planned to be removed in future releases.
You can continue using Hot Rod Node.js client client client in combination with the latest Data Grid Server version.
1.3. What’s new in Data Grid 8.4.7
Data Grid 8.4.7 improves usability, increases performance, and enhances security. Find out what’s new.
Data Grid 8.4.7 security update
Data Grid 8.4.7 provides a security enhancement to address CVEs. You must upgrade any Data Grid 8.4 deployments to version 8.4.7 as soon as possible.
For more information see the advisory related to this release RHSA-2024:1509.
Red Hat Insights Java client
Red Hat Data Grid 8.4 Update 7 onward contains the Red Hat Insights Java client. The Red Hat Insights Java client is enabled for Data Grid only if Data Grid is installed on Red Hat Enterprise Linux (RHEL), and the RHEL system has Red Hat Insights client installed, configured, and registered. For more information, see the Client Configuration Guide for Red Hat Insights.
The Red Hat Insights dashboard for Runtimes will be available in a future release on Red Hat Hybrid Cloud Console. Similar to the RHEL dashboard which is available on the Red Hat Hybrid Cloud Console, the Runtimes dashboard will show the inventory of the Runtimes installations, CVE details, and help you select the JVM options.
You can opt-out of the Red Hat Insights Java client client by setting the environment variable RHT_INSIGHTS_JAVA_OPT_OUT
to true
. For more information, see the knowledge base article Red Hat Insights for Runtimes.
Improvements to cross-site message handling
To prevent the scenario where JGroups site-up events are delivered after the cross-site event resulting in the cross-site events being discarded, Data Grid 8.4.7 cross-site events are retried in case of an exception. Additionally, if cache or cache manager isn’t in the running state yet, cross-site events are retried rather than making the site offline.
Ability to configure encryption when using Helm chart
In Data Grid 8.4.7, you can enable TLS when provisioning Data Grid with Helm chart to ensure that communication with Data Grid clusters is encrypted. You can specify TLS configuration for both endpoint, and cluster transport in the Helm configuration.
For more information, see Configuring encryption.
Ability to configure security context for StatefulSet pods
You can now configure the security context for StatefulSet pods by using the deploy.securityContext
attribute.
For more information see Data Grid Operator Guide Deployment configuration values.
IBM WebSphere Liberty transaction manager
You can now use transactional caches inside your IBM WebSphere Liberty applications. Data Grid looks up and registers with the Transaction Manager running in IBM WebSphere Liberty.
Support for JBoss marshalling
JBoss Marshalling was deprecated in Data Grid 8.4.6 and earlier versions. From Data Grid 8.4.7 onwards, it is fully supported.
1.4. What’s new in Data Grid 8.4.6
Data Grid 8.4.6 improves usability, increases performance, and enhances security. Find out what’s new.
Support for count(*)
in aggregation queries
Data Grid 8.4.6 adds support for the count(*)
syntax in aggregation queries. You can use the count(*)
syntax in aggregation queries to retrieve the count of all instances in each group, regardless of specific field values.
Enhanced metrics
Data Grid 8.4.6 includes the following enhancements to metrics:
- Latency metrics between two Data Grid nodes
- Histograms that provide details about latency distribution
-
Additional Micrometer meters, such as
Counter
,FunctionTimer
, andDistributionSummary
1.5. Data Grid 8.4.5 security update
Data Grid 8.4.5 provides a security enhancement to address a CVE. You must upgrade any Data Grid 8.4 deployments to version 8.4.5 as soon as possible.
For more information see the advisory related to this release RHSA-2023:5716.
1.6. What’s new in Data Grid 8.4.4
Data Grid 8.4.4 improves usability, increases performance, and enhances security. Find out what’s new.
Support for tracing with OpenTelemetry
Data Grid 8.4.4 now lets you generate tracing spans compatible with the OpenTelemetry standard, allowing you to export, visualize, and analyze tracing data related to the most important cache operations.
You can enable tracing between Data Grid Server and Hot Rod client or REST API to monitor and analyze the flow of requests, and track the execution path across different components.
For more information see the documentation:
Improved metrics naming for JGroups and cross-site metrics
In Data Grid 8.4.4, you can enable the name-as-tags
property for JGroups metrics and cross-site metrics.
Enabling name-as-tags
simplifies metrics, displaying cluster and site names as tags rather than including them in metric names.
When you set name-as-tags
to false
, metrics are named based on the channel, resulting in multiple metrics for the same purpose:
# TYPE vendor_jgroups_xsite_frag4_get_number_of_sent_fragments gauge # HELP vendor_jgroups_xsite_frag4_get_number_of_sent_fragments Number of sent fragments vendor_jgroups_xsite_frag4_get_number_of_sent_fragments{cluster="xsite",node="..."} 0.0 # TYPE vendor_jgroups_cluster_frag4_get_number_of_sent_fragments gauge # HELP vendor_jgroups_cluster_frag4_get_number_of_sent_fragments Number of sent fragments vendor_jgroups_cluster_frag4_get_number_of_sent_fragments{cluster="cluster",node="..."} 2.0
When you set name-as-tags
to true
, metrics are simplified, and cluster and site names appear as tags:
# TYPE vendor_jgroups_frag4_get_number_of_sent_fragments gauge # HELP vendor_jgroups_frag4_get_number_of_sent_fragments Number of sent fragments vendor_jgroups_frag4_get_number_of_sent_fragments{cache_manager="default",cluster="xsite",node="..."} 0.0 vendor_jgroups_frag4_get_number_of_sent_fragments{cache_manager="default",cluster="cluster",node="..."} 2.0
In addition to simplified metrics, when you change the cluster name and site name, there is no need to update Grafana dashboards, as the metric names remain consistent.
Improved performance of indexed queries
You can now limit the required accuracy of hit counts by setting hit-count-accuracy
attribute. When dealing with large data sets, precise hit counts can impact performance. Setting a limit to the hit count accuracy, lets you achieve faster query responses while ensuring that the provided hit counts remain sufficiently accurate for your application’s needs.
The default accuracy of the hit-count-accuracy
attribute is limited to 10000
. This means that for any query, Data Grid provides exact hit count up to maximum of 10000. If the effective hit count is higher than 10000, Data Grid returns a lower bound estimate of the count.
For more information see Creating Ickle queries - Hit count accuracy.
Concurrent based methods for NearCache
SPI
The NearCache
SPI has been updated to have concurrent based methods. This enhancement addresses an issue where concurrent accesses could lead to stale entries being saved in the near cache and resulted in inconsistent data.
1.7. Deprecation notice for Data Grid release 8.4.3
In Data Grid 8.4.3, the following features and functionality are deprecated and planned to be removed in future Data Grid releases.
Red Hat will provide support for these features and functionalities during the current release lifecycle, but they will no longer receive enhancements and will be eventually removed. It is recommended to transition to alternative solutions to ensure future compatibility.
Support for Java 11
Support for Java 11 is deprecated and planned to be removed in Data Grid version 8.5. Users of Data Grid 8.5 must upgrade their applications at least to Java 17.
You can continue using older Hot Rod Java client versions in combination with the latest Data Grid Server version. However, if you continue using older version of the client you will miss fixes and enhancements.
Support for Java EE dependencies
Support for Java EE dependencies is deprecated and planned to be removed in Data Grid version 8.5. Transition to Jakarta EE dependencies and APIs to align with the evolving Java enterprise ecosystem.
Support for Spring 5.x and Spring Boot 2.x
Support for Spring Boot 2.x and Spring 5.x is deprecated and planned to be removed in version Data Grid 8.5. Migrate to newer versions of Spring Boot and Spring framework for compatibility with future Data Grid releases.
Support for JCache
Support for JCache (JSR 107) is deprecated and planned to be removed in Data Grid version 8.5. As an alternative use other caching API developments in the Jakarta EE ecosystem.
Deprecation of Data Grid modules for Red Hat JBoss EAP
The Data Grid modules for Red Hat JBoss EAP applications that were distributed as a part of the Data Grid release are deprecated and planned to be removed in Data Grid version 8.5.
JBoss EAP users can use the infinispan
subsystem that is integrated within the JBoss EAP product release without the need to separately install Data Grid modules.
Scattered cache mode
Scattered cache mode is deprecated and planned to be removed in Data Grid version 8.5. As an alternative to scattered caches, you can use distributed caches instead.
Adding caches to ignore list using the Data Grid Console or REST API
The ability to add caches to the ignore list using the Data Grid Console or REST API, which allows temporarily excluding specific caches from client requests, is deprecated. This feature is planned to be removed in future releases.
Cache
service type
The Cache
service type is deprecated and planned to be removed in Data Grid 8.5. The Cache
service type was designed to provide a convenient way to create a low-latency data store with minimal configuration. Use the DataGrid
service type to automate complex operations such as cluster upgrades and data migration.
Testing Data Grid Server on Windows
The support for Data Grid Server on on Windows Server 2019 is deprecated and planned to be removed in Data Grid 8.5. However, the Data Grid team will continue testing C++ Hot Rod client with Windows Server 2019.
1.8. What’s new in Data Grid 8.4.3
Data Grid 8.4.3 improves usability, increases performance, and enhances security. Find out what’s new.
Cache name added to the index file path
The cache name is now included as part of the default index path. The index path specifies the filesystem path for the index when the storage is set to 'filesystem', and it can be a relative or absolute path.
When you set a custom value for the index path, ensure there are no conflicts between caches that use the same indexed entities.
Simplified testing with infinispan-dev-mode.xml file
Data Grid Server distribution now includes infinispan-dev-mode.xml
file that provides you with necessary configuration to simplify development experience with Data Grid and Quarkus projects. The infinispan-dev-mode.xml
configuration file enables BASIC
client authentication for the Hot Rod client and cross-site configuration.
To start the Data Grid Server with this configuration, complete the following steps:
-
Copy the
server/
directory and rename the directory toserver2/
. Start the first server using the
infinispan-dev-mode.xml
file../bin/server.sh -c infinispan-dev-mode.xml
In another terminal, start the second server using the same configuration.
./bin/server.sh -c infinispan-dev-mode.xml -s server2 -Dinfinispan.site.name=site2 -o 100 -Djgroups.mcast_port=46656
- See the Data Grid logs to verify that Data Grid Servers have successfully formed cross-site view.
Enhanced DNS resolution for Hot Rod client
The Hot Rod client now supports alternate resolution strategies for connecting to Data Grid Server. You can configure the Hot Rod client with a single internal service DNS name that contains DNS entries for all running pods in the Data Grid cluster. Then the Hot Rod client can retrieve and use all the DNS records associated with that name, connecting to any available Data Grid Server instance.
Jakarta EE version of the Infinispan Test Driver
Data Grid distributes infinispan-server-testdriver-core-jakarta
for users who are developing applications using the Jakarta EE platform.
Improved reindex performance with SQL query store
Data Grid 8.4.3 includes notable performance improvements specifically for reindex operations with SQL query store.
1.9. What’s new in Data Grid 8.4.2
Data Grid 8.4.2 improves usability, increases performance, and enhances security. Find out what’s new.
Support for Spring 6 and Spring Boot 3
Data Grid 8.4.2 adds support for Spring 6 and Spring Boot 3. Both Spring 6 and Spring Boot 3 require Java 17.
If you want to use the latest version of Spring or Spring Boot, update your artifacts as follows:
Spring 6
-
Embedded caches:
infinispan-spring6-embedded
-
Remote caches:
infinispan-spring6-remote
Spring Boot 3
-
Embedded caches:
infinispan-spring-boot3-starter-embedded
Data Grid continues support for previous versions. You can continue using Spring 5 and Spring Boot 2.x in Data Grid 8.4.
Enhancements to cluster shutdown
Data Grid 8.4.2 includes several enhancements to prevent data loss and ensure consistency when you use the shutdown cluster
command:
- Data Grid restricts access to the data stored in the cluster and modifications of the cluster state until the cluster is fully operational again.
- Improved error messages indicating that data stored in the cluster cannot be modified until the cluster is fully operational again.
- Improved log messages indicating which nodes already joined the cluster and which are still missing.
For more details see Using the Data Grid Command Line Interface Shutdown and restart of Data Grid clusters.
Monitoring disabled in Data Grid Helm chart
Monitoring is disabled by default in Data Grid Helm chart. This prevents deployment failure in case a user does not have authorization to manipulate ServiceMonitors
granted by an admin.
Cache template conversion support
The cache configuration conversion tool now supports converting cache templates between different configuration formats, such as XML, JSON, and YAML.
For more information see Using the Data Grid REST API Converting Cache Configurations between XML, JSON and YAML.
Query of entries with BigInteger
and BigDecimal
values
Data Grid 8.4.2 now supports queries on cache entries that use BigInteger
and BigDecimal
values. Use @ProtoField
annotations to annotate these fields in your Java classes and generate a Protostream schema that includes the CommonTypesSchema
.
Query results include object version metadata
When performing a projection query, Data Grid let’s you specify the project version of the queried entity. The version metadata is included in the projection results, so you can determine which version of the entity was used to generate the projection results.
Cache index schema metamodel
You can retrieve a full index schema metamodel of all indexes defined on a cache using REST API. The full index schema metamodel includes detailed information about the index configuration, including entity names, Java classes, index names, and field specifications.
For more information see Using the Data Grid REST API Get Indexes Metamodel.
Enhancements to update schema functionality
From now you can update list of indexed entities in an existing cache with minimal downtime. Data Grid lets you restructure entity relationships, such as moving nested entities to the root level, without the need to create new caches.
1.10. What’s new in Data Grid 8.4.1
Data Grid 8.4.1 improves usability, increases performance, and enhances security. Find out what’s new.
Migrating segmented cache stores
The StoreMigrator.java
utility now supports migration of data from segmented cache stores.
Use the
source.segment_count
property to configure the number of segments for the source cache stores.migrator.properties
source.segment_count=256
1.10.1. REST API enhancements
Data Grid gives you access to remote caches and containers with HTTP over REST.
Comparing cache configurations
You can verify whether two cache configurations are semantically equivalent.
Invoke a
POST
request with amultipart/form-data
body containing two configurations and the?action=compare
parameter.POST /rest/v2/caches?action=compare
Data Grid responds with
204 (No Content)
in case the configurations are equal, and409 (Conflict)
in case they are different.
For more information see Data Grid REST API Guide Comparing cache configurations.
1.10.2. Resetting Hot Rod protocol version in the declarative configuration
In case your declarative configuration forces a specific version of the Hot Rod protocol, you can reset the version back to its default value of AUTO
. When you set infinispan.client.hotrod.protocol_version
to AUTO
, the Hot Rod client automatically uses the latest available version.
1.10.3. Data Grid Console enhancements
Data Grid Console 8.4.1 includes the following enhancements and bug fixes:
- Distributed caches have two owners by default
- Improved error handling with indexing configuration and running queries
- Improved user experience with Global statistics page
1.11. What’s new in Data Grid 8.4.0
Data Grid 8.4 improves usability, increases performance, and enhances security. Find out what’s new.
Jakarta EE APIs
Data Grid 8.4 distributes Jakarta EE 9+ based jars. If your application requires Jakarta specific dependencies, append the artifacts with -jakarta
, for example:
pom.xml
<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-client-hotrod-jakarta</artifactId> </dependency>
For information about Jakarta EE see About Jakarta EE.
MemcachedDecoder
performance improvement
MemcachedDecoder
no longer blocks Netty threads: preventing deadlocks when the thread pool is exhausted.
1.11.1. Hot Rod clients
Hot Rod is a custom binary TCP protocol that provides high-performance data access to client applications in different programming languages.
Support for queries with application/x-protostream
Hot Rod Node.js client in Data Grid 8.4 adds support for queries with application/x-protostream
media type. Configure Hot Rod JS client to have application/x-protostream
media type for values in your caches to be able to perform queries on them.
You can now use the application/x-protostream
media type for all the Hot Rod operations supported in JS client. For more information see Hot Rod Node.JS client guide.
Client intelligence configuration per cluster
When you configure Hot Rod client to use multiple Data Grid clusters you can use different client intelligence for each of the clusters.
For more information see Hot Rod Java client guide.
1.11.2. Data Grid Server
Data Grid Server runs in a dedicated Java Virtual Machine (JVM) and provides scalable and fault tolerant clusters for remote caches.
Micrometer metrics
Data Grid 8.4 uses Micrometer library for collecting metrics. Data Grid Server exposes statistics through the metrics
endpoint. You can collect the statistics with any monitoring tools, for example with Prometheus. Micrometer metrics replace SmallRye Metrics implementation of the MicroProfile Metrics.
Additional resources
Improved metrics during state transfer operations
When the cluster topology changes Data Grid exposes metrics for the number of segments and the number of transactional segments. Data Grid generates time metrics that are compatible with the REST API and the JMX API.
RESP protocol endpoint
Data Grid Server includes an experimental module that implements the RESP3 protocol. The RESP endpoint allows Redis clients to connect to one or more Data Grid backed RESP servers and perform cache operations.
Data Grid 8.4 supports a subset of Redis commands that are typically used for cache operations. For a list of supported commands refer to the Using the RESP protocol endpoint with Data Grid documentation. The Data Grid team plans to implement additional commands in subsequent releases.
RESP protocol endpoint is available as a technology preview feature.
Additional resources
Dynamic role-based access control (RBAC)
Role-based access control (RBAC) capabilities use different permissions levels to restrict user interactions with Data Grid. You can modify user roles and assign them different permissions either programatically or using the Data Grid CLI and Data Grid Console.
For more information see Security authorization with role-based access control
Support for masked and external credentials
Data Grid Server lets you use masked passwords and external commands to add passwords to Data Grid Server configuration.
Option to generate JVM heap dumps
You can generate a dump of all the live objects that are on the JVM heap. Data Grid generates a heap dump file in HPROF format in the server data directory and responds with the full path of the file in JSON format.
1.11.3. Data Grid Console
Data Grid Console is a graphical user interface for monitoring and managing remote caches that includes the following features and enhancements in 8.4:
Cache creation wizard
Open the Cache Setup tab and let the Data Grid Console wizard guide you through the process of creating and configuring caches. The wizard includes instructions and tooltips that help you to create caches and to enable Data Grid capabilities and features, such as indexing, security or persistence. Once you complete all the steps you can download your configuration in JSON, YAML, or XML format and reuse the file.
Cache distribution statistics
The Data Grid Console introduces Metrics tab on the Cache details page. You can view and filter data for your nodes, such as the number of entries per node or memory usage.
1.11.4. Query API
Data Grid lets you index caches and perform relational or full-text queries with in the Ickle query language.
Hibernate ORM 6 support
The Hibernate ORM second-level cache (2LC) implementation in Data Grid has been upgraded to work with Hibernate 6.
Add the following dependency:
pom.xml
<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-hibernate-cache-v60</artifactId> <version>${version.infinispan}</version> </dependency>
Data Grid 8.4 does not support Hibernate 5 due to Jakarta EE migration.
1.11.5. Data Grid native indexing annotations
This release introduces new indexing annotations: @Basic
, @Keyword
, @Text
, and Embedded
. These new annotations replaced Hibernate Search annotations which means that you are no longer required to annotate your Java classes with the @ProtoDoc
annotation for remote caches.
With the new native indexing annotations you can annotate entities directly. Moreover, you can use these annotations the same way for both embedded and remote queries.
Each of the new annotations supports a set of attributes that further describe how the entity is indexed.
Data Grid indexing annotations
- @Basic
-
Use this annotation for numbers and short
Strings
that don’t require any text transformation or processing. Supports thesortable
,searchable
, andprojectable
attributes. - @Keyword
-
Use this annotation for
Strings
. Supports the following attributes:searchable
,projectable
,sortable
, andnormalizer
. - @Text
-
Use this annotation for larger
Strings
. Supportssearchable
,projectable
, andanalyzer
attributes. - @Embedded
-
Use this annotation for embedded indexes and specify the entity structure. The
NESTED
structure preserves the original object relationship structure while theFLATTENED
structure makes the leaf fields multivalued of the parent entity.
Poem.java
@Indexed public class Poem { private Author author; private String description; private Integer year; @Embedded(includeDepth = 2, structure = Structure.NESTED) public Author getAuthor() { return author; } @Text(projectable = true, analyzer = "whitespace", termVector = TermVector.WITH_OFFSETS) public String getDescription() { return description; } @Basic(projectable = true, sortable = true, indexNullAs = "1800") public Integer getYear() { return year; } }
Index startup mode
You can configure Data Grid to automatically perform operations to ensure that the index is consistent with data in the cache.
Startup modes
- none
- By default no indexing operation takes place.
- purge
- Clear the index when the cache starts. The cache will be unavailable during this operation.
- reindex
- Rebuild the index when the cache starts.
- auto
- Automatically clear or reindex the cache. If data is volatile and the index is persistent then the cache is cleared when it starts. If data is persistent and the index is volatile then the cache is reindexed when it starts.
Purge mode configuration
<distributed-cache> <indexing storage="filesystem" startup-mode="purge"> <!-- Additional indexing configuration goes here. --> </indexing> </distributed-cache>
Dynamic index schema updates
You can update schema without reindexing and downtime as long as your changes are compatible with the previous schema. Data Grid preserves the existing indexing and updates only the schema.
You can update schema in one of the following ways:
Call the
updateIndexSchema()
method to programmatically to update schema from a Hot Rod Java client.remoteCacheManager.administration().updateIndexSchema("MyCache");
TipFor remote caches you can also update schema from Data Grid Console using the
update-schema
command.-
Update the schema with
POST
request.
POST .../v2/caches/{myCache}/search/indexes?action=updateSchema
Limit for results returned by a query
Data Grid adds default-max-results
property that limits the number of results returned by a query. The default value of default-max-results
property is 100
. Limiting the number of results returned by a query significantly improves performance of queries that don’t have an explicit limit set.
1.11.6. Data Grid Command Line Interface (CLI)
The Data Grid CLI lets you script and automate administrative operations for remote caches.
Improved security authentication
You can use Data Grid CLI to connect to Data Grid Server using client certificate authentication.
Applying command to all caches
Data Grid CLI lets you use --all-caches
or -a
option to apply your command to all caches. For example, if you execute the following command, Data Grid shows the backup location status for all caches:
[//containers/default]> site status --all-caches --site=NYC
For more information see Using the Data Grid command line interface.
1.12. Supported Java versions in Data Grid 8.4
Red Hat supports different Java versions, depending on how you install Data Grid.
Deprecation of Java 11 support
In Data Grid 8.4, support for Java 11 is deprecated and is planned to be removed in future release. Users of Data Grid 8.5 must upgrade their applications at least to Java 17.
You can continue using older Hot Rod Java client versions in combination with the latest Data Grid Server version. However, if you continue using older version of the client you will miss fixes and enhancements.
Removal of Java 8 support
Data Grid 8.4 removes support for Java 8. Support for Java 8 was deprecated and planned for removal since Data Grid 8.2.
Hot Rod Java clients running in applications that require Java 8 can continue using older versions of client libraries.
Users of Data Grid 8.4 must upgrade their applications at least to Java 11. However, considering the deprecation of Java 11 and its removal in Data Grid 8.5, the Data Grid team recommends upgrading directly to Java 17.
Supported Java versions in Data Grid 8.4
Embedded caches
Red Hat supports Java 11 and Java 17 when using Data Grid for embedded caches in custom applications.
Remote caches
Red Hat supports Java 11 and Java 17 for Data Grid Server installations. For Hot Rod Java clients, Red Hat supports Java 11 and Java 17.
Red Hat supports Java 11 and Java 17 for Data Grid Server, Hot Rod Java clients, and when using Data Grid for embedded caches in custom applications.
When running Data Grid Server on bare metal installations, the JavaScript engine is not available with Java 17.