forked from apache/ignite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASE_NOTES.txt
2593 lines (2376 loc) · 140 KB
/
RELEASE_NOTES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Apache Ignite Release Notes
===========================
Apache Ignite In-Memory Distributed Database 2.16.0
-----------------------------------------------------------
(!) WARNINGS:
* Operations on atomic caches within transactions are finally forbidden. The system property IGNITE_ALLOW_ATOMIC_OPS_IN_TX has been removed.
* Removed CacheAtomicityMode#TRANSACTIONAL_SNAPSHOT cache mode.
* Mixed mode cache groups are now forbidden, but IGNITE_ALLOW_MIXED_CACHE_GROUPS system option may temporarily allow them.
* The ignite-ml and cassandra modules have been migrated to the Ignite extensions.
Ignite:
* Added ARM64 Docker images.
* Added CLIENT_CONNECTION_ATTRIBUTES system view.
* Added ability to configure metric exporter filter from Spring XML.
* Added cache dumps.
* Added extended debug logging of client connections.
* Added limit support to IndexQuery.
* Added logging of snapshot check procedure.
* Added metrics for operations on secondary indexes.
* Added performance statistics for IndexQuery.
* Added performance statistics info about query properties and processed rows count by query.
* Added size limit of the client session outbound message queue.
* Added topology snapshot info to services system view.
* Deprecated legacy authorization approach via Security Context.
* Deprecated rebalance related methods in the ClientCacheConfiguration.
* Fixed JavaNioAccess handling in JDK 14 and later.
* Fixed MappedFile.map for JDK 14 and newer.
* Fixed NPE during defragmentation OOM exception handling.
* Fixed NPE during transaction recovery.
* Fixed NPE on snapshot create operation for in-memory cluster.
* Fixed StoredCacheData removing when a node filter is set.
* Fixed WAL logging to an archived segment after node restart.
* Fixed an issue when IgniteLock cannot be acquired after release on JDK 17.
* Fixed an issue when TTL is not set for entries inserted with "insert from select" query.
* Fixed an issue when a transaction never finishes on timeout when deadlock detection is disabled.
* Fixed an issue where continuous queries caused excessive memory usage.
* Fixed assertion error in case of empty SQL query.
* Fixed assertion error on defragmentation.
* Fixed broken serialization of communication messages due to incorrect GridCacheQueryRequest class marshalling.
* Fixed continuous queries backup ack message sending for expired entries.
* Fixed deprecation of PartitionLossPolicy (READ_ONLY_ALL, READ_WRITE_ALL).
* Fixed doubled serialization of CQ event oldValue field for REMOVE/EXPIRY events.
* Fixed duplicate index error after CREATE INDEX IF NOT EXISTS on different tables.
* Fixed erroneous logging of failed index rebuild.
* Fixed exception message for transaction timeout before data lock acquired.
* Fixed failure on sqlOnHeapCache=enabled and more than one index used.
* Fixed histogram metric configuration restore on node restart.
* Fixed in-memory server node crashing by TcpIgniteClient.putAllConflict() if cache objects transformation applied.
* Fixed log message about sending and receiving partition file during snapshot restore.
* Fixed log message of snapshot create operation with the warning result.
* Fixed negative duration in the SQL query system view.
* Fixed node crash due to SecurityContext not found during discovery message processing.
* Fixed opencensus-exporter-trace-zipkin dependency scope.
* Fixed possibility to create two caches with the same schemas and index names.
* Fixed possible failures of cache operations when performed through a thin client with Partition Awareness enabled.
* Fixed server nodes crashing if the cache directory contains illegal chars.
* Fixed snapshot creation failing when check throws an exception.
* Fixed snapshot restore metrics is case of an error on prepare.
* Fixed snapshot restore rollback if start cache stage failed.
* Fixed startup on Java 21.
* Fixed the defragmentation can't be configured to use one thread issue.
* Fixed usage of sandbox to create CacheStore.
* Fixed usage of vulnerable init setting in H2 connection.
* Fixed writing post-handshake message in NIO server.
* Removed deprecated "ssl.key.algorithm" Ignite system property - "ssl.KeyManagerFactory.algorithm" is used instead.
* Removed the GridSslContextFactory from public API.
* Updated Snappy-java dependency version to 1.1.10.4.
* Updated Spring dependency version to 5.2.25.RELEASE.
* Updated guava dependency version to 32.1.2.
* Updated jetty dependency version to 9.4.53.v20231009.
* Updated postgresql dependency version to 42.6.0.
* Updated snappy dependency version to 1.1.10.4.
* Updated zookeeper dependency version to 3.8.3.
* Updated zstd dependency version to 1.5.5.
SQL Calcite:
* Added ENFORCE_JOIN_ORDER hint.
* Added FORCE_INDEX/NO_INDEX hints.
* Added events on query execution (EVT_CACHE_QUERY_OBJECT_READ, EVT_SQL_QUERY_EXECUTION).
* Added explicit commons-codec dependency.
* Added local flag support.
* Added long-runing queries and big result-set queries warnings.
* Added metrics for CalciteQueryExecutor thread pool.
* Added partition pruning.
* Added queries timeout support.
* Added sensitive information hiding when IGNITE_TO_STRING_INCLUDE_SENSITIVE property is set to false.
* Added support of setting partitions in SqlFieldsQuery.
* Fixed CREATE TABLE ... WITH affinity_key option validation.
* Fixed NPE on write query plan to performance statistics.
* Fixed SQL metrics (added parsing metrics for the Calcite-based engine, fixed execution metrics).
* Fixed failure on planning when cache size exceeds Integer.MAX_VALUE.
* Fixed list of reserved keywords.
* Fixed memory leak in MailboxRegistryImpl#remotes.
* Fixed performance statistics collection.
* Fixed placeholder values from ModifyNode.
* Fixed primary key inline size calculation.
* Fixed query leak on remote fragment initialization phase failure.
* Fixed the query freezes when partitions are set issue.
* Updated calcite dependency version to 1.34.0.
Control utility:
* Added JMX commands invoker.
* Added compact footer usage statistics to the idle_verify command.
* Added descriptions and values to the properties list command.
* Added node Consistent ID to the index validate command output.
* Added number of partitions processed by the index worker to the output of the index commands.
* Added support of SslContextFactory to CommandHandler (instead of GridSslBasicContextFactory).
* Added support of custom SSL factory.
* Added the cache create command.
* Added the multiple nodes argument to the 'indexes_force_rebuild' and 'schedule_indexes_rebuild' commands.
* Fixed connectable nodes list.
* Fixed control utility module location for slim and LGPL assemblies.
* Fixed idle_verify hash conflicts for expiring entries.
* Fixed result printing of performance statistics subcommands.
* Fixed the page size of cache scan command to meet the limit argument.
Java thin client:
* Added Service Awareness feature.
* Fixed Java thin client socket#open timeout to ClientConfiguration#timeout property.
* Fixed cache objects transformation in Java thin client.
* Fixed potential SocketChannel leak on failed connection.
* Removed artificial port range upper limit of 49151.
Ignite .NET:
* Fixed node crash due to OverflowException in Callbacks.ConsoleWrite.
Ignite .NET thin client:
* Added partition awareness support for types with affinity key.
Apache Ignite In-Memory Distributed Database 2.15.0
-----------------------------------------------------------
(!) WARNINGS:
* Removed deprecated daemon mode for Ignite nodes.
* Removed deprecated ignitevisorcmd tool.
* Removed legacy JMX metric beans (ThreadPoolMXBean, CacheGroupMetricsMXBean, CacheMetricsMXBean, PersistenceMetricsMXBean, DataStorageMetricsMXBean, DataRegionMetricsMXBean).
* Removed redundant ignite-spring to ignite-indexing module dependency. If you use SQL in Ignite and get Ignite dependency via maven, check that you have explicit dependency to the one of the SQL engines (ignite-indexing or ignite-calcite).
* Moved ignite-ssh module to the ignite-extensions.
* Deprecated lazy flag of SqlFieldsQuery. Default value for this flag is changed to 'true'.
* Operations on atomic caches within transactions are forbidden by default now. To allow such operations set system property IGNITE_ALLOW_ATOMIC_OPS_IN_TX to 'true'.
Ignite:
* Added new feature: Incremental snapshots.
* Added cache objects transformation feature (this can be used to encrypt, compress or filter the data).
* Added support of caches with disk page compression for snapshots.
* Added ability to copy only primary partitions to snapshot.
* Added an option to skip snapshot check during restore.
* Added a snapshot exception if a data streamer is loading data with no consistency guarantee.
* Added storing of snapshot operation warnings to a meta.
* Added snapshot delta pages sorting.
* Added partition size and counter check on snapshot create.
* Added system view for Ignite configuration.
* Added "Page free space" column to pages lists system views.
* Added API to kill client (THIN, ODBJ, JDBC) connections.
* Added metrics for page read time and page replace time.
* Added thin client affinity hits/misses metric (for partition awareness requests).
* Added distributed property to disable CDC.
* Added maximum CDC directory size configuration parameter.
* Added expiry policy support for CDC.
* Added ability to provide expireTime during CDC conflict resolution.
* Added LOB and BLOB fields support to CacheJdbcPojoStore.
* Added missing "--add-opens" for Java 15+ runtime.
* Added default constructor to PlatformDotNetSessionLockResult to avoid issues with ReflectionFactory on some application servers.
* Added ability to use configured FailureHandler for segmentation handling.
* Added authorization of .NET and C++ compute tasks.
* Added authorization of Ignite Cluster Node stop/start/restart operations.
* Added authorization of SQL user management operations.
* Added 'ADMIN_CLUSTER_STATE' security permission (now it's the only required permission to change cluster state).
* Granting permissions to system compute tasks by their FQN has been replaced with predefined system permissions.
* Improved rebalance and PME logging (partition ranges disabled).
* Default metrics exporter is now the JMX exporter.
* Optimized index rebuilding (disable writing of WAL records for indexes during rebuilding).
* Optimized deactivation of large memory regions with persistence.
* Optimized zeroing of memory pages.
* Fixed lambdas serialization on Java 17.
* Fixed PDS defragmentation on Windows.
* Fixed JDBC connection leak with cache.invoke() over write-behind enabled cache.
* Fixed an issue that could lead to data corruption of atomic cache when a new updated entry is greater than WAL buffer size.
* Fixed snapshot create operation started from a non baseline node.
* Fixed snapshot inconsistency if it was taken under cache workload.
* Fixed snapshot cancel if one path is configured for several nodes.
* Fixed snapshot restore hanging if the prepare stage fails.
* Fixed ignite-cdc stopping on client node crush.
* Fixed ignite-cdc.sh start failure with non-defailt work directory.
* Fixed CdcMain state committing during index rebuild.
* Fixed CdcConsumer stopping on ignite-cdc.sh stop.
* Fixed the metric for the number of active client sessions.
* Fixed calculation of cache group storage size related metrics (PagesFillFactor, TotalUsedPages, TotalAllocatedPages).
* Fixed assertion on histogram update if currentTimeMillis decreases.
* Fixed REST status code in case of failed request.
* Fixed an issue that could lead to skipping 3rd party cache store while executing the REST API GET command.
* Fixed execution options propagation for compute methods.
* Fixed possible assertion in Communication SPI when the paired connections are set.
* Fixed potential data loss on historical rebalance.
* Fixed WAL timeout rollover.
* Fixed incorrect assertion on CRC calculation when disk page compression is enabled.
* Fixed node start failure if cpMapSnapshot.bin file is corrupted.
* Fixed PDS corruption on checkpoint after deactivation.
* Fixed PDS corruption on deactivation during entries expire.
* Fixed node failure on rebalancing during caches stop.
* Fixed NPE in case of simultaneous cache destroy and transaction rollback.
* Fixed incorrect id check in ClusterGroup.forNodeId.
* Fixed broken affinity after thick client reconnection.
* Fixed near cache creation on non-affinity nodes.
* Fixed possible memory corruption because of insufficient size of compression buffer.
* Fixed skipping verification of index and metastorage partitions in the snapshot verification process.
* Fixed criteria skipping after first IN clause for IndexQuery.
* Fixed WalWritingRate metric for LOG_ONLY and BACKGROUND modes.
* Updated log4j2 dependency to version 2.20.0.
* Updated Jetty dependency to 9.4.49.v20220914.
* Updated Jackson Databind dependency to 2.14.0.
* Updated postgresql dependency to 42.5.0.
* Updated Netty dependency to 4.1.89.Final.
* Updated Ant dependency to 1.10.13.
* Updated Apache Calcite dependency to 1.32.0.
Control utility:
* Added cache clear command.
* Added cache scan command.
* Added multiple partitions support to consistency repair command.
* Added broken partitions list printing to idle-verify command.
* Added result saving into log file to idle_verify command.
* Improved entries versions checking by idle_verify command.
* Added a command to configure Histogram and Hitrate metrics.
* Added a command to forcefully resend CDC cache data.
* Added a command to delete segment CDC links before last gap.
* Added unified syntax for starting and canceling snapshot operations using control script.
* Added the ability to get a view from multiple nodes.
* Logging mechanism moved to IgniteLogger.
Java thin-client:
* Added endpoints discovery feature.
* Added ClientConfiguration.clusterDiscoveryEnabled configuration property.
* Added events listening.
* Added connections balancing (use random open connection for requests instead of default).
* Added configurable logging.
* Fixed the pending requests race on close.
Ignite .NET:
* Added support for default interface methods to Services.
* Added support for Native AOT.
* Added IgniteClientConfiguration.EnableClusterDiscovery thin client configuration property that can be used to enable or disable discovery.
* Fixed marshalling of nested binarizable structures with different schemas.
* Fixed startup on Java 15+.
* Fixed platform cache invalidation on client nodes with near cache.
* Fixed missing DLLs in release package.
Ignite C++:
* Added ability to use java-based continuous query remote filters to C++ thick clients.
* Fixed SIGSEGV on thin client connection close.
ODBC:
* Fixed handling of single quotes.
SQL:
* Fixed redundant query results for commented lines.
* Fixed incorrect type conversion for index scans (for example, when indexed field has string data type and search row has numeric data type).
* Fixed potential deadlock in discovery thread while updating SQL statistics.
Calcite-based SQL engine:
* Added ability to set up global heap memory quota and per-query hep memory quota.
* Added ability to scan inlined keys of indexes without additional requests to data pages.
* Added native support for SEARCH/SARG operator (this makes possible index scans for IN and some other conditions).
* Added support for LocalDate/LocalTime types.
* Added support of index scans on boolean fields.
* Added EVERY/SOME aggregate functions.
* Added details to Calcite parser exception.
* Added new distribution type (optimization to make some joins colocated).
* Added optimization for COUNT(column) if column is indexed.
* Added optimization: merge index conditions for the same field.
* Added optimization: use index first/last value for min()/max() aggregates.
* Added optimization: push not correlated filter part to the table scan.
* implemented query metadata, required for ODBC and JDBC.
* Optimized index scans with conditions containing NULLs.
* Fixed scans to exclude expired entries.
* Fixed row count estimate by limit with offset.
* Fixed CAST error from numbers to boolean.
* Fixed NPE on DML on non-existed table.
Apache Ignite In-Memory Distributed Database 2.14.0
-----------------------------------------------------------
(!) WARNINGS:
* Java thin client retrieves BinaryConfiguration from server and overrides configured and/or default properties.
The behavior is defined by ClientConfiguration#isAutoBinaryConfigurationEnabled.
This is a breaking change for users who use POJO as cache keys and rely on default BinaryConfiguration.
* Removed LOCAL caches support.
* Removed scalar module.
Ignite:
* Added CDC binary meta change events.
* Added a control.sh command that schedules index rebuild via the maintenance mode.
* Added a pluggable affinity mapping function for the partition awareness usage.
* Added a snapshot creation operation metrics.
* Added a snapshot status command to control.sh and JMX.
* Added a user info to the sql queries view.
* Added an opportunity to specify a single partition for IndexQuery.
* Added cache change events for CDCConsumer.
* Added cache metrics command for Control Script.
* Added support of optional beans for SpringResource annotation injection.
* Added system view and histogram to show the distribution of hot and cold pages in the page memory.
* Added the ability to define a custom path for the snapshot operation.
* Added the ability to intercept calls to service methods.
* Fixed 'Integer value is out of bounds' issue when the dataregion maxSize is large enough.
* Fixed 'Invalid cross-device link error' when extending WAL segments size.
* Fixed ClassCastException that appears during deployment manager stop in Java versions 11.0.16+ and 17.0.4+.
* Fixed an issue that caused inconsistent keys after deletion during rebalance.
* Fixed an issue that could lead to a block of the management pool in case of using clearSync.
* Fixed an issue that could lead to unexpected partition map exchange on client nodes.
* Fixed an issue where the snapshot error was not propagated to the initiating node.
* Fixed an issue with potential node failure during the cancellation of computing jobs with cache operations.
* Fixed applying expiration to CDC-replicated cache entries.
* Fixed asynchronous operation permits overflow for explicit transaction with single write entry.
* Fixed durable background task start on BLT node joined to the active cluster.
* Fixed idle_verify command of control.sh utility.
* Fixed incorrect node hostname resolution despite IP is configured with IGNITE_LOCAL_HOST.
* Fixed incorrect params of GridCacheManager#stop method.
* Fixed node resolving stale addresses from previously restarted and killed nodes.
* Fixed nofication for node start event.
* Fixed partition update counter tracking after the node restart.
* Fixed potential deadlock in transactions recovery on node failure.
* Fixed propagation of a service call exception stacktrace to the client side.
* Fixed race condition in GridNioServer.
* Fixed server-side message parsing for big messages from thin clients.
* Fixed tasks for sending snapshot files.
* Fixed the "io.datastorage.StorageSize" metrics in case of multiple persistence data regions.
* Fixed the move of remote partition files during snapshot restore operations.
* Fixed the run of ignitevisorcmd in JDK 17 environment.
* Fixed writing of an empty binary object.
* Fixed wrong checkpoint locks count calculation after lock timeout (wrong calculation leads to node failure in some cases).
* Improved REST commands: skip authorization for 'Probe' and 'Version' commands.
* Improved `--consistency repair` command of the control.sh utility; Read Repair now supports arrays and collections as values.
* Improved `--consistency repair` command of the control.sh utility; Read Repair now supports binary keys.
* Improved `--consistency repair` command of the control.sh utility; atomic caches can now be repaired by Read Repair.
* Improved behavior of the speed-based throttling when a dirty-page ratio is low.
* Improved consistency check, it now supports cacheGroup as a param as well.
* Improved consistency check, it's now able to fix counters.
* Improved index-reader.sh utility: add free size calculation.
* Improved index-reader.sh utility: analyze and output information about the actual usage of inline space in the index.
* Improved index-reader.sh utility: exclude repeated stack traces.
* Improved inline size adjustment for fixed size index items.
* Improved logging levels for situations when dealing with a client node.
* Improved registered service name lookup performance and reduced service shutdown time.
* Improved service name lookup performance and reduced service startup time.
* Improved speed of the index-reader.sh utility.
* Moved ignite-cloud IP Finder to the Ignite Extensions project.
* Moved ignite-mesos to the Ignite Extensions project.
* Moved ignite-spark modules to the Ignite Extensions project.
* Moved ignite-yarn to the Ignite Extensions project.
* Moved inigte-aop module to the Ignite Extensions project.
* Removed deprecated log4j 1.x module.
* Update Tomcat Servlet API dependency version to 9.0.63.
* Update jsonpath dependency to 2.7.0.
* Updated Jackson Databind dependency to 2.12.7 (CVE-2020-36518).
* Updated Jetty dependency to 9.4.43.
* Updated Lucene library version to 8.11.2.
* Updated Spring dependency to 5.2.22.
* Updated the MySql connector dependency version (fixes CVE-2021-2471, CVE-2022-21363).
Java thin client:
* Added AtomicLong.
* Added IgniteSet.
* Added automatic binary configuration. Name mapper and compact footer settings will be set according to cluster configuration.
* Added partition awareness to AtomicLong - send network requests directly to the primary node for the given instance.
* Added support of IndexQuery feature in Java thin client.
* Fixed an issue that caused addresses not to be reloaded from ClientAddressFinder on connection loss.
* Fixed hang on client startup when deprecated TLS version is used.
* Fixed race condition and potential hang on client close.
JDBC:
* Fixed handling of BinaryObjectException on response to deserialization at the thin JDBC client
* Fixed parsing quoted delimiters in CSV fields content for SQL command COPY.
.NET thin client:
* Added AtomicLong.
* Added IgniteSet.
.NET:
* Added service interceptors.
* Fixed StringComparer serialization.
* Fixed net461 release binaries.
* Improved Java detection on Linux.
C++ thin client:
* Added partition property to SqlFieldsQuery for C++ thin client.
* Added support ScanQuery for C++ thin client.
* Added user thread pool size to public configuration of the C++ thin client.
SQL:
* Added segmented indexes support for Calcite engine.
* Added support for IN criterion for IndexQuery: IndexQuery.setCriteria(in("A", Arrays.asList(1, 2 ,3))).
* Calcite-based SQL engine is now independent of H2-based SQL engine and doesn't require 'ignite-indexing' module and H2 to be in classpath anymore.
* Fixed incorrect query result if a subquery with a filter was used on the left shoulder of a LEFT JOIN.
* Fixed indexes registration after add/drop column for Calcite engine.
* Fixed insertion of values with java LocalDate, LocalTime and LocalDateTime types via SQL.
* Improved SQL calcite: use index count scan for COUNT(*).
Apache Ignite In-Memory Distributed Database 2.13.0
-----------------------------------------------------------
(!) WARNINGS:
* The deprecated legacy service grid implementation was removed.
Ignite:
* Added 'snapshotTransferRate' distributed property to limit the rate at which snapshot files are created.
* Added CDC hard links check on startup.
* Added JDBC and ODBC batching support in Calcite query engine.
* Added JMX management and metrics for snapshot restore operation.
* Added Maintenance task to rebuild corrupted indexes.
* Added SNAPSHOT system view to show local snapshots.
* Added a ServiceCallContext that allows implicitly pass additional parameters on every service call.
* Added a special option to run snapshot commands synchronously using control.sh.
* Added an ability for plugins to provide topology validator as extension.
* Added dynamic restoration of encrypted snapshots.
* Added ignite-parent pom and bom artifacts to the Ignite release lifecycle.
* Added new experimental, Apache Calcite based SQL engine.
* Added non default page size support to CDC.
* Added saving settings for transactions monitoring to disk.
* Added separate JVM options for ignite-cdc.sh and ignite.sh.
* Added separate configuration for system data region.
* Added serialization of the partition map to the disk to avoid long start up of the node.
* Added services method invocation duration histogram metric.
* Added support for JDK 17.
* Added support of IGNITE_TO_STRING_INCLUDE_SENSITIVE option by Сonsistency check command.
* Added support of status option in the Control.sh consistency check command.
* Added task execution time metric to thread pools.
* Added the LifecycleAware interface support for local event listeners.
* Added the ability to change the priority of a compute task if PriorityQueueCollisionSpi is configured.
* Deprecated IgniteServices#service(String) and IgniteServices#services(String).
* Deprecated the IGNITE_WAIT_FOR_BACKUPS_ON_SHUTDOWN system property.
* Deprecated the ignite-log4j module.
* Fixed CDC state restore when record contains multiple DataEntry.
* Fixed GeoSpatial index creation on client nodes.
* Fixed IndexQuery incorrect work with indexes built for _VAL field.
* Fixed NPE if column type is null in the JmxSystemViewExporterSpi.
* Fixed NPE in PersistenceTask.
* Fixed NPE in case of simultaneous cache destroy and active tx.
* Fixed NPE in the distributed process on message unmarshal.
* Fixed NoClassDefFound on invokeAsync with using BinaryObjects.
* Fixed NoClassDefFoundError if com.sun.management.OperatingSystemMXBean does not exist.
* Fixed ODBC connection timeouts.
* Fixed PME hanging on client due to implicit transaction committing.
* Fixed TLS 1.3 freeze during handshake.
* Fixed a rare issue with updating the TTL in the near-cache/backup if the request was initiated from another backup.
* Fixed an error report deserialization for some failed JMX commands.
* Fixed an issue that caused a failed deactivation of the cluster.
* Fixed an issue that caused speed-based writes throttling to fail in protecting Checkpoint Buffer from exhaustion.
* Fixed an issue that could lead to incorrect working of the IgniteLock after reconnecting the client node.
* Fixed an issue that led to "Failed to get page store for the given cache ID" error on cache start.
* Fixed an issue that led to failure to join a new node to the cluster in the Karaf container.
* Fixed an issue that led to failures of server nodes due to short history of affinity assignments.
* Fixed an issue when query with 'in' condition with a sub-query returns multiplicative data.
* Fixed an issue with IgniteAtomicSequence that led to AssertionError.
* Fixed binary object building in case the original object contains several collection or reference fields.
* Fixed consistency issue for persistence atomic cache.
* Fixed expiration failure on cluster re-activation.
* Fixed hang query when table is dropped concurrently.
* Fixed index de-fragmentation fails on DECIMAL and VARCHAR columns.
* Fixed index scan won't find data if SqlFieldsQuery with POJO parameter and the local flag is set.
* Fixed logging non-informative ClosedChannelException.
* Fixed metrics in IgniteStripedThreadPoolExecutor.
* Fixed missed values check by Read Repair.
* Fixed negative groupId/cacheId parsing by wal-reader.
* Fixed node crashes with ClosedChannelException.
* Fixed node failure with ClassNotFoundException: wrong validation for Object type.
* Fixed page restore on bad CRC does not mark the page as dirty.
* Fixed peer class loading failure handling.
* Fixed possible starvation in speed based throttling.
* Fixed potential OOM in thin client protocol handler caused by malicious or garbage data.
* Fixed potential data corruption during rapid delete and update operations.
* Fixed query engine allows to insert rows with logically equal compound PK.
* Fixed rebalance issue when historical rebalancing is reassigned after the client node joined the cluster.
* Fixed rollover by timeout that leads to node restart fail.
* Fixed several Spring contexts instantiation by CdcLoader.
* Fixed table operations failure when wrap_key and custom value_type are used.
* Fixed wrong calculation of replies count for queries with partition pruning and enabled parallelism.
* Implemented CDC for in-memory caches.
* Implemented NUMA aware allocator for Ignite durable memory.
* Implemented Read Repair strategies.
* Implemented annotation-based injection of ServiceContext in services.
* Implemented array component type in binary object.
* Implemented forcefully rollover only if DataRecord logged.
* Implemented generate create table sql key type by original column type.
* Implemented named params to Read Repair control.sh command.
* Improved CDC monitoring and logging.
* Improved IndexQuery for index rows filtering.
* Improved logging related to the persistent data structure message for in-memory data region.
* Improved restoring state of data partitions from WAL log on node startup.
* Improved snapshot partitions move.
* Removed shared memory communication client.
* Removed the legacy service grid implementation.
* Updated JNR POSIX dependency to 3.1.15.
* Updated Mesos dependency to 1.11.0.
* Updated hadoop-yarn-client dependency to 3.3.1.
* Updated sfl4j version to 1.7.33.
* Updated Spring dependency version to 5.2.21.RELEASE.
* Updated zookeeper dependency to 3.8.0.
Java thin client:
* Added an option to append server exception stack trace to the error messages.
* Added periodic heartbeat messages to improve connection reliability.
JDBC/ODBC:
* Fixed incorrect queries handling with empty results.
* Fixed linking failure on Linux if SQLConnect is called.
* Fixed set streaming on/off queries.
* Fixed configuration: SSL keystore is not a mandatory parameter.
* Fixed wrong value of SQLGetStmtAttr(SQL_ATTR_ROW_ARRAY_SIZE) for row array size.
.Net:
* Added GetServiceDescriptors to Thin Client Services.
* Added ThinClientConfiguration.SendServerExceptionStackTraceToClient.
* Added services metrics.
* Fixed platform service with node filter cancellation on joining pure java node.
* Fixed EntryPointNotFoundException on Alpine Linux.
* Fixed missing binary schema when field is removed from a type.
* Fixed platform cache not restoring data from persistent storage after node restart.
* Fixed serialization of 'System.Enum' fields.
.Net thin client:
* Added IClientRetryPolicy interface to control retry behavior when an operation fails due to a connection issue.
* Added periodic heartbeat messages to improve connection reliability.
C++:
* Added EventType field to CacheEntryEvent.
* Fixed OpenSSL shared library load order, added OpenSSL 3.0.x support.
* Added RetryPolicy interface to control retry behavior when an operation fails due to a connection issue.
* Added ClientServices#serviceDescriptors.
* Improved memory usage by avoiding extra buffer copy.
C++ thin client:
* Fixed configuration: SSL keystore is not a mandatory parameter.
* Implemented asynchronous network events handling.
* Implemented continuous queries.
SQL:
* Added ability to specify inline size of PK and affinity key indexes from CREATE TABLE.
* Fixed optimization in case of constants in subquery.
Apache Ignite In-Memory Distributed Database 2.12.0
-----------------------------------------------------------
(!) WARNINGS:
* The community accepted deprecate for removal in future releases: CacheMode#LOCAL, CacheAtomicityMode#TRANSACTIONAL_SNAPSHOT, CacheConfiguration#rebalanceDelay.
* GCE, AWS, Azure modules, CacheSpringStoreSessionListener, and TcpDiscoveryZookeeperIpFinder migrated to the Ignite extensions.
* The deprecated legacy service grid implementation will be removed in the next release.
Ignite:
* Added Ignite Distributed Environment Tests.
* Added IndexQuery API for fast index scans.
* Added KubernetesConnectionConfiguration.discoveryPort.
* Added MergeSort distributed cache query reducer.
* Added Read Repair on specified partition to the Control.sh.
* Added an ability to track request handling completion in GridRestProcessor.
* Added an explicit method to register binary type based on class.
* Added batch cache operations histogram metrics.
* Added benchmarks for cache queries - scan, index, text.
* Added docker image for s390x.
* Added events for snapshot restore operation.
* Added expire policy info into log of started cache.
* Added firing event for any ReadRepair attempt (if consistency violation found). Atomic caches are also supported.
* Added offline utility to read and analyze index files.
* Added possibility to accept while indexing classes/enums that are extending interfaces/classes marked to be stored in cache.
* Added rename index tree operation with corresponding WAL record.
* Added resource de-allocation in SharedPageLockTracker.
* Added snapshot thread pool configuration.
* Added support for creating IndexQuery without index name.
* Added the ability to cancellation of consistency recovery command (Read Repair via control.ch).
* Added the ability to record Control.sh consistency check violations to other log file.
* Added the ability to restore snapshot taken on different topologies.
* Added the ability to snapshot encrypted caches.
* Added the cache destroy command for control.sh.
* Added the force deactivation flag to the IgniteMXBean.
* Added time metrics and statistics for the IgniteCache#getAllOutTx.
* Added unconditional logging of tx states to WAL to ensure correct tx recovery after node crash.
* Changed IGNITE_PDS_WAL_REBALANCE_THRESHOLD from System property to Distributed property.
* Deprecated CacheConfiguration#rebalanceDelay for removal.
* Deprecated CacheMode#LOCAL for removal.
* Deprecated CacheAtomicityMode#TRANSACTIONAL_SNAPSHOT deprecated for removal.
* Deprecated the IGNITE_THRESHOLD_WAL_ARCHIVE_SIZE_PERCENTAGE system property.
* Expanded kubernetes examples to include full beans.
* Fixed AssertionError: Unexpected rebalance on rebalanced cluster.
* Fixed CacheObjectAdapter#put incorrect offset handling.
* Fixed NPE on remote listener registration with null remote filter and security enabled.
* Fixed PagesWriteSpeedBasedThrottle time to throttle calculation.
* Fixed REST and Zookeeper module logging: use the slf4j facade to log third-party libraries.
* Fixed REST request failure when cache node filter is used.
* Fixed SSL read error.
* Fixed StackOverflowError in case if exception suppressed with itself.
* Fixed adaptation of the historical rebalance to the release of WAL segments.
* Fixed an error when starting a node due to exceeding the DataStorageConfiguration#getMaxWalArchiveSize.
* Fixed azure-blob-storage dependency versions.
* Fixed builds with maven 3.8.1+.
* Fixed cancelling WAL segments reservation when max WAL archive size is reached.
* Fixed change permissions required to create/destroy caches in GridRestProcessor.
* Fixed check of SERVICE_DEPLOY permission.
* Fixed check statistics obsolescence on server nodes only.
* Fixed client node reconnect with enabled security.
* Fixed concurrent heartbeat update while in blocking section for system workers.
* Fixed contention in lock on Compound future.
* Fixed diagnostic information for PDS corruption scenarios.
* Fixed error extension about B+tree lock retry for indexes.
* Fixed exception for checkpoint marker reading error.
* Fixed exception message of closed the GridCloseableIteratorAdapter.
* Fixed execution of daemon node operations that require authorization.
* Fixed fallback to full rebalance in case of historical rebalancing failure.
* Fixed handle windows in ODBC on Windows.
* Fixed idle verify and snapshot check ambiguity error output.
* Fixed multiple results bug when query parallelism is enabled for single partition query.
* Fixed node restart in maintenance mode with security enabled.
* Fixed performance suggestion URL to legacy documentation.
* Fixed preconfigured service deployment authorization.
* Fixed security context propagation for cache event.
* Fixed security context propagation for compute tasks.
* Fixed snapshot restore fails if metadata is missing on any baseline node.
* Fixed snapshot restore on not all affinity partitions are physically present.
* Fixed spontaneous SocketTimeoutException in server socket accept (JDK-8247750).
* Fixed storage of physical pageIds in a DurableBackgroundCleanupIndexTreeTask.
* Fixed the AssertionError when the JmxMetricExporterSpi unregister a filtered metric registry.
* Fixed the data structures system views registration on inactive cluster start.
* Fixed the inconsistency of the built new indexes after restarting the node.
* Fixed the remove metric value is different for sync and async methods.
* Fixed triple flushing of meta information at the checkpoint.
* Fixed unconditional Lucene index creation.
* Fixed unnecessary socket shutdown and close log output.
* Fixed walTotalSize incorrectly reported when wal archiving is turned off.
* Implemented CDC metrics.
* Implemented Change Data Capture.
* Implemented IndexQuery filter operation.
* Implemented Yardstick benchmark for multi cache transaction operations.
* Implemented forbid duplicated field in CREATE INDEX clause.
* Improved logging of the peer class loading error message.
* Improved the snapshot procedure logging.
* Migrated CacheSpringStoreSessionListener to the Ignite extensions.
* Migrated TcpDiscoveryZookeeperIpFinder to the Ignite extensions.
* Migrated gce, aws, azure modules to the Ignite extensions.
* Updated Bouncycastle version (fixes CVE-2020-15522, CVE-2020-0187, CVE-2020-26939).
* Updated log4j version to 2.17.1 (fixes CVE-2021-44228, CVE-2021-44832, CVE-2021-45046, CVE-2021-45105).
* Updated PostgreSQL JDBC Driver version (fixes CVE-2020-13692).
* Updated httpclient, httpcore versions (fixes CVE-2020-13956).
* Updated the Jackson dependency version (fixes CVE-2019-16942, CVE-2019-16943, CVE-2019-17531).
* Updated the MySql connector dependency version (fixes CVE-2019-2692).
* Updated the Netty dependency version (fixes CVE-2021-21295).
Java thin-client:
* Added SQLSTATE to thin client SQL error message.
* Added client cache for OptimizedMarshaller class names.
* Added partition awareness for ScanQuery with specified partition.
* Added requests thread pool monitoring.
* Fixed ClassNotFoundException on service call after failover.
* Fixed follow user-defined endpoint order, try default port first.
* Fixed issue with explicit binary type configuration.
* Fixed transaction failure after timeout.
.Net:
* Fixed NRE in ClientFailoverSocket due to late logger setter.
* Fixed NullPointerException in ContinuousQuery with security enabled.
* Fixed Schema project version and examples packaging.
* Fixed SslStreamFactory.CertificatePath null value.
* Fixed TypeNameParser to ignore escaped characters in compiler-generated type names.
* Fixed dynamic assemblies handling in TypeResolver.
* Fixed thin client streamer not creating SQL table entries.
* Fixed verify-nuget.ps1 failure when .NET 5 is installed.
Ignite C++:
* Added Compute task functionality.
* Added support for affinity fields.
* Extended platforms API to call Java versioned entry processor.
* Fixed compilation on Visual Studio.
* Implemented building windows installer of ODBC Driver on CMake.
* Removed separate JNI module and moved it to Core.
SQL:
* Added support of precision parameter for varbinary type.
* Fixed PK flag ordering in SQL AST traverse.
* Fixed incorrect JOIN when querying a single-node cluster.
* Fixed setting alias for affinity fields.
* Implemented table statistics.
Apache Ignite In-Memory Distributed Database 2.11.1
-----------------------------------------------------------
* Fixed CVE-2021-44228, CVE-2021-45046, CVE-2021-45105 of ignite-log4j2 module by updating dependency log4j up to 2.17.0.
* Added ability to build ODBC installers using CMake
Apache Ignite In-Memory Distributed Database 2.11.0
-----------------------------------------------------------
Ignite:
* Added the ability to restore cache groups from a snapshot on an active cluster by using the Java API or command line control script.
* Added the check snapshot procedure that validates snapshot consistency or individual cache groups.
* Added cluster metastorage to process of creating a snapshot.
* Added command to control.(sh|bin) that makes possible performance statistics management.
* Added clock and Segmented-LRU page replacement modes.
* Added node attribute collocated affinity backup filter.
* Added system views for data structures.
* Added system view for baseline node attributes.
* Added metrics for monitoring the number of memory pages related to SQL indexes. These metrics can be made available via JMX and viewed as part of data region and cache group properties under the name `InMemoryIndexPages`.
* Added metrics for the number of written and compressed bytes for WAL.
* Added SSL connection metrics.
* Added list of indices that will not be rebuilt forcibly to control.sh utility output.
* Added the argument "pages" to the IgniteWalConverter for searching pages in the WAL.
* Added support for IGNITE_ENABLE_FORCIBLE_NODE_KILL flag in inverse connection protocol.
* Added property `checkpoint.deviation` for randomization of checkpoint interval. It sets the checkpoint frequency in per cent via control.sh utility: `control.sh --property set --name checkpoint.deviation --val 25`.
* Added support of Spring Data repositories initialisation with Spring Boot auto-starter.
* Fixed incorrect values of cache, cache group, data region metrics after cluster re-activation.
* Fixed error with nodes fallabck. Now nodes will properly fallback to full rebalance if historical rebalance fails.
* Fixed possible deadlock in concurrent cache data store initialization, exchange initialization and start of checkpoint.
* Fixed potential JVM crash due to integer overflow in binary streams.
* Fixed node fail due to deleting DurableBackgroundTask's at the end of a checkpoint when stopping a node.
* Fixed an issue causing omitting of NOT NULL constraint validation for columns that are part of compound primary key.
* Fixed an issue causing an error on modification binary object that contains reference to its own inner collection (binary HANDLE to collection).
* Fixed an issue where exception in static initializer during remote filter deployment could lead to the server node failure.
* Fixed deploying of continuous queries. They won't be deployed to the client nodes, since the clients don't store any data.
* Fixed behaviour while writing to Distributed Metastorage. Now exception is thrown on client if client is not connected to topology.
* Fixed node failure when a class was not found by UriDeploymentSpi.
* Fixed an issue causing corruption of PK index tree in case the table was created via SQL API and the PK has several fields in order different from those specified in thr field list.
* Fixed failure to connect to node leading to freezing connection future if paired connections are used.
* Fixed possible index partition corruption after drop index with failed checkpoint scenario.
* Fixed cache group re-encryption after cluster secondary activation.
* Fixed an issue that led to the fact that baseline auto adjustment was not triggered under certain conditions.
* Fixed the race between auto rollover segments and WAL deactivation.
* Fixed an issue when Data Streamer flushing could freeze due to a connectivity problem.
* Fixed an issue that prevented a node from startup in case it can't obtain IP addresses to connect to.
* Fixed the ability to force rebuild indexes for caches.
* Fixed rebuilding indexes. Synchronously stop rebuilding indexes when the cache is stopped to avoid a node fail.
* Fixed a corner case when a node could ignore an OutOfMemoryError and fail to stop.
* Fixed merge query with no unique colons for the Oracle dialect.
* Fixed an issue when connection closed by the one node could lead to infinite connection attempts on the other node.
* Fixed (decreased) an exclusive checkpoint lock time.
* Fixed issue, when CPU checkpoint pool size is not initialized.
* Fixed NullPointerException when run out automatic segment archiving after last record logging.
* Fixed possible cluster fail when the socket read freezes during establishing a new communication connection.
* Fixed node not joining baseline topology after auto adjustment is enabled.
* Fixed inconsistent WAL mode state when changing the state on unstable topology.
* Fixed Allocated RAM metric for in-memory data regions on persistent node.
* Fixed safe restart of node with switching from disabled to enabled WAL archiving.
* Fixed sync-free switch on node(s) fail. Cellular switch's Multi-cell transaction's recovery HB of node(s) fail fixed.
* Fixed an issue that led to JVM crash during index removal on a deactivated cluster.
* Fixed bug when messaging-related metrics were updated before full initialization of Tcp Communication SPI.
* Fixed partitions validator behaiviour. It checks sizes even if update counters are different and prints information about all copies, if partition is in inconsistent state.
* Fixed restart rebuild indexes, if they were not rebuilt, on node restart / reactivation.
* Fixed an exception that may happen when a thick client reconnects.
* Changed IO discovery metric names. Now they are starting with the metric registry name.
* Implemented asynchronous execution of durable background tasks.
* Migrated Spring Cache integration to the Ignite extensions.
* Migrated Spring-transactions module to ignite-extensions.
* Optimized collection of rebalance statistics. This has positive influence on rebalance time.
* Removed diagnostics at a node stop due to an CorruptedTreeException.
* Removed delay from node ping.
* Removed Ignite bean name requirement for Spring Data Repository.
.Net:
* Added string.Compare support to LINQ provider.
* Added thin client DataStreamer API.
* Added an automated check that client binary configuration is compatible to server binary configuration on client start.
* Added services exceptions interoperability between java and .NET.
* Added examples reworked to .NET Core, can be run from CLI or any IDE, on any OS. Examples can be downloaded from NuGet with dotnet-new command.
* Fixed binary type handling when NamespaceToLower or NamespacePrefix is specified.
* Fixed race condition in Events example.
* Fixed inferred SQL table name when query entity value type is generic.
* Fixed arrays and collections deserialization when elements share a reference to the same object.
* Fixed SQL type name for generic query types.
* Fixed DllNotFoundException in single file deployment on .NET 5.
* Fixed string and array cache keys handling when partition awareness is enabled.
* Removed the requirement to have bash installed on Linux and macOS systems.
* Improved DataStreamer API - added FlushAsync, deprecated and replaced confusing methods and properties, fixed resource cleanup.
* Extended ConfigurationManager dependency version range.
Java thin-client:
* Added continuous queries support.
* Added containsKeys, clearKey, clearKeys and getAndPutIfAbsent.
* Added Ignite thin client Spring bean.
Thin-clients:
* Partition awareness is enabled by default (Java, .NET, C++).
SQL:
* Added a new field INITIATOR_ID to the LOCAL_SQL_RUNNING_QUERIES system view. This field indicates the originator of the query: thin client, JDBC/ODBC, compute task.
* Added support of alter/drop/create user SQL commands for security plugins.
* Added tag sql.query.id' for SQL tracing.
* Fixed SQL Constant hidden from logs and views when in IGNITE_TO_STRING_INCLUDE_SENSITIVE=false mode.
Apache Ignite In-Memory Distributed Database 2.10.0
-----------------------------------------------------------
(!) WARNINGS:
* The community accepted MVCC API discontinuation in future releases
* Enabling/disabling WAL doesn't work properly on unstable topology and will be fixed soon
* Spring Data moved to ignite-extension and will be released separately
* Node.js, Python, PHP thin clients moved to a dedicated repository
Ignite:
* Added API for checking network connectivity between all nodes in a cluster
* Added API to get segment sizes
* Added InitialSize and MaxSize to DataRegion metrics
* Added RebalancingPartitionsTotal metrics
* Added TDE CLI management tool
* Added TDE cache key rotation
* Added a metric for processed keys when rebuilding indexes
* Added an ability to check driver metrics in Cassandra store
* Added a cluster performance profiling
* Added cluster snapshot security permissions
* Added a command to control.sh to get an arbitrary Metric
* Added a command to control.sh to get an arbitrary SystemView
* Added control.sh API - schedule & cancel
* Added control.sh API - status
* Added core defragmentation functions
* Added deadlock detection for cache entry reentrant locks
* Added defragmentation JMX API for schedule/cancel/status
* Added defragmentation parallelism implementation
* Added events for snapshot operation state
* Added explicit command.sh option to enable experimental commands
* Added an extension for tracing the communication socket write with a number of sent bytes
* Added fallback to full partition rebalancing in case historical supplier failed to read all necessary data updates from WAL
* Added generic to maintenance mode feature
* Added implementation readiness probe REST endpoint
* Added new advanced heuristics for historical rebalance
* Added new checkpoint metrics
* Added new event firing before query execution
* Added new event for node join validation failure
* Added new index manipulation commands to control.sh
* Added new metrics framework in ZookeeperDiscovery
* Added new type of WAL records to track atomic updates on backup nodes
* Added non markers checkpoint implementation
* Added output IgniteSystemProperties via control.sh
* Added special mode for maintenance of Ignite node. Employing Maintenance Mode for clearing corrupted PDS files
* Added stopping warm-up to control.sh
* Added support to graceful shutdown for ZookeeperDiscoverySpi
* Added system view for binary metadata
* Added system view for metastorage items
* Added thin client support for Spring Transactions
* Added thread dumps on failure processor invocations enabled by default
* Added warming up strategy
* Fixed AuthenticationContext did not contain subject address when subject is IgniteClient
* Fixed BPlus tree lock retried limit reached with sqlOnHeapCacheEnabled
* Fixed BinaryMarshaller needed to use context class loader for deserialization
* Fixed CLI command to execute maintenance action in corrupted PDS scenario
* Fixed ComputeScheduleExample
* Fixed Continuous Query buffers to reduce heap usage
* Fixed DurableBackgroundTask that could abandon incomplete task
* Fixed FileWriteAheadLogManager creates 0-length WAL segments and could not start later
* Fixed GridCacheOffheapManager which ignored candidate pages count for index partition
* Fixed IgniteCache#isClosed() returned false on server node even if the cache had been closed before
* Fixed IgniteScheduler that had to run inside the Ignite Sandbox with appropriate security context
* Fixed NullPointerException at dumping long running operations
* Fixed NullPointerException due to race on cache stop and transaction commit
* Fixed NullPointerException during Cassandra Store initialization with PRIMITIVE strategy
* Fixed NullPointerException in IgniteServiceProcessor when destroying a cache
* Fixed NullPointerException in logSupplierDone(UUID nodeId)
* Fixed NullPointerException on client start
* Fixed NullPointerException on tx recovery
* Fixed NullPointerException with empty persistence data region
* Fixed OOM on creating rebalance iterator while rebalancing cache with large values
* Fixed OpenCensus module had no runtime dependencies
* Fixed Query cancellation froze on local lazy queries
* Fixed UnsupportedOperationException on stopping grid
* Fixed WAL archive cleanup from checkpoint to rollover
* Fixed WAL compression did not work for binary recovery
* Fixed WAL iterators required WRITE permissions
* Fixed WAL segments did not released on releaseHistoryForPreloading()
* Fixed assertion error of expired cache entries, which relate to a non-persistent data region in the persistent cluster
* Fixed assertion error which happened on stale latch's acknowledge
* Fixed blocking section in GridNioWorker and GridNioClientWorker which lead to false positive blocking thread detection
* Fixed cache Interceptors deserialization on client nodes
* Fixed checkpoint read lock failed if it was taking under write lock during the stopping node
* Fixed checkpoint write lock missed during snapshot operation
* Fixed client node with a static encrypted cache generation on node join
* Fixed connection recovery timeout
* Fixed control.sh baseline printed node IP addresses
* Fixed control.sh did not print results to stdout
* Fixed control.sh did not start if JMX port was set
* Fixed control.sh showed passwords in the output
* Fixed control.sh validate_indexes threw CorruptedTreeException and fails server node during check
* Fixed critical system error happened on unregistering a JMX bean
* Fixed deadlock between grid-timeout-worker and a thread opening a communication connection
* Fixed deadlock between in GridEncryptionManager
* Fixed deadlock in IgniteServiceProcessor
* Fixed deadlock on Cache.putAll(Map<KV>)
* Fixed deadlock when deleting multiple caches
* Fixed deadlock when receiving ComputeTask result by IgniteClient
* Fixed deb package dependence on a non-existent package which could not be installed on Debian 10
* Fixed deserialization failed at IBinaryObject containing an IBinaryObject field
* Fixed disabling the archive procedure with walCompactionEnabled might broke reading from wal on server restart
* Fixed disco-notifier-worker handles IgniteInterruptedCheckedException incorrectly
* Fixed duplication in select query during partition eviction for caches with 0 backups
* Fixed error during purges by expiration: Unknown page type
* Fixed exception was discarded in GridCacheProcessor
* Fixed exchange worker waiting for new task from queue was considered as blocked
* Fixed a few issues of command line warm-up in control.sh
* Fixed handling of a rebalancing with disabled WAL
* Fixed help information output for control.sh --property help
* Fixed high contention on GridCachePartitionExchangeManager.ExchangeFutureSet#values
* Fixed historical iterator on atomic group transferring additional rows
* Fixed incorrect calculation of WAL segments that should be deleted from WAL archive
* Fixed incorrect topology snapshot output on coordinator change
* Fixed incorrect usage of Class.isAssignableFrom in SystemViewLocal and SystemViewMBean classes
* Fixed incorrect work of predicates (< and >) in where clause with compound primary key
* Fixed local metastorage system view failure if unmarshalled values were present
* Fixed metastore which might leave uncompleted write futures during a node stop
* Fixed model classes which required manual deserialization if used inside loaded job by p2p
* Fixed operations started on client nodes were not traced
* Fixed partial index rebuild failed in case indexed cache contained different data types
* Fixed partition loss detection was not working if a dynamic cache was not started on a client
* Fixed performance drop when there were many thin clients per server
* Fixed pingNode() failure pinging nodes with unresolved addresses
* Fixed printing warning if unordered map was used for bulk update operation on atomic cache
* Fixed hanging rebalance not in the final state although all partitions were owned
* Fixed releasing a segment if it was not present in FileWriteAheadLogManager#reserve
* Fixed removing expired cache entries
* Fixed restorePartitionStates triggered FailureHandler on node startup
* Fixed rows buffers usage by reducing index for simple one-way reducer
* Fixed scan query failure with an assertion error: Unexpected row key
* Fixed security issue of JMX configuration
* Fixed speed base throttling unexpectedly degraded to zero
* Fixed spring data integration which did not introspect the fields of the key object
* Fixed starvation in mgmt pool caused by MetadataTask execution
* Fixed synchronization issues when different classloaders were used for deployment of same class
* Fixed transaction commit completed successfully if a partition was lost on commit phase
* Fixed validate index did not stop after process of control.sh was interrupted
* Fixed validateKeyAndValue which attempted to deserialize key and value when QueryEntity.fields was not set
* Fixed waiting for completion of operations on indexes before cache stop
* Moved ClusterMetrics to the new metrics framework
* Moved TcpDiscoveryStatistics to new metrics framework
* Moved spring-data modules to ignite-extensions
* Removed 'default' cache usage from REST API
* Removed the WALPointer interface and using the FileWALPointer instead
* Removed ability to delete segments from the middle of WAL archive
* Removed unnecessary dependency to curator-client from ZookeeperDiscoverySpi
* Removed unnecessary ZkPinger from ZookeeperDiscovery
SQL:
* Added lazy flag to synthetic SELECT used by first step of DML query
* Added tracing of SQL queries
* Added unification of fallback properties for SSL settings as per Java standard
* Fixed REPLICATED cache could not be left-joined to PARTITIONED
* Fixed decimal columns in SQL result set had invalid precision and scale
* Fixed exception occurred on SQL caches during the client reconnection
* Fixed tracing of SELECT queries caused incorrect span inheritance
* Fixed transformation of sub-queries to JOINs when possible
JDBC/ODBC:
* Added ODBC SQLNumResultCols for prepared statement
* Added ODBC driver assigned SQL_BINARY type to DATE fields
* Added ODBC driver showed real nullability info
* Added ODBC implementation of SQLRowCount for select queries
* Added ODBC support of SQL_ATTR_ROW_ARRAY_SIZE with value more than one
* Fixed thin driver reported incorrect property names
Java thin-client:
* Added non-blocking socket IO usage
* Added support for IPv6 addresses
* Added thin client Java API - async API
* Added thin client Kubernetes discovery
* Fixed unnecessary CHM get/remove on each request to server
* Fixed connect/disconnect during topology update might lead to partition divergence in ignite-sys-cache
* Fixed exception type was lost on rethrow
* Fixed message not fully read by client after SECURITY_VIOLATION error
* Fixed thin client silently closed channel after inactivity
* Fixed thin clients could not access the Ignite Service deployed through UriDeploymentSpi
* Fixed unsupported protocol version exception on getting cache configuration
Thin-client:
* Moved Node.js thin client to a separate git repo
* Moved PHP thin client to a separate git repo
* Moved Python thin client to a separate git repo
Ignite .NET:
* Added CacheConfiguration.NodeFilter
* Added Partitions and UpdateBatchSize to SqlFieldsQuery
* Added RendezvousAffinityFunction.BackupFilter
* Added includeExpired to ContinuousQuery
* Added thin client continuous query
* Added thin client service invocation
* Added thin client transactions
* Fixed CachePartialUpdateException: failed to update keys (using Cache.PutAsync)
* Fixed DateTime usage as a cache key or value
* Fixed GetAffinity failure with NullPointerException on client node
* Fixed LINQ provider emitted incorrect table alias for queries with JOIN and GROUP BY combined
* Fixed Service could not assign correct type to passed array parameters (.Net -> .Net call)
* Fixed Service lost returned array type information
* Fixed binary configuration for Compute API invocation
* Fixed binary configuration of Ignite Java service params and result when calling it from Ignite.NET
* Fixed child processes became zombies when persistence was used with direct-io on Linux
* Fixed client should have peerClassLoading property in the IgniteConfiguration class
* Fixed dispose freezes when continuous query was active on .NET Core 3.x
* Fixed incorrect GetTotalPhysicalMemory result in Docker
* Fixed interoperable DateTime
* Fixed misleading LINQ exception when expression could not be translated
* Fixed service that could not assign correct type to passed array parameters