Features and Improvements
- Added ability to enable persistence per data region [#IGNITE-6030]
- Ignite updates notifier is added [#IGNITE-6305]
- Enhanced persistent store path resolving to not rely on automatically generated consistent ID [#IGNITE-6285]
- SQL: Added ability to specify cache, key type and value type names in CREATE TABLE command [#IGNITE-6242]
- SQL: Added "WRAP_KEY" and "WRAP_VALUE" options to CREATE TABLE command [#IGNITE-6054]
- JDBC thin driver: allowed execution of multiple SQL statements in one command [#IGNITE-6046]
- JDBC/ODBC: Added "skipReducerOnUpdate" flag [#IGNITE-6024]
- Added getRow() and getCol() methods to Matrix API [#IGNITE-5925]
- Added methods for batch services deployment to API [#IGNITE-5145]
- Thin client protocol [#IGNITE-5896]
- SQL: optimize segment resolution in GridH2IndexBase when index is not segmented [#IGNITE-6588]
- Add ability manage version of WAL serializer via system properties [#IGNITE-6513]
- SQL: Add NOT NULL support to QueryEntity API [#IGNITE-6509]
- Add info message for index rebuild [#IGNITE-6488]
- Introduce a constant of default persistence store directory name [#IGNITE-6473]
- ODBC: Add tests for SQLGetInfo [#IGNITE-6468]
- JDBC thick: support multiple SQL statements [#IGNITE-6358]
- SQL: GridH2KeyValueRowOffheap is not used [#IGNITE-6331]
- Remove "allOrNone" flag from IgniteServices#deployAll method [#IGNITE-6289]
- Move ServiceDeploymentException to org.apache.ignite.services package [#IGNITE-6273]
- Fix GridClosureProcessorRemoteTest, add it to suite [#IGNITE-6238]
- Ability to use TLS client authentication in the TcpDiscoverySpi [#IGNITE-6168]
- Refactor WAL Record serialization and introduce RecordV2Serializer [#IGNITE-6029]
- Get rid of checking topology hash in ackTopology [#IGNITE-6016]
- Add transaction prepare and commit markers to WAL [#IGNITE-6014]
- Add more clear WAL mode documentation and print a warning when NONE mode is used [#IGNITE-5915]
Fixed
- EstimatedRebalancingFinishTime and RebalancingStartTime metrics are exposed through MXBean interface [#IGNITE-6583]
- Visor CMD: Improved cache statistics [#IGNITE-6422]
- Random UUID is appended to JDBC driver's Ignite instance names to avoid collision with user-created instances [#IGNITE-5790]
- Fixed connection leaks when loadPreviousValue set to true [#IGNITE-5489]
- Added Collections.singletonList support to BinaryMarshaller [#IGNITE-5444]
- DROP table is frozen in special case [#IGNITE-6569]
- Failed to DROP table created by DDL query after restart [#IGNITE-6568]
- setSchema() is case sensitive in the wrong way in Thin JDBC driver [#IGNITE-6556]
- Atomic cache remove operations are not logged into WAL [#IGNITE-6554]
- JDBC drivers don't provide correct metadata about columns' nullability [#IGNITE-6529]
- IgnitePdsWalTlbTest.testWalDirectOutOfMemory() hangs [#IGNITE-6493]
- Binary marshaller fails on deserialization of object with writeReplace() [#IGNITE-6485]
- Ignite Cache 5 suite has timed out with CacheLateAffinityAssignmentTest.testRandomOperations() [#IGNITE-6427]
- Can't create off-heap matrix with size over 2 Gb (int overflow in DenseOffHeapMatrixStorage.allocateMemory) [#IGNITE-6394]
- CREATE TABLE affinityKey parameter doesn't work as expected [#IGNITE-6375]
- NPE occurs if object with null indexed field is added [#IGNITE-6360]
- in ML examples, class ExampleMatrixStorage doesn't compile [#IGNITE-6328]
- org.h2.jdbc.JdbcSQLException: Hexadecimal string with odd number of characters [#IGNITE-6286]
- ML profile is missing in 2.1 binary release [#IGNITE-6193]
- No checkClusterState() in IgniteKernal.getOrCreateCaches() [#IGNITE-6184]
- GridCacheReplicatedLocalStoreSelfTest.testBackupRestorePrimary flaky-fails in master [#IGNITE-5984]
- IgniteCache#get() fails with "Requesting mapping from grid failed" when deserialising binary object loaded from CacheJdbcPojoStoreFactory [#IGNITE-5966]
- Fix all wrong TODO comments in ML component [#IGNITE-5802]
- JVM crash on node deactivation [#IGNITE-5739]
- IgniteInternalTx.prepare() does not wait for async operations to complete [#IGNITE-4648]
- Cannot find schema for object with compact footer [#IGNITE-4377]
.NET: Features and Improvements
- Pre-configure local event listeners with IgniteConfiguration.LocalEventListeners [#IGNITE-5615]
- SQL Regex support in LINQ [#IGNITE-4723]
- .NET: Disable thin client for 2.3 release [#IGNITE-6621]
- .NET: QueryField.NotNull [#IGNITE-6523]
- .NET: DataStreamer DefaultPerNodeBufferSize, DefaultParallelOpsMultiplier, Timeout [#IGNITE-6517]
- .NET: PersistentStoreConfiguration.WriteThrottlingEnabled [#IGNITE-6516]
- .NET: Propagate ServiceDeploymentException [#IGNITE-6271]
- .NET: IgniteConfiguration.ConsistentId [#IGNITE-6249]
- .NET: Add CheckpointWriteOrder enum in persistent store configuration [#IGNITE-6216]
- .NET: Build NuGet packages for Apache-Ignite release on CI [#IGNITE-6209]
- .NET: EntryProcessorExample closes immediately after execution [#IGNITE-5919]
- .NET: Move TestPlatformPlugin to a separate module [#IGNITE-5879]
- .NET: QueryIndex.InlineSize [#IGNITE-5784]
- .NET: PadLeft and PadRight support in LINQ [#IGNITE-5224]
.NET: Fixed
- .NET: CacheConfiguration.WriteSynchronizationMode incorrect default value [#IGNITE-6494]
- .NET: ActiveOnStart does not work [#IGNITE-6486]
- .NET: Thin client: basic cache operations [#IGNITE-6397]
- .NET: Flusher.RunThread starts a new thread [#IGNITE-6231]
- .NET: Avoid inheritdoc on public APIs [#IGNITE-6215]
- .NET: DataTable can't be serialized [#IGNITE-5927]
- .NET: Datagrid.QueryDmlExample: Incorrect result if run example with standalone Apache Ignite.NET node [#IGNITE-5898]
- .NET: Failed to load ignite.jni.dll when starting up multiple nodes [#IGNITE-5730]
- .NET: Enums do not work as a messaging topic or message [#IGNITE-5606]