GridGain 8.9.3 Release Notes
Overview
GridGain 8.9.3 brings a number of bug fixes and improvements to performance of GridGain.
New Features
New Metadata Management API
With GridGain 8.9.3, a new API was added that can be used to manage cache metadata in your environment from code. Previously, this was only available by using the --meta
command. For more information, see Metadata Management
New DR Flush API
A new flush()
method has been added that can be used to ensure the data specific is replicated during Data Center Replication process. The method returns a future that is returned when the remote cache is in the same state as the local cache was when the method was called.
Service Events now Include Request ID
When service events trigger, they now also provide the unique requestID
for each time the service is executed. This ID is consistent between the service starts and finishes or fails, but is not carried over between executions.
New SQL_JVM_OPTS Parameter for Sqlline
With GridGain 8.9.3, the sqlline
script that is shipped with GridGain no longer uses the JVM_OPTS
environment variable, and instead uses the SQL_JVM_OPTS
. This way, you can specify different JVM parameters for your sqlline requests and GridGain.
Changes in Behavior
Java Thin Client Connects to Random Address
In GridGain 8.9.3, if multiple addresses are provided for the Java thin client, it will connect to a random address. Previously, all Java thin clients connected to the first of the provided addresses.
Improvements and Fixed Issues
Community Edition Changes
Issue ID | Category | Description |
---|---|---|
GG-38691 |
Cluster Metrics & Monitoring |
RequestId parameter was added to ServiceEvent events. |
GG-38652 |
Cluster SQL Engine |
You can now specify the SQL_JVM_OPTS environment variable for sqlline.sh/.bat script to avoid reusing JVM_OPTS from ignite.sh/bat. |
GG-38611 |
Platforms & Thin Clients |
.NET: Added IBinary.RemoveBinaryType method, added support for IBinary.GetBinaryTypes in thin clients. |
GG-38583 |
General |
Fixed an issue with JavaNioAccess handling in JDK 14 and later. |
GG-38440 |
General |
Added sun.security.ssl module to startup script. |
GG-38425 |
Platforms & Thin Clients |
.NET: Added IBinary.RemoveBinaryType method, added support IBinary.GetBinaryTypes in thin clients. |
GG-38373 |
Platforms & Thin Clients |
Java thin client: The first address to connect to is now chosen randomly. |
GG-37762 |
Cluster Continuous Queries |
Fixed a possible inconsistency when using a local query listener while data is filled by using the data streamer. |
GG-37578 |
Cluster Storage Engine |
Fixed an issue with memory-mapped files files for JDK 14 and newer. |
Enterprise Edition Changes
Issue ID | Category | Description |
---|---|---|
GG-38705 |
Cluster Deployment |
You can now specify multiple libraries in the EXTERNAL_LIBS variable. |
GG-38413 |
Cluster Control Script |
Fixed incorrect sender group argument parsing in data center replication full-state-transfer command. |
GG-38361 |
GridGain Integrations |
Added pluggable name mappers for Kafka connectors. |
GG-37810 |
Cluster SQL Engine |
COPY FROM command now also copies CSV headers. |
GG-36768 |
Cluster Data Replication |
Added a new DR flush API, which allows to ensure that updates are delivered to the remote DC. |
Control Center Agent Changes
Issue ID | Category | Description |
---|---|---|
GG-37908 |
Control Center Agent |
Added support for scheduling and managing snapshots from Control Center. |
Installation and Upgrade Information
See the Rolling Upgrades page for information about how to perform automated upgrades and for details about version compatibility.
Migrating From GridGain 8.9.0
GridGain 8.9.1 introduced a large number of changes in default configuration values. Your setup may be affected if you are using default configuration.
When migrating to GridGain 8.9.12, make sure to check Changed Default Values in GridGain 8.9.1 and Later section for any parameters you need to change.
Migrating From GridGain 8.X
When migrating from GridGain 8.8 to GridGain 8.9, no special actions are required for core functionality migration. By using rolling upgrades, you can update from any GridGain version listed below. You may need to perform minor configuration changes to ensure stability post migration.
-
If you are using GridGain Enterprise or Ultimate, the
COPY
command was reworked as described in the [COPY Command Changes] section. The syntax for working with CSV remains the same, but the path is now calculated on the node and the client. This change does not affect GridGain Community edition.To disable this behavior and use the old copy command, pass the
disabledFeatures=SERVER_BULK_LOAD
parameter in the JDBC connection command:jdbc:ignite:thin://127.0.0.1/?disabledFeatures=SERVER_BULK_LOAD
-
If you are using one of the optional modules listed in the [Removed Modules] section, they will continue to work, but compatibility and stability on GridGain 8.9 is not guaranteed. Consider using the alternatives:
-
Visor CMD and GUI can be replaced by GridGain Control Center.
-
The spark module can be replaced by the Spark Ignite Extension.
-
-
If you are using default values in your configuration, you may need to set them manually to keep you cluster working the same way as in previous versions. Make sure to check Changed Default Values in GridGain 8.9.1 and Later section for any parameters you need to change.
Older GridGain Versions 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.22
, 8.7.28
, 8.7.29-p1
, 8.7.32
, 8.7.34
, 8.7.38
, 8.7.42-p2
, 8.8.1
, 8.8.2
, 8.8.2-p1
, 8.8.3
, 8.8.4
, 8.8.4-p2
, 8.8.5
, 8.8.6
, 8.8.7
, 8.8.8
, 8.8.8-p1
, 8.8.9
, 8.8.9-p1
, 8.8.10
, 8.8.11
, 8.8.12
, 8.8.13
, 8.8.13-p2
, 8.8.14
, 8.8.15
, 8.8.16
, 8.8.16-p2
, 8.8.17
, 8.8.18
, 8.8.18-p1
, 8.8.19
, 8.8.19-p1
, 8.8.20
, 8.8.21
, 8.8.22
, 8.8.22-p1
, 8.8.23
, 8.8.23-p3
, 8.8.24
, 8.8.25
, 8.8.25-p1
, 8.8.26
, 8.8.27
, 8.8.28
, 8.8.29
, 8.8.30
, 8.8.31
, 8.8.32
, 8.8.33
, 8.8.34
, 8.8.35
, 8.8.36
, 8.8.37
, 8.8.38
, 8.9.0
, 8.9.1
, 8.9.2
Apache Ignite Versions Compatibility
Below is a list of versions that are tested for basic compatibility with the current version. If you are on a version that is not listed, contact GridGain for information on upgrade options.
2.11.1
, 2.12.0
, 2.13.0
, 2.14.0
, 2.15.0
Known Limitations
New TRACING_CONFIGURATION_UPDATE Permission in GridGain 8.9.2 and Later
GridGain 8.9.2 introduced the TRACING_CONFIGURATION_UPDATE
permission. If you were using security on a cluster before updating to this version, make sure that you provide the permissions to control utilities or users who need to update cluster permissions. Otherwise, they will not be able to update
Changed Default Values in GridGain 8.9.1 and Later
If you are updating from GridGain 8.8.X or 8.9.0, a large number of default values have been changed.
These changes may affect the stability or performance of your cluster if you are using default values.
We recommend checking the list below to make sure the changes do not have an adverse effect, and setting the value manually if necessary.
-
Service processor now use event-driven implementation by default. You can keep the old behavior by setting the
IGNITE_EVENT_DRIVEN_SERVICE_PROCESSOR_ENABLE
property tofalse
. Make sure that all nodes in the cluster are set to the same value. -
Data region metrics are now enabled by default. This may have a minor (within 2%) adverse effect on performance. You can keep the old behavior by setting the
DataRegionConfiguration.metricsEnabled
value tofalse
. -
Data storage metrics are now enabled by default. This may have a minor (within 2%) adverse effect on performance. You can keep the old behavior by setting the
DataStorageConfiguration.metricsEnabled
value tofalse
. -
TcpCommunicationSpi
communication protocol now has a limit of 4096 messages for the outgoing messages queue by default. -
Atomic operations are now not allowed in transactions by default. You can keep the old behavior by setting the
IGNITE_ALLOW_ATOMIC_OPS_IN_TX
value totrue
. -
Logs are now in verbose mode by default. You can use the
-q
command line argument in theignite.sh
script to keep current log behavior. -
SQL queries are now loaded lazily by default. This reduces memory consumption on medium and large queries and potentially improves garbage collection performance. You can keep the old behavior by setting the
SqlFieldsQuery.setLazy(false)
. -
Cache entries are now read from primary partitions by default, even if an entry is available on the node in a backup partition. This may have a minor performance impact, but significantly increases cluster stability. You can keep the old behavior by setting the
readFromBackup
property totrue
. -
Partition map exchange transactions now time out after 1 minute instead of 0 (infinite) by default. You can keep the old timeout by setting the
TX_TIMEOUT_ON_PARTITION_MAP_EXCHANGE
setting to 0. -
Data streamer now overwrites entries by default. You can keep the old behavior by setting the
stmr.allowOverwrite
property tofalse
. -
TCP discovery now uses static IP finder
TcpDiscoveryVmIpFinder
by default. To keep the old behavior, set the IP finder to use multicast IP finder. -
Checkpointing process now starts upon reaching 75% of
minWalArchiveSize
instead of 25%. You can keep the old behavior by setting theIGNITE_CHECKPOINT_TRIGGER_ARCHIVE_SIZE_PERCENTAGE
system variable to0.25
.
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
.NET: GridGain Nuget Package Misses GridGain.Ignite Jars in 8.8.17 and Later
Starting with GridGain 8.8.17, the GridGain.Ignite
dependency is not included in the Nuget package. To use GridGain in your project, make sure to include the dependency explicitly so that jars from it are included.
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.