GridGain 8.7.26 Release Notes
New Features
This release introduces several notable features and new capabilities.
- Memory Warm-up on Restarts from Native Persistence
-
Starting with this release you can warm up your RAM with the data from Native Persistence upon restarts. This feature is useful for latency-sensitive use cases when you prefer having all data loaded into RAM before the node starts processing application load.
Enabling memory warm-up via XML configuration<bean class="org.apache.ignite.configuration.IgniteConfiguration"> <property name="dataStorageConfiguration"> <bean class="org.apache.ignite.configuration.DataStorageConfiguration"> <property name="defaultWarmUpConfiguration"> <bean class="org.apache.ignite.configuration.NoOpWarmUpConfiguration"/> </property> <property name="defaultDataRegionConfiguration"> <bean class="org.apache.ignite.configuration.DataRegionConfiguration"> <property name="warmUpConfiguration"> <bean class="org.apache.ignite.configuration.LoadAllWarmUpConfiguration"/> </property> </bean> </property> </bean> </property> </bean>
Enabling memory warm-up via Java configurationnew IgniteConfiguration() .getDataStorageConfiguration() .setDefaultWarmUpConfiguration(new NoOpWarmUpConfiguration()) .getDefaultDataRegionConfiguration() .setWarmUpConfiguration(new LoadAllWarmUpConfiguration());
- Tracing of Cache Operations and Specific Transactions
-
The release introduces new experimental tracing-related features.
-
Tracing specific transactions - use the facade returned by the
withTracing()
function to specify which transactions to add to the tracing scope.Enabling tracing of a specific transactiontry (Transaction tx = ignite.transactions().withLabel("user-label").withTracing().txStart(PESSIMISTIC, SERIALIZABLE)) { cache.putAll(entries); tx.commit(); }
-
Tracing of caching APIs - trace the execution of updates, reads, and deletes performed via the caching APIs. Presently, the feature is available for
ATOMIC
caches only.Enabling tracing of reads, updates and deletescontrol.sh --tracing-configuration set --scope CACHE_API_WRITE --sampling-rate 0.01 --included-scopes COMMUNICATION,EXCHANGE control.sh --tracing-configuration set --scope CACHE_API_READ --sampling-rate 0.01 --included-scopes COMMUNICATION,EXCHANGE
-
- Transactions Support by C++ Thin Client
-
The C++ thin client now supports the transactional API. You can execute distributed transactions in various configuration modes by selecting required isolation levels and concurrency modes.
Using transactions with the C++ Thin Client#include <ignite/thin/ignite_client.h> using namespace ignite; void Example(IgniteClient client) { cache::CacheClient<int, int> cache = client.GetOrCreateCache<int, int>("example"); transactions::ClientTransactions transactions = client.ClientTransactions(); cache.Put(1, 1); assert(1 == cache.Get(1)); transactions::ClientTransaction tx = transactions.TxStart(); cache.Put(1, 10); assert(10 == cache.Get(1)); tx.Rollback(); assert(1 == cache.Get(1)); }
- Ignite .NET Services Invocation from Java
-
GridGain.NET services can now be invoked from a Java application. New
PlatformServiceMethod
annotations provide control over method name mapping.Creating a service in .NETpublic class DotnetService : IService { public int AddOne(int x) => x + 1; // IService implementation omitted } ... Ignite.GetServices().DeployClusterSingleton("dotnet-service", new DotnetService());
Calling the .NET service from Javapublic interface DotnetService { @PlatformServiceMethod("AddOne") // Map to different naming convention int addOne(int x); } ... DotnetService svc = ignite.services().serviceProxy("dotnet-service", DotnetService.class, false); int y = svc.addOne(5);
Improvements and Fixed Issues
Community Edition Changes
GG-30728 |
SQL |
Reverted some of the changes introduced in GG-30669 to resolve a performance degradation for specific SQL requests. |
GG-30693 |
SQL |
Fixed a possible deadlock when multiple caches are being destroyed simultaneously. |
GG-29288 |
SQL |
Fixed the H2 dependency clash that happened when other libraries such Spring were trying to include a different version of H2. |
GG-30493 |
Storage |
Fixed a race condition between the node termination and partition clearing activities. |
GG-23445 |
Storage |
Added the ability to pre-load data from Ignite persistence in memory after restarts. |
GG-30689 |
Transactions |
Fixed the compatibility test suite after introducing the changes of GG-30669. |
GG-30626 |
Transactions |
Fixed the compatibility test suite after introducing the changes of GG-30509. |
GG-30616 |
Transactions |
Deprecated and stopped using the IGNITE_CACHE_KEY_VALIDATION_DISABLED system property. |
GG-29064 |
Transactions |
The transaction recovery time has been optimized. |
GG-30669 |
Rebalancing |
Fixed the issue that could cause a partition inconsistency during during rebalancing. The case could take place when entry relocation and entry deletion happen simultaneously. |
GG-30579 |
Rebalancing |
Added additional details about the rebalancing progress with the details being printed to the log files. |
GG-30509 |
Rebalancing |
Introduced several optimizations that accelerate the rebalancing process for certain scenarios. |
GG-30650 |
PME |
Fixed an issue that could cause a cluster hung when the thin client was trying to connect with security enabled. |
GG-30641 |
Thin Clients & Platforms |
Supported transactional APIs for thin clients. |
GG-30560 |
Thin Clients & Platforms |
NET: Fixed the issue that could cause a query to return an incorrect result due to an empty topology projection. A client node was not updating the local node info after reconnecting to the cluster. |
GG-30391 |
Thin Clients & Platforms |
Added the ability to execute an Ignite .NET service from Java. |
GG-30639 |
Management & Monitoring |
Fixed the issue when the Control Center Agent of an unsupported protocol version tried to establish a connection with Control Center endlessly. |
GG-30395 |
Management & Monitoring |
Added cache names and the number of keys metric to transaction tracing spans. |
GG-30140 |
Management & Monitoring |
The Control Center Agent no longer attempts to collect metrics of disconnected clusters. |
GG-28493 |
Management & Monitoring |
Added the ability to enable tracing of a specific transaction with the help of a transaction facade returned by the |
GG-26627 |
Management & Monitoring |
Added the API to check nodes' interconnection. Use the |
GG-21042 |
Management & Monitoring |
Supported tracing of the updates and deletes executed via the cache APIs (experimental, available for atomic caches only). |
GG-21041 |
Management & Monitoring |
Supported tracing of the read operations executed via the cache APIs (experimental, available for atomic caches only). |
GG-30675 |
Integrations |
The AWS sdk version was updated for the |
GG-30597 |
Integrations |
Hibernate 5.3 is upgraded from 5.3.7 to 5.3.18 to address the CVE-2019-14900 vulnerability. |
Ultimate Edition Changes
GG-30129 |
Snapshots & PITR |
Supported the point-in-time recovery from an SFTP location. |
Installation and Upgrade Information
See the Rolling Upgrades page for information about how to perform automated upgrades and for details about version compatibility.
Below is a list of versions that are compatible with the current version. You can rolling-upgrade from any of those. Compatibility with other versions is not guaranteed. If you are on a version that is not listed, contact GridGain for the information on upgrade options.
8.5.3
, 8.5.5
, 8.5.6
, 8.5.7
, 8.5.8
, 8.5.8-p6
, 8.5.9
,
8.5.10
, 8.5.11
, 8.5.12
, 8.5.13
, 8.5.14
, 8.5.15
, 8.5.16
, 8.5.17
, 8.5.18
, 8.5.19
, 8.5.20
, 8.5.22
,
8.5.23
, 8.5.24
, 8.7.2
, 8.7.2-p12
, 8.7.2-p13
, 8.7.3
, 8.7.4
, 8.7.5
, 8.7.6
, 8.7.7
, 8.7.8
, 8.7.9
,
8.7.10
, 8.7.11
, 8.7.12
, 8.7.13
, 8.7.14
, 8.7.15
, 8.7.16
, 8.7.17
, 8.7.18
, 8.7.19
, 8.7.19-p1
, 8.7.20
,
8.7.21
, 8.7.22
, 8.7.23
, 8.7.24
, 8.7.25
Known Limitations
Jetty configuration incompatibility in GridGain 8.7.21 and later
If you are upgrading from version 8.7.20 or earlier, you must take into account an incompatibility related to Jetty configuration, which was introduced in GridGain 8.7.21.
Your setup may be affected if:
-
You’re using the
ignite-rest-http
module (e.g. to connect to GridGain Web Console) -
You have a custom Jetty configuration that enables SSL for REST
-
Your Jetty configuration uses the
org.eclipse.jetty.util.ssl.SslContextFactory
class -
The keystore specified in the Jetty configuration contains both the CA certificate and the private certificate
In this case, after starting the new version, you’ll see an error similar to:
java.lang.IllegalStateException: KeyStores with multiple certificates are not supported on the base class
org.eclipse.jetty.util.ssl.SslContextFactory. (Use org.eclipse.jetty.util.ssl.SslContextFactory$Server
or org.eclipse.jetty.util.ssl.SslContextFactory$Client instead)
To workaround this issue, you need to alter the Jetty configuration to use org.eclipse.jetty.util.ssl.SslContextFactory$Server
or org.eclipse.jetty.util.ssl.SslContextFactory$Client
.
For a configuration example, see Client Certificate Authentication.
Default rebalanceThreadPoolSize
in GridGain 8.7.26 and later
In GridGain 8.7.26, the default value of the property IgniteConfiguration.rebalanceThreadPoolSize
has changed from 1
to min(4, number of CPU / 4)
.
It may cause a compatibility issue under the following conditions:
-
A Rolling Upgrade is being performed
-
The upgrade is performed from a version 8.5.7 or earlier for 8.5.x, or 8.7.3 or earlier for 8.7.x
-
The server nodes have at least 8 CPU cores
-
The nodes configuration don’t have the property
IgniteConfiguration.rebalanceThreadPoolSize
set (i.e. the default value is used)
In this case, you’ll see an error similar to
сlass org.apache.ignite.IgniteException: Rebalance configuration mismatch (fix configuration or set -DIGNITE_SKIP_CONFIGURATION_CONSISTENCY_CHECK=true system property).
Different values of such parameter may lead to rebalance process instability and hanging. [rmtNodeId=5fc58fb7-209d-489a-8034-0127a81abed6, locRebalanceThreadPoolSize = 4, rmtRebalanceThreadPoolSize = 1]
To workaround this issue, you need to change the configuration of the server nodes to set rebalanceThreadPoolSize=1
so that it matches
the old default. Example:
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="rebalanceThreadPoolSize" value="1"/>
<!-- The rest of the configuration goes here -->
</bean>
We Value Your Feedback
Your comments and suggestions are always welcome. You can reach us here: https://gridgain.freshdesk.com/support/login or docs@gridgain.com
Please visit the documentation for more information.
© 2025 GridGain Systems, Inc. All Rights Reserved. Privacy Policy | Legal Notices. GridGain® is a registered trademark of GridGain Systems, Inc.
Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation.