You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by al...@apache.org on 2022/02/08 15:18:22 UTC

[ignite] branch sql-calcite updated (6d120d8 -> cacc613)

This is an automated email from the ASF dual-hosted git repository.

alexpl pushed a change to branch sql-calcite
in repository https://gitbox.apache.org/repos/asf/ignite.git.


    from 6d120d8  IGNITE-16397 Fix insert/delete/update complex key - Fixes #9804.
     add 8c343f8  IGNITE-16061 Make BinaryMarshaller#setBinaryContext() public - Fixes #9632.
     add c7a54db  IGNITE-16070 Move re-encryption executor into the pool processor. (#9636)
     add 8bef426  IGNITE-16076 .NET: Remove duplicate PlatformComputeBinarizable test class (#9639)
     add 5a59a2f  IGNITE-15969 Remove persistence mode requirement on the client node with authentication enabled (#9627)
     add 11989d6  IGNITE-15998 Add separate configuration for system data region (#9612)
     add c8f4eb0  IGNITE-15364 Fixed rebalance issue.
     add 2968c09  IGNITE-16043 added check for not null reader in BinaryObjectBuilderImpl (#9637)
     add 8793c7c  IGNITE-14299 .NET: Support BinaryArrays in services (#9628)
     add a077937  IGNITE-16101 Updated log4j version to 2.15 (#9643)
     add 3c27c15  IGNITE-15922 Implement NUMA-aware allocator - Fixes #9569.
     add d4c702c  IGNITE-14945 IndexQuery uses inline IO for index rows filtering (#9631)
     add 747ed7c  IGNITE-16123 Fix MVCC check in InlineFilterClosure (#9654)
     add 6a3be75  Revert "IGNITE-15978 Support binary HANLDEs by BinaryObjectBuilder (#9590)" (#9653)
     add 101f740  IGNITE-14366 Support separate JVM options for ignite-cdc.sh and ignite.sh (#9659)
     add 2dc9d4b  IGNITE-16127 Updated log4j version to 2.16 (#9656)
     add e3acf4e  IGNITE-12578 Fix IgniteCache#replace for arrays (#9641)
     add 7dd341c  IGNITE-15558 CDC Support non default page size (#9660)
     add 1bf63b7  IGNITE-15867 Socket shutdown called twice in GridNioServer
     add 8306086  IGNITE-16134: [ducktests] fixed jackson dependencys for IgniteApplicationService (#9662)
     add a56fb60  IGNITE-16153 Update log4j2 dependency up to 2.17.0 (#9668)
     add a85e87f  IGNITE-12313 Support of update byte array via SQL (#9665)
     add b3388ec  IGNITE-16174 Bugyard feedback #45: Fix the job's name (#9673)
     add d7f35c6  IGNITE-16172 Bugyard feedback #43: Fix typos in the tab's names (#9674)
     add 434fa8a  IGNITE-16173 Bugyard feedback #44: Fix broken link in docs (#9675)
     add 730ec3c  IGNITE-16163 Additional test for B+Tree corruption cases - Fixes #9672.
     add 388afef  IGNITE-16180 Thin Client get service description implemented (#9677)
     add c67df98  IGNITE-13359 .NET: Add GetServiceDescriptor (#9678)
     add 59e8d59  IGNITE-16083 .NET: Java service invocation with thin client (#9667)
     add 404b115  IGNITE-16145 Added RELEASE NOTES for the 2.11.1 (#9689)
     add 25ecc34  IGNITE-15694 CPP: Document new building process of Ignite C++ and ODBC on Windows - Fixes #9680.
     add dafbbca  IGNITE-16177 Fix the restore snapshot on not all affinity partitions are physically present (#9679)
     add 41d395d  IGNITE-16190 Remove left classes related to legacy service grid (#9688)
     add 5c7ace1  IGNITE-16194 Fix snapshot restore fails if metadata is missing on any blt node.  (#9690)
     add 2813fe1  IGNITE-16206 Add type assertions to PageIO implementations
     add 5b6b3d0  IGNITE-16210 Fix GET_SERVICE_DESCRIPTORS enum value (#9692)
     add f8c4027  IGNITE-16182 Migrate TcpDiscoveryZookeeperIpFinder to ignite-extensions. (#9682)
     add c318d6e  IGNITE-13464: Fixed REST module logging: use the slf4j facade to log third-party libraries. (#9676)
     add 556d1a9  IGNITE-16026 Java thin: Add retry policy (#9701)
     add ea7fb3c  IGNITE-16211 Fixed NPE if column type is null in the JmxSystemViewExporterSpi (#9693)
     add 094572c  IGNITE-15964 NPE in case of simultaneous cache destroy and active tx - Fixes #9579.
     add beb32a8  IGNITE-15829 Thin client: Services with ServiceCallContext support - Fixes #9629.
     add d6c2744  IGNITE-16188 Eliminate intermediate list for DataRecord (#9687)
     add 2fb8a8b  IGNITE-16140 Cannot find data in index when querying a pojo key in local mode. (#9663)
     add cc377a3  IGNITE-15300 Fix hanging of zk ctl utility suite. (#9386)
     add adcaf9b  IGNITE-16241 Updated log4j version to 2.17.1 (#9712)
     add 77b1357c IGNITE-16223 Log running query id. (#9704)
     add e18bbbe  IGNITE-15864 CPP Thin: asynchronous network events
     add 18b47d9  IGNITE-14365 CDC Documentation (#9708)
     add 8a22391  IGNITE-16170 - Fixing broken links for feedback 38-41 (#9715)
     add 87baaa5  IGNITE-16262 Remove the hash join index section from docs (#9725)
     add e0b2a46  IGNITE-16252 Fix image links in README (#9718)
     add 770a22d  IGNITE-15197 Incorrect code snippet for Azure Kubernetes Deployment (#9726)
     add 453dd17  IGNITE-16171 Bugyard feedback #42: Fix typo in docs (#9727)
     add 014c82f  IGNITE-15963 Improves Maven Utils to automatically reuse project repositories. (#9578)
     add b6eedd5  IGNITE-16242 .NET: Fix platform cache behavior with persistent storage (#9722)
     add 35f0ab8  IGNITE-16220 Delete unused jackson1.version property from pom. (#9721)
     add 3b1da7b  Drop down log level from error to warn for some user operation failures. (#9716)
     add c306573  IGNITE-16261 Query with 'in' condition with a sub-query returns multiplicative data. (#9723)
     add ed5fd0e  IGNITE-12464 : Metrics for the Java Services V3. (#9457)
     add 4ca46ce  IGNITE-16270 Update Maven Utils to obtain repositories list through effective pom. (#9729)
     add b71f826  IGNITE-16255 Fix WalIterator#lastRead return next record in the middle of iteration (#9719)
     add 41abce9  IGNITE-16017 Bugyard feedback #34: Fix typo in Java Thin Client section (#9614)
     add fe23f1b  IGNITE-15766 C++ thin Continuous Queries (#9732)
     add 8a43b8c  IGNITE-16021 Update Apache Ignite 2.12 release notes (#9735)
     add d4c00de  IGNITE-16301 Update released 2.12.0 packages version (#9737)
     add 0955650  IGNITE-16290 Avoid non-informative warning on query retry (#9733)
     add 60d62a2  IGNITE-16278 CPP: Add address and memory sanitizers, fix undefined behaviour bugs - Fixes #9730.
     add 51277ee  IGNITE-14365 CDC Documentation: fixed broken links (#9738)
     add d101288  IGNITE-15337 Fixed TLS1.3 freeze during handshake
     add 21a552a  IGNITE-15649 : Add documentation for the java service duration metrics (#9454)
     add a40bccc  IGNITE-16248 Fixes CDC default page size initialization. (#9714)
     add 5c206a7  IGNITE-16024 B+Tree-related javadocs. (#9702)
     add 7c73053  IGNITE-16294 .NET: Fix System.Enum serialization (#9734)
     add 58abe90  IGNITE-15983 Regression when using SELECT (EXISTS (...))  (#9707)
     add f592749  IGNITE-16324 wal-reader can't parse negative groupId/cacheId (#9745)
     add 2f994e5  IGNITE-16330 Update sfl4j version (#9748)
     add abec656  IGNITE-16325 Add compute task monitoring to keep track of their current status (#9747)
     add 65f202c  IGNITE-16327 Fixed NPE in the distributed process on message unmarshal. (#9746)
     add 4265dba  IGNITE-16028 Node failure with ClassNotFoundException: wrong validation for Object type (#9618)
     add 4a90246  IGNITE-15353 CPP: Fix OpenSSL shared library load order, add OpenSSL 3.0.x support - Fixes #9750.
     add 3f7869b  IGNITE-16143 Adds an ability for plugins to provide topology validator as extension. (#9666)
     add 88a65a9  IGNITE-14794 JMX management and metrics for snapshot restore operation (#9186)
     add 945d607  IGNITE-16150 Move downloaded partition instead of copying it. (#9724)
     add 02a322e  IGNITE-16339 Dynamic task reprioritization via changing session priority attribute - Fixes #9752.
     add 84f3ed0  IGNITE-16352 Update Ignite dependency Mesos (#9756)
     add 0d2f594  IGNITE-16360 Fix CdcLoader instantiates several Spring contexts (#9759)
     add 6e52ca6  IGNITE-16312 Bugyard feedback #47: Docs Formatting Issue (#9764)
     add 80bf4f1  IGNITE-16394 Provided enum of released versions to compatibility tests (#9765)
     add 479f93b  IGNITE-16402 Fixed year check in the GridCommandHandler* tests (#9770)
     add e084f4a  IGNITE-16387 Improve CDC monitoring and logging (#9766)
     add 2d4128a  IGNITE-16024 B+Tree-related javadocs.
     add bc0c9b2  IGNITE-16351  C++ thin, ODBC: SSL certificates, keys and CA are not mandatory
     add 7bbf2c3  IGNITE-15330 Read Repair should support strategies (#9661)
     add 0793598  IGNITE-16359 ODBC: Fix incorrect queries handling with empty results - Fixes #9778.
     add 399814d  IGNITE-16418 Earliest checkpoints map persistence for a faster node restart
     add 1b8cab4  IGNITE-12276 Thin client uses Optimized marshaller for TreeSet and TreeMap
     add 6a87568  Revert "IGNITE-12276 Thin client uses Optimized marshaller for TreeSet and TreeMap"
     add 9ace034  IGNITE-16421 : Fix table operations failure when wrap_key and custom value_type are used (#9777)
     add 01ba6ba  IGNITE-16436 Fix node crashes with ClosedChannelException (#9782)
     add 635f7f0  IGNITE-16225 Read Repair control.sh command should have named params (#9779)
     add ef6af5e  IGNITE-16264 Fixed page restore on bad CRC does not mark the page as dirty (#9736)
     add 6c00a0d  IGNITE-16405 Fix NoClassDefFound on invokeAsync with using BinaryObjects. (#9772)
     add 2308c00  IGNITE-16400: Deprecate direct references to local services. (#9771)
     add 7520f90  IGNITE-12971 Added SNAPSHOT system view to show local snapshots (#9422)
     add 57a951f  IGNITE-11662 Using proper classloader to unmarshal joining node data. Fixes #6431
     add 3123460  IGNITE-16025 .NET: Add thin client retry policy (#9786)
     add f71aa7e  IGNITE-16454 Fixed a link to spring data example. Fixes #9795
     add aaaf92c  IGNITE-16455 Removed GridGain mentions from doc. Fixes #9796
     add 3b5c936a IGNITE-16459 Fixed a broken link to a section in the same doc. Fixes #9798
     add f596b6b  IGNITE-15902 Removed section irrelevant to Ignite. Fixes #9561
     add 4dd7414  IGNITE-16447 Added the LifecycleAware interface support for local event listeners. (#9789)
     add d109729  IGNITE-14459 Fix affinityCall failing when called on a version with merged exchanges. Fixes #8961
     add d52b3f9  IGNITE-16446: Fix IndexQuery incorrect work with indexes built for _VAL field (#9788)
     add 32dfd27  IGNITE-16491 CPP: Added EventType field to CacheEntryEvent
     add f1d90ac  IGNITE-16492 Add schema-related tests
     add 5529f68  IGNITE-16437 Fix CommandLinePrintPropertiesTest#testPrintProperties (#9784)
     new cacc613  Merge remote-tracking branch 'remotes/upstream/master' into sql-calcite

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .travis.yml                                        |  15 +-
 README.md                                          |   4 +-
 RELEASE_NOTES.txt                                  | 146 ++++++
 bin/ignite-cdc.sh                                  |   4 +
 docs/_data/toc.yaml                                |   2 +
 docs/_docs/SQL/ODBC/odbc-driver.adoc               |  61 ++-
 docs/_docs/SQL/distributed-joins.adoc              |  61 +--
 docs/_docs/clustering/baseline-topology.adoc       |   8 +-
 .../ignite/snippets/services/ServiceExample.java   |  33 +-
 .../k8s/stateful/node-configuration.xml            |  16 +-
 .../k8s/stateless/node-configuration.xml           |   9 +-
 .../collocated-computations.adoc                   |   2 +-
 .../hibernate-l2-cache.adoc                        |   4 +-
 .../spring/spring-data.adoc                        |   2 +-
 .../cpp-odbc-linux-build-prerequisites.adoc        |  43 ++
 docs/_docs/includes/starting-node.adoc             |   4 +-
 docs/_docs/key-value-api/transactions.adoc         |   3 +-
 docs/_docs/monitoring-metrics/metrics.adoc         |   4 -
 docs/_docs/monitoring-metrics/new-metrics.adoc     |  14 +
 docs/_docs/monitoring-metrics/system-views.adoc    |  14 +
 docs/_docs/persistence/change-data-capture.adoc    | 132 ++++++
 docs/_docs/persistence/native-persistence.adoc     |   1 +
 docs/_docs/quick-start/cpp.adoc                    |  42 +-
 docs/_docs/quick-start/java.adoc                   |   2 +-
 docs/_docs/services/services.adoc                  |  29 ++
 docs/_docs/setup.adoc                              |   2 +-
 docs/_docs/thin-clients/cpp-thin-client.adoc       |  27 +-
 docs/_docs/thin-clients/java-thin-client.adoc      |   2 +-
 docs/_docs/tools/control-script.adoc               |  10 +-
 docs/assets/images/integrations/CDC-design.svg     |   4 +
 .../query/calcite/QueryRegistryImpl.java           |   4 +-
 .../processors/query/calcite/exec/IndexScan.java   |   2 +-
 .../ignite/jdbc/thin/JdbcThinMetadataSelfTest.java |   1 +
 .../qa/query/WarningOnBigQueryResultsBaseTest.java |  15 +-
 .../SystemViewRowAttributeWalkerGenerator.java     |   2 +
 modules/compatibility/pom.xml                      |   6 +
 .../compatibility/IgniteReleasedVersion.java       |  98 ++++
 .../clients/AbstractClientCompatibilityTest.java   |  31 +-
 .../clients/JavaThinCompatibilityTest.java         | 113 +++++
 .../IgnitePKIndexesMigrationToUnwrapPkTest.java    |  21 +-
 .../persistence/IndexTypesCompatibilityTest.java   |  10 +-
 .../InlineJavaObjectCompatibilityTest.java         |  33 +-
 .../PersistenceBasicCompatibilityTest.java         | 140 +-----
 .../testframework/util/MavenUtils.java             |  53 ++-
 modules/control-utility/pom.xml                    |   7 +
 .../consistency/ConsistencyCommand.java            |  56 ++-
 .../util/GridCommandHandlerClusterByClassTest.java |  13 +-
 .../util/GridCommandHandlerConsistencyTest.java    |  99 +++-
 .../util/GridCommandHandlerIndexingTest.java       |  14 +-
 .../apache/ignite/util/GridCommandHandlerTest.java | 118 +++--
 .../ignite/util/KillCommandsCommandShTest.java     |  12 +-
 .../apache/ignite/util/SystemViewCommandTest.java  |  14 +
 .../main/java/org/apache/ignite/IgniteCache.java   |   4 +-
 .../java/org/apache/ignite/IgniteServices.java     |  29 +-
 .../org/apache/ignite/IgniteSystemProperties.java  |  12 +
 .../apache/ignite/cache/ReadRepairStrategy.java    |  89 ++++
 .../java/org/apache/ignite/cdc/CdcConsumer.java    |   2 +-
 .../main/java/org/apache/ignite/cdc/CdcLoader.java |  26 +-
 .../apache/ignite/client/ClientOperationType.java  | 217 +++++++++
 .../ignite/client/ClientRetryAllPolicy.java}       |  13 +-
 .../ignite/client/ClientRetryNonePolicy.java}      |  13 +-
 .../apache/ignite/client/ClientRetryPolicy.java}   |  24 +-
 .../ClientRetryPolicyContext.java}                 |  33 +-
 .../ignite/client/ClientRetryReadPolicy.java       |  50 ++
 .../ignite/client/ClientServiceDescriptor.java     |  78 +++
 .../org/apache/ignite/client/ClientServices.java   |  53 +++
 .../ignite/configuration/ClientConfiguration.java  |  31 ++
 .../configuration/DataRegionConfiguration.java     |  23 +
 .../configuration/DataStorageConfiguration.java    |  99 +++-
 .../SystemDataRegionConfiguration.java             |  93 ++++
 .../events/CacheConsistencyViolationEvent.java     |  38 +-
 .../apache/ignite/internal/GridJobResultImpl.java  |  16 +-
 .../ignite/internal/GridTaskSessionImpl.java       |  81 +++-
 .../org/apache/ignite/internal/IgniteKernal.java   |   2 +-
 .../apache/ignite/internal/IgniteServicesEx.java   |   6 +-
 .../apache/ignite/internal/IgniteServicesImpl.java |  19 +-
 .../org/apache/ignite/internal/IgnitionEx.java     |   9 +-
 .../apache/ignite/internal/binary/BinaryArray.java |  38 +-
 .../ignite/internal/binary/BinaryMarshaller.java   |   2 +-
 .../ignite/internal/binary/BinaryObjectImpl.java   |  17 +-
 .../binary/BinarySerializedFieldComparator.java    |  51 +-
 .../apache/ignite/internal/binary/BinaryUtils.java |  21 +-
 .../ignite/internal/binary/BinaryWriterExImpl.java |   2 +-
 .../binary/builder/BinaryBuilderSerializer.java    |   9 -
 .../binary/builder/BinaryObjectBuilderImpl.java    |   4 +-
 .../cache/query/index/IndexQueryProcessor.java     | 260 +++++++---
 .../query/index/sorted/IndexKeyDefinition.java     |  12 -
 .../query/index/sorted/IndexRowComparator.java     |   9 +-
 .../query/index/sorted/IndexRowCompartorImpl.java  |  32 +-
 .../sorted/defragmentation/DefragIndexFactory.java |   4 +
 .../index/sorted/inline/IndexQueryContext.java     |  33 +-
 .../query/index/sorted/inline/InlineIndexImpl.java |   6 +-
 .../index/sorted/inline/InlineIndexKeyType.java    |   8 +-
 .../query/index/sorted/inline/InlineIndexTree.java |  40 +-
 .../sorted/inline/InlineTreeFilterClosure.java     |  39 +-
 .../sorted/inline/io/AbstractInlineInnerIO.java    |   3 +
 .../sorted/inline/io/AbstractInlineLeafIO.java     |   3 +
 .../index/sorted/inline/io/AbstractInnerIO.java    |   3 +
 .../index/sorted/inline/io/AbstractLeafIO.java     |   3 +
 .../query/index/sorted/keys/BytesCompareUtils.java |  59 ---
 .../query/index/sorted/keys/BytesIndexKey.java     |  20 +-
 .../index/sorted/keys/JavaObjectIndexKey.java      |   8 +-
 .../index/sorted/keys/SignedBytesIndexKey.java     |   4 +-
 .../org/apache/ignite/internal/cdc/CdcMain.java    |   8 +-
 .../router/impl/GridRouterCommandLineStartup.java  |  12 +-
 .../internal/client/thin/ClientOperation.java      | 141 +++++-
 .../client/thin/ClientRetryPolicyContextImpl.java  |  76 +++
 .../client/thin/ClientServiceDescriptorImpl.java   | 104 ++++
 .../internal/client/thin/ClientServicesImpl.java   | 120 ++++-
 .../ignite/internal/client/thin/ClientUtils.java   |   4 +-
 .../client/thin/ProtocolBitmaskFeature.java        |   9 +-
 .../internal/client/thin/ReliableChannel.java      |  57 ++-
 .../graph/FullyConnectedComponentSearcher.java     |  14 +-
 .../managers/collision/GridCollisionManager.java   |  14 +-
 .../managers/discovery/GridDiscoveryManager.java   |   2 +-
 .../managers/encryption/CacheGroupPageScanner.java |  31 +-
 .../eventstorage/GridEventStorageManager.java      |  11 +-
 .../managers/systemview/SystemViewMBean.java       |   7 +-
 .../systemview/walker/CacheViewWalker.java         | 196 ++++----
 .../systemview/walker/SnapshotViewWalker.java      |  50 ++
 .../unsafe/UnsafeMemoryAllocator.java}             |  16 +-
 .../internal/mem/unsafe/UnsafeMemoryProvider.java  |  36 +-
 .../ignite/internal/pagemem/wal/WALIterator.java   |   6 +-
 .../internal/pagemem/wal/record/DataRecord.java    |  40 +-
 .../processors/affinity/GridAffinityProcessor.java |  13 +-
 .../IgniteAuthenticationProcessor.java             |   4 +-
 .../processors/bulkload/BulkLoadProcessor.java     |   4 +-
 .../cache/CacheEntryPredicateContainsValue.java    |   4 +
 .../processors/cache/CacheGroupContext.java        |  45 +-
 .../processors/cache/CacheObjectUtils.java         |   6 +-
 .../processors/cache/CacheOperationContext.java    |  39 +-
 .../processors/cache/ClusterCachesInfo.java        |   2 +-
 .../cache/GatewayProtectedCacheProxy.java          |  14 +-
 .../processors/cache/GridCacheAdapter.java         | 128 ++---
 .../processors/cache/GridCacheContext.java         |  10 +-
 .../processors/cache/GridCacheMapEntry.java        |   6 +-
 .../cache/GridCachePartitionExchangeManager.java   |  19 +-
 .../processors/cache/GridCacheProxyImpl.java       |   8 +-
 .../processors/cache/IgniteCacheProxyImpl.java     |   3 +-
 .../binary/CacheObjectBinaryProcessorImpl.java     |   3 +-
 .../cache/distributed/dht/GridDhtCacheAdapter.java |   7 +-
 .../dht/GridDhtTopologyFutureAdapter.java          |   9 +-
 .../distributed/dht/atomic/GridDhtAtomicCache.java |  48 +-
 .../dht/colocated/GridDhtColocatedCache.java       |  15 +-
 .../preloader/GridDhtPartitionsExchangeFuture.java |  13 +
 .../dht/topology/GridDhtPartitionTopologyImpl.java |   4 +-
 .../distributed/near/GridNearAtomicCache.java      |   3 +-
 .../near/GridNearTransactionalCache.java           |   5 +-
 .../cache/distributed/near/GridNearTxLocal.java    |  72 +--
 .../consistency/GridCompoundReadRepairFuture.java  | 106 +++++
 .../GridNearReadRepairAbstractFuture.java          | 137 +++++-
 .../GridNearReadRepairCheckOnlyFuture.java         | 137 ++----
 .../near/consistency/GridNearReadRepairFuture.java | 252 ++++++++--
 .../IgniteConsistencyViolationException.java       |  25 +-
 ...teIrreparableConsistencyViolationException.java |  63 +++
 .../cache/local/atomic/GridLocalAtomicCache.java   |   7 +-
 .../processors/cache/mvcc/MvccProcessorImpl.java   |   4 +-
 .../processors/cache/mvcc/txlog/TxLogInnerIO.java  |  10 +
 .../processors/cache/mvcc/txlog/TxLogLeafIO.java   |  10 +
 .../GridCacheDatabaseSharedManager.java            |  22 +-
 .../IgniteCacheDatabaseSharedManager.java          |  20 +-
 .../cache/persistence/IndexStorageImpl.java        |   4 +
 .../cache/persistence/RecoveryDebug.java           |   7 +-
 .../persistence/checkpoint/CheckpointEntry.java    |  77 ++-
 .../persistence/checkpoint/CheckpointHistory.java  |  87 +++-
 .../persistence/checkpoint/CheckpointManager.java  |  21 +-
 .../checkpoint/CheckpointMarkersStorage.java       | 189 +++++++-
 .../checkpoint/EarliestCheckpointMapSnapshot.java  | 177 +++++++
 .../cache/persistence/defragmentation/LinkMap.java |   4 +
 .../persistence/freelist/io/PagesListMetaIO.java   |   4 +
 .../persistence/freelist/io/PagesListNodeIO.java   |  15 +
 .../metastorage/MetastorageInnerIO.java            |   4 +
 .../persistence/metastorage/MetastorageLeafIO.java |   4 +
 .../cache/persistence/pagemem/PageMemoryImpl.java  |   6 +
 .../snapshot/AbstractSnapshotVerificationTask.java |  42 +-
 .../snapshot/IgniteSnapshotManager.java            |  37 +-
 .../persistence/snapshot/SnapshotMXBeanImpl.java   |  20 +
 .../snapshot/SnapshotRestoreProcess.java           | 243 ++++++----
 .../cache/persistence/tree/BPlusTree.java          |  72 ++-
 .../persistence/tree/io/AbstractDataPageIO.java    |  30 +-
 .../cache/persistence/tree/io/BPlusIO.java         |  56 +++
 .../cache/persistence/tree/io/BPlusInnerIO.java    |   8 +
 .../cache/persistence/tree/io/BPlusLeafIO.java     |   1 +
 .../cache/persistence/tree/io/BPlusMetaIO.java     |  12 +
 .../cache/persistence/tree/io/DataPageIO.java      |  18 +-
 .../cache/persistence/tree/io/PageIO.java          |  18 +
 .../cache/persistence/tree/io/PageMetaIO.java      |  16 +
 .../cache/persistence/tree/io/PageMetaIOV2.java    |   6 +
 .../tree/io/PagePartitionCountersIO.java           |   6 +
 .../persistence/tree/io/PagePartitionMetaIO.java   |  10 +
 .../persistence/tree/io/PagePartitionMetaIOV2.java |   6 +
 .../persistence/tree/io/PagePartitionMetaIOV3.java |   4 +
 .../persistence/tree/io/SimpleDataPageIO.java      |   4 +
 .../cache/persistence/tree/io/TrackingPageIO.java  |  14 +-
 .../wal/AbstractWalRecordsIterator.java            |   8 +-
 .../wal/filehandle/FileWriteHandleImpl.java        |  13 +
 .../wal/reader/StandaloneWalRecordsIterator.java   |   8 +-
 .../wal/serializer/RecordDataV1Serializer.java     |  45 +-
 .../wal/serializer/RecordDataV2Serializer.java     |  34 +-
 .../processors/cache/query/GridCacheSqlQuery.java  |  18 +-
 .../cache/query/reducer/IndexQueryReducer.java     |  25 +-
 .../processors/cache/tree/AbstractDataInnerIO.java |   5 +
 .../processors/cache/tree/AbstractDataLeafIO.java  |   5 +
 .../cache/tree/AbstractPendingEntryInnerIO.java    |   3 +
 .../cache/tree/AbstractPendingEntryLeafIO.java     |   3 +
 .../tree/mvcc/data/MvccCacheIdAwareDataLeafIO.java |   4 +
 .../cache/tree/mvcc/data/MvccDataInnerIO.java      |   2 +
 .../cache/tree/mvcc/data/MvccDataLeafIO.java       |   6 +
 .../processors/cache/version/GridCacheVersion.java |   3 +-
 .../cache/version/GridCacheVersionEx.java          |   1 +
 .../cache/version/GridCacheVersionManager.java     |   5 +
 .../cluster/GridClusterStateProcessor.java         |   2 +-
 .../datastructures/GridCacheQueueAdapter.java      |   2 +-
 .../processors/job/ComputeJobStatusEnum.java}      |  29 +-
 .../processors/job/GridJobEventListener.java       |  11 +-
 .../internal/processors/job/GridJobProcessor.java  | 161 ++++++-
 .../internal/processors/job/GridJobWorker.java     |  89 +++-
 .../processors/odbc/ClientListenerNioListener.java |   5 +-
 .../processors/platform/PlatformContextImpl.java   |   4 +-
 .../processors/platform/cache/PlatformCache.java   |   6 +
 .../platform/client/ClientBitmaskFeature.java      |   9 +-
 .../platform/client/ClientMessageParser.java       |  16 +-
 .../service/ClientServiceDescriptorResponse.java   |  48 ++
 .../service/ClientServiceDescriptorsResponse.java  |  63 +++
 .../service/ClientServiceGetDescriptorRequest.java |  49 ++
 .../ClientServiceGetDescriptorsRequest.java}       |  30 +-
 .../client/service/ClientServiceInvokeRequest.java |  17 +-
 .../platform/services/PlatformServices.java        |   8 +-
 .../platform/utils/PlatformConfigurationUtils.java |  38 ++
 .../internal/processors/pool/PoolProcessor.java    |  30 ++
 .../processors/query/GridQueryProcessor.java       |  14 +-
 .../processors/query/QueryTypeDescriptorImpl.java  |  17 +-
 .../processors/query/RunningQueryManager.java      |  20 +-
 .../query/property/QueryBinaryProperty.java        |   6 +
 .../resource/GridResourceServiceInjector.java      |   7 +-
 .../processors/service/GridServiceAssignments.java | 132 ------
 .../service/GridServiceAssignmentsKey.java         |  66 ---
 .../processors/service/GridServiceDeployment.java  |  97 ----
 .../service/GridServiceDeploymentKey.java          |  66 ---
 .../processors/service/GridServiceProxy.java       | 127 ++---
 .../processors/service/IgniteServiceProcessor.java | 125 +++--
 .../service/LazyServiceConfiguration.java          |   1 +
 .../service/ServiceCallContextHolder.java          |   7 +-
 .../processors/service/ServiceCallContextImpl.java |  27 +-
 .../processors/service/ServiceContextImpl.java     |  35 +-
 .../processors/service/ServiceDescriptorImpl.java  | 120 -----
 .../session/GridTaskSessionProcessor.java          |  16 +-
 .../processors/task/GridTaskEventListener.java     |  19 +-
 .../processors/task/GridTaskProcessor.java         | 154 +++++-
 .../internal/processors/task/GridTaskWorker.java   |  84 +++-
 .../task/monitor/ComputeGridMonitor.java}          |  24 +-
 .../processors/task/monitor/ComputeTaskStatus.java | 227 +++++++++
 .../task/monitor/ComputeTaskStatusEnum.java}       |  20 +-
 .../task/monitor/ComputeTaskStatusSnapshot.java    |  89 ++++
 .../apache/ignite/internal/util/IgniteUtils.java   |  67 ++-
 .../util/distributed/SingleNodeMessage.java        |   8 +-
 .../ignite/internal/util/gridify/GridifyUtils.java |   3 +-
 .../apache/ignite/internal/util/lang/GridFunc.java | 241 ++++++++++
 .../internal/util/nio/ssl/GridNioSslHandler.java   |   3 +-
 .../internal/util/spring/IgniteSpringHelper.java   |  20 +-
 .../consistency/VisorConsistencyRepairTask.java    |  35 +-
 .../consistency/VisorConsistencyRepairTaskArg.java |  16 +-
 .../visor/node/VisorDataStorageConfiguration.java  |   4 +-
 .../visor/node/VisorMemoryConfiguration.java       |   4 +-
 .../visor/snapshot/VisorSnapshotRestoreTask.java   |   2 +-
 .../visor/systemview/VisorSystemViewTask.java      |   2 +-
 .../ignite/internal/visor/tx/TxVerboseId.java      |   2 +-
 .../org/apache/ignite/mem/MemoryAllocator.java}    |  25 +-
 .../org/apache/ignite/mxbean/SnapshotMXBean.java   |  25 +
 .../org/apache/ignite/platform/PlatformType.java}  |  17 +-
 .../plugin/CacheTopologyValidatorProvider.java     |  42 ++
 .../apache/ignite/services/ServiceCallContext.java |   3 +-
 .../ignite/services/ServiceConfiguration.java      |  36 ++
 .../priorityqueue/PriorityQueueCollisionSpi.java   |  92 ++--
 .../ignite/spi/systemview/view/CacheView.java      |  22 +-
 .../ignite/spi/systemview/view/SnapshotView.java   |  93 ++++
 .../view/SystemViewRowAttributeWalker.java         |   3 +-
 .../startup/cmdline/CdcCommandLineStartup.java     |  23 -
 .../main/resources/META-INF/classnames.properties  |   5 -
 .../org/apache/ignite/cdc/CdcCacheVersionTest.java |  31 ++
 .../java/org/apache/ignite/cdc/CdcSelfTest.java    |  46 +-
 .../org/apache/ignite/client/FunctionalTest.java   |  20 +-
 .../org/apache/ignite/client/ReliabilityTest.java  | 129 +++++
 .../GridMultithreadedJobStealingSelfTest.java      |  76 +--
 .../internal/binary/BinaryArraySelfTest.java       | 274 +++++++++--
 .../binary/BinaryFieldExtractionSelfTest.java      |   3 +-
 .../binary/BinaryFieldsAbstractSelfTest.java       |   6 +-
 .../BinaryFooterOffsetsAbstractSelfTest.java       |   3 +-
 .../internal/binary/BinaryMarshallerSelfTest.java  |  12 +-
 .../BinaryObjectBuilderAdditionalSelfTest.java     | 192 +-------
 .../GridBinaryMarshallerCtxDisabledSelfTest.java   |   3 +-
 .../binary/GridBinaryWildcardsSelfTest.java        |   3 +-
 .../binary/mutabletest/GridBinaryTestClasses.java  |  44 --
 .../ignite/internal/client/thin/ServicesTest.java  | 155 ++++--
 .../direct/DirectMarshallingMessagesTest.java      | 109 +++++
 .../events/LifecycleAwareListenerTest.java         |  80 ++++
 .../ignite/internal/metric/JmxExporterSpiTest.java |   6 +-
 .../ignite/internal/metric/SystemViewSelfTest.java |  59 +++
 .../AuthenticationConfigurationClusterTest.java    |  22 +-
 .../cache/CacheAffinityCallSelfTest.java           |  50 +-
 .../cache/CacheTopologyValidatorProviderTest.java  | 205 ++++++++
 .../processors/cache/GridCacheVersionSelfTest.java |   8 +
 .../cache/IgniteCacheManyAsyncOperationsTest.java  |  35 ++
 .../IgniteTopologyValidatorAbstractCacheTest.java  |  98 +++-
 ...TopologyValidatorAbstractTxCacheGroupsTest.java |   2 +
 ...IgniteTopologyValidatorAbstractTxCacheTest.java |   2 +
 ...teTopologyValidatorCacheGroupsAbstractTest.java |  66 ++-
 .../GridBinaryCacheEntryMemorySizeSelfTest.java    |   3 +-
 .../consistency/AbstractFullSetReadRepairTest.java | 237 ++++++---
 .../cache/consistency/AbstractReadRepairTest.java  | 519 ++++++++++++++------
 .../cache/consistency/AtomicReadRepairTest.java    | 207 --------
 .../AtomicReadRepairTest.java}                     |  13 +-
 .../ExplicitTransactionalReadRepairTest.java       | 105 ++--
 .../ImplicitTransactionalReadRepairTest.java       |  50 +-
 ...licatedExplicitTransactionalReadRepairTest.java |   2 +-
 ...licatedImplicitTransactionalReadRepairTest.java |   2 +-
 ...eBackupExplicitTransactionalReadRepairTest.java |   2 +-
 ...eBackupImplicitTransactionalReadRepairTest.java |   2 +-
 .../PdsAtomicReadRepairTest.java}                  |  10 +-
 .../PdsExplicitTransactionalReadRepairTest.java}   |  10 +-
 .../PdsImplicitTransactionalReadRepairTest.java}   |  10 +-
 .../OutOfMemoryVolatileRegionTest.java             |   8 +-
 .../IgnitePdsCheckpointMapSnapshotTest.java        | 222 +++++++++
 .../persistence/IgnitePdsDestroyCacheTest.java     |  84 ++++
 .../IgnitePdsRecoveryAfterFileCorruptionTest.java  |  42 +-
 .../IgnitePdsSporadicDataRecordsOnBackupTest.java  |  14 +-
 ...CheckpointSimulationWithRealCpDisabledTest.java |   4 +-
 .../persistence/db/wal/IgniteWalRebalanceTest.java | 244 +++++++---
 .../db/wal/reader/IgniteWalReaderTest.java         |  27 +-
 .../IgniteClusterSnapshotRestoreSelfTest.java      |  16 +
 .../snapshot/IgniteSnapshotMXBeanTest.java         | 104 +++-
 .../IgniteSnapshotRestoreFromRemoteTest.java       |  41 ++
 .../persistence/tree/io/TrackingPageIOTest.java    |   2 +
 .../reader/StandaloneWalRecordsIteratorTest.java   | 150 +++++-
 .../TxPartitionCounterStateConsistencyTest.java    |   4 +-
 .../cluster/ClusterReadOnlyModeSelfTest.java       |  20 +-
 .../processors/compute/ComputeGridMonitorTest.java | 381 +++++++++++++++
 .../compute/ComputeJobChangePriorityTest.java      | 259 ++++++++++
 .../processors/compute/ComputeJobStatusTest.java   | 457 ++++++++++++++++++
 .../ComputeTaskWithWithoutFullSupportTest.java     | 142 ++++++
 .../NoopJob.java}                                  |  11 +-
 .../database/BPlusTreeReplaceRemoveRaceTest.java   | 144 ++++--
 .../processors/service/GridServiceMetricsTest.java | 323 +++++++++++++
 .../GridServiceProcessorAbstractSelfTest.java      |  23 +-
 .../service/GridServiceProcessorProxySelfTest.java | 184 ++++---
 .../service/IgniteServiceCallContextTest.java      |  15 +
 .../processors/service/inner/MyService.java        |   7 +
 .../apache/ignite/internal/util/EchoServer.java    | 139 ++++++
 .../ignite/internal/util/IgniteUtilsUnitTest.java  |  72 +++
 .../internal/util/nio/GridNioServerTest.java       |  95 ++++
 .../ignite/platform/PlatformDeployServiceTask.java |  10 +-
 .../platform/PlatformServiceCallThinTask.java      |  10 +-
 .../platform/PlatformSetUseBinaryArrayTask.java    |  71 +++
 .../platform/model/{Role.java => AccessLevel.java} |  20 +-
 .../org/apache/ignite/platform/model/Role.java     |  16 +-
 .../session/GridSessionCheckpointSelfTest.java     |   8 +-
 .../collision/GridTestCollisionTaskSession.java    | 140 +++---
 .../cmdline/CommandLinePrintPropertiesTest.java    |   2 +
 .../apache/ignite/testframework/GridTestUtils.java |  33 ++
 .../testframework/junits/GridAbstractTest.java     |   2 +-
 .../junits/GridTestBinaryMarshaller.java           |   3 +-
 .../testframework/junits/IgniteTestResources.java  |   6 +-
 .../junits/common/GridCommonAbstractTest.java      |  16 +
 .../junits/multijvm/IgniteCacheProcessProxy.java   |   3 +-
 .../IgniteCacheConsistencySelfTestSuite.java       |  55 +++
 .../IgniteCacheDataStructuresSelfTestSuite.java    |  17 -
 .../testsuites/IgniteComputeGridTestSuite.java     |  11 +-
 .../testsuites/IgniteKernalSelfTestSuite.java      |   4 +-
 .../testsuites/IgniteMarshallerSelfTestSuite.java  |   4 +-
 .../ignite/testsuites/IgnitePdsTestSuite4.java     |   2 +
 .../testsuites/IgniteServiceGridTestSuite.java     |   2 +
 .../IgniteTopologyValidatorTestSuite.java          |   2 +
 .../ignite/testsuites/IgniteUtilSelfTestSuite.java |   4 +
 ...mandHandlerClusterByClassTest_cache_help.output |   2 +-
 ...ridCommandHandlerClusterByClassTest_help.output |   2 +-
 ...dlerClusterByClassWithSSLTest_cache_help.output |   2 +-
 ...andHandlerClusterByClassWithSSLTest_help.output |   2 +-
 .../development/utils/IgniteWalConverter.java      |   8 +-
 .../utils/IgniteWalConverterArguments.java         |   2 +-
 .../apache/ignite/development/utils/WalStat.java   |  13 +-
 .../utils/IgniteWalConverterArgumentsTest.java     |  18 +-
 modules/ducktests/pom.xml                          |  26 +
 .../tests/ignitetest/services/utils/ignite_spec.py |   4 +-
 .../tests/control_utility/consistency_test.py      |   2 +-
 .../managers/systemview/SystemViewLocal.java       |   2 +-
 .../cache/query/GridCacheTwoStepQuery.java         |   1 +
 .../cache/query/RegisteredQueryCursor.java         |   6 +-
 .../processors/query/h2/CommandProcessor.java      |   4 +-
 .../query/h2/GridSubqueryJoinOptimizer.java        |   3 +
 .../query/h2/H2QueryFetchSizeInterceptor.java      |   4 +-
 .../internal/processors/query/h2/H2QueryInfo.java  |  45 +-
 .../processors/query/h2/IgniteH2Indexing.java      |  81 +++-
 .../processors/query/h2/MapH2QueryInfo.java        |  18 +-
 .../processors/query/h2/ReduceH2QueryInfo.java     |   7 +-
 .../processors/query/h2/database/H2TreeIndex.java  |   2 +-
 .../internal/processors/query/h2/dml/DmlUtils.java |   2 +-
 .../processors/query/h2/index/H2RowComparator.java |  16 +-
 .../query/h2/sql/GridSqlQuerySplitter.java         |   6 +-
 .../processors/query/h2/sql/SqlAstTraverser.java   |  15 +
 .../query/h2/twostep/GridMapQueryExecutor.java     |  27 +-
 .../query/h2/twostep/GridReduceQueryExecutor.java  | 189 ++++----
 .../query/h2/twostep/msg/GridH2QueryRequest.java   |  40 +-
 .../IndexQueryCacheKeyValueEscapedFieldsTest.java} |  20 +-
 .../query/IndexQueryCacheKeyValueFieldsTest.java   | 168 +++++++
 .../cache/query/IndexQueryInlineSizesTest.java     | 206 ++++++++
 .../ignite/cache/query/IndexQueryTestSuite.java    |   3 +
 ...gniteCacheJoinPartitionedAndReplicatedTest.java | 101 ++++
 .../processors/cache/index/BasicIndexTest.java     |  68 +++
 .../cache/index/BasicSqlTypesIndexTest.java        |  24 +-
 .../cache/index/H2DynamicTableSelfTest.java        |  62 +++
 .../cache/index/PojoIndexLocalQueryTest.java       | 521 ++++++++++++++++++++
 .../cache/metric/SqlViewExporterSpiTest.java       |  26 +
 .../persistence/db/wal/IgniteWalRecoveryTest.java  |   7 +-
 .../IgniteClusterSnapshotRestoreMetricsTest.java   | 253 ++++++++++
 ...niteClusterSnapshotRestoreWithIndexingTest.java |   2 +-
 .../processors/query/SqlSystemViewsSelfTest.java   |  62 +++
 .../h2/GridSubqueryJoinOptimizerSelfTest.java      |  47 ++
 .../internal/systemview/JmxExporterSpiTest.java    |  73 +++
 .../apache/ignite/sqltests/SqlByteArrayTest.java   |  79 +++
 .../ignite/sqltests/SqlDataTypesCoverageTests.java |   5 +-
 .../IgniteBinaryCacheQueryTestSuite.java           |   2 +
 .../IgniteBinaryCacheQueryTestSuite2.java          |   2 +
 .../testsuites/IgnitePdsWithIndexingTestSuite.java |   2 -
 .../IgniteSnapshotWithIndexingTestSuite.java       |   6 +-
 .../testsuites/IgniteStatisticsTestSuite.java      |   4 +-
 .../apache/ignite/logger/log4j2/Log4J2Logger.java  |  26 +-
 modules/mesos/pom.xml                              |   2 +-
 .../ignite/mesos/IgniteSchedulerSelfTest.java      |  16 +
 modules/ml/pom.xml                                 |   2 +-
 modules/ml/spark-model-parser/pom.xml              |   6 +
 modules/numa-allocator/README.md                   | 141 ++++++
 modules/numa-allocator/pom.xml                     | 210 ++++++++
 modules/numa-allocator/src/main/cpp/CMakeLists.txt |  45 ++
 .../src/main/cpp/include/numa/numa_alloc.h         | 110 +++++
 .../org_apache_ignite_internal_mem_NumaAllocUtil.h |  38 ++
 .../src/main/cpp/src/numa/numa_alloc.cpp           | 214 +++++++++
 ...rg_apache_ignite_internal_mem_NumaAllocUtil.cpp | 129 +++++
 .../apache/ignite/internal/mem/NumaAllocUtil.java  | 151 ++++++
 .../mem/InterleavedNumaAllocationStrategy.java     |  78 +++
 .../ignite/mem/LocalNumaAllocationStrategy.java}   |  30 +-
 .../apache/ignite/mem/NumaAllocationStrategy.java} |  16 +-
 .../java/org/apache/ignite/mem/NumaAllocator.java  |  53 +++
 .../ignite/mem/SimpleNumaAllocationStrategy.java   |  77 +++
 .../internal/mem/NumaAllocatorBasicTest.java       | 177 +++++++
 .../ignite/internal/mem/NumaAllocatorUnitTest.java | 121 +++++
 .../ignite/testsuites/NumaAllocatorTestSuite.java} |  14 +-
 modules/platforms/cpp/CMakeLists.txt               |  31 +-
 .../include/ignite/impl/binary/binary_utils.h      |   4 +-
 .../ignite/impl/interop/interop_input_stream.h     |  31 +-
 .../include/ignite/impl/interop/interop_memory.h   |   6 +-
 .../ignite/impl/interop/interop_output_stream.h    |  53 ++-
 .../cpp/binary/src/binary/binary_type.cpp          |   1 +
 .../cpp/binary/src/impl/binary/binary_schema.cpp   |   1 +
 .../cpp/binary/src/impl/binary/binary_utils.cpp    |  21 +-
 .../src/impl/interop/interop_input_stream.cpp      | 155 +++---
 .../cpp/binary/src/impl/interop/interop_memory.cpp |   2 +-
 .../src/impl/interop/interop_output_stream.cpp     | 140 +++---
 modules/platforms/cpp/common/CMakeLists.txt        |   1 +
 .../cpp/common/include/ignite/common/bits.h        |  22 +-
 .../cpp/common/include/ignite/common/concurrent.h  |   3 +-
 .../include/ignite/common/factory.h}               |  38 +-
 .../common/include/ignite/common/platform_utils.h  |   7 +
 .../cpp/common/include/ignite/common/promise.h     |  92 ++++
 .../common/include/ignite/common/shared_state.h    | 174 +++++++
 .../cpp/common/include/ignite/common/thread_pool.h | 214 +++++++++
 .../cpp/common/include/ignite/common/utils.h       | 104 +++-
 .../platforms/cpp/common/include/ignite/future.h   | 125 +++++
 .../common/os/linux/include/ignite/common/common.h |  12 +
 .../os/linux/include/ignite/common/concurrent_os.h |  52 ++
 .../common/os/linux/src/common/concurrent_os.cpp   |  42 ++
 .../common/os/linux/src/common/platform_utils.cpp  |  22 +-
 .../common/os/win/include/ignite/common/common.h   |   3 +
 .../os/win/include/ignite/common/concurrent_os.h   |  52 ++
 .../cpp/common/os/win/src/common/concurrent_os.cpp |  41 ++
 .../common/os/win/src/common/platform_utils.cpp    |  23 +-
 .../cpp/common/src/common/big_integer.cpp          |   2 +-
 modules/platforms/cpp/common/src/common/bits.cpp   |  74 +--
 .../cpp/common/src/common/thread_pool.cpp          | 216 +++++++++
 modules/platforms/cpp/common/src/common/utils.cpp  |  62 ++-
 modules/platforms/cpp/common/src/guid.cpp          |  15 +-
 modules/platforms/cpp/core-test/CMakeLists.txt     |  12 +-
 .../cpp/core-test/config/cache-query-schema-32.xml |  52 ++
 .../config/cache-query-schema-default.xml          |  60 +++
 .../cpp/core-test/config/cache-query-schema.xml    |  34 ++
 .../cpp/core-test/src/cache_query_schema_test.cpp  | 312 ++++++++++++
 .../cpp/core-test/src/continuous_query_test.cpp    |  36 +-
 .../include/ignite/cache/event/cache_entry_event.h |  67 ++-
 .../cache/query/continuous/continuous_query_impl.h |   6 +-
 modules/platforms/cpp/examples/CMakeLists.txt      |   6 +
 modules/platforms/cpp/network/CMakeLists.txt       |  32 +-
 .../include/ignite/network/async_client_pool.h     |  81 ++++
 .../network/include/ignite/network/async_handler.h |  87 ++++
 .../cpp/network/include/ignite/network/codec.h     |  79 +++
 .../include/ignite/network/codec_data_filter.h     | 112 +++++
 .../network/include/ignite/network/data_buffer.h   | 139 ++++++
 .../network/include/ignite/network/data_filter.h   | 105 ++++
 .../include/ignite/network/data_filter_adapter.h   | 147 ++++++
 .../cpp/network/include/ignite/network/data_sink.h |  65 +++
 .../cpp/network/include/ignite/network/end_point.h |  15 +
 .../include/ignite/network/length_prefix_codec.h   | 115 +++++
 .../cpp/network/include/ignite/network/network.h   |  30 +-
 .../network/include/ignite/network/socket_client.h |  16 +-
 .../{utils.h => ssl/secure_configuration.h}        |  27 +-
 .../ignite/network/ssl/secure_data_filter.h        | 245 ++++++++++
 .../cpp/network/include/ignite/network/tcp_range.h |  34 +-
 .../cpp/network/include/ignite/network/utils.h     |  11 +
 .../os/linux/src/network/connecting_context.cpp    | 110 +++++
 .../os/linux/src/network/connecting_context.h      |  96 ++++
 .../os/linux/src/network/linux_async_client.cpp    | 198 ++++++++
 .../os/linux/src/network/linux_async_client.h      | 249 ++++++++++
 .../linux/src/network/linux_async_client_pool.cpp  | 212 +++++++++
 .../os/linux/src/network/linux_async_client_pool.h | 205 ++++++++
 .../src/network/linux_async_worker_thread.cpp      | 348 ++++++++++++++
 .../linux/src/network/linux_async_worker_thread.h  | 163 +++++++
 .../cpp/network/os/linux/src/network/sockets.cpp   |  68 ++-
 .../cpp/network/os/linux/src/network/sockets.h     |  21 +-
 .../os/linux/src/network/tcp_socket_client.cpp     |  48 +-
 .../cpp/network/os/win/src/network/sockets.cpp     |  98 +++-
 .../cpp/network/os/win/src/network/sockets.h       |  26 +
 .../os/win/src/network/tcp_socket_client.cpp       |  91 +---
 .../cpp/network/os/win/src/network/utils.cpp       |   1 +
 .../os/win/src/network/win_async_client.cpp        | 185 ++++++++
 .../network/os/win/src/network/win_async_client.h  | 279 +++++++++++
 .../os/win/src/network/win_async_client_pool.cpp   | 239 ++++++++++
 .../os/win/src/network/win_async_client_pool.h     | 211 ++++++++
 .../src/network/win_async_connecting_thread.cpp    | 252 ++++++++++
 .../win/src/network/win_async_connecting_thread.h  | 127 +++++
 .../os/win/src/network/win_async_worker_thread.cpp | 145 ++++++
 .../os/win/src/network/win_async_worker_thread.h   |  76 +++
 .../src/network/async_client_pool_adapter.cpp      |  75 +++
 .../src/network/async_client_pool_adapter.h        | 111 +++++
 .../cpp/network/src/network/codec_data_filter.cpp  | 108 +++++
 .../cpp/network/src/network/data_buffer.cpp        | 126 +++++
 .../network/src/network/error_handling_filter.cpp  |  86 ++++
 .../network/src/network/error_handling_filter.h    |  83 ++++
 .../network/src/network/length_prefix_codec.cpp    |  94 ++++
 .../platforms/cpp/network/src/network/network.cpp  |  35 +-
 .../network/src/network/ssl/secure_data_filter.cpp | 296 ++++++++++++
 .../src/network/ssl/secure_socket_client.cpp       | 180 ++-----
 .../network/src/network/ssl/secure_socket_client.h |  54 +--
 .../cpp/network/src/network/ssl/secure_utils.cpp   | 206 ++++++++
 .../cpp/network/src/network/ssl/secure_utils.h     |  92 ++++
 .../cpp/network/src/network/ssl/ssl_gateway.cpp    | 299 +++++++++---
 .../cpp/network/src/network/ssl/ssl_gateway.h      |  69 ++-
 .../cpp/network/src/network/tcp_socket_client.h    |  11 -
 modules/platforms/cpp/odbc-test/CMakeLists.txt     |  13 +-
 .../cpp/odbc-test/config/queries-schema-32.xml     |  39 +-
 .../odbc-test/config/queries-schema-default.xml    |  68 +++
 .../cpp/odbc-test/config/queries-schema.xml        |  31 +-
 .../cpp/odbc-test/src/sql_schema_test.cpp          | 337 +++++++++++++
 .../platforms/cpp/odbc-test/src/sql_types_test.cpp |   4 +-
 .../platforms/cpp/odbc-test/src/streaming_test.cpp | 116 ++---
 .../cpp/odbc/include/ignite/odbc/connection.h      |   2 +-
 .../include/ignite/odbc/query/internal_query.h     |  10 -
 .../cpp/odbc/include/ignite/odbc/query/query.h     |   7 +-
 .../include/ignite/odbc/query/streaming_query.h    |   7 -
 .../cpp/odbc/include/ignite/odbc/utility.h         |   8 -
 .../cpp/odbc/src/app/application_data_buffer.cpp   |  28 +-
 modules/platforms/cpp/odbc/src/connection.cpp      |  16 +-
 .../cpp/odbc/src/query/streaming_query.cpp         |   5 -
 modules/platforms/cpp/odbc/src/utility.cpp         |  15 -
 .../platforms/cpp/thin-client-test/CMakeLists.txt  |  12 +-
 .../config/cache-query-continuous-32.xml           |   0
 .../config/cache-query-continuous-default.xml      |  98 ++++
 .../config/cache-query-continuous.xml              |   0
 .../config/ssl-no-client-auth-32.xml               |  33 +-
 .../config/ssl-no-client-auth-default.xml          |  84 ++++
 .../thin-client-test/config/ssl-no-client-auth.xml |  24 +-
 .../cpp/thin-client-test/src/cache_client_test.cpp |  40 +-
 .../thin-client-test/src/continuous_query_test.cpp | 528 +++++++++++++++++++++
 .../thin-client-test/src/ignite_client_test.cpp    |  56 ++-
 .../thin-client-test/src/sql_fields_query_test.cpp |   1 +
 .../cpp/thin-client-test/src/ssl_test.cpp          | 208 +++++++-
 .../cpp/thin-client-test/src/test_utils.cpp        |   2 +-
 modules/platforms/cpp/thin-client/CMakeLists.txt   |   1 +
 .../ignite/impl/thin/cache/cache_client_proxy.h    |  11 +
 .../continuous/continuous_query_client_holder.h    | 182 +++++++
 .../thin/cache/query/query_fields_cursor_impl.h    | 147 ------
 .../impl/thin/cache/query/query_fields_row_impl.h  | 197 --------
 .../include/ignite/impl/thin/writable_key.h        |   1 +
 .../include/ignite/thin/cache/cache_client.h       |  21 +-
 .../include/ignite/thin/cache/cache_entry.h        | 168 +++++++
 .../ignite/thin/cache/event/cache_entry_event.h    | 221 +++++++++
 .../thin/cache/event/cache_entry_event_listener.h  |  82 ++++
 .../query/continuous/continuous_query_client.h     | 232 +++++++++
 .../query/continuous/continuous_query_handle.h     |  78 +++
 .../ignite/thin/ignite_client_configuration.h      |  39 +-
 .../src/impl/cache/cache_client_impl.cpp           |  68 ++-
 .../thin-client/src/impl/cache/cache_client_impl.h |  18 +-
 .../src/impl/cache/cache_client_proxy.cpp          |  15 +-
 .../continuous/continuous_query_handle_impl.h      |  90 ++++
 .../continuous_query_notification_handler.cpp      |  63 +++
 .../continuous_query_notification_handler.h        |  96 ++++
 .../thin-client/src/impl/cache/query/cursor_page.h |   5 +-
 .../thin-client/src/impl/channel_state_handler.h   |  68 +++
 .../src/impl/compute/compute_client_impl.cpp       |  86 +++-
 .../cpp/thin-client/src/impl/data_channel.cpp      | 414 ++++++++--------
 .../cpp/thin-client/src/impl/data_channel.h        | 327 +++++--------
 .../cpp/thin-client/src/impl/data_router.cpp       | 386 ++++++++++-----
 .../cpp/thin-client/src/impl/data_router.h         | 288 +++++------
 .../thin-client/src/impl/ignite_client_impl.cpp    |   6 +-
 .../platforms/cpp/thin-client/src/impl/message.cpp | 105 ++--
 .../platforms/cpp/thin-client/src/impl/message.h   | 445 ++++++++++++++---
 .../thin-client/src/impl/notification_handler.h    | 284 +++++++++++
 .../src/impl/transactions/transaction_impl.cpp     |   2 +-
 .../src/impl/transactions/transaction_impl.h       |   2 +-
 .../platforms/cpp/thin-client/src/impl/utility.cpp |   1 +
 .../Apache.Ignite.Core.Tests/Binary/EnumsTest.cs   | 144 ++++++
 .../Platform/PlatformCacheWithPersistenceTest.cs   | 239 ++++++++++
 .../Cache/Query/CacheDmlQueriesTestSchema.cs       | 255 ++++++++++
 .../Client/ClientConnectionTest.cs                 | 211 ++++++++
 .../Client/ClientTestBase.cs                       |  10 +-
 .../ClientProtocolCompatibilityTest.cs             |   2 +-
 .../Client/Compute/ComputeClientTests.cs           |   2 +-
 .../Client/IgniteClientConfigurationTest.cs        |   2 -
 .../Client/Services/ITestService.cs                |   6 +
 .../Client/Services/ServicesClientTest.cs          | 122 ++++-
 .../Client/Services/TestService.cs                 |  24 +-
 .../Client/TestRetryPolicy.cs                      |  57 +++
 .../Compute/ComputeApiTest.cs                      |   9 -
 .../Compute/IgniteExceptionTaskSelfTest.cs         |  48 +-
 .../Config/full-config.xml                         |   4 +-
 .../IgniteConfigurationSerializerTest.cs           |  13 +-
 .../IgniteConfigurationTest.cs                     |  20 +-
 .../Apache.Ignite.Core.Tests/IgnitionStartTest.cs  |   3 +-
 .../PlatformComputeBinarizable.cs}                 |  19 +-
 .../Services/CallPlatformServiceTest.cs            |  32 +-
 .../Services/IJavaService.cs                       |   9 +-
 .../Services/JavaServiceDynamicProxy.cs            |  12 +-
 .../Apache.Ignite.Core.Tests/Services/Model.cs     |  13 +-
 .../Services/PlatformTestService.cs                |  24 +-
 .../Services/ServiceProxyTest.cs                   |   2 +-
 .../Services/ServicesTest.cs                       | 265 +++++++----
 .../Services/ServicesTestAsync.cs                  |  22 +
 .../Services/ServicesTestFullFooter.cs             |  22 +
 .../Services/ServicesTypeAutoResolveTest.cs        | 205 +++++---
 .../dotnet/Apache.Ignite.Core.Tests/TestUtils.cs   |  34 +-
 .../Client/ClientOperationType.cs                  | 219 +++++++++
 .../ClientRetryAllPolicy.cs}                       |  22 +-
 .../Client/ClientRetryReadPolicy.cs                |  55 +++
 .../IClientRetryPolicy.cs}                         |  23 +-
 .../IClientRetryPolicyContext.cs}                  |  28 +-
 .../Client/IgniteClientConfiguration.cs            |  22 +
 .../Client/Services/IClientServiceDescriptor.cs    |  71 +++
 .../Client/Services/IServicesClient.cs             |  30 ++
 .../Configuration/DataStorageConfiguration.cs      |  66 ++-
 .../Configuration/SystemDataRegionConfiguration.cs |  84 ++++
 .../IgniteClientConfigurationSection.xsd           |  17 +
 .../IgniteConfigurationSection.xsd                 |  21 +-
 .../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs     |   8 +-
 .../Apache.Ignite.Core/Impl/Cache/CacheOp.cs       |   3 +-
 .../Impl/Cache/Platform/PlatformCache.cs           |  15 +-
 .../Impl/Client/ClientBitmaskFeature.cs            |   3 +-
 .../Impl/Client/ClientFailoverSocket.cs            | 172 ++++++-
 .../Apache.Ignite.Core/Impl/Client/ClientOp.cs     |   2 +
 .../Impl/Client/ClientOpExtensions.cs              | 158 ++++++
 .../Impl/Client/ClientRetryPolicyContext.cs        |  59 +++
 .../Client/Services/ClientServiceDescriptor.cs     |  68 +++
 .../Impl/Client/Services/ServicesClient.cs         |  65 ++-
 .../Apache.Ignite.Core/Impl/Common/TypeCaster.cs   |  38 +-
 .../Impl/Services/ServiceDescriptor.cs             |   4 +-
 .../Impl/Services/ServiceProxyInvoker.cs           |  25 +-
 .../Impl/Services/ServiceProxySerializer.cs        |  33 +-
 .../Apache.Ignite.Core/Impl/Services/Services.cs   |  28 +-
 .../{Impl/Common => Platform}/PlatformType.cs      |   8 +-
 modules/rest-http/README.txt                       |   3 +
 modules/rest-http/pom.xml                          |   7 +-
 .../util/spring/IgniteSpringHelperImpl.java        |  47 +-
 .../resource/GridServiceInjectionSelfTest.java     |   6 -
 modules/zookeeper/pom.xml                          |  59 +--
 .../ipfinder/zk/TcpDiscoveryZookeeperIpFinder.java | 398 ----------------
 .../discovery/tcp/ipfinder/zk/package-info.java    |  22 -
 .../tcp/ipfinder/zk/ZookeeperIpFinderTest.java     | 409 ----------------
 packaging/deb/changelog                            |   6 +
 packaging/rpm/apache-ignite.spec                   |   5 +-
 parent/pom.xml                                     |  10 +-
 pom.xml                                            |   8 +
 677 files changed, 32010 insertions(+), 7624 deletions(-)
 create mode 100644 docs/_docs/includes/cpp-odbc-linux-build-prerequisites.adoc
 create mode 100644 docs/_docs/persistence/change-data-capture.adoc
 create mode 100644 docs/assets/images/integrations/CDC-design.svg
 create mode 100644 modules/compatibility/src/test/java/org/apache/ignite/compatibility/IgniteReleasedVersion.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/cache/ReadRepairStrategy.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/client/ClientOperationType.java
 copy modules/core/src/{test/java/org/apache/ignite/internal/processors/cache/consistency/SingleBackupExplicitTransactionalReadRepairTest.java => main/java/org/apache/ignite/client/ClientRetryAllPolicy.java} (73%)
 copy modules/core/src/{test/java/org/apache/ignite/internal/processors/cache/consistency/SingleBackupExplicitTransactionalReadRepairTest.java => main/java/org/apache/ignite/client/ClientRetryNonePolicy.java} (72%)
 copy modules/core/src/{test/java/org/apache/ignite/internal/processors/service/inner/MyService.java => main/java/org/apache/ignite/client/ClientRetryPolicy.java} (59%)
 copy modules/core/src/main/java/org/apache/ignite/{internal/processors/job/GridJobEventListener.java => client/ClientRetryPolicyContext.java} (53%)
 create mode 100644 modules/core/src/main/java/org/apache/ignite/client/ClientRetryReadPolicy.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/client/ClientServiceDescriptor.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/configuration/SystemDataRegionConfiguration.java
 delete mode 100644 modules/core/src/main/java/org/apache/ignite/internal/cache/query/index/sorted/keys/BytesCompareUtils.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientRetryPolicyContextImpl.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientServiceDescriptorImpl.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/SnapshotViewWalker.java
 copy modules/core/src/main/java/org/apache/ignite/internal/{cache/query/index/sorted/keys/SignedBytesIndexKey.java => mem/unsafe/UnsafeMemoryAllocator.java} (66%)
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/consistency/GridCompoundReadRepairFuture.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/consistency/IgniteIrreparableConsistencyViolationException.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/checkpoint/EarliestCheckpointMapSnapshot.java
 copy modules/{zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/ZookeeperIpFinderTestSuite.java => core/src/main/java/org/apache/ignite/internal/processors/job/ComputeJobStatusEnum.java} (74%)
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/service/ClientServiceDescriptorResponse.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/service/ClientServiceDescriptorsResponse.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/service/ClientServiceGetDescriptorRequest.java
 copy modules/{indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/ReduceH2QueryInfo.java => core/src/main/java/org/apache/ignite/internal/processors/platform/client/service/ClientServiceGetDescriptorsRequest.java} (51%)
 delete mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceAssignments.java
 delete mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceAssignmentsKey.java
 delete mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceDeployment.java
 delete mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceDeploymentKey.java
 delete mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceDescriptorImpl.java
 copy modules/core/src/{test/java/org/apache/ignite/internal/processors/service/inner/MyService.java => main/java/org/apache/ignite/internal/processors/task/monitor/ComputeGridMonitor.java} (63%)
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/task/monitor/ComputeTaskStatus.java
 copy modules/{zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/ZookeeperIpFinderTestSuite.java => core/src/main/java/org/apache/ignite/internal/processors/task/monitor/ComputeTaskStatusEnum.java} (74%)
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/task/monitor/ComputeTaskStatusSnapshot.java
 copy modules/core/src/{test/java/org/apache/ignite/internal/processors/service/inner/MyService.java => main/java/org/apache/ignite/mem/MemoryAllocator.java} (67%)
 copy modules/{zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/ZookeeperIpFinderTestSuite.java => core/src/main/java/org/apache/ignite/platform/PlatformType.java} (74%)
 create mode 100644 modules/core/src/main/java/org/apache/ignite/plugin/CacheTopologyValidatorProvider.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/spi/systemview/view/SnapshotView.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/direct/DirectMarshallingMessagesTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/managers/events/LifecycleAwareListenerTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheTopologyValidatorProviderTest.java
 delete mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/AtomicReadRepairTest.java
 copy modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/{SingleBackupImplicitTransactionalReadRepairTest.java => inmem/AtomicReadRepairTest.java} (67%)
 rename modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/{ => inmem}/ExplicitTransactionalReadRepairTest.java (61%)
 rename modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/{ => inmem}/ImplicitTransactionalReadRepairTest.java (72%)
 rename modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/{ => inmem}/ReplicatedExplicitTransactionalReadRepairTest.java (93%)
 rename modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/{ => inmem}/ReplicatedImplicitTransactionalReadRepairTest.java (93%)
 copy modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/{ => inmem}/SingleBackupExplicitTransactionalReadRepairTest.java (93%)
 copy modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/{ => inmem}/SingleBackupImplicitTransactionalReadRepairTest.java (93%)
 copy modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/{SingleBackupExplicitTransactionalReadRepairTest.java => persistence/PdsAtomicReadRepairTest.java} (73%)
 copy modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/{SingleBackupExplicitTransactionalReadRepairTest.java => persistence/PdsExplicitTransactionalReadRepairTest.java} (70%)
 rename modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/{SingleBackupExplicitTransactionalReadRepairTest.java => persistence/PdsImplicitTransactionalReadRepairTest.java} (70%)
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCheckpointMapSnapshotTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/compute/ComputeGridMonitorTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/compute/ComputeJobChangePriorityTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/compute/ComputeJobStatusTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/compute/ComputeTaskWithWithoutFullSupportTest.java
 copy modules/core/src/test/java/org/apache/ignite/internal/processors/{cache/consistency/SingleBackupImplicitTransactionalReadRepairTest.java => compute/NoopJob.java} (74%)
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceMetricsTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/util/EchoServer.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/util/IgniteUtilsUnitTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioServerTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/platform/PlatformSetUseBinaryArrayTask.java
 copy modules/core/src/test/java/org/apache/ignite/platform/model/{Role.java => AccessLevel.java} (75%)
 create mode 100644 modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheConsistencySelfTestSuite.java
 copy modules/{zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/ZookeeperIpFinderTestSuite.java => indexing/src/test/java/org/apache/ignite/cache/query/IndexQueryCacheKeyValueEscapedFieldsTest.java} (74%)
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/cache/query/IndexQueryCacheKeyValueFieldsTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/cache/query/IndexQueryInlineSizesTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/PojoIndexLocalQueryTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotRestoreMetricsTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/systemview/JmxExporterSpiTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/sqltests/SqlByteArrayTest.java
 create mode 100644 modules/numa-allocator/README.md
 create mode 100644 modules/numa-allocator/pom.xml
 create mode 100644 modules/numa-allocator/src/main/cpp/CMakeLists.txt
 create mode 100644 modules/numa-allocator/src/main/cpp/include/numa/numa_alloc.h
 create mode 100644 modules/numa-allocator/src/main/cpp/include/org_apache_ignite_internal_mem_NumaAllocUtil.h
 create mode 100644 modules/numa-allocator/src/main/cpp/src/numa/numa_alloc.cpp
 create mode 100644 modules/numa-allocator/src/main/cpp/src/org_apache_ignite_internal_mem_NumaAllocUtil.cpp
 create mode 100644 modules/numa-allocator/src/main/java/org/apache/ignite/internal/mem/NumaAllocUtil.java
 create mode 100644 modules/numa-allocator/src/main/java/org/apache/ignite/mem/InterleavedNumaAllocationStrategy.java
 copy modules/{core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/consistency/IgniteConsistencyViolationException.java => numa-allocator/src/main/java/org/apache/ignite/mem/LocalNumaAllocationStrategy.java} (55%)
 rename modules/{core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/SingleBackupImplicitTransactionalReadRepairTest.java => numa-allocator/src/main/java/org/apache/ignite/mem/NumaAllocationStrategy.java} (71%)
 create mode 100644 modules/numa-allocator/src/main/java/org/apache/ignite/mem/NumaAllocator.java
 create mode 100644 modules/numa-allocator/src/main/java/org/apache/ignite/mem/SimpleNumaAllocationStrategy.java
 create mode 100644 modules/numa-allocator/src/test/java/org/apache/ignite/internal/mem/NumaAllocatorBasicTest.java
 create mode 100644 modules/numa-allocator/src/test/java/org/apache/ignite/internal/mem/NumaAllocatorUnitTest.java
 rename modules/{zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/ZookeeperIpFinderTestSuite.java => numa-allocator/src/test/java/org/apache/ignite/testsuites/NumaAllocatorTestSuite.java} (77%)
 copy modules/platforms/cpp/{network/include/ignite/network/utils.h => common/include/ignite/common/factory.h} (58%)
 create mode 100644 modules/platforms/cpp/common/include/ignite/common/thread_pool.h
 create mode 100644 modules/platforms/cpp/common/src/common/thread_pool.cpp
 create mode 100644 modules/platforms/cpp/core-test/config/cache-query-schema-32.xml
 create mode 100644 modules/platforms/cpp/core-test/config/cache-query-schema-default.xml
 create mode 100644 modules/platforms/cpp/core-test/config/cache-query-schema.xml
 create mode 100644 modules/platforms/cpp/core-test/src/cache_query_schema_test.cpp
 create mode 100644 modules/platforms/cpp/network/include/ignite/network/async_client_pool.h
 create mode 100644 modules/platforms/cpp/network/include/ignite/network/async_handler.h
 create mode 100644 modules/platforms/cpp/network/include/ignite/network/codec.h
 create mode 100644 modules/platforms/cpp/network/include/ignite/network/codec_data_filter.h
 create mode 100644 modules/platforms/cpp/network/include/ignite/network/data_buffer.h
 create mode 100644 modules/platforms/cpp/network/include/ignite/network/data_filter.h
 create mode 100644 modules/platforms/cpp/network/include/ignite/network/data_filter_adapter.h
 create mode 100644 modules/platforms/cpp/network/include/ignite/network/data_sink.h
 create mode 100644 modules/platforms/cpp/network/include/ignite/network/length_prefix_codec.h
 copy modules/platforms/cpp/network/include/ignite/network/{utils.h => ssl/secure_configuration.h} (60%)
 create mode 100644 modules/platforms/cpp/network/include/ignite/network/ssl/secure_data_filter.h
 create mode 100644 modules/platforms/cpp/network/os/linux/src/network/connecting_context.cpp
 create mode 100644 modules/platforms/cpp/network/os/linux/src/network/connecting_context.h
 create mode 100644 modules/platforms/cpp/network/os/linux/src/network/linux_async_client.cpp
 create mode 100644 modules/platforms/cpp/network/os/linux/src/network/linux_async_client.h
 create mode 100644 modules/platforms/cpp/network/os/linux/src/network/linux_async_client_pool.cpp
 create mode 100644 modules/platforms/cpp/network/os/linux/src/network/linux_async_client_pool.h
 create mode 100644 modules/platforms/cpp/network/os/linux/src/network/linux_async_worker_thread.cpp
 create mode 100644 modules/platforms/cpp/network/os/linux/src/network/linux_async_worker_thread.h
 create mode 100644 modules/platforms/cpp/network/os/win/src/network/win_async_client.cpp
 create mode 100644 modules/platforms/cpp/network/os/win/src/network/win_async_client.h
 create mode 100644 modules/platforms/cpp/network/os/win/src/network/win_async_client_pool.cpp
 create mode 100644 modules/platforms/cpp/network/os/win/src/network/win_async_client_pool.h
 create mode 100644 modules/platforms/cpp/network/os/win/src/network/win_async_connecting_thread.cpp
 create mode 100644 modules/platforms/cpp/network/os/win/src/network/win_async_connecting_thread.h
 create mode 100644 modules/platforms/cpp/network/os/win/src/network/win_async_worker_thread.cpp
 create mode 100644 modules/platforms/cpp/network/os/win/src/network/win_async_worker_thread.h
 create mode 100644 modules/platforms/cpp/network/src/network/async_client_pool_adapter.cpp
 create mode 100644 modules/platforms/cpp/network/src/network/async_client_pool_adapter.h
 create mode 100644 modules/platforms/cpp/network/src/network/codec_data_filter.cpp
 create mode 100644 modules/platforms/cpp/network/src/network/data_buffer.cpp
 create mode 100644 modules/platforms/cpp/network/src/network/error_handling_filter.cpp
 create mode 100644 modules/platforms/cpp/network/src/network/error_handling_filter.h
 create mode 100644 modules/platforms/cpp/network/src/network/length_prefix_codec.cpp
 create mode 100644 modules/platforms/cpp/network/src/network/ssl/secure_data_filter.cpp
 create mode 100644 modules/platforms/cpp/network/src/network/ssl/secure_utils.cpp
 create mode 100644 modules/platforms/cpp/network/src/network/ssl/secure_utils.h
 copy docs/_docs/code-snippets/k8s/stateless/node-configuration.xml => modules/platforms/cpp/odbc-test/config/queries-schema-32.xml (50%)
 create mode 100644 modules/platforms/cpp/odbc-test/config/queries-schema-default.xml
 copy docs/_docs/code-snippets/k8s/stateless/node-configuration.xml => modules/platforms/cpp/odbc-test/config/queries-schema.xml (54%)
 create mode 100644 modules/platforms/cpp/odbc-test/src/sql_schema_test.cpp
 copy modules/platforms/cpp/{core-test => thin-client-test}/config/cache-query-continuous-32.xml (100%)
 create mode 100644 modules/platforms/cpp/thin-client-test/config/cache-query-continuous-default.xml
 copy modules/platforms/cpp/{core-test => thin-client-test}/config/cache-query-continuous.xml (100%)
 copy docs/_docs/code-snippets/k8s/stateless/node-configuration.xml => modules/platforms/cpp/thin-client-test/config/ssl-no-client-auth-32.xml (54%)
 create mode 100644 modules/platforms/cpp/thin-client-test/config/ssl-no-client-auth-default.xml
 copy docs/_docs/code-snippets/k8s/stateless/node-configuration.xml => modules/platforms/cpp/thin-client-test/config/ssl-no-client-auth.xml (54%)
 create mode 100644 modules/platforms/cpp/thin-client-test/src/continuous_query_test.cpp
 create mode 100644 modules/platforms/cpp/thin-client/include/ignite/impl/thin/cache/continuous/continuous_query_client_holder.h
 delete mode 100644 modules/platforms/cpp/thin-client/include/ignite/impl/thin/cache/query/query_fields_cursor_impl.h
 delete mode 100644 modules/platforms/cpp/thin-client/include/ignite/impl/thin/cache/query/query_fields_row_impl.h
 create mode 100644 modules/platforms/cpp/thin-client/include/ignite/thin/cache/cache_entry.h
 create mode 100644 modules/platforms/cpp/thin-client/include/ignite/thin/cache/event/cache_entry_event.h
 create mode 100644 modules/platforms/cpp/thin-client/include/ignite/thin/cache/event/cache_entry_event_listener.h
 create mode 100644 modules/platforms/cpp/thin-client/include/ignite/thin/cache/query/continuous/continuous_query_client.h
 create mode 100644 modules/platforms/cpp/thin-client/include/ignite/thin/cache/query/continuous/continuous_query_handle.h
 create mode 100644 modules/platforms/cpp/thin-client/src/impl/cache/query/continuous/continuous_query_handle_impl.h
 create mode 100644 modules/platforms/cpp/thin-client/src/impl/cache/query/continuous/continuous_query_notification_handler.cpp
 create mode 100644 modules/platforms/cpp/thin-client/src/impl/cache/query/continuous/continuous_query_notification_handler.h
 create mode 100644 modules/platforms/cpp/thin-client/src/impl/channel_state_handler.h
 create mode 100644 modules/platforms/cpp/thin-client/src/impl/notification_handler.h
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Platform/PlatformCacheWithPersistenceTest.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Query/CacheDmlQueriesTestSchema.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core.Tests/Client/TestRetryPolicy.cs
 copy modules/platforms/dotnet/{Apache.Ignite.Core/Impl/Common/PlatformType.cs => Apache.Ignite.Core.Tests/PlatformComputeBinarizable.cs} (74%)
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Client/ClientOperationType.cs
 copy modules/platforms/dotnet/Apache.Ignite.Core/{Impl/Common/PlatformType.cs => Client/ClientRetryAllPolicy.cs} (74%)
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Client/ClientRetryReadPolicy.cs
 copy modules/platforms/dotnet/Apache.Ignite.Core/{Impl/Common/PlatformType.cs => Client/IClientRetryPolicy.cs} (59%)
 copy modules/platforms/dotnet/Apache.Ignite.Core/{Impl/Common/PlatformType.cs => Client/IClientRetryPolicyContext.cs} (59%)
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Client/Services/IClientServiceDescriptor.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Configuration/SystemDataRegionConfiguration.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Impl/Client/ClientOpExtensions.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Impl/Client/ClientRetryPolicyContext.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Impl/Client/Services/ClientServiceDescriptor.cs
 rename modules/platforms/dotnet/Apache.Ignite.Core/{Impl/Common => Platform}/PlatformType.cs (89%)
 delete mode 100644 modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/TcpDiscoveryZookeeperIpFinder.java
 delete mode 100644 modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/package-info.java
 delete mode 100644 modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/zk/ZookeeperIpFinderTest.java

[ignite] 01/01: Merge remote-tracking branch 'remotes/upstream/master' into sql-calcite

Posted by al...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

alexpl pushed a commit to branch sql-calcite
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit cacc613172bf29ac9bf8f041db8ee74cb59f7335
Merge: 6d120d8 5529f68
Author: Aleksey Plekhanov <pl...@gmail.com>
AuthorDate: Tue Feb 8 18:06:11 2022 +0300

    Merge remote-tracking branch 'remotes/upstream/master' into sql-calcite
    
    # Conflicts:
    #	modules/core/src/main/java/org/apache/ignite/internal/processors/query/RunningQueryManager.java
    #	modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteStatisticsTestSuite.java

 .travis.yml                                        |  15 +-
 README.md                                          |   4 +-
 RELEASE_NOTES.txt                                  | 146 ++++++
 bin/ignite-cdc.sh                                  |   4 +
 docs/_data/toc.yaml                                |   2 +
 docs/_docs/SQL/ODBC/odbc-driver.adoc               |  61 ++-
 docs/_docs/SQL/distributed-joins.adoc              |  61 +--
 docs/_docs/clustering/baseline-topology.adoc       |   8 +-
 .../ignite/snippets/services/ServiceExample.java   |  33 +-
 .../k8s/stateful/node-configuration.xml            |  16 +-
 .../k8s/stateless/node-configuration.xml           |   9 +-
 .../collocated-computations.adoc                   |   2 +-
 .../hibernate-l2-cache.adoc                        |   4 +-
 .../spring/spring-data.adoc                        |   2 +-
 .../cpp-odbc-linux-build-prerequisites.adoc        |  43 ++
 docs/_docs/includes/starting-node.adoc             |   4 +-
 docs/_docs/key-value-api/transactions.adoc         |   3 +-
 docs/_docs/monitoring-metrics/metrics.adoc         |   4 -
 docs/_docs/monitoring-metrics/new-metrics.adoc     |  14 +
 docs/_docs/monitoring-metrics/system-views.adoc    |  14 +
 docs/_docs/persistence/change-data-capture.adoc    | 132 ++++++
 docs/_docs/persistence/native-persistence.adoc     |   1 +
 docs/_docs/quick-start/cpp.adoc                    |  42 +-
 docs/_docs/quick-start/java.adoc                   |   2 +-
 docs/_docs/services/services.adoc                  |  29 ++
 docs/_docs/setup.adoc                              |   2 +-
 docs/_docs/thin-clients/cpp-thin-client.adoc       |  27 +-
 docs/_docs/thin-clients/java-thin-client.adoc      |   2 +-
 docs/_docs/tools/control-script.adoc               |  10 +-
 docs/assets/images/integrations/CDC-design.svg     |   4 +
 .../query/calcite/QueryRegistryImpl.java           |   4 +-
 .../processors/query/calcite/exec/IndexScan.java   |   2 +-
 .../ignite/jdbc/thin/JdbcThinMetadataSelfTest.java |   1 +
 .../qa/query/WarningOnBigQueryResultsBaseTest.java |  15 +-
 .../SystemViewRowAttributeWalkerGenerator.java     |   2 +
 modules/compatibility/pom.xml                      |   6 +
 .../compatibility/IgniteReleasedVersion.java       |  98 ++++
 .../clients/AbstractClientCompatibilityTest.java   |  31 +-
 .../clients/JavaThinCompatibilityTest.java         | 113 +++++
 .../IgnitePKIndexesMigrationToUnwrapPkTest.java    |  21 +-
 .../persistence/IndexTypesCompatibilityTest.java   |  10 +-
 .../InlineJavaObjectCompatibilityTest.java         |  33 +-
 .../PersistenceBasicCompatibilityTest.java         | 140 +-----
 .../testframework/util/MavenUtils.java             |  53 ++-
 modules/control-utility/pom.xml                    |   7 +
 .../consistency/ConsistencyCommand.java            |  56 ++-
 .../util/GridCommandHandlerClusterByClassTest.java |  13 +-
 .../util/GridCommandHandlerConsistencyTest.java    |  99 +++-
 .../util/GridCommandHandlerIndexingTest.java       |  14 +-
 .../apache/ignite/util/GridCommandHandlerTest.java | 118 +++--
 .../ignite/util/KillCommandsCommandShTest.java     |  12 +-
 .../apache/ignite/util/SystemViewCommandTest.java  |  14 +
 .../main/java/org/apache/ignite/IgniteCache.java   |   4 +-
 .../java/org/apache/ignite/IgniteServices.java     |  29 +-
 .../org/apache/ignite/IgniteSystemProperties.java  |  12 +
 .../apache/ignite/cache/ReadRepairStrategy.java    |  89 ++++
 .../java/org/apache/ignite/cdc/CdcConsumer.java    |   2 +-
 .../main/java/org/apache/ignite/cdc/CdcLoader.java |  26 +-
 .../apache/ignite/client/ClientOperationType.java  | 217 +++++++++
 .../ignite/client/ClientRetryAllPolicy.java}       |  13 +-
 .../ignite/client/ClientRetryNonePolicy.java}      |  13 +-
 .../apache/ignite/client/ClientRetryPolicy.java}   |  24 +-
 .../ClientRetryPolicyContext.java}                 |  33 +-
 .../ignite/client/ClientRetryReadPolicy.java       |  50 ++
 .../ignite/client/ClientServiceDescriptor.java     |  78 +++
 .../org/apache/ignite/client/ClientServices.java   |  53 +++
 .../ignite/configuration/ClientConfiguration.java  |  31 ++
 .../configuration/DataRegionConfiguration.java     |  23 +
 .../configuration/DataStorageConfiguration.java    |  99 +++-
 .../SystemDataRegionConfiguration.java             |  93 ++++
 .../events/CacheConsistencyViolationEvent.java     |  38 +-
 .../apache/ignite/internal/GridJobResultImpl.java  |  16 +-
 .../ignite/internal/GridTaskSessionImpl.java       |  81 +++-
 .../org/apache/ignite/internal/IgniteKernal.java   |   2 +-
 .../apache/ignite/internal/IgniteServicesEx.java   |   6 +-
 .../apache/ignite/internal/IgniteServicesImpl.java |  19 +-
 .../org/apache/ignite/internal/IgnitionEx.java     |   9 +-
 .../apache/ignite/internal/binary/BinaryArray.java |  38 +-
 .../ignite/internal/binary/BinaryMarshaller.java   |   2 +-
 .../ignite/internal/binary/BinaryObjectImpl.java   |  17 +-
 .../binary/BinarySerializedFieldComparator.java    |  51 +-
 .../apache/ignite/internal/binary/BinaryUtils.java |  21 +-
 .../ignite/internal/binary/BinaryWriterExImpl.java |   2 +-
 .../binary/builder/BinaryBuilderSerializer.java    |   9 -
 .../binary/builder/BinaryObjectBuilderImpl.java    |   4 +-
 .../cache/query/index/IndexQueryProcessor.java     | 260 +++++++---
 .../query/index/sorted/IndexKeyDefinition.java     |  12 -
 .../query/index/sorted/IndexRowComparator.java     |   9 +-
 .../query/index/sorted/IndexRowCompartorImpl.java  |  32 +-
 .../sorted/defragmentation/DefragIndexFactory.java |   4 +
 .../index/sorted/inline/IndexQueryContext.java     |  33 +-
 .../query/index/sorted/inline/InlineIndexImpl.java |   6 +-
 .../index/sorted/inline/InlineIndexKeyType.java    |   8 +-
 .../query/index/sorted/inline/InlineIndexTree.java |  40 +-
 .../sorted/inline/InlineTreeFilterClosure.java     |  39 +-
 .../sorted/inline/io/AbstractInlineInnerIO.java    |   3 +
 .../sorted/inline/io/AbstractInlineLeafIO.java     |   3 +
 .../index/sorted/inline/io/AbstractInnerIO.java    |   3 +
 .../index/sorted/inline/io/AbstractLeafIO.java     |   3 +
 .../query/index/sorted/keys/BytesCompareUtils.java |  59 ---
 .../query/index/sorted/keys/BytesIndexKey.java     |  20 +-
 .../index/sorted/keys/JavaObjectIndexKey.java      |   8 +-
 .../index/sorted/keys/SignedBytesIndexKey.java     |   4 +-
 .../org/apache/ignite/internal/cdc/CdcMain.java    |   8 +-
 .../router/impl/GridRouterCommandLineStartup.java  |  12 +-
 .../internal/client/thin/ClientOperation.java      | 141 +++++-
 .../client/thin/ClientRetryPolicyContextImpl.java  |  76 +++
 .../client/thin/ClientServiceDescriptorImpl.java   | 104 ++++
 .../internal/client/thin/ClientServicesImpl.java   | 120 ++++-
 .../ignite/internal/client/thin/ClientUtils.java   |   4 +-
 .../client/thin/ProtocolBitmaskFeature.java        |   9 +-
 .../internal/client/thin/ReliableChannel.java      |  57 ++-
 .../graph/FullyConnectedComponentSearcher.java     |  14 +-
 .../managers/collision/GridCollisionManager.java   |  14 +-
 .../managers/discovery/GridDiscoveryManager.java   |   2 +-
 .../managers/encryption/CacheGroupPageScanner.java |  31 +-
 .../eventstorage/GridEventStorageManager.java      |  11 +-
 .../managers/systemview/SystemViewMBean.java       |   7 +-
 .../systemview/walker/CacheViewWalker.java         | 196 ++++----
 .../systemview/walker/SnapshotViewWalker.java      |  50 ++
 .../unsafe/UnsafeMemoryAllocator.java}             |  16 +-
 .../internal/mem/unsafe/UnsafeMemoryProvider.java  |  36 +-
 .../ignite/internal/pagemem/wal/WALIterator.java   |   6 +-
 .../internal/pagemem/wal/record/DataRecord.java    |  40 +-
 .../processors/affinity/GridAffinityProcessor.java |  13 +-
 .../IgniteAuthenticationProcessor.java             |   4 +-
 .../processors/bulkload/BulkLoadProcessor.java     |   4 +-
 .../cache/CacheEntryPredicateContainsValue.java    |   4 +
 .../processors/cache/CacheGroupContext.java        |  45 +-
 .../processors/cache/CacheObjectUtils.java         |   6 +-
 .../processors/cache/CacheOperationContext.java    |  39 +-
 .../processors/cache/ClusterCachesInfo.java        |   2 +-
 .../cache/GatewayProtectedCacheProxy.java          |  14 +-
 .../processors/cache/GridCacheAdapter.java         | 128 ++---
 .../processors/cache/GridCacheContext.java         |  10 +-
 .../processors/cache/GridCacheMapEntry.java        |   6 +-
 .../cache/GridCachePartitionExchangeManager.java   |  19 +-
 .../processors/cache/GridCacheProxyImpl.java       |   8 +-
 .../processors/cache/IgniteCacheProxyImpl.java     |   3 +-
 .../binary/CacheObjectBinaryProcessorImpl.java     |   3 +-
 .../cache/distributed/dht/GridDhtCacheAdapter.java |   7 +-
 .../dht/GridDhtTopologyFutureAdapter.java          |   9 +-
 .../distributed/dht/atomic/GridDhtAtomicCache.java |  48 +-
 .../dht/colocated/GridDhtColocatedCache.java       |  15 +-
 .../preloader/GridDhtPartitionsExchangeFuture.java |  13 +
 .../dht/topology/GridDhtPartitionTopologyImpl.java |   4 +-
 .../distributed/near/GridNearAtomicCache.java      |   3 +-
 .../near/GridNearTransactionalCache.java           |   5 +-
 .../cache/distributed/near/GridNearTxLocal.java    |  72 +--
 .../consistency/GridCompoundReadRepairFuture.java  | 106 +++++
 .../GridNearReadRepairAbstractFuture.java          | 137 +++++-
 .../GridNearReadRepairCheckOnlyFuture.java         | 137 ++----
 .../near/consistency/GridNearReadRepairFuture.java | 252 ++++++++--
 .../IgniteConsistencyViolationException.java       |  25 +-
 ...teIrreparableConsistencyViolationException.java |  63 +++
 .../cache/local/atomic/GridLocalAtomicCache.java   |   7 +-
 .../processors/cache/mvcc/MvccProcessorImpl.java   |   4 +-
 .../processors/cache/mvcc/txlog/TxLogInnerIO.java  |  10 +
 .../processors/cache/mvcc/txlog/TxLogLeafIO.java   |  10 +
 .../GridCacheDatabaseSharedManager.java            |  22 +-
 .../IgniteCacheDatabaseSharedManager.java          |  20 +-
 .../cache/persistence/IndexStorageImpl.java        |   4 +
 .../cache/persistence/RecoveryDebug.java           |   7 +-
 .../persistence/checkpoint/CheckpointEntry.java    |  77 ++-
 .../persistence/checkpoint/CheckpointHistory.java  |  87 +++-
 .../persistence/checkpoint/CheckpointManager.java  |  21 +-
 .../checkpoint/CheckpointMarkersStorage.java       | 189 +++++++-
 .../checkpoint/EarliestCheckpointMapSnapshot.java  | 177 +++++++
 .../cache/persistence/defragmentation/LinkMap.java |   4 +
 .../persistence/freelist/io/PagesListMetaIO.java   |   4 +
 .../persistence/freelist/io/PagesListNodeIO.java   |  15 +
 .../metastorage/MetastorageInnerIO.java            |   4 +
 .../persistence/metastorage/MetastorageLeafIO.java |   4 +
 .../cache/persistence/pagemem/PageMemoryImpl.java  |   6 +
 .../snapshot/AbstractSnapshotVerificationTask.java |  42 +-
 .../snapshot/IgniteSnapshotManager.java            |  37 +-
 .../persistence/snapshot/SnapshotMXBeanImpl.java   |  20 +
 .../snapshot/SnapshotRestoreProcess.java           | 243 ++++++----
 .../cache/persistence/tree/BPlusTree.java          |  72 ++-
 .../persistence/tree/io/AbstractDataPageIO.java    |  30 +-
 .../cache/persistence/tree/io/BPlusIO.java         |  56 +++
 .../cache/persistence/tree/io/BPlusInnerIO.java    |   8 +
 .../cache/persistence/tree/io/BPlusLeafIO.java     |   1 +
 .../cache/persistence/tree/io/BPlusMetaIO.java     |  12 +
 .../cache/persistence/tree/io/DataPageIO.java      |  18 +-
 .../cache/persistence/tree/io/PageIO.java          |  18 +
 .../cache/persistence/tree/io/PageMetaIO.java      |  16 +
 .../cache/persistence/tree/io/PageMetaIOV2.java    |   6 +
 .../tree/io/PagePartitionCountersIO.java           |   6 +
 .../persistence/tree/io/PagePartitionMetaIO.java   |  10 +
 .../persistence/tree/io/PagePartitionMetaIOV2.java |   6 +
 .../persistence/tree/io/PagePartitionMetaIOV3.java |   4 +
 .../persistence/tree/io/SimpleDataPageIO.java      |   4 +
 .../cache/persistence/tree/io/TrackingPageIO.java  |  14 +-
 .../wal/AbstractWalRecordsIterator.java            |   8 +-
 .../wal/filehandle/FileWriteHandleImpl.java        |  13 +
 .../wal/reader/StandaloneWalRecordsIterator.java   |   8 +-
 .../wal/serializer/RecordDataV1Serializer.java     |  45 +-
 .../wal/serializer/RecordDataV2Serializer.java     |  34 +-
 .../processors/cache/query/GridCacheSqlQuery.java  |  18 +-
 .../cache/query/reducer/IndexQueryReducer.java     |  25 +-
 .../processors/cache/tree/AbstractDataInnerIO.java |   5 +
 .../processors/cache/tree/AbstractDataLeafIO.java  |   5 +
 .../cache/tree/AbstractPendingEntryInnerIO.java    |   3 +
 .../cache/tree/AbstractPendingEntryLeafIO.java     |   3 +
 .../tree/mvcc/data/MvccCacheIdAwareDataLeafIO.java |   4 +
 .../cache/tree/mvcc/data/MvccDataInnerIO.java      |   2 +
 .../cache/tree/mvcc/data/MvccDataLeafIO.java       |   6 +
 .../processors/cache/version/GridCacheVersion.java |   3 +-
 .../cache/version/GridCacheVersionEx.java          |   1 +
 .../cache/version/GridCacheVersionManager.java     |   5 +
 .../cluster/GridClusterStateProcessor.java         |   2 +-
 .../datastructures/GridCacheQueueAdapter.java      |   2 +-
 .../processors/job/ComputeJobStatusEnum.java}      |  29 +-
 .../processors/job/GridJobEventListener.java       |  11 +-
 .../internal/processors/job/GridJobProcessor.java  | 161 ++++++-
 .../internal/processors/job/GridJobWorker.java     |  89 +++-
 .../processors/odbc/ClientListenerNioListener.java |   5 +-
 .../processors/platform/PlatformContextImpl.java   |   4 +-
 .../processors/platform/cache/PlatformCache.java   |   6 +
 .../platform/client/ClientBitmaskFeature.java      |   9 +-
 .../platform/client/ClientMessageParser.java       |  16 +-
 .../service/ClientServiceDescriptorResponse.java   |  48 ++
 .../service/ClientServiceDescriptorsResponse.java  |  63 +++
 .../service/ClientServiceGetDescriptorRequest.java |  49 ++
 .../ClientServiceGetDescriptorsRequest.java}       |  30 +-
 .../client/service/ClientServiceInvokeRequest.java |  17 +-
 .../platform/services/PlatformServices.java        |   8 +-
 .../platform/utils/PlatformConfigurationUtils.java |  38 ++
 .../internal/processors/pool/PoolProcessor.java    |  30 ++
 .../processors/query/GridQueryProcessor.java       |  14 +-
 .../processors/query/QueryTypeDescriptorImpl.java  |  17 +-
 .../processors/query/RunningQueryManager.java      |  20 +-
 .../query/property/QueryBinaryProperty.java        |   6 +
 .../resource/GridResourceServiceInjector.java      |   7 +-
 .../processors/service/GridServiceAssignments.java | 132 ------
 .../service/GridServiceAssignmentsKey.java         |  66 ---
 .../processors/service/GridServiceDeployment.java  |  97 ----
 .../service/GridServiceDeploymentKey.java          |  66 ---
 .../processors/service/GridServiceProxy.java       | 127 ++---
 .../processors/service/IgniteServiceProcessor.java | 125 +++--
 .../service/LazyServiceConfiguration.java          |   1 +
 .../service/ServiceCallContextHolder.java          |   7 +-
 .../processors/service/ServiceCallContextImpl.java |  27 +-
 .../processors/service/ServiceContextImpl.java     |  35 +-
 .../processors/service/ServiceDescriptorImpl.java  | 120 -----
 .../session/GridTaskSessionProcessor.java          |  16 +-
 .../processors/task/GridTaskEventListener.java     |  19 +-
 .../processors/task/GridTaskProcessor.java         | 154 +++++-
 .../internal/processors/task/GridTaskWorker.java   |  84 +++-
 .../task/monitor/ComputeGridMonitor.java}          |  24 +-
 .../processors/task/monitor/ComputeTaskStatus.java | 227 +++++++++
 .../task/monitor/ComputeTaskStatusEnum.java}       |  20 +-
 .../task/monitor/ComputeTaskStatusSnapshot.java    |  89 ++++
 .../apache/ignite/internal/util/IgniteUtils.java   |  67 ++-
 .../util/distributed/SingleNodeMessage.java        |   8 +-
 .../ignite/internal/util/gridify/GridifyUtils.java |   3 +-
 .../apache/ignite/internal/util/lang/GridFunc.java | 241 ++++++++++
 .../internal/util/nio/ssl/GridNioSslHandler.java   |   3 +-
 .../internal/util/spring/IgniteSpringHelper.java   |  20 +-
 .../consistency/VisorConsistencyRepairTask.java    |  35 +-
 .../consistency/VisorConsistencyRepairTaskArg.java |  16 +-
 .../visor/node/VisorDataStorageConfiguration.java  |   4 +-
 .../visor/node/VisorMemoryConfiguration.java       |   4 +-
 .../visor/snapshot/VisorSnapshotRestoreTask.java   |   2 +-
 .../visor/systemview/VisorSystemViewTask.java      |   2 +-
 .../ignite/internal/visor/tx/TxVerboseId.java      |   2 +-
 .../org/apache/ignite/mem/MemoryAllocator.java}    |  25 +-
 .../org/apache/ignite/mxbean/SnapshotMXBean.java   |  25 +
 .../org/apache/ignite/platform/PlatformType.java}  |  17 +-
 .../plugin/CacheTopologyValidatorProvider.java     |  42 ++
 .../apache/ignite/services/ServiceCallContext.java |   3 +-
 .../ignite/services/ServiceConfiguration.java      |  36 ++
 .../priorityqueue/PriorityQueueCollisionSpi.java   |  92 ++--
 .../ignite/spi/systemview/view/CacheView.java      |  22 +-
 .../ignite/spi/systemview/view/SnapshotView.java   |  93 ++++
 .../view/SystemViewRowAttributeWalker.java         |   3 +-
 .../startup/cmdline/CdcCommandLineStartup.java     |  23 -
 .../main/resources/META-INF/classnames.properties  |   5 -
 .../org/apache/ignite/cdc/CdcCacheVersionTest.java |  31 ++
 .../java/org/apache/ignite/cdc/CdcSelfTest.java    |  46 +-
 .../org/apache/ignite/client/FunctionalTest.java   |  20 +-
 .../org/apache/ignite/client/ReliabilityTest.java  | 129 +++++
 .../GridMultithreadedJobStealingSelfTest.java      |  76 +--
 .../internal/binary/BinaryArraySelfTest.java       | 274 +++++++++--
 .../binary/BinaryFieldExtractionSelfTest.java      |   3 +-
 .../binary/BinaryFieldsAbstractSelfTest.java       |   6 +-
 .../BinaryFooterOffsetsAbstractSelfTest.java       |   3 +-
 .../internal/binary/BinaryMarshallerSelfTest.java  |  12 +-
 .../BinaryObjectBuilderAdditionalSelfTest.java     | 192 +-------
 .../GridBinaryMarshallerCtxDisabledSelfTest.java   |   3 +-
 .../binary/GridBinaryWildcardsSelfTest.java        |   3 +-
 .../binary/mutabletest/GridBinaryTestClasses.java  |  44 --
 .../ignite/internal/client/thin/ServicesTest.java  | 155 ++++--
 .../direct/DirectMarshallingMessagesTest.java      | 109 +++++
 .../events/LifecycleAwareListenerTest.java         |  80 ++++
 .../ignite/internal/metric/JmxExporterSpiTest.java |   6 +-
 .../ignite/internal/metric/SystemViewSelfTest.java |  59 +++
 .../AuthenticationConfigurationClusterTest.java    |  22 +-
 .../cache/CacheAffinityCallSelfTest.java           |  50 +-
 .../cache/CacheTopologyValidatorProviderTest.java  | 205 ++++++++
 .../processors/cache/GridCacheVersionSelfTest.java |   8 +
 .../cache/IgniteCacheManyAsyncOperationsTest.java  |  35 ++
 .../IgniteTopologyValidatorAbstractCacheTest.java  |  98 +++-
 ...TopologyValidatorAbstractTxCacheGroupsTest.java |   2 +
 ...IgniteTopologyValidatorAbstractTxCacheTest.java |   2 +
 ...teTopologyValidatorCacheGroupsAbstractTest.java |  66 ++-
 .../GridBinaryCacheEntryMemorySizeSelfTest.java    |   3 +-
 .../consistency/AbstractFullSetReadRepairTest.java | 237 ++++++---
 .../cache/consistency/AbstractReadRepairTest.java  | 519 ++++++++++++++------
 .../cache/consistency/AtomicReadRepairTest.java    | 207 --------
 .../AtomicReadRepairTest.java}                     |  13 +-
 .../ExplicitTransactionalReadRepairTest.java       | 105 ++--
 .../ImplicitTransactionalReadRepairTest.java       |  50 +-
 ...licatedExplicitTransactionalReadRepairTest.java |   2 +-
 ...licatedImplicitTransactionalReadRepairTest.java |   2 +-
 ...eBackupExplicitTransactionalReadRepairTest.java |   2 +-
 ...eBackupImplicitTransactionalReadRepairTest.java |   2 +-
 .../PdsAtomicReadRepairTest.java}                  |  10 +-
 .../PdsExplicitTransactionalReadRepairTest.java}   |  10 +-
 .../PdsImplicitTransactionalReadRepairTest.java}   |  10 +-
 .../OutOfMemoryVolatileRegionTest.java             |   8 +-
 .../IgnitePdsCheckpointMapSnapshotTest.java        | 222 +++++++++
 .../persistence/IgnitePdsDestroyCacheTest.java     |  84 ++++
 .../IgnitePdsRecoveryAfterFileCorruptionTest.java  |  42 +-
 .../IgnitePdsSporadicDataRecordsOnBackupTest.java  |  14 +-
 ...CheckpointSimulationWithRealCpDisabledTest.java |   4 +-
 .../persistence/db/wal/IgniteWalRebalanceTest.java | 244 +++++++---
 .../db/wal/reader/IgniteWalReaderTest.java         |  27 +-
 .../IgniteClusterSnapshotRestoreSelfTest.java      |  16 +
 .../snapshot/IgniteSnapshotMXBeanTest.java         | 104 +++-
 .../IgniteSnapshotRestoreFromRemoteTest.java       |  41 ++
 .../persistence/tree/io/TrackingPageIOTest.java    |   2 +
 .../reader/StandaloneWalRecordsIteratorTest.java   | 150 +++++-
 .../TxPartitionCounterStateConsistencyTest.java    |   4 +-
 .../cluster/ClusterReadOnlyModeSelfTest.java       |  20 +-
 .../processors/compute/ComputeGridMonitorTest.java | 381 +++++++++++++++
 .../compute/ComputeJobChangePriorityTest.java      | 259 ++++++++++
 .../processors/compute/ComputeJobStatusTest.java   | 457 ++++++++++++++++++
 .../ComputeTaskWithWithoutFullSupportTest.java     | 142 ++++++
 .../NoopJob.java}                                  |  11 +-
 .../database/BPlusTreeReplaceRemoveRaceTest.java   | 144 ++++--
 .../processors/service/GridServiceMetricsTest.java | 323 +++++++++++++
 .../GridServiceProcessorAbstractSelfTest.java      |  23 +-
 .../service/GridServiceProcessorProxySelfTest.java | 184 ++++---
 .../service/IgniteServiceCallContextTest.java      |  15 +
 .../processors/service/inner/MyService.java        |   7 +
 .../apache/ignite/internal/util/EchoServer.java    | 139 ++++++
 .../ignite/internal/util/IgniteUtilsUnitTest.java  |  72 +++
 .../internal/util/nio/GridNioServerTest.java       |  95 ++++
 .../ignite/platform/PlatformDeployServiceTask.java |  10 +-
 .../platform/PlatformServiceCallThinTask.java      |  10 +-
 .../platform/PlatformSetUseBinaryArrayTask.java    |  71 +++
 .../platform/model/{Role.java => AccessLevel.java} |  20 +-
 .../org/apache/ignite/platform/model/Role.java     |  16 +-
 .../session/GridSessionCheckpointSelfTest.java     |   8 +-
 .../collision/GridTestCollisionTaskSession.java    | 140 +++---
 .../cmdline/CommandLinePrintPropertiesTest.java    |   2 +
 .../apache/ignite/testframework/GridTestUtils.java |  33 ++
 .../testframework/junits/GridAbstractTest.java     |   2 +-
 .../junits/GridTestBinaryMarshaller.java           |   3 +-
 .../testframework/junits/IgniteTestResources.java  |   6 +-
 .../junits/common/GridCommonAbstractTest.java      |  16 +
 .../junits/multijvm/IgniteCacheProcessProxy.java   |   3 +-
 .../IgniteCacheConsistencySelfTestSuite.java       |  55 +++
 .../IgniteCacheDataStructuresSelfTestSuite.java    |  17 -
 .../testsuites/IgniteComputeGridTestSuite.java     |  11 +-
 .../testsuites/IgniteKernalSelfTestSuite.java      |   4 +-
 .../testsuites/IgniteMarshallerSelfTestSuite.java  |   4 +-
 .../ignite/testsuites/IgnitePdsTestSuite4.java     |   2 +
 .../testsuites/IgniteServiceGridTestSuite.java     |   2 +
 .../IgniteTopologyValidatorTestSuite.java          |   2 +
 .../ignite/testsuites/IgniteUtilSelfTestSuite.java |   4 +
 ...mandHandlerClusterByClassTest_cache_help.output |   2 +-
 ...ridCommandHandlerClusterByClassTest_help.output |   2 +-
 ...dlerClusterByClassWithSSLTest_cache_help.output |   2 +-
 ...andHandlerClusterByClassWithSSLTest_help.output |   2 +-
 .../development/utils/IgniteWalConverter.java      |   8 +-
 .../utils/IgniteWalConverterArguments.java         |   2 +-
 .../apache/ignite/development/utils/WalStat.java   |  13 +-
 .../utils/IgniteWalConverterArgumentsTest.java     |  18 +-
 modules/ducktests/pom.xml                          |  26 +
 .../tests/ignitetest/services/utils/ignite_spec.py |   4 +-
 .../tests/control_utility/consistency_test.py      |   2 +-
 .../managers/systemview/SystemViewLocal.java       |   2 +-
 .../cache/query/GridCacheTwoStepQuery.java         |   1 +
 .../cache/query/RegisteredQueryCursor.java         |   6 +-
 .../processors/query/h2/CommandProcessor.java      |   4 +-
 .../query/h2/GridSubqueryJoinOptimizer.java        |   3 +
 .../query/h2/H2QueryFetchSizeInterceptor.java      |   4 +-
 .../internal/processors/query/h2/H2QueryInfo.java  |  45 +-
 .../processors/query/h2/IgniteH2Indexing.java      |  81 +++-
 .../processors/query/h2/MapH2QueryInfo.java        |  18 +-
 .../processors/query/h2/ReduceH2QueryInfo.java     |   7 +-
 .../processors/query/h2/database/H2TreeIndex.java  |   2 +-
 .../internal/processors/query/h2/dml/DmlUtils.java |   2 +-
 .../processors/query/h2/index/H2RowComparator.java |  16 +-
 .../query/h2/sql/GridSqlQuerySplitter.java         |   6 +-
 .../processors/query/h2/sql/SqlAstTraverser.java   |  15 +
 .../query/h2/twostep/GridMapQueryExecutor.java     |  27 +-
 .../query/h2/twostep/GridReduceQueryExecutor.java  | 189 ++++----
 .../query/h2/twostep/msg/GridH2QueryRequest.java   |  40 +-
 .../IndexQueryCacheKeyValueEscapedFieldsTest.java} |  20 +-
 .../query/IndexQueryCacheKeyValueFieldsTest.java   | 168 +++++++
 .../cache/query/IndexQueryInlineSizesTest.java     | 206 ++++++++
 .../ignite/cache/query/IndexQueryTestSuite.java    |   3 +
 ...gniteCacheJoinPartitionedAndReplicatedTest.java | 101 ++++
 .../processors/cache/index/BasicIndexTest.java     |  68 +++
 .../cache/index/BasicSqlTypesIndexTest.java        |  24 +-
 .../cache/index/H2DynamicTableSelfTest.java        |  62 +++
 .../cache/index/PojoIndexLocalQueryTest.java       | 521 ++++++++++++++++++++
 .../cache/metric/SqlViewExporterSpiTest.java       |  26 +
 .../persistence/db/wal/IgniteWalRecoveryTest.java  |   7 +-
 .../IgniteClusterSnapshotRestoreMetricsTest.java   | 253 ++++++++++
 ...niteClusterSnapshotRestoreWithIndexingTest.java |   2 +-
 .../processors/query/SqlSystemViewsSelfTest.java   |  62 +++
 .../h2/GridSubqueryJoinOptimizerSelfTest.java      |  47 ++
 .../internal/systemview/JmxExporterSpiTest.java    |  73 +++
 .../apache/ignite/sqltests/SqlByteArrayTest.java   |  79 +++
 .../ignite/sqltests/SqlDataTypesCoverageTests.java |   5 +-
 .../IgniteBinaryCacheQueryTestSuite.java           |   2 +
 .../IgniteBinaryCacheQueryTestSuite2.java          |   2 +
 .../testsuites/IgnitePdsWithIndexingTestSuite.java |   2 -
 .../IgniteSnapshotWithIndexingTestSuite.java       |   6 +-
 .../testsuites/IgniteStatisticsTestSuite.java      |   4 +-
 .../apache/ignite/logger/log4j2/Log4J2Logger.java  |  26 +-
 modules/mesos/pom.xml                              |   2 +-
 .../ignite/mesos/IgniteSchedulerSelfTest.java      |  16 +
 modules/ml/pom.xml                                 |   2 +-
 modules/ml/spark-model-parser/pom.xml              |   6 +
 modules/numa-allocator/README.md                   | 141 ++++++
 modules/numa-allocator/pom.xml                     | 210 ++++++++
 modules/numa-allocator/src/main/cpp/CMakeLists.txt |  45 ++
 .../src/main/cpp/include/numa/numa_alloc.h         | 110 +++++
 .../org_apache_ignite_internal_mem_NumaAllocUtil.h |  38 ++
 .../src/main/cpp/src/numa/numa_alloc.cpp           | 214 +++++++++
 ...rg_apache_ignite_internal_mem_NumaAllocUtil.cpp | 129 +++++
 .../apache/ignite/internal/mem/NumaAllocUtil.java  | 151 ++++++
 .../mem/InterleavedNumaAllocationStrategy.java     |  78 +++
 .../ignite/mem/LocalNumaAllocationStrategy.java}   |  30 +-
 .../apache/ignite/mem/NumaAllocationStrategy.java} |  16 +-
 .../java/org/apache/ignite/mem/NumaAllocator.java  |  53 +++
 .../ignite/mem/SimpleNumaAllocationStrategy.java   |  77 +++
 .../internal/mem/NumaAllocatorBasicTest.java       | 177 +++++++
 .../ignite/internal/mem/NumaAllocatorUnitTest.java | 121 +++++
 .../ignite/testsuites/NumaAllocatorTestSuite.java} |  14 +-
 modules/platforms/cpp/CMakeLists.txt               |  31 +-
 .../include/ignite/impl/binary/binary_utils.h      |   4 +-
 .../ignite/impl/interop/interop_input_stream.h     |  31 +-
 .../include/ignite/impl/interop/interop_memory.h   |   6 +-
 .../ignite/impl/interop/interop_output_stream.h    |  53 ++-
 .../cpp/binary/src/binary/binary_type.cpp          |   1 +
 .../cpp/binary/src/impl/binary/binary_schema.cpp   |   1 +
 .../cpp/binary/src/impl/binary/binary_utils.cpp    |  21 +-
 .../src/impl/interop/interop_input_stream.cpp      | 155 +++---
 .../cpp/binary/src/impl/interop/interop_memory.cpp |   2 +-
 .../src/impl/interop/interop_output_stream.cpp     | 140 +++---
 modules/platforms/cpp/common/CMakeLists.txt        |   1 +
 .../cpp/common/include/ignite/common/bits.h        |  22 +-
 .../cpp/common/include/ignite/common/concurrent.h  |   3 +-
 .../include/ignite/common/factory.h}               |  38 +-
 .../common/include/ignite/common/platform_utils.h  |   7 +
 .../cpp/common/include/ignite/common/promise.h     |  92 ++++
 .../common/include/ignite/common/shared_state.h    | 174 +++++++
 .../cpp/common/include/ignite/common/thread_pool.h | 214 +++++++++
 .../cpp/common/include/ignite/common/utils.h       | 104 +++-
 .../platforms/cpp/common/include/ignite/future.h   | 125 +++++
 .../common/os/linux/include/ignite/common/common.h |  12 +
 .../os/linux/include/ignite/common/concurrent_os.h |  52 ++
 .../common/os/linux/src/common/concurrent_os.cpp   |  42 ++
 .../common/os/linux/src/common/platform_utils.cpp  |  22 +-
 .../common/os/win/include/ignite/common/common.h   |   3 +
 .../os/win/include/ignite/common/concurrent_os.h   |  52 ++
 .../cpp/common/os/win/src/common/concurrent_os.cpp |  41 ++
 .../common/os/win/src/common/platform_utils.cpp    |  23 +-
 .../cpp/common/src/common/big_integer.cpp          |   2 +-
 modules/platforms/cpp/common/src/common/bits.cpp   |  74 +--
 .../cpp/common/src/common/thread_pool.cpp          | 216 +++++++++
 modules/platforms/cpp/common/src/common/utils.cpp  |  62 ++-
 modules/platforms/cpp/common/src/guid.cpp          |  15 +-
 modules/platforms/cpp/core-test/CMakeLists.txt     |  12 +-
 .../cpp/core-test/config/cache-query-schema-32.xml |  52 ++
 .../config/cache-query-schema-default.xml          |  60 +++
 .../cpp/core-test/config/cache-query-schema.xml    |  34 ++
 .../cpp/core-test/src/cache_query_schema_test.cpp  | 312 ++++++++++++
 .../cpp/core-test/src/continuous_query_test.cpp    |  36 +-
 .../include/ignite/cache/event/cache_entry_event.h |  67 ++-
 .../cache/query/continuous/continuous_query_impl.h |   6 +-
 modules/platforms/cpp/examples/CMakeLists.txt      |   6 +
 modules/platforms/cpp/network/CMakeLists.txt       |  32 +-
 .../include/ignite/network/async_client_pool.h     |  81 ++++
 .../network/include/ignite/network/async_handler.h |  87 ++++
 .../cpp/network/include/ignite/network/codec.h     |  79 +++
 .../include/ignite/network/codec_data_filter.h     | 112 +++++
 .../network/include/ignite/network/data_buffer.h   | 139 ++++++
 .../network/include/ignite/network/data_filter.h   | 105 ++++
 .../include/ignite/network/data_filter_adapter.h   | 147 ++++++
 .../cpp/network/include/ignite/network/data_sink.h |  65 +++
 .../cpp/network/include/ignite/network/end_point.h |  15 +
 .../include/ignite/network/length_prefix_codec.h   | 115 +++++
 .../cpp/network/include/ignite/network/network.h   |  30 +-
 .../network/include/ignite/network/socket_client.h |  16 +-
 .../{utils.h => ssl/secure_configuration.h}        |  27 +-
 .../ignite/network/ssl/secure_data_filter.h        | 245 ++++++++++
 .../cpp/network/include/ignite/network/tcp_range.h |  34 +-
 .../cpp/network/include/ignite/network/utils.h     |  11 +
 .../os/linux/src/network/connecting_context.cpp    | 110 +++++
 .../os/linux/src/network/connecting_context.h      |  96 ++++
 .../os/linux/src/network/linux_async_client.cpp    | 198 ++++++++
 .../os/linux/src/network/linux_async_client.h      | 249 ++++++++++
 .../linux/src/network/linux_async_client_pool.cpp  | 212 +++++++++
 .../os/linux/src/network/linux_async_client_pool.h | 205 ++++++++
 .../src/network/linux_async_worker_thread.cpp      | 348 ++++++++++++++
 .../linux/src/network/linux_async_worker_thread.h  | 163 +++++++
 .../cpp/network/os/linux/src/network/sockets.cpp   |  68 ++-
 .../cpp/network/os/linux/src/network/sockets.h     |  21 +-
 .../os/linux/src/network/tcp_socket_client.cpp     |  48 +-
 .../cpp/network/os/win/src/network/sockets.cpp     |  98 +++-
 .../cpp/network/os/win/src/network/sockets.h       |  26 +
 .../os/win/src/network/tcp_socket_client.cpp       |  91 +---
 .../cpp/network/os/win/src/network/utils.cpp       |   1 +
 .../os/win/src/network/win_async_client.cpp        | 185 ++++++++
 .../network/os/win/src/network/win_async_client.h  | 279 +++++++++++
 .../os/win/src/network/win_async_client_pool.cpp   | 239 ++++++++++
 .../os/win/src/network/win_async_client_pool.h     | 211 ++++++++
 .../src/network/win_async_connecting_thread.cpp    | 252 ++++++++++
 .../win/src/network/win_async_connecting_thread.h  | 127 +++++
 .../os/win/src/network/win_async_worker_thread.cpp | 145 ++++++
 .../os/win/src/network/win_async_worker_thread.h   |  76 +++
 .../src/network/async_client_pool_adapter.cpp      |  75 +++
 .../src/network/async_client_pool_adapter.h        | 111 +++++
 .../cpp/network/src/network/codec_data_filter.cpp  | 108 +++++
 .../cpp/network/src/network/data_buffer.cpp        | 126 +++++
 .../network/src/network/error_handling_filter.cpp  |  86 ++++
 .../network/src/network/error_handling_filter.h    |  83 ++++
 .../network/src/network/length_prefix_codec.cpp    |  94 ++++
 .../platforms/cpp/network/src/network/network.cpp  |  35 +-
 .../network/src/network/ssl/secure_data_filter.cpp | 296 ++++++++++++
 .../src/network/ssl/secure_socket_client.cpp       | 180 ++-----
 .../network/src/network/ssl/secure_socket_client.h |  54 +--
 .../cpp/network/src/network/ssl/secure_utils.cpp   | 206 ++++++++
 .../cpp/network/src/network/ssl/secure_utils.h     |  92 ++++
 .../cpp/network/src/network/ssl/ssl_gateway.cpp    | 299 +++++++++---
 .../cpp/network/src/network/ssl/ssl_gateway.h      |  69 ++-
 .../cpp/network/src/network/tcp_socket_client.h    |  11 -
 modules/platforms/cpp/odbc-test/CMakeLists.txt     |  13 +-
 .../cpp/odbc-test/config/queries-schema-32.xml     |  39 +-
 .../odbc-test/config/queries-schema-default.xml    |  68 +++
 .../cpp/odbc-test/config/queries-schema.xml        |  31 +-
 .../cpp/odbc-test/src/sql_schema_test.cpp          | 337 +++++++++++++
 .../platforms/cpp/odbc-test/src/sql_types_test.cpp |   4 +-
 .../platforms/cpp/odbc-test/src/streaming_test.cpp | 116 ++---
 .../cpp/odbc/include/ignite/odbc/connection.h      |   2 +-
 .../include/ignite/odbc/query/internal_query.h     |  10 -
 .../cpp/odbc/include/ignite/odbc/query/query.h     |   7 +-
 .../include/ignite/odbc/query/streaming_query.h    |   7 -
 .../cpp/odbc/include/ignite/odbc/utility.h         |   8 -
 .../cpp/odbc/src/app/application_data_buffer.cpp   |  28 +-
 modules/platforms/cpp/odbc/src/connection.cpp      |  16 +-
 .../cpp/odbc/src/query/streaming_query.cpp         |   5 -
 modules/platforms/cpp/odbc/src/utility.cpp         |  15 -
 .../platforms/cpp/thin-client-test/CMakeLists.txt  |  12 +-
 .../config/cache-query-continuous-32.xml           |  35 +-
 .../config/cache-query-continuous-default.xml      |  98 ++++
 .../config/cache-query-continuous.xml              |  27 +-
 .../config/ssl-no-client-auth-32.xml               |  33 +-
 .../config/ssl-no-client-auth-default.xml          |  84 ++++
 .../thin-client-test/config/ssl-no-client-auth.xml |  24 +-
 .../cpp/thin-client-test/src/cache_client_test.cpp |  40 +-
 .../thin-client-test/src/continuous_query_test.cpp | 528 +++++++++++++++++++++
 .../thin-client-test/src/ignite_client_test.cpp    |  56 ++-
 .../thin-client-test/src/sql_fields_query_test.cpp |   1 +
 .../cpp/thin-client-test/src/ssl_test.cpp          | 208 +++++++-
 .../cpp/thin-client-test/src/test_utils.cpp        |   2 +-
 modules/platforms/cpp/thin-client/CMakeLists.txt   |   1 +
 .../ignite/impl/thin/cache/cache_client_proxy.h    |  11 +
 .../continuous/continuous_query_client_holder.h    | 182 +++++++
 .../thin/cache/query/query_fields_cursor_impl.h    | 147 ------
 .../impl/thin/cache/query/query_fields_row_impl.h  | 197 --------
 .../include/ignite/impl/thin/writable_key.h        |   1 +
 .../include/ignite/thin/cache/cache_client.h       |  21 +-
 .../include/ignite/thin/cache/cache_entry.h        | 168 +++++++
 .../ignite/thin/cache/event/cache_entry_event.h    | 221 +++++++++
 .../thin/cache/event/cache_entry_event_listener.h  |  82 ++++
 .../query/continuous/continuous_query_client.h     | 232 +++++++++
 .../query/continuous/continuous_query_handle.h     |  78 +++
 .../ignite/thin/ignite_client_configuration.h      |  39 +-
 .../src/impl/cache/cache_client_impl.cpp           |  68 ++-
 .../thin-client/src/impl/cache/cache_client_impl.h |  18 +-
 .../src/impl/cache/cache_client_proxy.cpp          |  15 +-
 .../continuous/continuous_query_handle_impl.h      |  90 ++++
 .../continuous_query_notification_handler.cpp      |  63 +++
 .../continuous_query_notification_handler.h        |  96 ++++
 .../thin-client/src/impl/cache/query/cursor_page.h |   5 +-
 .../thin-client/src/impl/channel_state_handler.h   |  68 +++
 .../src/impl/compute/compute_client_impl.cpp       |  86 +++-
 .../cpp/thin-client/src/impl/data_channel.cpp      | 414 ++++++++--------
 .../cpp/thin-client/src/impl/data_channel.h        | 327 +++++--------
 .../cpp/thin-client/src/impl/data_router.cpp       | 386 ++++++++++-----
 .../cpp/thin-client/src/impl/data_router.h         | 288 +++++------
 .../thin-client/src/impl/ignite_client_impl.cpp    |   6 +-
 .../platforms/cpp/thin-client/src/impl/message.cpp | 105 ++--
 .../platforms/cpp/thin-client/src/impl/message.h   | 445 ++++++++++++++---
 .../thin-client/src/impl/notification_handler.h    | 284 +++++++++++
 .../src/impl/transactions/transaction_impl.cpp     |   2 +-
 .../src/impl/transactions/transaction_impl.h       |   2 +-
 .../platforms/cpp/thin-client/src/impl/utility.cpp |   1 +
 .../Apache.Ignite.Core.Tests/Binary/EnumsTest.cs   | 144 ++++++
 .../Platform/PlatformCacheWithPersistenceTest.cs   | 239 ++++++++++
 .../Cache/Query/CacheDmlQueriesTestSchema.cs       | 255 ++++++++++
 .../Client/ClientConnectionTest.cs                 | 211 ++++++++
 .../Client/ClientTestBase.cs                       |  10 +-
 .../ClientProtocolCompatibilityTest.cs             |   2 +-
 .../Client/Compute/ComputeClientTests.cs           |   2 +-
 .../Client/IgniteClientConfigurationTest.cs        |   2 -
 .../Client/Services/ITestService.cs                |   6 +
 .../Client/Services/ServicesClientTest.cs          | 122 ++++-
 .../Client/Services/TestService.cs                 |  24 +-
 .../Client/TestRetryPolicy.cs                      |  57 +++
 .../Compute/ComputeApiTest.cs                      |   9 -
 .../Compute/IgniteExceptionTaskSelfTest.cs         |  48 +-
 .../Config/full-config.xml                         |   4 +-
 .../IgniteConfigurationSerializerTest.cs           |  13 +-
 .../IgniteConfigurationTest.cs                     |  20 +-
 .../Apache.Ignite.Core.Tests/IgnitionStartTest.cs  |   3 +-
 .../PlatformComputeBinarizable.cs}                 |  19 +-
 .../Services/CallPlatformServiceTest.cs            |  32 +-
 .../Services/IJavaService.cs                       |   9 +-
 .../Services/JavaServiceDynamicProxy.cs            |  12 +-
 .../Apache.Ignite.Core.Tests/Services/Model.cs     |  13 +-
 .../Services/PlatformTestService.cs                |  24 +-
 .../Services/ServiceProxyTest.cs                   |   2 +-
 .../Services/ServicesTest.cs                       | 265 +++++++----
 .../Services/ServicesTestAsync.cs                  |  22 +
 .../Services/ServicesTestFullFooter.cs             |  22 +
 .../Services/ServicesTypeAutoResolveTest.cs        | 205 +++++---
 .../dotnet/Apache.Ignite.Core.Tests/TestUtils.cs   |  34 +-
 .../Client/ClientOperationType.cs                  | 219 +++++++++
 .../ClientRetryAllPolicy.cs}                       |  22 +-
 .../Client/ClientRetryReadPolicy.cs                |  55 +++
 .../IClientRetryPolicy.cs}                         |  23 +-
 .../IClientRetryPolicyContext.cs}                  |  28 +-
 .../Client/IgniteClientConfiguration.cs            |  22 +
 .../Client/Services/IClientServiceDescriptor.cs    |  71 +++
 .../Client/Services/IServicesClient.cs             |  30 ++
 .../Configuration/DataStorageConfiguration.cs      |  66 ++-
 .../Configuration/SystemDataRegionConfiguration.cs |  84 ++++
 .../IgniteClientConfigurationSection.xsd           |  17 +
 .../IgniteConfigurationSection.xsd                 |  21 +-
 .../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs     |   8 +-
 .../Apache.Ignite.Core/Impl/Cache/CacheOp.cs       |   3 +-
 .../Impl/Cache/Platform/PlatformCache.cs           |  15 +-
 .../Impl/Client/ClientBitmaskFeature.cs            |   3 +-
 .../Impl/Client/ClientFailoverSocket.cs            | 172 ++++++-
 .../Apache.Ignite.Core/Impl/Client/ClientOp.cs     |   2 +
 .../Impl/Client/ClientOpExtensions.cs              | 158 ++++++
 .../Impl/Client/ClientRetryPolicyContext.cs        |  59 +++
 .../Client/Services/ClientServiceDescriptor.cs     |  68 +++
 .../Impl/Client/Services/ServicesClient.cs         |  65 ++-
 .../Apache.Ignite.Core/Impl/Common/TypeCaster.cs   |  38 +-
 .../Impl/Services/ServiceDescriptor.cs             |   4 +-
 .../Impl/Services/ServiceProxyInvoker.cs           |  25 +-
 .../Impl/Services/ServiceProxySerializer.cs        |  33 +-
 .../Apache.Ignite.Core/Impl/Services/Services.cs   |  28 +-
 .../{Impl/Common => Platform}/PlatformType.cs      |   8 +-
 modules/rest-http/README.txt                       |   3 +
 modules/rest-http/pom.xml                          |   7 +-
 .../util/spring/IgniteSpringHelperImpl.java        |  47 +-
 .../resource/GridServiceInjectionSelfTest.java     |   6 -
 modules/zookeeper/pom.xml                          |  59 +--
 .../ipfinder/zk/TcpDiscoveryZookeeperIpFinder.java | 398 ----------------
 .../discovery/tcp/ipfinder/zk/package-info.java    |  22 -
 .../tcp/ipfinder/zk/ZookeeperIpFinderTest.java     | 409 ----------------
 packaging/deb/changelog                            |   6 +
 packaging/rpm/apache-ignite.spec                   |   5 +-
 parent/pom.xml                                     |  10 +-
 pom.xml                                            |   8 +
 677 files changed, 32037 insertions(+), 7659 deletions(-)

diff --cc modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/QueryRegistryImpl.java
index e11676b,0000000..82e93e5
mode 100644,000000..100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/QueryRegistryImpl.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/QueryRegistryImpl.java
@@@ -1,104 -1,0 +1,104 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +
 +package org.apache.ignite.internal.processors.query.calcite;
 +
 +import java.util.Collection;
 +import java.util.UUID;
 +import java.util.concurrent.ConcurrentHashMap;
 +import java.util.concurrent.ConcurrentMap;
 +import java.util.stream.Collectors;
 +import org.apache.calcite.util.Pair;
 +import org.apache.ignite.cache.query.QueryCancelledException;
 +import org.apache.ignite.internal.GridKernalContext;
 +import org.apache.ignite.internal.processors.cache.query.GridCacheQueryType;
 +import org.apache.ignite.internal.processors.query.GridQueryCancel;
 +import org.apache.ignite.internal.processors.query.RunningQuery;
 +import org.apache.ignite.internal.processors.query.RunningQueryManager;
 +import org.apache.ignite.internal.processors.query.calcite.util.AbstractService;
 +import org.apache.ignite.internal.util.IgniteUtils;
 +
 +/**
 + * Registry of the running queries.
 + */
 +public class QueryRegistryImpl extends AbstractService implements QueryRegistry {
 +    /** */
 +    private final ConcurrentMap<UUID, Pair<Long, RunningQuery>> runningQrys = new ConcurrentHashMap<>();
 +
 +    /** */
 +    protected final GridKernalContext kctx;
 +
 +    /** */
 +    public QueryRegistryImpl(GridKernalContext ctx) {
 +        super(ctx);
 +
 +        kctx = ctx;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public RunningQuery register(RunningQuery qry) {
 +        return runningQrys.computeIfAbsent(qry.id(), k -> {
 +            if (!(qry instanceof RootQuery))
-                 return Pair.of(null, qry);
++                return Pair.of(RunningQueryManager.UNDEFINED_QUERY_ID, qry);
 +
 +            RootQuery<?> rootQry = (RootQuery<?>)qry;
 +
 +            RunningQueryManager qryMgr = kctx.query().runningQueryManager();
 +
-             Long locId = qryMgr.register(rootQry.sql(), GridCacheQueryType.SQL_FIELDS, rootQry.context().schemaName(),
++            long locId = qryMgr.register(rootQry.sql(), GridCacheQueryType.SQL_FIELDS, rootQry.context().schemaName(),
 +                false, createCancelToken(qry), kctx.localNodeId().toString());
 +
 +            return Pair.of(locId, qry);
 +        }).right;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public RunningQuery query(UUID id) {
 +        Pair<Long, RunningQuery> value = runningQrys.get(id);
 +        return value != null ? value.right : null;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public void unregister(UUID id) {
 +        Pair<Long, RunningQuery> value = runningQrys.remove(id);
 +        if (value != null)
 +            kctx.query().runningQueryManager().unregister(value.left, null);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public Collection<? extends RunningQuery> runningQueries() {
 +        return runningQrys.values().stream().map(Pair::getValue).collect(Collectors.toList());
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public void tearDown() {
 +        runningQrys.values().forEach(q -> IgniteUtils.close(q.right::cancel, log));
 +        runningQrys.clear();
 +    }
 +
 +    /** */
 +    private static GridQueryCancel createCancelToken(RunningQuery qry) {
 +        GridQueryCancel token = new GridQueryCancel();
 +        try {
 +            token.add(qry::cancel);
 +        }
 +        catch (QueryCancelledException ignore) {
 +            // Ignore, since it is impossible;
 +        }
 +        return token;
 +    }
 +}
diff --cc modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/IndexScan.java
index 419ff7b,0000000..012070c
mode 100644,000000..100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/IndexScan.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/IndexScan.java
@@@ -1,318 -1,0 +1,318 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.ignite.internal.processors.query.calcite.exec;
 +
 +import java.lang.reflect.Type;
 +import java.util.ArrayList;
 +import java.util.Collections;
 +import java.util.Iterator;
 +import java.util.List;
 +import java.util.function.Function;
 +import java.util.function.Predicate;
 +import java.util.function.Supplier;
 +import org.apache.calcite.rel.type.RelDataType;
 +import org.apache.calcite.util.ImmutableBitSet;
 +import org.apache.calcite.util.ImmutableIntList;
 +import org.apache.ignite.IgniteCheckedException;
 +import org.apache.ignite.IgniteException;
 +import org.apache.ignite.cluster.ClusterTopologyException;
 +import org.apache.ignite.internal.GridKernalContext;
 +import org.apache.ignite.internal.cache.query.index.sorted.IndexRow;
 +import org.apache.ignite.internal.cache.query.index.sorted.IndexSearchRowImpl;
 +import org.apache.ignite.internal.cache.query.index.sorted.InlineIndexRowHandler;
 +import org.apache.ignite.internal.cache.query.index.sorted.inline.IndexQueryContext;
 +import org.apache.ignite.internal.cache.query.index.sorted.inline.InlineIndex;
 +import org.apache.ignite.internal.cache.query.index.sorted.keys.IndexKey;
 +import org.apache.ignite.internal.cache.query.index.sorted.keys.IndexKeyFactory;
 +import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 +import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 +import org.apache.ignite.internal.processors.cache.GridCacheContext;
 +import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTopologyFuture;
 +import org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
 +import org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
 +import org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
 +import org.apache.ignite.internal.processors.cache.mvcc.MvccSnapshot;
 +import org.apache.ignite.internal.processors.query.calcite.exec.RowHandler.RowFactory;
 +import org.apache.ignite.internal.processors.query.calcite.schema.CacheTableDescriptor;
 +import org.apache.ignite.internal.processors.query.calcite.type.IgniteTypeFactory;
 +import org.apache.ignite.internal.processors.query.calcite.util.TypeUtils;
 +import org.apache.ignite.internal.util.lang.GridCursor;
 +import org.apache.ignite.spi.indexing.IndexingQueryFilter;
 +import org.apache.ignite.spi.indexing.IndexingQueryFilterImpl;
 +import org.jetbrains.annotations.Nullable;
 +
 +/**
 + * Scan on index.
 + */
 +public class IndexScan<Row> extends AbstractIndexScan<Row, IndexRow> {
 +    /** */
 +    private final GridKernalContext kctx;
 +
 +    /** */
 +    private final GridCacheContext<?, ?> cctx;
 +
 +    /** */
 +    private final CacheObjectContext coCtx;
 +
 +    /** */
 +    private final CacheTableDescriptor desc;
 +
 +    /** */
 +    private final RowFactory<Row> factory;
 +
 +    /** */
 +    private final AffinityTopologyVersion topVer;
 +
 +    /** */
 +    private final int[] parts;
 +
 +    /** */
 +    private final MvccSnapshot mvccSnapshot;
 +
 +    /** */
 +    private volatile List<GridDhtLocalPartition> reserved;
 +
 +    /** */
 +    private final ImmutableBitSet requiredColumns;
 +
 +    /** */
 +    private final InlineIndex idx;
 +
 +    /** Mapping from index keys to row fields. */
 +    private final ImmutableIntList idxFieldMapping;
 +
 +    /** Types of key fields stored in index. */
 +    private final Type[] fieldsStoreTypes;
 +
 +    /**
 +     * @param ectx Execution context.
 +     * @param desc Table descriptor.
 +     * @param idxFieldMapping Mapping from index keys to row fields.
 +     * @param idx Phisycal index.
 +     * @param filters Additional filters.
 +     * @param lowerBound Lower index scan bound.
 +     * @param upperBound Upper index scan bound.
 +     */
 +    public IndexScan(
 +        ExecutionContext<Row> ectx,
 +        CacheTableDescriptor desc,
 +        InlineIndex idx,
 +        ImmutableIntList idxFieldMapping,
 +        int[] parts,
 +        Predicate<Row> filters,
 +        Supplier<Row> lowerBound,
 +        Supplier<Row> upperBound,
 +        Function<Row, Row> rowTransformer,
 +        @Nullable ImmutableBitSet requiredColumns
 +    ) {
 +        super(
 +            ectx,
 +            desc.rowType(ectx.getTypeFactory(), requiredColumns),
 +            new TreeIndexWrapper(idx),
 +            filters,
 +            lowerBound,
 +            upperBound,
 +            rowTransformer
 +        );
 +
 +        this.desc = desc;
 +        this.idx = idx;
 +        cctx = desc.cacheContext();
 +        kctx = cctx.kernalContext();
 +        coCtx = cctx.cacheObjectContext();
 +
 +        factory = ectx.rowHandler().factory(ectx.getTypeFactory(), rowType);
 +        topVer = ectx.topologyVersion();
 +        this.parts = parts;
 +        mvccSnapshot = ectx.mvccSnapshot();
 +        this.requiredColumns = requiredColumns;
 +        this.idxFieldMapping = idxFieldMapping;
 +
 +        RelDataType srcRowType = desc.rowType(ectx.getTypeFactory(), null);
 +        IgniteTypeFactory typeFactory = ectx.getTypeFactory();
 +        fieldsStoreTypes = new Type[srcRowType.getFieldCount()];
 +
 +        for (int i = 0; i < srcRowType.getFieldCount(); i++)
 +            fieldsStoreTypes[i] = typeFactory.getResultClass(srcRowType.getFieldList().get(i).getType());
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public synchronized Iterator<Row> iterator() {
 +        reserve();
 +
 +        try {
 +            return super.iterator();
 +        }
 +        catch (Exception e) {
 +            release();
 +
 +            throw e;
 +        }
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override protected IndexRow row2indexRow(Row bound) {
 +        if (bound == null)
 +            return null;
 +
 +        InlineIndexRowHandler idxRowHnd = idx.segment(0).rowHandler();
 +        RowHandler<Row> rowHnd = ectx.rowHandler();
 +
 +        IndexKey[] keys = new IndexKey[idxRowHnd.indexKeyDefinitions().size()];
 +
 +        assert keys.length >= idxFieldMapping.size() : "Unexpected index keys [keys.length=" + keys.length +
 +            ", idxFieldMapping.size()=" + idxFieldMapping.size() + ']';
 +
 +        boolean nullSearchRow = true;
 +
 +        for (int i = 0; i < idxFieldMapping.size(); ++i) {
 +            int fieldIdx = idxFieldMapping.getInt(i);
 +            Object key = rowHnd.get(fieldIdx, bound);
 +
 +            if (key != ectx.unspecifiedValue()) {
 +                key = TypeUtils.fromInternal(ectx, key, fieldsStoreTypes[fieldIdx]);
 +
 +                keys[i] = IndexKeyFactory.wrap(key, idxRowHnd.indexKeyDefinitions().get(i).idxType(),
 +                    cctx.cacheObjectContext(), idxRowHnd.indexKeyTypeSettings());
 +
 +                nullSearchRow = false;
 +            }
 +        }
 +
 +        return nullSearchRow ? null : new IndexSearchRowImpl(keys, idxRowHnd);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override protected Row indexRow2Row(IndexRow row) throws IgniteCheckedException {
 +        return desc.toRow(ectx, row.cacheDataRow(), factory, requiredColumns);
 +    }
 +
 +    /** */
 +    @Override public void close() {
 +        release();
 +    }
 +
 +    /** */
 +    private synchronized void reserve() {
 +        if (reserved != null)
 +            return;
 +
 +        GridDhtPartitionTopology top = cctx.topology();
 +        top.readLock();
 +
 +        GridDhtTopologyFuture topFut = top.topologyVersionFuture();
 +
 +        boolean done = topFut.isDone();
 +
 +        if (!done || !(topFut.topologyVersion().compareTo(topVer) >= 0
 +            && cctx.shared().exchange().lastAffinityChangedTopologyVersion(topFut.initialVersion()).compareTo(topVer) <= 0)) {
 +            top.readUnlock();
 +
 +            throw new ClusterTopologyException("Topology was changed. Please retry on stable topology.");
 +        }
 +
 +        List<GridDhtLocalPartition> toReserve;
 +
 +        if (cctx.isReplicated()) {
 +            int partsCnt = cctx.affinity().partitions();
 +            toReserve = new ArrayList<>(partsCnt);
 +            for (int i = 0; i < partsCnt; i++)
 +                toReserve.add(top.localPartition(i));
 +        }
 +        else if (cctx.isPartitioned()) {
 +            assert parts != null;
 +
 +            toReserve = new ArrayList<>(parts.length);
 +            for (int i = 0; i < parts.length; i++)
 +                toReserve.add(top.localPartition(parts[i]));
 +        }
 +        else {
 +            assert cctx.isLocal();
 +
 +            toReserve = Collections.emptyList();
 +        }
 +
 +        reserved = new ArrayList<>(toReserve.size());
 +
 +        try {
 +            for (GridDhtLocalPartition part : toReserve) {
 +                if (part == null || !part.reserve()) {
 +                    throw new ClusterTopologyException(
 +                        "Failed to reserve partition for query execution. Retry on stable topology."
 +                    );
 +                }
 +                else if (part.state() != GridDhtPartitionState.OWNING) {
 +                    part.release();
 +
 +                    throw new ClusterTopologyException(
 +                        "Failed to reserve partition for query execution. Retry on stable topology."
 +                    );
 +                }
 +
 +                reserved.add(part);
 +            }
 +        }
 +        catch (Exception e) {
 +            release();
 +
 +            throw e;
 +        }
 +        finally {
 +            top.readUnlock();
 +        }
 +    }
 +
 +    /** */
 +    private synchronized void release() {
 +        if (reserved == null)
 +            return;
 +
 +        for (GridDhtLocalPartition part : reserved)
 +            part.release();
 +
 +        reserved = null;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override protected IndexQueryContext indexQueryContext() {
 +        IndexingQueryFilter filter = new IndexingQueryFilterImpl(kctx, topVer, parts);
-         return new IndexQueryContext(filter, mvccSnapshot);
++        return new IndexQueryContext(filter, null, mvccSnapshot);
 +    }
 +
 +    /** */
 +    private static class TreeIndexWrapper implements TreeIndex<IndexRow> {
 +        /** Underlying index. */
 +        private final InlineIndex idx;
 +
 +        /** */
 +        private TreeIndexWrapper(InlineIndex idx) {
 +            this.idx = idx;
 +        }
 +
 +        /** {@inheritDoc} */
 +        @Override public GridCursor<IndexRow> find(IndexRow lower, IndexRow upper, IndexQueryContext qctx) {
 +            try {
 +                int seg = 0; // TODO segments support
 +
 +                return idx.find(lower, upper, true, true, seg, qctx);
 +            }
 +            catch (IgniteCheckedException e) {
 +                throw new IgniteException("Failed to find index rows", e);
 +            }
 +        }
 +    }
 +}
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/query/RunningQueryManager.java
index 4cbcf6f,8308e1d..27c1d63
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/RunningQueryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/RunningQueryManager.java
@@@ -181,44 -139,8 +184,44 @@@ public class RunningQueryManager 
              "on this node. This metric number included in the general 'failed' metric.");
      }
  
 +    /** */
 +    public void start(GridSpinBusyLock busyLock) {
 +        this.busyLock = busyLock;
 +
 +        ctx.io().addMessageListener(GridTopic.TOPIC_QUERY, (nodeId, msg, plc) -> onMessage(nodeId, msg));
 +
 +        ctx.event().addLocalEventListener(new GridLocalEventListener() {
 +            @Override public void onEvent(final Event evt) {
 +                UUID nodeId = ((DiscoveryEvent)evt).eventNode().id();
 +
 +                List<GridFutureAdapter<String>> futs = new ArrayList<>();
 +
 +                lock.writeLock().lock();
 +
 +                try {
 +                    Iterator<CancelQueryFuture> it = cancellationRuns.values().iterator();
 +
 +                    while (it.hasNext()) {
 +                        CancelQueryFuture fut = it.next();
 +
 +                        if (fut.nodeId().equals(nodeId)) {
 +                            futs.add(fut);
 +
 +                            it.remove();
 +                        }
 +                    }
 +                }
 +                finally {
 +                    lock.writeLock().unlock();
 +                }
 +
 +                futs.forEach(f -> f.onDone("Query node has left the grid: [nodeId=" + nodeId + "]"));
 +            }
 +        }, EventType.EVT_NODE_FAILED, EventType.EVT_NODE_LEFT);
 +    }
 +
      /**
-      * Register running query.
+      * Registers running query and returns an id associated with the query.
       *
       * @param qry Query text.
       * @param qryType Query type.
@@@ -378,7 -300,7 +381,7 @@@
       *
       * @param qryId Query id.
       */
-     public void cancelLocalQuery(Long qryId) {
 -    public void cancel(long qryId) {
++    public void cancelLocalQuery(long qryId) {
          GridRunningQueryInfo run = runs.get(qryId);
  
          if (run != null)
diff --cc modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteStatisticsTestSuite.java
index 312c014,d65e55f..17e8d72
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteStatisticsTestSuite.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteStatisticsTestSuite.java
@@@ -100,8 -95,7 +101,9 @@@ import org.junit.runners.Suite
      // Views
      StatisticsViewsPersistenceTest.class,
      StatisticsViewsInMemoryTest.class,
 +    StatisticsGlobalViewPersistenceTest.class,
-     StatisticsGlobalViewInMemoryTest.class
++    StatisticsGlobalViewInMemoryTest.class,
+     JmxExporterSpiTest.class
  })
  public class IgniteStatisticsTestSuite {
  }
diff --cc parent/pom.xml
index 4f90ee8,41183ba..4e7c310
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@@ -78,10 -78,9 +78,9 @@@
          <httpclient.version>4.5.13</httpclient.version>
          <httpcore.version>4.4.14</httpcore.version>
          <jackson.version>2.12.4</jackson.version>
-         <jackson1.version>1.9.13</jackson1.version>
          <jaxb.api.version>2.1</jaxb.api.version>
          <jaxb.impl.version>2.1.14</jaxb.impl.version>
 -        <javassist.version>3.20.0-GA</javassist.version>
 +        <javassist.version>3.28.0-GA</javassist.version>
          <javax.cache.bundle.version>1.0.0_1</javax.cache.bundle.version>
          <javax.cache.tck.version>1.1.0</javax.cache.tck.version>
          <javax.cache.version>1.0.0</javax.cache.version>