Chapter 1. Data Grid release information
Learn about new features and get the latest Data Grid release information.
1.1. What’s new in Data Grid 8.3.0 Copy linkLink copied to clipboard!
Data Grid 8.3 improves usability, increases performance, and enhances security. Find out what’s new.
1.1.1. Java 17 support Copy linkLink copied to clipboard!
Data Grid 8.3 offers full support for Java 17 for embedded and remote caches.
1.1.2. Data Grid Helm chart Copy linkLink copied to clipboard!
Data Grid 8.3 introduces a Helm chart for deploying Data Grid clusters on Red Hat OpenShift. The Data Grid Helm chart provides an alternative for scenarios where it is not possible to deploy clusters that the Data Grid Operator manages, or where you require manual configuration, deployment, and management of Data Grid clusters.
The Data Grid Helm chart includes deploy.infinispan
values that let you apply custom configuration to Data Grid Server nodes with the Helm client or through the OpenShift Web Console.
1.1.3. Data Grid configuration Copy linkLink copied to clipboard!
Data Grid provides declarative and programmatic configuration attributes for customizing caches and underlying mechanisms such as security and cluster transport.
Polyglot configuration
Data Grid 8.3 lets you create declarative configuration in JSON and YAML format in addition to XML. You can re-use the same Data Grid configuration files for any deployment platform: Red Hat Enterprise Linux (RHEL) or Red Hat OpenShift via Data Grid Operator or the Data Grid Helm chart.
Mutable configuration attributes for dynamic caches
Data Grid 8.3 lets you modify certain configuration attributes for caches that you create dynamically at runtime. This means you longer need to delete and then recreate caches to change configuration attributes such as lifespan
for expiration or max-count
for eviction.
Changes to cache configuration must be compatible with the existing configuration. For example you cannot modify cache configuration to change the replicated-cache
element to distributed-cache
or use the max-count
attribute instead of the max-size
attribute.
Changing mutable configuration attributes
The Data Grid Command Line Interface (CLI) and REST API provide mechanisms for:
- Retrieving the list of mutable configuration attributes.
- Changing mutable configuration attributes at runtime.
For usage details, see the CLI or REST sections.
Cache size statistics
As of Data Grid 8.3, the currentNumberOfEntries
statistic returns -1
by default to improve performance.
Data Grid also now provides an accurate-size
attribute for metrics configuration if you want to restore accurate values for this statistic. However this is a resource-intensive calculation and is recommended for development environments only. Set the value to true
as follows:
Declarative
<cache-container> <metrics accurate-size="true"/> </cache-container>
<cache-container>
<metrics accurate-size="true"/>
</cache-container>
Programmatic
GlobalConfigurationBuilder b = new GlobalConfigurationBuilder(); b.metrics().accurateSize(true);
GlobalConfigurationBuilder b = new GlobalConfigurationBuilder();
b.metrics().accurateSize(true);
Metrics that provide approximate cache size statistics are planned for a future version of Data Grid.
1.1.4. Persistent storage Copy linkLink copied to clipboard!
Data Grid 8.3 provides new and improved cache store implementations for using persistent storage.
Default file-based cache store implementation
To improve performance by using less memory resources and avoiding fragmentation, SoftIndexFileStore
is now the default implementation for file-based cache stores in Data Grid. As of 8.3, including file-store
persistence in cache configuration creates a soft index file-based cache store instead of a single-file cache store.
Data Grid automatically migrates any file-store
configuration to a SoftIndexFileStore
when you upgrade to 8.3.
If you are migrating to Data Grid 8.3 from an earlier version and your cache configuration includes the soft-index-file-store
element, you should convert it to the file-store
element. For more information, see Migrating to Data Grid 8.
Data Grid 8.2
Data Grid 8.3
SQL cache store
Data Grid 8.3 introduces the SQL cache store that simplifies access to data in persistent storage and pre-loads caches through JDBC connections.
You can create two types of SQL cache store:
- Table
- Data Grid loads entries from a single database table.
- Query
- Data Grid uses SQL queries to load entries as well as perform insert, update, and delete operations.
JDBC connection factories
As of Data Grid 8.3 Data Grid provides ConnectionFactory
implementations for JDBC connections in the org.infinispan.persistence.jdbc.common.configuration
package. You can use these connection factories with SQL cache stores and JDBC string-based caches stores.
1.1.5. Data Grid Server Copy linkLink copied to clipboard!
Data Grid Server runs in a dedicated Java Virtual Machine (JVM) and provides scalable and fault tolerant clusters for remote caches.
Distributed security realms
Data Grid Server now lets you combine multiple security realms into a single realm. When authenticating users, Data Grid Server uses each security realm in turn until it finds one that can perform the authentication.
For example, the following security realm includes an LDAP realm and a property realm and the distributed-realm
element:
Multiple endpoint configuration
You can configure Data Grid Server to bind multiple endpoints to different sockets and use different security realms.
The following snippet, as an example, contains two different endpoint configurations. One endpoint binds to a "public" socket, uses an "application" security realm, and disables administrative features. Another endpoint binds to a "private" socket, uses a "management" security realm, and enables administrative features.
As of 8.3 the endpoints
element is now a wrapper for one or more endpoint
configurations. If you add child elements to endpoints
you must use the endpoint
element.
If you are upgrading from Data Grid 8.2 or previous, and you configure multiple endpoints, you must adapt your configuration to the 8.3 schema. See Migrating to Data Grid 8 for more information.
Security enhancements
Security realms for cluster transport
Specify a security realm that contains a TLS server identity to secure cluster transport, for example:
<cache-container> <transport server:security-realm="tls-transport"/> </cache-container>
<cache-container>
<transport server:security-realm="tls-transport"/>
</cache-container>
This configuration also encrypts RELAY messages for cross-site replication and provides an alternative to the JGroups SYM_ENCRYPT and ASYM_ENCRYPT protocols. You must configure security on all Data Grid clusters that participate in cross-site replication.
PEM file keystores and trust stores
Add PEM files directly to Data Grid Server configuration to use them as trust stores and keystores in a TLS server identity.
- PEM files as keystores must contain a private key in PKCS#1 or PKCS#8 format and one or more certificates.
- PEM files as trust stores must contain one or more certificates.
-
PEM files require an empty password,
password=""
.
Full support for TLSv1.3 with OpenSSL
Data Grid Server supports TLS version 1.2 and 1.3 by default. You can restrict the security protocol for client connections to TLSv1.3 only with the following configuration:
<engine enabled-protocols="TLSv1.3" />
<engine enabled-protocols="TLSv1.3" />
Configuration overlays
Data Grid Server can parse multiple configuration files that you overlay on startup with repeated --server-config=
or -c
arguments.
bin/server.sh -c infinispan.xml -c overlay.yaml
$ bin/server.sh -c infinispan.xml -c overlay.yaml
You can use as many configuration overlay files as required, in any order. Configuration overlay files:
- Must each be valid Data Grid configuration.
- Do not need to be full configuration as long as your combination of overlay files results in a full configuration.
Data Grid Server does not detect conflicting configuration between overlay files. Each overlay file overwrites any conflicting configuration in the preceding configuration.
Cache configuration
If you add cache configuration to overlay files, Data Grid Server does not dynamically create that cache on other nodes.
Overlay files cannot contain cache configuration fragments. For example, to create distributed cache in an overlay file, -c mycache.yaml
, you must include the infinispan
and cacheContainer
fields as follows:
Listening on all addresses
If you specify the 0.0.0.0
meta-address (INADDR_ANY
) as the bind address for Data Grid Server, it listens for incoming client connections on all available network interfaces.
Performance and usability improvements
- Data Grid Server 8.3 consolidates thread pools to use fewer host resources.
-
Data Grid Server installations now include a
bin/service.bat
script for running as a Microsoft Windows service.
1.1.6. Data Grid Console Copy linkLink copied to clipboard!
Data Grid Console is a graphical user interface for monitoring and managing remote caches that includes the following features and enhancements in 8.3:
- Caches must now have a suitable encoding to view the Entries tab.
You can turn cluster rebalancing operations for caches on and off.
ImportantYou should disable cluster rebalancing only for short periods of time to avoid repeated cluster rebalancing operations when restarting a node or adding multiple nodes. Always enable cluster rebalancing as soon as possible to prevent data loss.
- Cache templates are no longer available in the Add cache dialog unless you add custom templates to the Data Grid Server configuration.
- Automatic detection of JSON encoding and Protobuf custom types.
- Cache entry editing is now type-aware.
- Alert modals, tooltips, and inline help are updated for improved user experience.
- Improved error handling and statistics collection.
1.1.7. Data Grid Command Line Interface (CLI) Copy linkLink copied to clipboard!
The Data Grid CLI lets you script and automate administrative operations for remote caches.
Modifying configuration attributes at runtime
The alter
command lets you modify Data Grid configuration attributes at runtime.
-
Use the
--file
option to specify a configuration file with one or more attribute modifications. -
Use the
--attribute
and--value
option to modify a specific configuration attribute.
alter cache mycache --attribute=clustering.remote-timeout --value=5000
alter cache mycache --attribute=clustering.remote-timeout --value=5000
Controlling cache availability
The availability
command lets you manage availability of clustered caches in network partitions.
-
Use the
--mode=[AVAILABLE|DEGRADED_MODE]
option to set cache availability to AVAILABLE or DEGRADED_MODE when using either the DENY_READ_WRITES or ALLOW_READS partition handling strategy.
availability --mode=AVAILABLE mycache
availability --mode=AVAILABLE mycache
Enabling and disabling rebalancing operations
The rebalance
command lets you turn cluster rebalancing operations for caches on and off.
You should disable cluster rebalancing only for short periods of time to avoid repeated cluster rebalancing operations when restarting a node or adding multiple nodes. Always enable cluster rebalancing as soon as possible to prevent data loss.
Use the
rebalance disable
command to turn rebalancing off.[//containers/default]> rebalance disable
[//containers/default]> rebalance disable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Use the
rebalance enable
command to turn rebalancing on.[//containers/default]> rebalance enable
[//containers/default]> rebalance enable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Hot Rod cluster migration
The migrate
command provides additional options for migrating data from one running Data Grid cluster to another.
-
Use the
migrate cluster connect
command to establish a connection from the source cluster to the target cluster. -
Use the
migrate cluster synchronize
command to migrate data from the source cluster to the target cluster. -
Use the
migrate cluster disconnect
command to end the connection between clusters after you migrate data.
Retrieving cross-site replication relay nodes
The site
command lets you find out which nodes in the Data Grid cluster handle RELAY messages for cross-site replication.
-
Use the
site is-relay-node
command to find out if a node is a relay node. -
Use the
site relay-nodes
command to get a list of relay nodes in the cluster.
Native CLI
The native CLI is updated in 8.3 to improve usage as an oc
client plugin and for interacting with Data Grid pods running on Red Hat OpenShift.
1.1.8. REST API Copy linkLink copied to clipboard!
Data Grid gives you access to remote caches and containers with HTTP over REST.
Modifying configuration attributes at runtime
Retrieve all mutable cache configuration attributes for caches.
GET /rest/v2/caches/{cacheName}?action=get-mutable-attributes
GET /rest/v2/caches/{cacheName}?action=get-mutable-attributes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Change a mutable cache configuration attribute.
POST /rest/v2/caches/{cacheName}?action=set-mutable-attributes&attribute-name={attributeName}&attribute-value={attributeValue}
POST /rest/v2/caches/{cacheName}?action=set-mutable-attributes&attribute-name={attributeName}&attribute-value={attributeValue}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Controlling cache availability
Retrieve the availability of a cache.
GET /v2/caches/{cacheName}?action=get-availability
GET /v2/caches/{cacheName}?action=get-availability
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Change the availability of clustered caches when using either the DENY_READ_WRITES or ALLOW_READS partition handling strategy.
POST /v2/caches/{cacheName}?action=set-availability&availability={AVAILABILITY}
POST /v2/caches/{cacheName}?action=set-availability&availability={AVAILABILITY}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Enabling and disabling rebalancing operations
Turn on automatic rebalancing for all caches.
POST /rest/v2/cache-managers/{cacheManagerName}?action=enable-rebalancing
POST /rest/v2/cache-managers/{cacheManagerName}?action=enable-rebalancing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Turn off automatic rebalancing for all caches.
POST /rest/v2/cache-managers/{cacheManagerName}?action=disable-rebalancing
POST /rest/v2/cache-managers/{cacheManagerName}?action=disable-rebalancing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Turn on automatic rebalancing for a specific cache.
POST /v2/caches/{cacheName}?action=enable-rebalancing
POST /v2/caches/{cacheName}?action=enable-rebalancing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Turn off automatic rebalancing for a specific cache.
POST /v2/caches/{cacheName}?action=disable-rebalancing
POST /v2/caches/{cacheName}?action=disable-rebalancing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Hot Rod migration
The REST API exposes controls that let you migrate data from one running Data Grid cluster to another.
Establish a connection from the source cluster to the target cluster.
POST /v2/caches/myCache?action=connect-source
POST /v2/caches/myCache?action=connect-source
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Migrate data from the source cluster to the target cluster.
POST /v2/caches/myCache?action=sync-data
POST /v2/caches/myCache?action=sync-data
Copy to Clipboard Copied! Toggle word wrap Toggle overflow End the connection between clusters after you migrate data.
DELETE /v2/caches/myCache/rolling-upgrade/source-connection
DELETE /v2/caches/myCache/rolling-upgrade/source-connection
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Retrieving cross-site replication relay nodes
Get the list of nodes that send and receive RELAY messages for cross-site replication:
GET /rest/v2/cache-managers/{cacheManagerName}
GET /rest/v2/cache-managers/{cacheManagerName}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Converting cache configuration between XML, JSON, and YAML
Invoke a POST
request with valid configuration and the ?action=convert
parameter. Data Grid responds with the equivalent representation of the configuration in the type specified by the Accept
header.
POST /rest/v2/caches?action=convert
POST /rest/v2/caches?action=convert
Cache entry and cache configuration listeners with server-sent events
Receive events about configuration changes using server-sent events.
GET /rest/v2/container/config?action=listen
GET /rest/v2/container/config?action=listen
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Receive cache events using server-sent events.
GET /rest/v2/caches/{name}?action=listen
GET /rest/v2/caches/{name}?action=listen
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.9. Query API Copy linkLink copied to clipboard!
Data Grid lets you index caches and perform relational or full-text queries with in the Ickle query language.
Delete by query
You can delete entries from Data Grid caches with the following syntax:
DELETE FROM <entityName> [WHERE condition]
DELETE FROM <entityName> [WHERE condition]
-
Reference only single entities with
<entityName>
. DELETE queries cannot use joins. - WHERE conditions are optional.
Query execution methods
The Query
API provides two methods for executing Ickle queries on a cache:
-
Query.execute()
runs a SELECT statement and returns a result. -
Query.executeStatement()
runs a DELETE statement and modifies data.
You should always invoke executeStatement()
to modify data and invoke execute()
to get the result of a query.
1.1.10. Cross-site replication Copy linkLink copied to clipboard!
Cross-site replication lets you back up Data Grid clusters across multiple geographic regions.
Improved observability and metrics
Data Grid 8.3 updates cross-site replication capabilities to improve monitoring and statistics.
Data Grid lets you:
- Retrieve detailed status of backup locations via the CLI, REST API, or JMX.
Retrieve the list of relay nodes for backup locations to find out which ones send JGroups RELAY messages for cross-site communication.
NoteJGroups configuration refers to relay nodes as "site master" nodes. Data Grid uses relay node instead because it is more descriptive and presents a more intuitive choice.
Data Grid 8.3 also provides more detailed metrics about cross-site replication operations for each backup location and for caches, including response times and number of RELAY messages.
Naming global clusters
The cluster
attribute lets you define a name for global clusters that is printed to log messages. This makes it easier to distinguish global clusters from local clusters in Data Grid logs.
Global cluster names that you specify with the cluster
attribute must be the same at all sites.
By default cross-site clusters are named "xsite" but you can specify a custom name, such as "my-global-cluster" in the following example:
<remote-sites default-stack="tcp" cluster="my-global-cluster"> <remote-site name="LON"/> <remote-site name="NYC"/> </remote-sites>
<remote-sites default-stack="tcp" cluster="my-global-cluster">
<remote-site name="LON"/>
<remote-site name="NYC"/>
</remote-sites>
1.1.11. Rolling upgrades and Hot Rod migration Copy linkLink copied to clipboard!
Data Grid 8.3 simplifies the configuration and mechanisms for performing live migration of data across clusters to move from one version to another. Rolling upgrades in Data Grid 8.3:
-
No longer need to manually add
remote-store
configuration to caches to perform rolling upgrades.
Use the CLI or REST API to connect source and target clusters. - Provide additional methods in the REST API and CLI commands for rolling upgrade operations.
- Let you perform rolling upgrades with caches that you create dynamically through the Console, CLI, REST API, or Hot Rod API.
1.2. What’s new in Data Grid 8.3.1 Copy linkLink copied to clipboard!
Data Grid 8.3 improves usability, increases performance, and enhances security. Find out what’s new.
Compliance with the Federal Information Processing Standards (FIPS) 140-2
You can now install and run Data Grid Server on a RHEL 8 system with FIPS 140-2 compliant cryptography. For more information see Configuring Data Grid Server on a system with FIPS 140-2 compliant cryptography.
Improved metrics
This release includes several enhancements to the Data Grid metrics endpoint.
Approximate cache size statistics
Data Grid 8.3.1 introduces statistics that provide approximate values for cache size. In 8.3.0, Data Grid disabled cache size statistics because the operation to calculate them negatively impacted performance.
The following statistics are enabled in the default metrics configuration:
approximateEntries
- Approximate current number of entry replicas in the cache on the server that receives the request. Includes both entries in memory and in persistent storage.
approximateEntriesUnique
- Approximate current number of entries for which the server that receives the request is the primary owner. Includes both entries in memory and in persistent storage.
globalApproximateEntries
- Approximate current number of entry replicas currently in the cache cluster-wide. Includes both entries in memory and in persistent storage.
globalApproximateEntriesUnique
- Approximate current number of unique entries in the cache cluster-wide. Includes both entries in memory and in persistent storage. Entries owned by multiple nodes are counted only once.
Remote site status metrics for cross-site connection
Data Grid now exposes metrics about the status of each backup location through the metrics
endpoint. You can view whether a specific site is online or offline from any monitoring tool that supports the OpenMetrics format, such as Prometheus.
JGroups attributes exposed through the metrics endpoint
Data Grid lets you consume Java Management Extensions (JMX) statistics through the metrics
endpoint. You can now monitor JGroups protocol events.
Performance enhancements to cross-site replication
This release includes several enhancements to cross-site replication capabilities that improve performance, including conflict detection and resolution for the asynchronous backup strategy.
Data Grid also lets you configure frequency for periodical cleanup of metadata, known as tombstones. You can configure the frequency for the cleanup task by defining a target size for tombstone maps as well as the maximum delay between task runs.
For more information see Data Grid Cross-Site Replication.
1.3. Supported Java versions in Data Grid 8.3 Copy linkLink copied to clipboard!
Red Hat supports different Java versions, depending on how you install Data Grid.
Embedded caches
Red Hat supports Java 8, 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 8, Java 11, and Java 17.
When running Data Grid Server on bare metal installations, the JavaScript engine is not available with Java 17.
Java 8 deprecation
As of Data Grid 8.2, support for Java 8 is deprecated and currently planned for removal in Data Grid 8.4.
Users with embedded caches in custom applications should plan to upgrade to Java 11 or to Java 17 when support becomes available.
Hot Rod Java clients running in applications that require Java 8 can continue using older versions of client libraries. Red Hat supports using older Hot Rod Java client versions in combination with the latest Data Grid Server version.