| <head> |
| <link rel="canonical" href="https://ignite.apache.org/releases/2.10.0/release_notes.html" /> |
| <META NAME="ROBOTS" CONTENT="NOINDEX"> |
| |
| <!-- Yandex.Metrika counter --> |
| <script type="text/javascript" > |
| (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; |
| m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) |
| (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); |
| |
| ym(72949126, "init", { |
| clickmap:true, |
| trackLinks:true, |
| accurateTrackBounce:true, |
| webvisor:true |
| }); |
| </script> |
| <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript> |
| <!-- /Yandex.Metrika counter --> |
| <script type='text/javascript'> |
| window.__lo_site_id = 284467; |
| |
| (function() { |
| var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true; |
| wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js'; |
| var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s); |
| })(); |
| </script> |
| |
| |
| |
| <style>h1 { color: #113847; font-size: 33px; font-weight: bold; margin: 30px 0 15px 0; padding-bottom: 7px; width: 700px;}h2 { border-bottom: 2px solid #ccc; color: #113847; font-size: 29px; font-weight: normal; margin: 30px 0 15px 0; padding-bottom: 7px; width: 700px; }a { color: #cc0000; text-decoration: none; }span { color: #cc0000;}a:hover { text-decoration: underline;}ul,ol { list-style: disc; margin-left: 30px;}ul li,ol li { margin: 5px 0;}p.description { width: 700px;}</style> |
| |
| <script> |
| (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ |
| (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), |
| m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) |
| })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); |
| |
| ga('create', 'UA-61232409-1', 'auto'); |
| ga('send', 'pageview'); |
| |
| </script></head> |
| <body> |
| <h1>Apache IGNITE 2.10.0</h1> |
| <div></div> |
| |
| <h2>(!) WARNINGS</h2> |
| <ul> |
| <li>The community accepted MVCC API discontinuation in future releases</li> |
| <li>Enabling disabling WAL doesn't work properly on unstable topology and will be fixed soon</li> |
| <li>Spring Data moved to ignite-extension and will be released separately</li> |
| <li>Node.js, Python, PHP thin clients moved to a dedicated repository</li> |
| </ul> |
| <h2>Ignite</h2> |
| <ul> |
| <li>Added API for checking network connectivity between all nodes in a cluster</li> |
| <li>Added API to get segment sizes</li> |
| <li>Added InitialSize and MaxSize to DataRegion metrics</li> |
| <li>Added RebalancingPartitionsTotal metrics</li> |
| <li>Added TDE CLI management tool</li> |
| <li>Added TDE cache key rotation</li> |
| <li>Added a metric for processed keys when rebuilding indexes</li> |
| <li>Added an ability to check driver metrics in Cassandra store</li> |
| <li>Added a cluster performance profiling</li> |
| <li>Added cluster snapshot security permissions</li> |
| <li>Added a command to control.sh to get an arbitrary Metric</li> |
| <li>Added a command to control.sh to get an arbitrary SystemView</li> |
| <li>Added control.sh API - schedule & cancel</li> |
| <li>Added control.sh API - status</li> |
| <li>Added core defragmentation functions</li> |
| <li>Added deadlock detection for cache entry reentrant locks</li> |
| <li>Added defragmentation JMX API for schedule/cancel/status</li> |
| <li>Added defragmentation parallelism implementation</li> |
| <li>Added events for snapshot operation state</li> |
| <li>Added explicit command.sh option to enable experimental commands</li> |
| <li>Added an extension for tracing the communication socket write with a number of sent bytes</li> |
| <li>Added fallback to full partition rebalancing in case historical supplier failed to read all necessary data updates from WAL</li> |
| <li>Added generic to maintenance mode feature</li> |
| <li>Added implementation readiness probe REST endpoint</li> |
| <li>Added new advanced heuristics for historical rebalance</li> |
| <li>Added new checkpoint metrics</li> |
| <li>Added new event firing before query execution</li> |
| <li>Added new event for node join validation failure</li> |
| <li>Added new index manipulation commands to control.sh</li> |
| <li>Added new metrics framework in ZookeeperDiscovery</li> |
| <li>Added new type of WAL records to track atomic updates on backup nodes</li> |
| <li>Added non markers checkpoint implementation</li> |
| <li>Added output IgniteSystemProperties via control.sh</li> |
| <li>Added special mode for maintenance of Ignite node. Employing Maintenance Mode for clearing corrupted PDS files</li> |
| <li>Added stopping warm-up to control.sh</li> |
| <li>Added support to graceful shutdown for ZookeeperDiscoverySpi</li> |
| <li>Added system view for binary metadata</li> |
| <li>Added system view for metastorage items</li> |
| <li>Added thin client support for Spring Transactions</li> |
| <li>Added thread dumps on failure processor invocations enabled by default</li> |
| <li>Added warming up strategy</li> |
| <li>Fixed AuthenticationContext did not contain subject address when subject is IgniteClient</li> |
| <li>Fixed BPlus tree lock retried limit reached with sqlOnHeapCacheEnabled</li> |
| <li>Fixed BinaryMarshaller needed to use context class loader for deserialization</li> |
| <li>Fixed CLI command to execute maintenance action in corrupted PDS scenario</li> |
| <li>Fixed ComputeScheduleExample</li> |
| <li>Fixed Continuous Query buffers to reduce heap usage</li> |
| <li>Fixed DurableBackgroundTask that could abandon incomplete task</li> |
| <li>Fixed FileWriteAheadLogManager creates 0-length WAL segments and could not start later</li> |
| <li>Fixed GridCacheOffheapManager which ignored candidate pages count for index partition</li> |
| <li>Fixed IgniteCache#isClosed() returned false on server node even if the cache had been closed before</li> |
| <li>Fixed IgniteScheduler that had to run inside the Ignite Sandbox with appropriate security context</li> |
| <li>Fixed NullPointerException at dumping long running operations</li> |
| <li>Fixed NullPointerException due to race on cache stop and transaction commit</li> |
| <li>Fixed NullPointerException during Cassandra Store initialization with PRIMITIVE strategy</li> |
| <li>Fixed NullPointerException in IgniteServiceProcessor when destroying a cache</li> |
| <li>Fixed NullPointerException in logSupplierDone(UUID nodeId)</li> |
| <li>Fixed NullPointerException on client start</li> |
| <li>Fixed NullPointerException on tx recovery</li> |
| <li>Fixed NullPointerException with empty persistence data region</li> |
| <li>Fixed OOM on creating rebalance iterator while rebalancing cache with large values</li> |
| <li>Fixed OpenCensus module had no runtime dependencies</li> |
| <li>Fixed Query cancellation froze on local lazy queries</li> |
| <li>Fixed UnsupportedOperationException on stopping grid</li> |
| <li>Fixed WAL archive cleanup from checkpoint to rollover</li> |
| <li>Fixed WAL compression did not work for binary recovery</li> |
| <li>Fixed WAL iterators required WRITE permissions</li> |
| <li>Fixed WAL segments did not released on releaseHistoryForPreloading()</li> |
| <li>Fixed assertion error of expired cache entries, which relate to a non-persistent data region in the persistent cluster</li> |
| <li>Fixed assertion error which happened on stale latch's acknowledge</li> |
| <li>Fixed blocking section in GridNioWorker and GridNioClientWorker which lead to false positive blocking thread detection</li> |
| <li>Fixed cache Interceptors deserialization on client nodes</li> |
| <li>Fixed checkpoint read lock failed if it was taking under write lock during the stopping node</li> |
| <li>Fixed checkpoint write lock missed during snapshot operation</li> |
| <li>Fixed client node with a static encrypted cache generation on node join</li> |
| <li>Fixed connection recovery timeout</li> |
| <li>Fixed control.sh baseline printed node IP addresses</li> |
| <li>Fixed control.sh did not print results to stdout</li> |
| <li>Fixed control.sh did not start if JMX port was set</li> |
| <li>Fixed control.sh showed passwords in the output</li> |
| <li>Fixed control.sh validate_indexes threw CorruptedTreeException and fails server node during check</li> |
| <li>Fixed critical system error happened on unregistering a JMX bean</li> |
| <li>Fixed deadlock between grid-timeout-worker and a thread opening a communication connection</li> |
| <li>Fixed deadlock between in GridEncryptionManager</li> |
| <li>Fixed deadlock in IgniteServiceProcessor</li> |
| <li>Fixed deadlock on Cache.putAll(Map<KV>)</KV> |
| <li>Fixed deadlock when deleting multiple caches</li> |
| <li>Fixed deadlock when receiving ComputeTask result by IgniteClient</li> |
| <li>Fixed deb package dependence on a non-existent package which could not be installed on Debian 10</li> |
| <li>Fixed deserialization failed at IBinaryObject containing an IBinaryObject field</li> |
| <li>Fixed disabling the archive procedure with walCompactionEnabled might broke reading from wal on server restart</li> |
| <li>Fixed disco-notifier-worker handles IgniteInterruptedCheckedException incorrectly</li> |
| <li>Fixed duplication in select query during partition eviction for caches with 0 backups</li> |
| <li>Fixed error during purges by expiration: Unknown page type</li> |
| <li>Fixed exception was discarded in GridCacheProcessor</li> |
| <li>Fixed exchange worker waiting for new task from queue was considered as blocked</li> |
| <li>Fixed a few issues of command line warm-up in control.sh</li> |
| <li>Fixed handling of a rebalancing with disabled WAL</li> |
| <li>Fixed help information output for control.sh --property help</li> |
| <li>Fixed high contention on GridCachePartitionExchangeManager.ExchangeFutureSet#values</li> |
| <li>Fixed historical iterator on atomic group transferring additional rows</li> |
| <li>Fixed incorrect calculation of WAL segments that should be deleted from WAL archive</li> |
| <li>Fixed incorrect topology snapshot output on coordinator change</li> |
| <li>Fixed incorrect usage of Class.isAssignableFrom in SystemViewLocal and SystemViewMBean classes</li> |
| <li>Fixed incorrect work of predicates (< and >) in where clause with compound primary key</li> |
| <li>Fixed local metastorage system view failure if unmarshalled values were present</li> |
| <li>Fixed metastore which might leave uncompleted write futures during a node stop</li> |
| <li>Fixed model classes which required manual deserialization if used inside loaded job by p2p</li> |
| <li>Fixed operations started on client nodes were not traced</li> |
| <li>Fixed partial index rebuild failed in case indexed cache contained different data types</li> |
| <li>Fixed partition loss detection was not working if a dynamic cache was not started on a client</li> |
| <li>Fixed performance drop when there were many thin clients per server</li> |
| <li>Fixed pingNode() failure pinging nodes with unresolved addresses</li> |
| <li>Fixed printing warning if unordered map was used for bulk update operation on atomic cache</li> |
| <li>Fixed hanging rebalance not in the final state although all partitions were owned</li> |
| <li>Fixed releasing a segment if it was not present in FileWriteAheadLogManager#reserve</li> |
| <li>Fixed removing expired cache entries</li> |
| <li>Fixed restorePartitionStates triggered FailureHandler on node startup</li> |
| <li>Fixed rows buffers usage by reducing index for simple one-way reducer</li> |
| <li>Fixed scan query failure with an assertion error: Unexpected row key</li> |
| <li>Fixed security issue of JMX configuration</li> |
| <li>Fixed speed base throttling unexpectedly degraded to zero</li> |
| <li>Fixed spring data integration which did not introspect the fields of the key object</li> |
| <li>Fixed starvation in mgmt pool caused by MetadataTask execution</li> |
| <li>Fixed synchronization issues when different classloaders were used for deployment of same class</li> |
| <li>Fixed transaction commit completed successfully if a partition was lost on commit phase</li> |
| <li>Fixed validate index did not stop after process of control.sh was interrupted</li> |
| <li>Fixed validateKeyAndValue which attempted to deserialize key and value when QueryEntity.fields was not set</li> |
| <li>Fixed waiting for completion of operations on indexes before cache stop</li> |
| <li>Moved ClusterMetrics to the new metrics framework</li> |
| <li>Moved TcpDiscoveryStatistics to new metrics framework</li> |
| <li>Moved spring-data modules to ignite-extensions</li> |
| <li>Removed 'default' cache usage from REST API</li> |
| <li>Removed the WALPointer interface and using the FileWALPointer instead</li> |
| <li>Removed ability to delete segments from the middle of WAL archive</li> |
| <li>Removed unnecessary dependency to curator-client from ZookeeperDiscoverySpi</li> |
| <li>Removed unnecessary ZkPinger from ZookeeperDiscovery</li> |
| |
| </ul> |
| <h2>SQL</h2> |
| <ul> |
| <li>Added lazy flag to synthetic SELECT used by first step of DML query</li> |
| <li>Added tracing of SQL queries</li> |
| <li>Added unification of fallback properties for SSL settings as per Java standard</li> |
| <li>Fixed REPLICATED cache could not be left-joined to PARTITIONED</li> |
| <li>Fixed decimal columns in SQL result set had invalid precision and scale</li> |
| <li>Fixed exception occurred on SQL caches during the client reconnection</li> |
| <li>Fixed tracing of SELECT queries caused incorrect span inheritance</li> |
| <li>Fixed transformation of sub-queries to JOINs when possible</li> |
| </ul> |
| <h2>JDBC ODBC</h2> |
| <ul> |
| <li>Added ODBC SQLNumResultCols for prepared statement</li> |
| <li>Added ODBC driver assigned SQL_BINARY type to DATE fields</li> |
| <li>Added ODBC driver showed real nullability info</li> |
| <li>Added ODBC implementation of SQLRowCount for select queries</li> |
| <li>Added ODBC support of SQL_ATTR_ROW_ARRAY_SIZE with value more than one</li> |
| <li>Fixed thin driver reported incorrect property names</li> |
| </ul> |
| <h2>Java thin-client</h2><ul> |
| <li>Added non-blocking socket IO usage</li> |
| <li>Added support for IPv6 addresses</li> |
| <li>Added thin client Java API - async API</li> |
| <li>Added thin client Kubernetes discovery</li> |
| <li>Fixed unnecessary CHM get/remove on each request to server</li> |
| <li>Fixed connect/disconnect during topology update might lead to partition divergence in ignite-sys-cache</li> |
| <li>Fixed exception type was lost on rethrow</li> |
| <li>Fixed message not fully read by client after SECURITY_VIOLATION error</li> |
| <li>Fixed thin client silently closed channel after inactivity</li> |
| <li>Fixed thin clients could not access the Ignite Service deployed through UriDeploymentSpi</li> |
| <li>Fixed unsupported protocol version exception on getting cache configuration</li> |
| </ul> |
| <h2>Thin-client</h2><ul> |
| <li>Moved Node.js thin client to a separate git repo</li> |
| <li>Moved PHP thin client to a separate git repo</li> |
| <li>Moved Python thin client to a separate git repo</li> |
| </ul> |
| <h2>Ignite .NET</h2><ul> |
| <li>Added CacheConfiguration.NodeFilter</li> |
| <li>Added Partitions and UpdateBatchSize to SqlFieldsQuery</li> |
| <li>Added RendezvousAffinityFunction.BackupFilter</li> |
| <li>Added includeExpired to ContinuousQuery</li> |
| <li>Added thin client continuous query</li> |
| <li>Added thin client service invocation</li> |
| <li>Added thin client transactions</li> |
| <li>Fixed CachePartialUpdateException: failed to update keys (using Cache.PutAsync)</li> |
| <li>Fixed DateTime usage as a cache key or value</li> |
| <li>Fixed GetAffinity failure with NullPointerException on client node</li> |
| <li>Fixed LINQ provider emitted incorrect table alias for queries with JOIN and GROUP BY combined</li> |
| <li>Fixed Service could not assign correct type to passed array parameters (.Net -> .Net call)</li> |
| <li>Fixed Service lost returned array type information</li> |
| <li>Fixed binary configuration for Compute API invocation</li> |
| <li>Fixed binary configuration of Ignite Java service params and result when calling it from Ignite.NET</li> |
| <li>Fixed child processes became zombies when persistence was used with direct-io on Linux</li> |
| <li>Fixed client should have peerClassLoading property in the IgniteConfiguration class</li> |
| <li>Fixed dispose hangs when continuous query was active on .NET Core 3.x</li> |
| <li>Fixed incorrect GetTotalPhysicalMemory result in Docker</li> |
| <li>Fixed interoperable DateTime</li> |
| <li>Fixed misleading LINQ exception when expression could not be translated</li> |
| <li>Fixed service that could not assign correct type to passed array parameters</li> |
| <li>Fixed slow enum serialization</li> |
| <li>Fixed wrong affinity key registration with AffinityKeyMapped attribute</li> |
| </ul> |
| <h2>Ignite C++</h2><ul> |
| <li>Added Windows support to CMake build system</li> |
| <li>Added implementation of Cluster API</li> |
| <li>Added implementation of SQL API</li> |
| <li>Added thin client transactions</li> |
| <li>Fixed compilation using msvc 14.1</li> |
| <li>Fixed odbc-example losing some values if run with 1 additional node</li> |
| </ul> |
| <h2>ML</h2><ul> |
| <li>Added catboost inference integration</li> |
| <li>Added initial JSON export/import support for all models</li> |
| <li>Added more distances between two Vectors</li> |
| <li>Added target encoding preprocessor</li> |
| <li>Fixed Incorrect Vector::kNorm evaluation for odd powers</li> |
| </ul> |
| </body> |
| |