<head>
<link rel="canonical" href="https://ignite.apache.org/releases/latest/release_notes.html" />


	



	<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.8.0<h1>
			<div></div>

			<h2>Ignite Experimental API:</h2>
			<ul>
				<li>Added monitoring API - an exporter of Ignite metrics to external recipients</li>
				<li>Extended IgniteCache API with withReadRepair to perform backup nodes consistency check on each cache get attempt</li>
				<li>Marked MVCC feature (added by 2.7.0 RELEASE)</li>
			</ul>

			<h2>Ignite Monitoring:</h2>
			<ul>
				<li>Added support of exposing objects as system views (SQL, JMX exporters supported "out of the box")</li>
				<li>Added support of storing and updating metrics (JMX, SQL, Log, OpenCensus exporters supported "out of the box")</li>
				<li>Added SQL query system view</li>
				<li>Added client connections (JDBC, ODBC, Thin) system view</li>
				<li>Added cluster nodes system view</li>
				<li>Added columns system view</li>
				<li>Added continuous query system view</li>
				<li>Added free-lists system view</li>
				<li>Added indexes system view</li>
				<li>Added metrics for PME timings</li>
				<li>Added metrics for transaction duration</li>
				<li>Added metrics to measure cache API performance</li>
				<li>Added metrics to show index building in progress</li>
				<li>Added scan query system view</li>
				<li>Added schemas system view</li>
				<li>Added striped thread pool queue system view</li>
				<li>Added support of metrics configuration via JMX</li>
				<li>Added tables system view</li>
				<li>Added total time threads parked if checkpoint throttling occurred</li>
				<li>Added transactions system view</li>
				<li>Moved CacheGroupMetrics to the new framework</li>
				<li>Moved ClusterMetricsMxBean to the new framework</li>
				<li>Moved Communication metrics to the new framework</li>
				<li>Moved GridJobMetricsProcessor to the new framework</li>
				<li>Moved GridLocalMetrics to the new framework</li>
				<li>Moved IgniteMXBean to the new framework</li>
				<li>Moved QueryMetrics to the new framework</li>
				<li>Moved TransactionMetricsMxBean to the new framework</li>
			</ul>

			<h2>Ignite Core:</h2>
			<ul>
				<li>Added @IgniteExperimental annotation to notify users about early access API available</li>
				<li>Added IGNITE_CONSISTENT_ID system property</li>
				<li>Added IGNITE_DISCOVERY_DISABLE_CACHE_METRICS_UPDATE system property</li>
				<li>Added IGNITE_YARN_QUEUE property to override YARN queue name</li>
				<li>Added JMX ability to exclude node from topology</li>
				<li>Added JMX metrics for partition map exchange timings</li>
				<li>Added SSL support for ZookeeperSpi</li>
				<li>Added Spark SQL Table Schema Specification</li>
				<li>Added WAL page snapshot records compression</li>
				<li>Added ability to override all caches 'rebalanceThrottle' option via JVM node option</li>
				<li>Added ability to set default parallelism of rebuild indexes in configuration</li>
				<li>Added ability to track system/user time held in the transaction</li>
				<li>Added binary mode (withKeepBinary) to Data Structures Queue</li>
				<li>Added a withReadRepair for IgniteCache to perform backup nodes consistency check on each cache get attempt</li>
				<li>Added cache validation logic on primary node instead of near node</li>
				<li>Added cluster activation/deactivation events</li>
				<li>Added configuration for explicit plugins providing (via spring configuration)</li>
				<li>Added disk page compression support</li>
				<li>Added extra logging for client-server connections in TcpDiscoverySpi implementations</li>
				<li>Added information about possible long GC pause to checkpoint started message</li>
				<li>Added initial support of Spark 2.4 (new internal changes since Spark 2.3)</li>
				<li>Added parallel write&evict same key in CacheWriteBehindStore</li>
				<li>Added possibility to have different rebalance thread pool size for nodes in the cluster</li>
				<li>Added support TcpCommunicationSpi of TLSv1.3</li>
				<li>Added support TcpDiscoveryS3IpFinder client-side encryption</li>
				<li>Added support UriDeploymentSpi for JAR files</li>
				<li>Added support array as key for the cache</li>
				<li>Added support discovery messages for service deployment</li>
				<li>Added support for baseline auto-adjustment</li>
				<li>Added support for Kubernetes discovery for non-ready pods</li>
				<li>Added support for spring data update/delete operations</li>
				<li>Added support logical recovery phase outside of PME</li>
				<li>Added support best effort affinity for thin clients (partition awareness)</li>
				<li>Added support node discovery through AWS ELB</li>
				<li>Added transaction label to transaction cache events (e.g. EVT_TX_STARTED, EVT_TX_COMMITTED)</li>
				<li>Added transactions support to thin clients</li>
				<li>Added 'limit' as a parameter for TextQuery constructor and builder</li>
				<li>Added ignite-spring-data_2.2 module to be used with Spring Framework 5.2.x and Spring Data 2.2.x</li>
				<li>Added integration with hibernate 5.3</li>
				<li>Added support for non-blocking PME on node left</li>
				<li>Added support for IgniteSpark skipStore option for internal dataStreamer (IgniteRdd and Ignite DataFrame)</li>
				<li>Avoid synchronous initialization of storage managers during PME</li>
				<li>Fixed B+Tree corruption caused by byte array values</li>
				<li>Fixed ComputeJob cancel method executes with the wrong SecurityContext</li>
				<li>Fixed IGNITE_ENABLE_FORCIBLE_NODE_KILL system property behaviour</li>
				<li>Fixed IO race during read\write cache configurations</li>
				<li>Fixed Ignite Queue hanging after several read/write operations</li>
				<li>Fixed IgniteCache replace method does not work in a binary mode without classes</li>
				<li>Fixed P2P for remote filter and filter factory</li>
				<li>Fixed RobinHoodBackwardShiftHashMap on big-endian architectures</li>
				<li>Fixed ScanQuery doesn't take lost partitions into account</li>
				<li>Fixed Spark DataFrame will get the wrong schema if a user executes add/drop column DDL</li>
				<li>Fixed TTL manager may not clear entries from the underlying CacheDataStore</li>
				<li>Fixed TcpDiscovery lock on SSLSocket close</li>
				<li>Fixed WebSessionFilter does not work with jetty 9.4 anymore</li>
				<li>Fixed a new exchange coordinator skips client fast reply for a previous exchange</li>
				<li>Fixed activate\deactivate hanging</li>
				<li>Fixed affinity calculation and fetching on client nodes</li>
				<li>Fixed binary metadata is not registered during the start of the cache</li>
				<li>Fixed blinking baseline node sometimes unable to connect to a cluster</li>
				<li>Fixed cache start while the cache is restarting with the same name</li>
				<li>Fixed checkpoint temp files don't removed on a node start</li>
				<li>Fixed client does not survive after several cluster restarts for ZookeeperDiscoverySpi</li>
				<li>Fixed cluster hanging on cache invoke with binary objects creation</li>
				<li>Fixed compatibility issue with JDBC drivers of older versions</li>
				<li>Fixed continuous query handlers are not called on backups when a one-phase commit is used</li>
				<li>Fixed data corruption when an exception occurred during tx commit without node stopping</li>
				<li>Fixed data loss during starting of the nodes with empty persistence data storage</li>
				<li>Fixed deadlock between restore partition states and checkpoint begin phase</li>
				<li>Fixed deadlock on client node in case of network problems or long GC pauses</li>
				<li>Fixed detection of corrupted index storage on a file system</li>
				<li>Fixed dynamic columns and indexes can be lost after the cluster restart</li>
				<li>Fixed exchange hanging while new node restoring state from disk and starting caches</li>
				<li>Fixed exchange on node left hanging when a cluster is in the transition state</li>
				<li>Fixed index usage is not applicable for mixed IN and EQUALS queries</li>
				<li>Fixed node hanging on join to topology</li>
				<li>Fixed node hanging with TcpDiscoveryS3IpFinder while stopping</li>
				<li>Fixed p2p incorrectly loaded classes of remote query filter</li>
				<li>Fixed partition hanging in MOVING state after node joined and rebalanced</li>
				<li>Fixed partition may restore wrong MOVING state during crash recovery</li>
				<li>Fixed possible exceptions during simultaneous cache group stop and partition eviction</li>
				<li>Fixed race between rollback exception and timeout exception on changing transaction state</li>
				<li>Fixed segmenting node can cause ring topology broke</li>
				<li>Fixed stopping caches concurrently with node join may lead to a crash of the node</li>
				<li>Fixed transaction commit exception about missing binary schema on large clusters</li>
				<li>Fixed transaction prepare-commit ordering in one-phase commit scenario</li>
				<li>Fixed transactions that potentially may cause hanging in COMMITING state and partitions desync</li>
				<li>Fixed validation of joining nodes for Zookeeper</li>
				<li>Fixed when collocated IgniteSet close is not working on non-affinity node</li>
				<li>Forbidding joining persistence node to an in-memory cluster</li>
				<li>IGNITE_DISABLE_WAL_DURING_REBALANCING turned on by default</li>
				<li>Improved CRC32 calculation algorithms for internal usages</li>
				<li>Improved LRT diagnostic messages</li>
				<li>Improved PME speed during full partition map generation (parallel execution)</li>
				<li>Improved PME speed during full partition map updating (parallel execution)</li>
				<li>Improved PME speed for starting multiple caches on joining node</li>
				<li>Improved large clusters discovery meta exchange (by add compression on Discovery data bag)</li>
				<li>Improved logging for the index rebuild procedure</li>
				<li>Improved read of hot variables in WAL</li>
				<li>Improved speed of WAL segment archiving</li>
				<li>Improved speed of checkpoint finalization on binary memory recovery</li>
				<li>Optimize GC pressure on rebalance procedure</li>
				<li>Optimize HistoryAffinityAssignment heap usage</li>
				<li>Performance improvements for affinity initialization for started cache groups</li>
				<li>Removed IGNITE_SERVICES_COMPATIBILITY_MODE system property</li>
				<li>Removed Java 7 and AI 1.x leftovers from IgniteSystemProperties & IgniteProductVersion</li>
				<li>Replaced IGNITE_BINARY_META_UPDATE_TIMEOUT with IGNITE_WAIT_SCHEMA_UPDATE</li>
				<li>Massive performance and stability improvements</li>
			</ul>

			<h2>SQL:</h2>
			<ul>
				<li>Added Decimal precision and scale constraint</li>
				<li>Added KILL QUERY command</li>
				<li>Added a table row count statistics for the local queries</li>
				<li>Added a view with the list of existing SCHEMAS</li>
				<li>Added a view with the list of existing tables</li>
				<li>Added ability to specify query parallelism in CREATE TABLE's WITH "" clause</li>
				<li>Added automatic pages history dump on CorruptedTreeException</li>
				<li>Added cluster-wide unique identifier for running queries</li>
				<li>Added counter left partition for index rebuild to cache group metrics</li>
				<li>Added default query timeout</li>
				<li>Added drop _VER field support</li>
				<li>Added extract partition info from BETWEEN and range conditions for integer types</li>
				<li>Added extract partition info from JOINs</li>
				<li>Added lazy execution for the local queries</li>
				<li>Added query history statistics API</li>
				<li>Added support for data page scan on ScanQuery, SqlQuery and SqlFieldsQuery</li>
				<li>Added support of allocating memory for a data region when the first cache assigned to this region is created</li>
				<li>Added support of autoclose iterator for query cursor when all data has been read</li>
				<li>Added support of trivial IN-operation for partition extraction</li>
				<li>Added tracking all running queries on initial query node</li>
				<li>Added validation for PK index does not use wrapped object</li>
				<li>Added warning about long query execution printed by timeout (instead of on query finished)</li>
				<li>Disabled implicit distributed joins when queryParallelizm > 1</li>
				<li>Do not store default precision and scale in the QueryEntity for CHAR/VARCHAR and DECIMAL types</li>
				<li>Fixed DDL operations don't work on not started caches on non-affinity nodes</li>
				<li>Fixed IF NOT EXISTS in CREATE TABLE doesn't work</li>
				<li>Fixed SQL event is not fired when a query is reduced to local form</li>
				<li>Fixed SQL query when the value has SQL field which name equals to affinity key name</li>
				<li>Fixed cache destroy operation which has created via SQL</li>
				<li>Fixed creating table with DateTime for PK on a server node</li>
				<li>Fixed error parsing INLINE_SIZE if CREATE INDEX is one of the multiple statements</li>
				<li>Fixed exception after change column type (drop, add)</li>
				<li>Fixed partition pruning is integrated with DML</li>
				<li>Fixed security checks are skipped on some SELECT paths</li>
				<li>Fixed subjectId is lost for SqlFieldsQuery event on the local node</li>
				<li>Fixed when same SQL requests with multiple statements produce a different result</li>
				<li>Fixed when unable to find row by an index created on partial baseline topology</li>
				<li>Forbid mixing _key and key columns in the DML queries</li>
				<li>Move rebalance configuration properties to the IgniteConfiguration level</li>
				<li>Optimize query execution if it targets only one or none partitions</li>
				<li>Reduce excessive int boxing when accessing cache by ID</li>
				<li>Remove scan index for merge table</li>
				<li>Renamed IGNITE schema to SYS</li>
			</ul>

			<h2>MVCC:</h2>
			<ul>
				<li>Added continuous query failover for mvcc-caches</li>
				<li>Added deadlock detector</li>
				<li>Added late affinity assignment support</li>
				<li>Added mvcc-compatible cache peek operation for key-value API</li>
				<li>Fixed JVM crash when node stopped with errors</li>
				<li>Fixed SQL API methods should throw proper TransactionExceptions in case of tx failure</li>
				<li>Fixed client operation hangs if all data nodes left the cluster</li>
				<li>Fixed client reconnect became unstable after mvcc coordinator reassign</li>
				<li>Fixed concurrent cache stop can cause vacuum failure</li>
				<li>Fixed failure to perform non-MVCC SQL from transactions</li>
				<li>Fixed implicit mvcc transaction could use completed one instead of starting new</li>
				<li>Fixed incorrect data region metrics</li>
				<li>Fixed incorrect exception is thrown if no data nodes found for a partition</li>
				<li>Fixed missing EntryProcessor resource injection</li>
				<li>Fixed mvcc history can be missed during remove operation</li>
				<li>Fixed mvcc-cache rebalance procedure leads to data loss</li>
				<li>Fixed query trackers are not released</li>
				<li>Fixed query with specified explicit partitions</li>
				<li>Fixed race on invokeAll operations</li>
				<li>Fixed read transactions remap when coordinator fails</li>
				<li>Fixed removeAll on unstable topology</li>
				<li>Fixed transaction asynchronous rollback</li>
				<li>Fixed update operation hanging on backup on unstable topology</li>
				<li>Fixed vacuums do not clean up all outdated versions</li>
			</ul>

			<h2>JDBC:</h2>
			<ul>
				<li>Added cache expiry policies</li>
				<li>Added support JDBC thin driver: connection timeout</li>
				<li>Added support data page scan for JDBC</li>
				<li>Added support of handling multiple async requests in parallel</li>
				<li>Added support query cancel</li>
				<li>Added support query timeout</li>
				<li>Fixed JDBC getPrimaryKeys returns wrong value for COLUMN_NAME</li>
				<li>Fixed JDBC thin driver metadata misses caches with queryEntities and names containing underscores</li>
				<li>Fixed STREAMING mode fails on streamer reopen on not ordered mode</li>
				<li>Fixed memory leak caused by executing a JDBC prepared statement</li>
				<li>Fixed sqline command !tables works incorrectly for a client node</li>
				<li>Fixed suspended optimistic transaction automatically resumes to last thread after a timeout</li>
				<li>Now driver starts with a random server to connect</li>
				<li>Updated handshake protocol so that the node returns its UUID</li>
			</ul>

			<h2>ODBC:</h2>
			<ul>
				<li>Fixed SQLColumns does not work for tables with escape sequences in name</li>
				<li>Fixed backward compatibility between 2.5 and 2.7</li>
			</ul>

			<h2>Web Agent:</h2>
			<ul>
				<li>Added support for the cluster-ID</li>
				<li>Added support of two way SSL authentication in Web Console agent</li>
				<li>Fixed flag --disable-demo doesn't work</li>
				<li>Fixed hostname verifier must be disabled if "-Dtrust.all=true".</li>
				<li>Improve information message in case REST command failed on cluster</li>
				<li>Improve logging when cluster topology changed</li>
			</ul>

			<h2>Web Console:</h2>
			<ul>
				<li>Added TypeScript support</li>
				<li>Added ability to cancel queries</li>
				<li>Added ability to configure disk page compression properties</li>
				<li>Added check for supported MongoDb version before WC start</li>
				<li>Added email confirmation</li>
				<li>Added management events (EVT_MANAGEMENT_TASK_STARTED)</li>
				<li>Added missed configurations for some of the properties from IgniteConfiguration</li>
				<li>Added option to disable self-registration on Web Console</li>
				<li>Added possibility to configure distributed MVCC</li>
				<li>Added support for "date", "time" and "date-and-time" on InputDialog</li>
				<li>Added support for "type=number" on InputDialog</li>
				<li>Added support for new countries Taiwan, Hong Kong, Singapore</li>
				<li>Fixed can't select cluster memory eviction mode</li>
				<li>Fixed long-running SQL queries could be randomly cancelled from WC</li>
				<li>Fixed memory leak in chart component</li>
				<li>Fixed priority for field validations</li>
				<li>Fixed validation in Firefox</li>
				<li>Update styles of top menu items</li>
				<li>Update to RxJS 6</li>
			</ul>

			<h2>Node.js:</h2>
			<ul>
				<li>Fixed Node.js thin client UUID marshalling</li>
			</ul>

			<h2>Ignite .NET:</h2>
			<ul>
				<li>Added Thin Client Partition Awareness</li>
				<li>Added Thin Client Expiry Policy</li>
				<li>Added Thin Client Cluster API</li>
				<li>Added .NET Core 3.x support</li>
				<li>Added Ignite.NET Dockerfile</li>
				<li>Added Runnable .NET Core assembly</li>
				<li>Added ICache.GetLongSize</li>
				<li>Added IClusterNode.Version</li>
				<li>Added ICompute.WithExecutor</li>
				<li>Added IIgnite.GetVersion</li>
				<li>Added IBinaryObjectBuilder.SetField(name, val, type) overload</li>
				<li>Added Partition Preload API (PreloadPartition, PreloadPartitionAsync)</li>
				<li>Fixed JVM thread leak</li>
				<li>Fixed serialization performance for ISerializable</li>
			</ul>

			<h2>Ignite C++:</h2>
			<ul>
				<li>Added BinaryType methods implementations (GetTypeId, GetFieldId)</li>
				<li>Fixed compilation ODBC and thin client with OpenSSL 1.1</li>
				<li>Fixed compilation on ubuntu 18.04</li>
				<li>Implement atomic part of Cache API for C++ thin client (ReplaceIfEquals, RemoveIfEquals etc.)</li>
				<li>Improve Best Effort Affinity for C++ thin client</li>
				<li>Remove strong dependency on Boost 1.58.0</li>
			</ul>

			<h2>REST:</h2>
			<ul>
				<li>Added "caches" param for "top" command</li>
				<li>Added baseline topology commands to REST API</li>
				<li>Added memory policy metrics via REST</li>
				<li>Fixed IGNITE_REST_SECURITY_TOKEN_TIMEOUT parameter is set in deciseconds instead of seconds</li>
			</ul>

			<h2>Visor:</h2>
			<ul>
				<li>Added ability to set nodeId for VisorIdleVerifyDumpTask executed from ./control.sh --host HOST --cache idle_verify</li>
				<li>Added dynamic turn on/off cache statistics for Visor</li>
				<li>Added guard for cache restarting in progress for Visor tasks.</li>
				<li>Fixed rebalance status in Visor stays on 99.99%.</li>
			</ul>

			<h2>Control utility:</h2>
			<ul>
				<li>Added ability to check CRC sums of stored pages</li>
				<li>Added ability to exclude cache from an output file</li>
				<li>Added ability to show more information about cache configuration</li>
				<li>Added ability to use simultaneous cache filtering options with control.sh --cache idle_verify</li>
				<li>Added command to deal with garbage in partitions which left after cache destroy in shared cache groups</li>
				<li>Added information about coordinator in control.sh output</li>
				<li>Added showing information about lost on idle_verify</li>
				<li>Added support SSL to work with baseline configuration (CommandHandler)</li>
				<li>Added support of changing baseline auto-adjust parameters via console.sh</li>
				<li>Added support request an SSL Keystore password and SSL truststore password</li>
				<li>Display time to baseline auto-adjust event in console.sh</li>
				<li>Fixed connection to cluster error in control.sh while using --cache</li>
				<li>Fixed control.sh --baseline remove outputs wrong error message when trying to remove a node from baseline</li>
				<li>Fixed control.sh not working on a multinode cluster setup</li>
				<li>Fixed idle_verify utility doesn't show both update counter and hash conflicts</li>
				<li>Fixed incorrect error message after three tries on an unsuccessful authorization</li>
				<li>Log all action performed thought control.sh</li>
			</ul>

			<h2>ML:</h2>
			<ul>
				<li>Added Gaussian Mixture Model (GMM) trainer with fixed components</li>
				<li>Added ML logger and env variables in Spark ML Parser</li>
				<li>Added NamedVectors to replace HashMap in Model</li>
				<li>Added OneVsRest Trainer to handling cases with multiple class labels in a dataset</li>
				<li>Added Pipeline support to Cross-Validation process</li>
				<li>Added integration between Ignite SQL and Ignite ML</li>
				<li>Added new Hyper-parameter tuning via Genetic Algorithm</li>
				<li>Added parser for parquet file with the instance of DecisionTreeClassificationModel from Spark ML</li>
				<li>Added parser for parquet file with the instance of DecisionTreeRegressor from Spark ML</li>
				<li>Added parser for parquet file with the instance of GBTRegressionModel from Spark ML</li>
				<li>Added parser for parquet file with the instance of GradientBoostedTreesModel from Spark ML</li>
				<li>Added parser for parquet file with the instance of KMeansModel from Spark ML</li>
				<li>Added parser for parquet file with the instance of LinearRegressionModel from Spark ML</li>
				<li>Added parser for parquet file with the instance of LinearSVCModel from Spark ML</li>
				<li>Added parser for parquet file with the instance of RandomForestClassificationModel from Spark ML</li>
				<li>Added parser for parquet file with the instance of RandomForestRegressionModel from Spark ML</li>
				<li>Added support for using H2O MOJO models for inference and prediction on Ignite data</li>
				<li>Added support new feature-label extraction API (Vectorizers) to Preprocessor trainers</li>
				<li>Added various Naive Bayes classifiers</li>
				<li>Added vector projection</li>
				<li>Advanced support of categorical features (LabelEncoding, Strings in vectorizers)</li>
				<li>Fixed the problem with ML Labmdas which are not working in binary builds</li>
				<li>Implementation of a distributed estimator</li>
				<li>Import models from XGBoost</li>
				<li>Improve model loading from the directory instead a full path to file with model</li>
				<li>Improve the PeerClassloading for ml related lambdas</li>
				<li>Improvements of IgniteModelStorage for IgniteModel and SQL functionality</li>
				<li>Initial phase of integration with Spark ML (parsing of Spark ML models from ml package)</li>
				<li>Merge InfModel and Model</li>
				<li>Merge XGBoost and Ignite ML trees together</li>
				<li>Provide metrics to evaluate the quality of the model</li>
				<li>Provide the recommendation engine to build the recommendation system over the Ignite cache and via SQL operators</li>
				<li>Replace all label/feature extractors on new vectorizers</li>
				<li>Stacking for training and inference</li>
				<li>Unify API for ensemble training algorithms.</li>
			</ul>

			<h2>Dependency updates:</h2>
			<ul>
				<li>Added dependency spring-data-2.2</li>
				<li>Added dependency hibernate-5.3</li>
				<li>Added dependency spark-2.4</li>
				<li>Added dependency spring-5.2</li>
				<li>Updated Jetbrains Annotations to 16.0.3</li>
				<li>Updated Kafka to 2.0.1</li>
				<li>Updated RocketMQ to 4.4.0</li>
				<li>Updated Commons Beanutils to 1.9.4</li>
				<li>Updated Jackson to 2.9.10</li>
				<li>Updated Jetty to 9.4.25</li>
				<li>Updated Spring to 4.3.26</li>
				<li>Updated spring-5.0 to 5.0.16</li>
				<li>Updated spring-data-2.0 to 2.0.13</li>
				<li>Moved Flink to ignite-extension</li>
			</ul>		
		</body>
		