IGNITE-12626: update RELEASE_NOTES for 2.8 (#7367)

diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index 0950a9f..bde0831 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,6 +1,402 @@
 Apache Ignite Release Notes
 ===========================
 
+Apache Ignite In-Memory Database and Caching Platform 2.8
+---------------------------------------------------------
+
+Ignite Experimental API:
+* Added monitoring API - an exporter of Ignite metrics to external recipients
+* Extended IgniteCache API with withReadRepair to perform backup nodes consistency check on each cache get attempt
+* Marked MVCC feature (added by 2.7.0 RELEASE)
+
+
+Ignite Monitoring:
+* Added support of exposing objects as system views (SQL, JMX exporters supported "out of the box")
+* Added support of storing and updating metrics (JMX, SQL, Log, OpenCensus exporters supported "out of the box")
+* Added SQL query system view
+* Added client connections (JDBC, ODBC, Thin) system view
+* Added cluster nodes system view
+* Added columns system view
+* Added continuous query system view
+* Added free-lists system view
+* Added indexes system view
+* Added metrics for PME timings
+* Added metrics for transaction duration
+* Added metrics to measure cache API performance
+* Added metrics to show index building in progress
+* Added scan query system view
+* Added schemas system view
+* Added striped thread pool queue system view
+* Added support of metrics configuration via JMX
+* Added tables system view
+* Added total time threads parked if checkpoint throttling occurred
+* Added transactions system view
+* Moved CacheGroupMetrics to the new framework
+* Moved ClusterMetricsMxBean to the new framework
+* Moved Communication metrics to the new framework
+* Moved GridJobMetricsProcessor to the new framework
+* Moved GridLocalMetrics to the new framework
+* Moved IgniteMXBean to the new framework
+* Moved QueryMetrics to the new framework
+* Moved TransactionMetricsMxBean to the new framework
+
+
+Ignite Core:
+* Added @IgniteExperimental annotation to notify users about early access API available
+* Added IGNITE_CONSISTENT_ID system property
+* Added IGNITE_DISCOVERY_DISABLE_CACHE_METRICS_UPDATE system property
+* Added IGNITE_YARN_QUEUE property to override YARN queue name
+* Added JMX ability to exclude node from topology
+* Added JMX metrics for partition map exchange timings
+* Added SSL support for ZookeeperSpi
+* Added Spark SQL Table Schema Specification
+* Added WAL page snapshot records compression
+* Added ability to override all caches 'rebalanceThrottle' option via JVM node option
+* Added ability to set default parallelism of rebuild indexes in configuration
+* Added ability to track system/user time held in the transaction
+* Added binary mode (withKeepBinary) to Data Structures Queue
+* Added a withReadRepair for IgniteCache to perform backup nodes consistency check on each cache get attempt
+* Added cache validation logic on primary node instead of near node
+* Added cluster activation/deactivation events
+* Added configuration for explicit plugins providing (via spring configuration)
+* Added disk page compression support
+* Added extra logging for client-server connections in TcpDiscoverySpi implementations
+* Added information about possible long GC pause to checkpoint started message
+* Added initial support of Spark 2.4 (new internal changes since Spark 2.3)
+* Added parallel write&evict same key in CacheWriteBehindStore
+* Added possibility to have different rebalance thread pool size for nodes in the cluster
+* Added support TcpCommunicationSpi of TLSv1.3
+* Added support TcpDiscoveryS3IpFinder client-side encryption
+* Added support UriDeploymentSpi for JAR files
+* Added support array as key for the cache
+* Added support discovery messages for service deployment
+* Added support for baseline auto-adjustment
+* Added support for Kubernetes discovery for non-ready pods
+* Added support for spring data update/delete operations
+* Added support logical recovery phase outside of PME
+* Added support best effort affinity for thin clients (partition awareness)
+* Added support node discovery through AWS ELB
+* Added transaction label to transaction cache events (e.g. EVT_TX_STARTED, EVT_TX_COMMITTED)
+* Added transactions support to thin clients
+* Added 'limit' as a parameter for TextQuery constructor and builder
+* Added ignite-spring-data_2.2 module to be used with Spring Framework 5.2.x and Spring Data 2.2.x
+* Added integration with hibernate 5.3
+* Added support for non-blocking PME on node left
+* Added support for IgniteSpark skipStore option for internal dataStreamer (IgniteRdd and Ignite DataFrame)
+* Avoid synchronous initialization of storage managers during PME
+* Fixed B+Tree corruption caused by byte array values
+* Fixed ComputeJob cancel method executes with the wrong SecurityContext
+* Fixed IGNITE_ENABLE_FORCIBLE_NODE_KILL system property behaviour
+* Fixed IO race during read\write cache configurations
+* Fixed Ignite Queue hanging after several read/write operations
+* Fixed IgniteCache replace method does not work in a binary mode without classes
+* Fixed P2P for remote filter and filter factory
+* Fixed RobinHoodBackwardShiftHashMap on big-endian architectures
+* Fixed ScanQuery doesn't take lost partitions into account
+* Fixed Spark DataFrame will get the wrong schema if a user executes add/drop column DDL
+* Fixed TTL manager may not clear entries from the underlying CacheDataStore
+* Fixed TcpDiscovery lock on SSLSocket close
+* Fixed WebSessionFilter does not work with jetty 9.4 anymore
+* Fixed a new exchange coordinator skips client fast reply for a previous exchange
+* Fixed activate\deactivate hanging
+* Fixed affinity calculation and fetching on client nodes
+* Fixed binary metadata is not registered during the start of the cache
+* Fixed blinking baseline node sometimes unable to connect to a cluster
+* Fixed cache start while the cache is restarting with the same name
+* Fixed checkpoint temp files don't removed on a node start
+* Fixed client does not survive after several cluster restarts for ZookeeperDiscoverySpi
+* Fixed cluster hanging on cache invoke with binary objects creation
+* Fixed compatibility issue with JDBC drivers of older versions
+* Fixed continuous query handlers are not called on backups when a one-phase commit is used
+* Fixed data corruption when an exception occurred during tx commit without node stopping
+* Fixed data loss during starting of the nodes with empty persistence data storage
+* Fixed deadlock between restore partition states and checkpoint begin phase
+* Fixed deadlock on client node in case of network problems or long GC pauses
+* Fixed detection of corrupted index storage on a file system
+* Fixed dynamic columns and indexes can be lost after the cluster restart
+* Fixed exchange hanging while new node restoring state from disk and starting caches
+* Fixed exchange on node left hanging when a cluster is in the transition state
+* Fixed index usage is not applicable for mixed IN and EQUALS queries
+* Fixed node hanging on join to topology
+* Fixed node hanging with TcpDiscoveryS3IpFinder while stopping
+* Fixed p2p incorrectly loaded classes of remote query filter
+* Fixed partition hanging in MOVING state after node joined and rebalanced
+* Fixed partition may restore wrong MOVING state during crash recovery
+* Fixed possible exceptions during simultaneous cache group stop and partition eviction
+* Fixed race between rollback exception and timeout exception on changing transaction state
+* Fixed segmenting node can cause ring topology broke
+* Fixed stopping caches concurrently with node join may lead to a crash of the node
+* Fixed transaction commit exception about missing binary schema on large clusters
+* Fixed transaction prepare-commit ordering in one-phase commit scenario
+* Fixed transactions that potentially may cause hanging in COMMITING state and partitions desync
+* Fixed validation of joining nodes for Zookeeper
+* Fixed when collocated IgniteSet close is not working on non-affinity node
+* Forbidding joining persistence node to an in-memory cluster
+* IGNITE_DISABLE_WAL_DURING_REBALANCING turned on by default
+* Improved CRC32 calculation algorithms for internal usages
+* Improved LRT diagnostic messages
+* Improved PME speed during full partition map generation (parallel execution)
+* Improved PME speed during full partition map updating (parallel execution)
+* Improved PME speed for starting multiple caches on joining node
+* Improved large clusters discovery meta exchange (by add compression on Discovery data bag)
+* Improved logging for the index rebuild procedure
+* Improved read of hot variables in WAL
+* Improved speed of WAL segment archiving
+* Improved speed of checkpoint finalization on binary memory recovery
+* Optimize GC pressure on rebalance procedure
+* Optimize HistoryAffinityAssignment heap usage
+* Performance improvements for affinity initialization for started cache groups
+* Removed IGNITE_SERVICES_COMPATIBILITY_MODE system property
+* Removed Java 7 and AI 1.x leftovers from IgniteSystemProperties & IgniteProductVersion
+* Replaced IGNITE_BINARY_META_UPDATE_TIMEOUT with IGNITE_WAIT_SCHEMA_UPDATE
+* Massive performance and stability improvements
+
+
+SQL:
+* Added Decimal precision and scale constraint
+* Added KILL QUERY command
+* Added a table row count statistics for the local queries
+* Added a view with the list of existing SCHEMAS
+* Added a view with the list of existing tables
+* Added ability to specify query parallelism in CREATE TABLE's WITH "" clause
+* Added automatic pages history dump on CorruptedTreeException
+* Added cluster-wide unique identifier for running queries
+* Added counter left partition for index rebuild to cache group metrics
+* Added default query timeout
+* Added drop _VER field support
+* Added extract partition info from BETWEEN and range conditions for integer types
+* Added extract partition info from JOINs
+* Added lazy execution for the local queries
+* Added query history statistics API
+* Added support for data page scan on ScanQuery, SqlQuery and SqlFieldsQuery
+* Added support of allocating memory for a data region when the first cache assigned to this region is created
+* Added support of autoclose iterator for query cursor when all data has been read
+* Added support of trivial IN-operation for partition extraction
+* Added tracking all running queries on initial query node
+* Added validation for PK index does not use wrapped object
+* Added warning about long query execution printed by timeout (instead of on query finished)
+* Disabled implicit distributed joins when queryParallelizm > 1
+* Do not store default precision and scale in the QueryEntity for CHAR/VARCHAR and DECIMAL types
+* Fixed DDL operations don't work on not started caches on non-affinity nodes
+* Fixed IF NOT EXISTS in CREATE TABLE doesn't work
+* Fixed SQL event is not fired when a query is reduced to local form
+* Fixed SQL query when the value has SQL field which name equals to affinity key name
+* Fixed cache destroy operation which has created via SQL
+* Fixed creating table with DateTime for PK on a server node
+* Fixed error parsing INLINE_SIZE if CREATE INDEX is one of the multiple statements
+* Fixed exception after change column type (drop, add)
+* Fixed partition pruning is integrated with DML
+* Fixed security checks are skipped on some SELECT paths
+* Fixed subjectId is lost for SqlFieldsQuery event on the local node
+* Fixed when same SQL requests with multiple statements produce a different result
+* Fixed when unable to find row by an index created on partial baseline topology
+* Forbid mixing _key and key columns in the DML queries
+* Move rebalance configuration properties to the IgniteConfiguration level
+* Optimize query execution if it targets only one or none partitions
+* Reduce excessive int boxing when accessing cache by ID
+* Remove scan index for merge table
+* Renamed IGNITE schema to SYS
+
+
+MVCC:
+* Added continuous query failover for mvcc-caches
+* Added deadlock detector
+* Added late affinity assignment support
+* Added mvcc-compatible cache peek operation for key-value API
+* Fixed JVM crash when node stopped with errors
+* Fixed SQL API methods should throw proper TransactionExceptions in case of tx failure
+* Fixed client operation hangs if all data nodes left the cluster
+* Fixed client reconnect became unstable after mvcc coordinator reassign
+* Fixed concurrent cache stop can cause vacuum failure
+* Fixed failure to perform non-MVCC SQL from transactions
+* Fixed implicit mvcc transaction could use completed one instead of starting new
+* Fixed incorrect data region metrics
+* Fixed incorrect exception is thrown if no data nodes found for a partition
+* Fixed missing EntryProcessor resource injection
+* Fixed mvcc history can be missed during remove operation
+* Fixed mvcc-cache rebalance procedure leads to data loss
+* Fixed query trackers are not released
+* Fixed query with specified explicit partitions
+* Fixed race on invokeAll operations
+* Fixed read transactions remap when coordinator fails
+* Fixed removeAll on unstable topology
+* Fixed transaction asynchronous rollback
+* Fixed update operation hanging on backup on unstable topology
+* Fixed vacuums do not clean up all outdated versions
+
+
+JDBC:
+* Added cache expiry policies
+* Added support JDBC thin driver: connection timeout
+* Added support data page scan for JDBC
+* Added support of handling multiple async requests in parallel
+* Added support query cancel
+* Added support query timeout
+* Fixed JDBC getPrimaryKeys returns wrong value for COLUMN_NAME
+* Fixed JDBC thin driver metadata misses caches with queryEntities and names containing underscores
+* Fixed STREAMING mode fails on streamer reopen on not ordered mode
+* Fixed memory leak caused by executing a JDBC prepared statement
+* Fixed sqline command !tables works incorrectly for a client node
+* Fixed suspended optimistic transaction automatically resumes to last thread after a timeout
+* Now driver starts with a random server to connect
+* Updated handshake protocol so that the node returns its UUID
+
+
+ODBC:
+* Fixed SQLColumns does not work for tables with escape sequences in name
+* Fixed backward compatibility between 2.5 and 2.7
+
+
+Web Agent:
+* Added support for the cluster-ID
+* Added support of two way SSL authentication in Web Console agent
+* Fixed flag --disable-demo doesn't work
+* Fixed hostname verifier must be disabled if "-Dtrust.all=true".
+* Improve information message in case REST command failed on cluster
+* Improve logging when cluster topology changed
+
+
+Web Console:
+* Added TypeScript support
+* Added ability to cancel queries
+* Added ability to configure disk page compression properties
+* Added check for supported MongoDb version before WC start
+* Added email confirmation
+* Added management events (EVT_MANAGEMENT_TASK_STARTED)
+* Added missed configurations for some of the properties from IgniteConfiguration
+* Added option to disable self-registration on Web Console
+* Added possibility to configure distributed MVCC
+* Added support for "date", "time" and "date-and-time" on InputDialog
+* Added support for "type=number" on InputDialog
+* Added support for new countries Taiwan, Hong Kong, Singapore
+* Fixed can't select cluster memory eviction mode
+* Fixed long-running SQL queries could be randomly cancelled from WC
+* Fixed memory leak in chart component
+* Fixed priority for field validations
+* Fixed validation in Firefox
+* Update styles of top menu items
+* Update to RxJS 6
+
+
+Node.js:
+* Fixed Node.js thin client UUID marshalling
+
+
+Ignite .NET:
+* Added Thin Client Partition Awareness
+* Added Thin Client Expiry Policy
+* Added Thin Client Cluster API
+* Added .NET Core 3.x support
+* Added Ignite.NET Dockerfile
+* Added Runnable .NET Core assembly
+* Added ICache.GetLongSize
+* Added IClusterNode.Version
+* Added ICompute.WithExecutor
+* Added IIgnite.GetVersion
+* Added IBinaryObjectBuilder.SetField(name, val, type) overload
+* Added Partition Preload API (PreloadPartition, PreloadPartitionAsync)
+* Fixed JVM thread leak
+* Fixed serialization performance for ISerializable
+
+
+Ignite C++:
+* Added BinaryType methods implementations (GetTypeId, GetFieldId)
+* Fixed compilation ODBC and thin client with OpenSSL 1.1
+* Fixed compilation on ubuntu 18.04
+* Implement atomic part of Cache API for C++ thin client (ReplaceIfEquals, RemoveIfEquals etc.)
+* Improve Best Effort Affinity for C++ thin client
+* Remove strong dependency on Boost 1.58.0
+
+
+REST:
+* Added "caches" param for "top" command
+* Added baseline topology commands to REST API
+* Added memory policy metrics via REST
+* Fixed IGNITE_REST_SECURITY_TOKEN_TIMEOUT parameter is set in deciseconds instead of seconds
+
+
+Visor:
+* Added ability to set nodeId for VisorIdleVerifyDumpTask executed from ./control.sh --host HOST --cache idle_verify
+* Added dynamic turn on/off cache statistics for Visor
+* Added guard for cache restarting in progress for Visor tasks.
+* Fixed rebalance status in Visor stays on 99.99%.
+
+
+Control utility:
+* Added ability to check CRC sums of stored pages
+* Added ability to exclude cache from an output file
+* Added ability to show more information about cache configuration
+* Added ability to use simultaneous cache filtering options with control.sh --cache idle_verify
+* Added command to deal with garbage in partitions which left after cache destroy in shared cache groups
+* Added information about coordinator in control.sh output
+* Added showing information about lost on idle_verify
+* Added support SSL to work with baseline configuration (CommandHandler)
+* Added support of changing baseline auto-adjust parameters via console.sh
+* Added support request an SSL Keystore password and SSL truststore password
+* Display time to baseline auto-adjust event in console.sh
+* Fixed connection to cluster error in control.sh while using --cache
+* Fixed control.sh --baseline remove outputs wrong error message when trying to remove a node from baseline
+* Fixed control.sh not working on a multinode cluster setup
+* Fixed idle_verify utility doesn't show both update counter and hash conflicts
+* Fixed incorrect error message after three tries on an unsuccessful authorization
+* Log all action performed thought control.sh
+
+
+ML:
+* Added Gaussian Mixture Model (GMM) trainer with fixed components
+* Added ML logger and env variables in Spark ML Parser
+* Added NamedVectors to replace HashMap in Model
+* Added OneVsRest Trainer to handling cases with multiple class labels in a dataset
+* Added Pipeline support to Cross-Validation process
+* Added integration between Ignite SQL and Ignite ML
+* Added new Hyper-parameter tuning via Genetic Algorithm
+* Added parser for parquet file with the instance of DecisionTreeClassificationModel from Spark ML
+* Added parser for parquet file with the instance of DecisionTreeRegressor from Spark ML
+* Added parser for parquet file with the instance of GBTRegressionModel from Spark ML
+* Added parser for parquet file with the instance of GradientBoostedTreesModel from Spark ML
+* Added parser for parquet file with the instance of KMeansModel from Spark ML
+* Added parser for parquet file with the instance of LinearRegressionModel from Spark ML
+* Added parser for parquet file with the instance of LinearSVCModel from Spark ML
+* Added parser for parquet file with the instance of RandomForestClassificationModel from Spark ML
+* Added parser for parquet file with the instance of RandomForestRegressionModel from Spark ML
+* Added support for using H2O MOJO models for inference and prediction on Ignite data
+* Added support new feature-label extraction API (Vectorizers) to Preprocessor trainers
+* Added various Naive Bayes classifiers
+* Added vector projection
+* Advanced support of categorical features (LabelEncoding, Strings in vectorizers)
+* Fixed the problem with ML Labmdas which are not working in binary builds
+* Implementation of a distributed estimator
+* Import models from XGBoost
+* Improve model loading from the directory instead a full path to file with model
+* Improve the PeerClassloading for ml related lambdas
+* Improvements of IgniteModelStorage for IgniteModel and SQL functionality
+* Initial phase of integration with Spark ML (parsing of Spark ML models from ml package)
+* Merge InfModel and Model
+* Merge XGBoost and Ignite ML trees together
+* Provide metrics to evaluate the quality of the model
+* Provide the recommendation engine to build the recommendation system over the Ignite cache and via SQL operators
+* Replace all label/feature extractors on new vectorizers
+* Stacking for training and inference
+* Unify API for ensemble training algorithms.
+
+
+Dependency updates:
+* Added dependency spring-data-2.2
+* Added dependency hibernate-5.3
+* Added dependency spark-2.4
+* Added dependency spring-5.2
+* Updated Jetbrains Annotations to 16.0.3
+* Updated Kafka to 2.0.1
+* Updated RocketMQ to 4.4.0
+* Updated Commons Beanutils to 1.9.4
+* Updated Jackson to 2.9.10
+* Updated Jetty to 9.4.25
+* Updated Spring to 4.3.26
+* Updated spring-5.0 to 5.0.16
+* Updated spring-data-2.0 to 2.0.13
+* Moved Flink to ignite-extension
+
+
 Apache Ignite In-Memory Database and Caching Platform 2.7.6
 -----------------------------------------------------------
 
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/metric/MetricExporterSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/metric/MetricExporterSpi.java
index de7ba58..edd4ff3 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/metric/MetricExporterSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/metric/MetricExporterSpi.java
@@ -22,7 +22,7 @@
 import org.apache.ignite.spi.metric.jmx.JmxMetricExporterSpi;
 
 /**
- * Exporter of metric information to the external recepient.
+ * Exporter of metric information to the external recipient.
  * Expected, that each implementation would support some specific protocol.
  *
  * Implementation of this Spi should work by pull paradigm.