What’s New in This Release
Introduction
This release includes many improvements and introduces several new features covered below.
New Features
-
To boost the performance of join queries, GridGain now supports the hash join algorithm. Hash joins can be more efficient than nested loop joins in several scenarios, except for situations when the probe side of the join is very small. However, hash joins can only be used with equi-joins - a type of join with equality comparison in the join predicate. For more details and usage examples, refer to the Hash Joins documentation.
-
C++ users can now create objects with fields of Enum type and store them in their GridGain cluster.
-
We released an experimental version of the partition awareness feature that boosts the performance of the thin clients for .NET, C++, Python, and Node.js. The thin clients become aware of the distribution of partitions in the cluster, which allows sending requests directly to the nodes that keep primary copies of requested data. Partition awareness is also available for the JDBC Thin driver, which can help optimize the performance of SQL queries.
Improvements for Data Center Replication
Changes In Behavior
-
The default implementation of the sender storage has changed from an in-memory store to a disk-based store. All updates in the master cluster are now stored on disk on the sender nodes before they are forwarded to the remote cluster. The directory on the file system where data updates are stored can be configured using the
DrSenderFsStore.directoryPath
property. The default value points to a directory inside the node’s working directory. However, we recommend that you configure the directory explicitly.<bean class="org.gridgain.grid.configuration.DrSenderConfiguration"> <!-- this node is part of group1 --> <property name="senderGroups"> <list> <value>group1</value> </list> </property> <!-- connection configuration --> <property name="connectionConfiguration"> <bean class="org.gridgain.grid.dr.DrSenderConnectionConfiguration"> <!-- DR storage --> <property name="store"> <bean class="org.gridgain.grid.dr.store.fs.DrSenderFsStore"> <property name="directoryPath" value="/path/to/store"/> </bean> </property> <!-- The ID of the remote cluster --> <property name="dataCenterId" value="2"/> <!-- Addresses of the remote cluster's receiver nodes --> <property name="receiverAddresses"> <list> <value>172.25.4.200:50001</value> </list> </property> </bean> </property> </bean>
-
When the sender store gets full or corrupted, the replication process will stop. You will have to start it manually and do a full state transfer after addressing the problem that caused the issue.
-
The
GridDr.pause()
/GridDr.resume()
methods are deprecated and replaced withGridDr.stopReplication()
/GridDr.startReplication()
.The
stopReplication()
method terminates the replication process, i. e. cache updates will stop being processed.The
startReplication()
method resumes the replication process, i. e. cache updates will start being processed again. Note that if during the break the data in the cache has changed, you will need to do a full state transfer.
-
Added capability to pause/resume the replication process on the sender nodes. These operations can be performed via the JMX beans.
CautionDo not confuse the pause/resume operations with the GridDr.pause()
/GridDr.resume()
methods, which have been deprecated.Unlike the
GridDr.stopReplication()
method, the pause operation will not terminate the process; instead, the sender node where the method is called will stop sending the updates to the remote cluster. The updates will continue to be processed and will be accumulated in the sender storage on that node. To resume the process of sending the updates to the remote cluster, perform the resume operation on the sender node.ImportantIf you want to pause replication, you will have to pause and resume it on every sender node. -
Added adaptive throttling feature that, depending on the workload, allows for adjusting the data transfer rate between data nodes and sender nodes, and between sender nodes and receiver nodes
-
Added several data replication event types. For the complete list of events, refer to the DR Events section.
-
Added the ability to enable replication for existing caches.
Removed/Deprecated
The GridDr.pause()
and GridDr.resume()
methods in the GridDr
interface have been deprecated.
Use GridDr.stopReplication()
/GridDr.startReplication()
methods instead.
Installation and Upgrade Information
For information about how to perform automated upgrades and for details about version compatibility, see the Rolling Upgrades page.
Upgrade from versions 8.4.4 and 8.4.5
There is a known compatibility issue found in version 8.7.8.
To upgrade from versions 8.4.4 or 8.4.5 to version 8.7.8, perform the following steps:
-
Stop one node and set the
IGNITE_PDS_WAL_REBALANCE_THRESHOLD
environment variable to2147483647
; then start the node. Repeat this procedure for all nodes in the cluster. -
Then perform a regular rolling upgrade procedure.
Known Issues
GG-25532 |
There is a known vulnerability in the 'spark-ml-model-parser' module caused by the dependent library zookeeper v. 3.4.13. If you do not use this module, your cluster is not affected by this vulnerability. |
GG-25828 |
JDBC Driver version 8.7.7 cannot connect to cluster version 8.7.8 when authentication is enabled in the cluster. |
GG-25723 |
An attempt to change the baseline topology under load may raise a 'VisorIllegalStateException' exception. |
Fixed Issues
GridGain Community Edition Changes
IGN-12835 |
Cache |
Improved speed of persistent node restart in case the node stopped during checkpoint. |
IGN-11122 |
Cache |
All critical errors during tx commit failures are now handled by a failure handler. |
IGN-11457 |
Cache |
Logical recovery phase is performed before a node joins the topology. |
GG-19543 |
Communication |
Changed client reconnection logic to speed up the reconnect process in case of failures. |
GG-18799 |
Communication, Thin clients |
Thin client: removed limitation of the length of credentials during handshake. |
GG-18670 |
Diagnostics |
Added diagnostic tool of dumping WAL page history in case of B+Tree getting corrupted. |
GG-18667 |
Diagnostics |
Added diagnostic ability for dumping page locks state like a thread dump. |
GG-17442 |
Diagnostics |
List of files in the classpath is printed during the start of the node. It can be disabled by setting
ignite system property |
GG-14947 |
Discovery |
Client node cut off by communication from the rest of the cluster is stopped by Communication Failure Resolver. |
IGN-7398 |
JDBC Thin Driver |
Added |
IGN-7397 |
JDBC Thin Driver |
Added |
IGN-7193 |
JDBC Thin Driver |
Implemented |
GG-23437 |
Rebalancing |
Fixed the issue of resource utilization during rebalancing. |
GG-18917 |
Rebalancing |
Rebalance properties were moved from CacheConfiguration to IgniteConfiguration level. Rebalance properties in CacheConfiguration were deprecated. |
IGN-3517 |
Storage Engine |
Cache configurations are not explicitly deserialized on non-affinity nodes. |
IGN-13624 |
Storage Engine |
Optimized amount of heap space used for affinity assignment history storing. |
IGN-13478 |
SQL |
SqlQuery is deprecated. SqlFieldsQuery should be used instead. |
GG-19125 |
SQL |
Added support for the row count statistics which helps with the local queries optimization. |
GG-18538 |
SQL |
Supports hash index is built on the fly that is used for join when hash table can be placed in the memory. |
IGN-12376 |
SQL |
Support partition pruning for SQL statements with joins. |
IGN-8004 |
SQL |
Restricted DML execution when there is an active transaction over TRANSACTIONAL caches; can be overridden by using the |
GG-21272 |
Transactions |
Added ability to track system and user time for transactions. |
GridGain Enterprise Edition Changes
GG-23261 |
Data Center Replication |
Default DrStore mode is changed to STOP. |
GG-21367 |
Data Center Replication |
Added correctly named methods for DR start\stop methods. |
GG-22491 |
Data Center Replication |
Added adaptive DR throttling. |
GG-22626 |
Data Center Replication |
Added metrics to show DR sender/receiver pending queues size. |
GG-21930 |
Data Center Replication |
Sender hub configuration uses a single port for localOutboundAddress. |
GG-21368 |
Data Center Replication |
Fixed broken DR pause\resume semantic. |
GG-12739 |
Data Center Replication |
Fixed data center replication for caches created via DDL. |
GG-22661 |
Data Center Replication |
A file-system based implementation of Sender Store is now used by default. It has a default work directory, but we recommend to configure it explicitly for production environments. |
GridGain Ultimate Edition Changes
GG-13635 |
Snapshots |
Added the ability to disable automatic snapshot creation after baseline changes. The behavior
can be configured via |
GG-13330 |
Snapshots |
Added |
GG-14095 |
Snapshots |
Fixed the issue when |
Related Information
Need more details? Please don’t hesitate to reach out to the GridGain Customer Support team.
We Value Your Feedback
The GridGain documentation team is focused on constantly improving the product documentation. Your comments and suggestions are always welcome. You can reach us here: docs@gridgain.com
Please visit the documentation for more information.