GridGain 8.8.14 Release Notes
New Features
Sped up Node Start
GridGain now periodically creates checkpoint history snapshots. This significantly speeds up node startup time by removing the need to read checkpoint to prepare node history for PME.
Added Continuous Queries to C++ Thin Client
C++ thin clients now also support continuous queries. Here is an example of how you can implement them in your code:
#include <ignite/thin/ignite_client.h>
using namespace ignite::thin::cache;
using namespace ignite::thin::cache::event;
/**
* Test listener class. Stores events it has been notified about in concurrent
* queue so they can be checked later.
*/
template<typename K, typename V>
class MyListener : public CacheEntryEventListener<K, V>
{
/**
* Event callback.
*
* @param events Events.
* @param num Events number.
*/
virtual void OnEvent(const CacheEntryEvent<K, V>* events, uint32_t num)
{
for (uint32_t i = 0; i < num; ++i)
{
const CacheEntryEvent<K, V>& event = events[i];
std::cout << "New cache event" << std::endl;
std::cout << "Event type: " << event.GetEventType() << std::endl;
std::cout << "Key: " << event.GetKey() << std::endl;
std::cout << "Value: " << (event.HasValue() ? event.GetValue() : "None") << std::endl;
std::cout << "Old value: " << (event.HasOldValue() ? event.GetOldValue() : "None") << std::endl;
}
}
/**
* Disconnected callback.
*
* Called if channel was disconnected. This also means that continuous query was closed and no more
* events will be provided for this listener.
*/
virtual void OnDisconnected()
{
std::cout <<
"Connection to the node lost. Continuous query is closed. "
"You will not get any new notifications unless you register a new continuous query."
<< std::endl;
}
}
void Example(ignite::thin::IgniteClient& client)
{
CacheClient<int32_t, std::string> cache = client.GetOrCreateCache<int32_t, std::string>("MyCache");
auto listener = make_shared< Listener<int32_t, std::string> >();
query::continuous::ContinuousQueryClient<int32_t, TestEntry> qry(MakeReferenceFromSmartPointer(listener));
query::continuous::ContinuousQueryHandleClient handle = cache.QueryContinuous(qry);
cache.Put(1, "Lorem ipsum");
cache.Put(2, "Hello world");
cache.Put(1, "Lorem ipsum dolor sit amet");
cache.Remove(1);
}
Added Support for Thin Clients in Spring Data Client
Spring Data Client now can be worked with from thin clients. Here is the example:
// Used igniteClient bean for accessing to ignite.
@RepositoryConfig(cacheName = "PersonCache", igniteInstance = "igniteClient")
public interface IgniteClientConfigRepository extends IgniteRepository<Object, Serializable> {
// No-op.
}
Improvements and Fixed Issues
Community Edition Changes
Issue ID | Category | Description |
---|---|---|
GG-34570 |
Platforms & Thin Clients |
.NET: Fixed platform cache not restoring data from persistent storage after node restart. |
GG-34550 |
Cluster SQL Engine |
Fixed a possible NullPointerException if a column type was null in the JmxSystemViewExporterSpi. |
GG-34539 |
Cluster Compute Grid |
Added an ability to run compute tasks without @ComputeTaskSessionFullSupport annotation when using PriorityQueueCollisionSpi. |
GG-34537 |
Cluster Storage Engine |
Fixed an issue when a cache destroy operation during an active transaction could cause NullPointerException. |
GG-34463 |
Cluster Communication |
Suppressed a non-informative ClosedChannelException which was logged in some cases. |
GG-34400 |
Binary Objects |
Fixed an AssertionError when getting unassigned field in BinaryObjectBuilder. |
GG-34391 |
Binary Objects |
Fixed unexpected object deserialization on concurrent operations when binary projection was used. |
GG-34377 |
Platforms & Thin Clients |
Java thin: reduced memory usage by avoiding extra buffer copy. |
GG-34372 |
Cluster SQL Engine |
Prevented confusing warning from being logged. |
GG-34370 |
Cluster SQL Engine |
Added query ID to logs for long running SQL queries. |
GG-34300 |
Cluster Metrics & Monitoring |
Fixed a possible NullPointerException in cache metrics on node startup. |
GG-34295 |
Platforms & Thin Clients |
.NET: Fixed dynamically generated types deserialization support. |
GG-34294 |
Cluster Storage Engine |
Fixed a bug with the defragmentation failing on DECIMAL and VARCHAR indexes. |
GG-34258 |
Cluster Compute Grid |
Added the ability to change the priority of a compute task if PriorityQueueCollisionSpi is configured. |
GG-34257 |
Platforms & Thin Clients |
Fixed potential out of memory exception in thin client protocol handler that could be caused by erroneous data. |
GG-34225 |
Distributed Data Structures |
Fixed potential data corruption during rapid delete and update operations. |
GG-34222 |
Cluster Storage Engine |
IGNITE_WAIT_FOR_BACKUPS_ON_SHUTDOWN system property was deprecated. Use ShutdownPolicy instead. |
GG-34218 |
Control Center Agent |
Increased security in management script command outputs. |
GG-34200 |
Cluster SQL Engine |
Fixed an issue with comparing indexed fields with values that have different types. |
GG-34196 |
Platforms & Thin Clients |
CPP Thin: Continuous Queries implemented. |
GG-34186 |
Cluster Compute Grid |
Added a subscription to changes in compute task statuses. |
GG-33884 |
Cluster Deployment |
Fixed a bug with cluster crashing if a class with higher bytecode version was received from the client. |
GG-33743 |
Platforms & Thin Clients |
Fixed a possible freeze when thin clients were used with TLS1.3. |
GG-33717 |
Cluster Metrics & Monitoring |
Added system views for data structures. |
GG-33698 |
Cluster Storage Engine |
Fixed a rare case when rebalance did not happen during a client joining the cluster. |
GG-33675 |
Cluster Storage Engine |
Fixed an issue that caused speed-based writes throttling to fail in protecting Checkpoint Buffer from exhaustion. |
GG-33208 |
Cluster Storage Engine |
Introduced checkpoint history snapshots to speed up node startup process. |
GG-33203 |
Cluster SQL Engine |
Fixed inline-size calculation for PK of varchar(N) column. |
Enterprise Edition Changes
Issue ID | Category | Description |
---|---|---|
GG-34556 |
Cluster Security |
Updated jackson-databind and log4j2 version to fix a vulnerability. |
GG-34371 |
GridGain Integrations |
Added support for Spring Data in thin clients. |
GG-34339 |
Cluster SQL Engine |
Added an ability to specify inline size of PK and affinity key indexes from CREATE TABLE and QueryEntity commands. |
GG-33727 |
Control Center Agent |
Added APIs (Java, control.sh, and JMX) to change cluster ID and cluster secret. |
Ultimate Edition Changes
Issue ID | Category | Description |
---|---|---|
GG-34335 |
Cluster Snapshot Utility |
Fixed a rare freeze (caused by node stop) during custom snapshot operation. |
GG-33981 |
Cluster Data Snapshots and Recovery |
Fixed a rare freeze during custom snapshot operation. |
GG-33737 |
Cluster Data Snapshots and Recovery |
Added a log message about the impossibility of creating a snapshot on a schedule. |
GG-33532 |
Cluster Data Snapshots and Recovery |
Snapshot creation now stops early if there are caches with lost partitions and partition loss policy is not IGNORE. |
Control Center Agent Changes
Issue ID | Category | Description |
---|---|---|
GG-34562 |
Control Center Agent |
Added sending of compute task priority to Control Center. |
GG-34558 |
Control Center Agent |
Fixed CVE-2021-44832. |
GG-34241 |
Control Center Agent |
Fixed node versions on Cluster page in GridGain Portal. |
GG-33996 |
Control Center Agent |
Added support for SFTP for code deployment. |
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 information on upgrade options.
8.7.2-p15
, 8.7.3
, 8.7.4
, 8.7.5
, 8.7.5-p1
, 8.7.6
, 8.7.6-p1
, 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
, 8.7.26
, 8.7.26-p1
, 8.7.27
, 8.7.27-p1
, 8.7.28
, 8.7.29
, 8.7.29-p1
, 8.7.30
, 8.7.31
, 8.7.32
, 8.7.33
, 8.7.33-p2
, 8.7.34
, 8.7.35
, 8.7.36
, 8.7.37
, 8.7.38
, 8.7.39
, 8.7.40
, 8.7.41
, 8.7.42
, 8.8.1
, 8.8.2
, 8.8.3
, 8.8.4
, 8.8.5
, 8.8.6
, 8.8.7
, 8.8.8
, 8.8.9
, 8.8.10
, 8.8.11
, 8.8.12
, 8.8.13
Known Limitations
Jetty Configuration Incompatibility in GridGain 8.7.21 and Later
If you are upgrading from version 8.7.20 or earlier, consider an incompatibility issue related to Jetty configuration introduced in GridGain 8.7.21.
Your setup may be affected if:
-
You use 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 a new version, an exception is thrown with an error message similar to the following:
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, alter the Jetty configuration to use org.eclipse.jetty.util.ssl.SslContextFactory$Server
or org.eclipse.jetty.util.ssl.SslContextFactory$Client
.
See the configuration example at the Client Certificate Authentication page.
Default rebalanceThreadPoolSize
in GridGain 8.7.26 and Later
In GridGain 8.7.26, the default value of the property IgniteConfiguration.rebalanceThreadPoolSize
changed from 1
to min(4, number of CPU / 4)
.
It may cause a compatibility issue under the following conditions:
-
When a Rolling Upgrade is performed
-
The upgrade is performed from 8.5.7 version (or earlier) to 8.5.x or from 8.7.3 (or earlier) to 8.7.x
-
The server nodes have at least 8 CPU cores
-
The nodes configuration does not have the property
IgniteConfiguration.rebalanceThreadPoolSize
, so the default value is used
In this case, an exception is thrown with an error message similar to the following:
с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, change the configuration of the server nodes to rebalanceThreadPoolSize=1
so that it matches
the previous default configuration. For example:
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="rebalanceThreadPoolSize" value="1"/>
<!-- The rest of the configuration goes here -->
</bean>
Jetty Doesn’t Accept Incorrect Configuration in GridGain 8.7.31 and Later
In GridGain 8.7.31 Jetty was upgraded to 9.4.33. Starting that version, Jetty has more strict validation of the provided configuration files. Before that version, an incorrectly spelled property in the configuration file had no effect. Starting this version, errors in the configuration will lead to an error on start.
Your setup may be affected if:
-
You use the
ignite-rest-http
module (e.g. to connect to GridGain Web Console) -
You have a custom Jetty configuration for REST
-
The custom configuration has errors in it
You will need to fix the custom Jetty configuration before upgrading.
ignite.sh
No Longer Enables Remote JMX by Default in GridGain 8.7.31 and Later
Starting from 8.7.31 version, GridGain no longer attempts to automatically enable the remote JMX. Default settings are known to cause issues if customized (for example, secure the connection). Also, in most cases, remote JMX is not required since many tools use local JMX connections (not using TCP).
Your setup may be affected if:
-
You start GridGain nodes via
ignite.sh
script -
You connect to GridGain nodes' JMX interface remotely over TCP using the default configuration
To continue using remote JMX, you need to manually specify the required JMX settings. Please see the example below. Note that you don’t need remote JMX if you use a local connection, such as connecting JConsole to a GridGain process on the same host.
export JVM_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=33333 \
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
bin/ignite.sh
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.