GridGain 8.7.38 Release Notes
GridGain 8.7.38 provides access to a number of improvements and bug fixes.
New Features
Extended C++ Client and Java Server Interoperability
A new method Cache::InvokeJava("key", "java_task_name", args)
was added for C++ thick client. With this method, you can Invoke Java entry processor by its name.
Cache<int64_t, int64_t> cache = node.GetOrCreateCache<int64_t, int64_t>("MyCache");
cache.Put(15, 40);
std::string res = cache.InvokeJava<std::string, int64_t>(15, "my.package.StringifyValue");
assert(res == "40");
Additional Option to Preserve Snapshots on Cleanup
You can now specify the number of snapshots to keep during snapshot cleanup with the -keep=N
option, where N is the number of full snapshots to keep. This ensures that a certain number of snapshots are kept for backup. The option does not affect incremental snapshots.
You set this property in the snapshot management tool:
snapshot-utility.sh delete -keep=5
snapshot-utility.bat delete -keep=5
Changes in Behavior
IGNITE_THRESHOLD_WAL_ARCHIVE_SIZE_PERCENTAGE was Replaced
The IGNITE_THRESHOLD_WAL_ARCHIVE_SIZE_PERCENTAGE
system property is now replaced by DataStorageConfiguration#minWalArchiveSize
. The default value is set to half of default value of DataStorageConfiguration#maxWalArchiveSize
property.
You can change the value in this way:
new IgniteConfiguration().setDataStorageConfiguration(
new DataStorageConfiguration().setMinWalArchiveSize(256 * 1024 * 1024)
);
Transaction States are Always Logged
To improve recovery process, WAL logging is now enabled for each transaction by default. This way GridGain can restore transactional states after a node crash.
This behavior can lead to reduced performance on lower-end servers or servers under high load. If your setup is affected, switch to LOG_ONLY
or BACKGROUND
WAL mode to reduce the strain.
Historical Rebalance May be Switched to Full Rebalance
Due to changes in WAL segment behavior, older segments may be automatically released when maximum WAL archive size is reached. If there is no segment for historical rebalance, GridGain automatically switches to full rebalance.
Improvements and Fixed Issues
Community Edition Changes
Issue ID | Category | Description |
---|---|---|
GG-33512 |
Platforms & Thin Clients |
C++ thick client: Added API that allows calling Invoke with Java entry processor by name: Cache.InvokeJava(). |
GG-33431 |
Platforms & Thin Clients |
C++ client: Fixed a rare issue with handling of READ_WANTED and WRITE_WANTED SSL messages. |
GG-33394 |
Cluster Affinity and Baseline Topology |
Fixed unexpected rebalance on an already rebalanced cluster. |
GG-33383 |
Cluster Storage Engine |
Added affinity assignment logging when assignment is not ideal. |
GG-33381 |
Cluster Storage Engine |
Fixed a memory leak when caches are created and deleted. |
GG-33378 |
Cluster Storage Engine |
Improved transaction latency during checkpoint. |
GG-33374 |
Cluster SQL Engine |
Fixed possible inconsistency of new indexes after node restart. |
GG-33364 |
Cluster Storage Engine |
Fixed a heap memory leak that happened during topology changes. |
GG-33360 |
Platforms & Thin Clients |
.NET: Fixed string and array cache keys handling when partition awareness is enabled. |
GG-33359 |
Platforms & Thin Clients |
.NET: Removed the requirement to have bash installed on Linux and macOS systems. |
GG-33354 |
Cluster Communication |
Decreased latency on communication messages. |
GG-33351 |
Cluster SQL Engine |
Fixed an issue when extra results could be returned if query parallelism was greater than 1. |
GG-33134 |
Cluster Metrics & Monitoring |
Fixed CPU load and memory metrics displaying negative values on Java 11. |
Enterprise Edition Changes
Issue ID | Category | Description |
---|---|---|
GG-33473 |
Cluster Rolling Upgrade |
Fixed thin clients' session serialization in compatibility scenario. |
GG-33436 |
Cluster Storage Engine |
System property IGNITE_PDS_WAL_REBALANCE_THRESHOLD has been deprecated. Use distributed property history.rebalance.threshold instead. |
GG-33426 |
Cluster Deployment |
Jetty dependency upgraded to version 9.4.42.v20210604. |
GG-33414 |
Cluster Storage Engine |
Fixed a transactional inconsistency when a transaction rollback happens after a node failure. |
GG-33409 |
Cluster Rolling Upgrade |
Fixed security issues with thin client’s certificate serialization during update from GridGain 8.7.32 and earlier. |
GG-33397 |
Control Center Agent |
Added z/OS-specific SSL parameters to startup scripts. |
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.8.1
, 8.8.2
, 8.8.3
, 8.8.4
, 8.8.5
, 8.8.6
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.
© 2024 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.