You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by tl...@apache.org on 2022/02/09 13:35:54 UTC

[ignite] 01/01: Merge branch '!master' into ignite-11402

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

tledkov pushed a commit to branch ignite-11402-old
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit ad7c86b1e143df9c65ecdc57ddee274a966da691
Merge: c5b5622 f1d90ac
Author: tledkov <tl...@gridgain.com>
AuthorDate: Wed Feb 9 13:51:49 2022 +0300

    Merge branch '!master' into ignite-11402
    
    # Conflicts:
    #	modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/BasicIndexTest.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 +
 .../thread-pools-tuning.adoc                       |   8 +
 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/snapshots/snapshots.adoc                |  15 +-
 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 +
 .../rest/JettyRestProcessorAbstractSelfTest.java   |  51 +-
 .../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  |  19 +
 .../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}       |  15 +-
 .../ignite/client/ClientRetryNonePolicy.java}      |  15 +-
 .../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 +++-
 .../ignite/configuration/IgniteConfiguration.java  |  34 +-
 .../SystemDataRegionConfiguration.java             |  93 +++
 .../events/CacheConsistencyViolationEvent.java     |  38 +-
 .../apache/ignite/internal/GridJobResultImpl.java  |  16 +-
 .../ignite/internal/GridTaskSessionImpl.java       |  81 ++-
 .../org/apache/ignite/internal/IgniteKernal.java   |  13 +-
 .../apache/ignite/internal/IgniteServicesEx.java   |   6 +-
 .../apache/ignite/internal/IgniteServicesImpl.java |  45 +-
 .../org/apache/ignite/internal/IgnitionEx.java     |  12 +-
 .../apache/ignite/internal/binary/BinaryArray.java | 286 +++++++++
 .../internal/binary/BinaryClassDescriptor.java     |  10 +-
 .../ignite/internal/binary/BinaryContext.java      |   4 +-
 .../BinaryEnumArray.java}                          |  44 +-
 .../ignite/internal/binary/BinaryMarshaller.java   |   2 +-
 .../ignite/internal/binary/BinaryObjectImpl.java   |  17 +-
 .../ignite/internal/binary/BinaryReaderExImpl.java |  14 +-
 .../binary/BinarySerializedFieldComparator.java    |  44 +-
 .../apache/ignite/internal/binary/BinaryUtils.java | 105 +++-
 .../ignite/internal/binary/BinaryWriterExImpl.java |  30 +-
 .../binary/builder/BinaryBuilderSerializer.java    |  33 +-
 .../binary/builder/BinaryObjectBuilderImpl.java    |  12 +-
 .../binary/streams/BinaryHeapOutputStream.java     |  24 +
 .../cache/query/index/IndexQueryProcessor.java     | 270 ++++++---
 .../query/index/sorted/IndexKeyDefinition.java     |  12 -
 .../query/index/sorted/IndexRowComparator.java     |   9 +-
 .../query/index/sorted/IndexRowCompartorImpl.java  |  32 +-
 .../query/index/sorted/SortedSegmentedIndex.java   |  24 +-
 .../sorted/defragmentation/DefragIndexFactory.java |   4 +
 .../index/sorted/inline/IndexQueryContext.java     |  33 +-
 .../query/index/sorted/inline/InlineIndexImpl.java |  15 +-
 .../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 +-
 .../internal/client/thin/PayloadOutputChannel.java |  15 +-
 .../client/thin/ProtocolBitmaskFeature.java        |   9 +-
 .../internal/client/thin/ReliableChannel.java      |  57 +-
 .../internal/client/thin/TcpClientChannel.java     |  16 +-
 .../internal/client/thin/io/ClientConnection.java  |   4 +-
 .../io/gridnioserver/GridNioClientConnection.java  |   8 +-
 .../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         |  12 +-
 .../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     |  36 +-
 .../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 ++-
 .../near/GridNearTxQueryEnlistRequest.java         |  13 +-
 .../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       | 186 +++++-
 .../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            |  70 ++-
 .../persistence/snapshot/SnapshotMXBeanImpl.java   |  20 +
 .../snapshot/SnapshotRestoreProcess.java           | 243 ++++----
 .../cache/persistence/tree/BPlusTree.java          | 141 ++++-
 .../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 |  27 +-
 .../platform/compute/PlatformCompute.java          |   3 +-
 .../platform/services/PlatformServices.java        |  20 +-
 .../platform/utils/PlatformConfigurationUtils.java |  38 ++
 .../processors/platform/utils/PlatformUtils.java   |   9 +-
 .../internal/processors/pool/PoolProcessor.java    |  66 +++
 .../processors/query/GridQueryProcessor.java       |  14 +-
 .../processors/query/QueryTypeDescriptorImpl.java  |  31 +-
 .../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 ---
 .../processors/service/GridServiceProxy.java       | 158 +++--
 .../processors/service/IgniteServiceProcessor.java | 128 ++--
 .../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 -
 .../ignite/startup/cmdline/CommandLineStartup.java |   4 +-
 .../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   |  30 +-
 .../org/apache/ignite/client/ReliabilityTest.java  | 129 ++++
 .../GridMultithreadedJobStealingSelfTest.java      |  76 ++-
 .../internal/binary/AbstractBinaryArraysTest.java  |  56 ++
 .../internal/binary/BinaryArraySelfTest.java       | 650 +++++++++++++++++++++
 .../internal/binary/BinaryEnumsSelfTest.java       |  18 +-
 .../binary/BinaryFieldExtractionSelfTest.java      |   3 +-
 .../binary/BinaryFieldsAbstractSelfTest.java       |   6 +-
 .../BinaryFooterOffsetsAbstractSelfTest.java       |   3 +-
 .../internal/binary/BinaryMarshallerSelfTest.java  | 133 ++++-
 .../BinaryObjectBuilderAdditionalSelfTest.java     | 303 ++++------
 .../BinaryObjectBuilderDefaultMappersSelfTest.java |  15 +-
 .../internal/binary/BinaryObjectToStringTest.java  |  12 +-
 .../GridBinaryMarshallerCtxDisabledSelfTest.java   |   3 +-
 .../binary/GridBinaryWildcardsSelfTest.java        |   3 +-
 .../binary/mutabletest/GridBinaryTestClasses.java  |  44 --
 .../client/thin/ServicesBinaryArraysTests.java}    |  20 +-
 .../ignite/internal/client/thin/ServicesTest.java  | 172 +++++-
 .../direct/DirectMarshallingMessagesTest.java      | 109 ++++
 .../events/LifecycleAwareListenerTest.java         |  80 +++
 .../ignite/internal/metric/JmxExporterSpiTest.java |   6 +-
 .../ignite/internal/metric/SystemViewSelfTest.java |  59 ++
 .../AuthenticationConfigurationClusterTest.java    |  22 +-
 .../cache/AbstractDataTypesCoverageTest.java       |  36 +-
 .../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 +-
 ...WaitForBackupsOnShutdownSystemPropertyTest.java |  92 +++
 .../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/IgniteClusterSnapshotSelfTest.java    |   8 +-
 .../snapshot/IgniteSnapshotMXBeanTest.java         | 104 +++-
 .../snapshot/IgniteSnapshotManagerSelfTest.java    |  28 +
 .../IgniteSnapshotRestoreFromRemoteTest.java       |  41 ++
 .../IgniteSnapshotWithMetastorageTest.java         |   3 +-
 .../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 |  34 +-
 .../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 ++---
 .../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 +-
 .../testsuites/IgniteBinaryObjectsTestSuite.java   |   2 +
 .../IgniteCacheConsistencySelfTestSuite.java       |  55 ++
 .../IgniteCacheDataStructuresSelfTestSuite.java    |  17 -
 .../ignite/testsuites/IgniteCacheTestSuite7.java   |   2 +
 .../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       |   3 +-
 .../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 +-
 .../internal/processors/query/h2/H2Utils.java      |   6 +-
 .../processors/query/h2/IgniteH2Indexing.java      |  81 ++-
 .../processors/query/h2/MapH2QueryInfo.java        |  18 +-
 .../processors/query/h2/ReduceH2QueryInfo.java     |   7 +-
 .../processors/query/h2/database/H2TreeIndex.java  |   6 +-
 .../internal/processors/query/h2/dml/DmlUtils.java |   6 +-
 .../processors/query/h2/index/H2RowComparator.java |  16 +-
 .../query/h2/index/client/ClientInlineIndex.java   |  17 +-
 .../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/GridH2DmlRequest.java     |   3 +-
 .../query/h2/twostep/msg/GridH2DmlResponse.java    |   3 +-
 .../query/h2/twostep/msg/GridH2QueryRequest.java   |  43 +-
 .../IndexQueryCacheKeyValueEscapedFieldsTest.java} |  20 +-
 .../query/IndexQueryCacheKeyValueFieldsTest.java   | 168 ++++++
 .../cache/query/IndexQueryInlineSizesTest.java     | 206 +++++++
 .../ignite/cache/query/IndexQueryTestSuite.java    |   3 +
 .../cache/query/MultifieldIndexQueryTest.java      |  10 +
 .../org/apache/ignite/client/ClientTestSuite.java  |   2 +
 .../IgniteCacheAbstractSqlDmlQuerySelfTest.java    |   4 +-
 ...gniteCacheJoinPartitionedAndReplicatedTest.java | 101 ++++
 .../cache/IgniteCacheUpdateSqlQuerySelfTest.java   |   6 +
 .../processors/cache/index/ArrayIndexTest.java     |  67 ++-
 .../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 +-
 .../query/IgniteSqlSplitterSelfTest.java           |   1 -
 .../processors/query/SqlSystemViewsSelfTest.java   |  62 ++
 .../h2/GridSubqueryJoinOptimizerSelfTest.java      |  47 ++
 .../internal/systemview/JmxExporterSpiTest.java    |  73 +++
 .../apache/ignite/sqltests/SqlByteArrayTest.java   |  79 +++
 .../ignite/sqltests/SqlDataTypesCoverageTests.java |  10 +-
 .../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 +-
 .../http/jetty/GridJettyObjectMapper.java          |  15 +
 .../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 +
 714 files changed, 33955 insertions(+), 7768 deletions(-)

diff --cc modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/BasicIndexTest.java
index adf264c,81586bd..9bfac4d
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/BasicIndexTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/BasicIndexTest.java
@@@ -23,18 -23,19 +23,21 @@@ import java.util.Collection
  import java.util.Collections;
  import java.util.HashSet;
  import java.util.LinkedHashMap;
 +import java.util.LinkedHashSet;
  import java.util.List;
  import java.util.Objects;
+ import java.util.UUID;
  import java.util.regex.Pattern;
  import java.util.stream.Collectors;
 -
  import javax.cache.CacheException;
 +
  import org.apache.ignite.IgniteCache;
  import org.apache.ignite.IgniteCheckedException;
+ import org.apache.ignite.binary.BinaryObjectBuilder;
 +import org.apache.ignite.cache.CacheKeyConfiguration;
  import org.apache.ignite.cache.QueryEntity;
  import org.apache.ignite.cache.QueryIndex;
+ import org.apache.ignite.cache.QueryIndexType;
  import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
  import org.apache.ignite.cache.query.FieldsQueryCursor;
  import org.apache.ignite.cache.query.SqlFieldsQuery;
@@@ -1523,104 -1521,73 +1526,169 @@@ public class BasicIndexTest extends Abs
  
          assertNull(GridTestUtils.getFieldValue(tblDesc1, "luceneIdx"));
      }
 -    
 +
+     /**
+      * Checks that part of the composite key assembled in BinaryObjectBuilder can pass the validation correctly
+      * if you specify Object type when creating the index.
+      *
+      * @throws Exception If failed.
+      */
+     @Test
+     public void testCacheSecondaryCompositeIndex() throws Exception {
+         inlineSize = 70;
 -        
++
+         startGrid();
 -        
++
+         String cacheName = "TEST";
+ 
+         List<QueryIndex> indexes = Collections.singletonList(
+             new QueryIndex("val_obj", QueryIndexType.SORTED).setInlineSize(inlineSize)
+         );
+ 
+         grid().createCache(new CacheConfiguration<>()
+             .setName(cacheName)
+             .setSqlSchema(cacheName)
+             .setAffinity(new RendezvousAffinityFunction(false, 4))
+             .setQueryEntities(Collections.singleton(new QueryEntity()
+                 .setTableName(cacheName)
+                 .setKeyType(Integer.class.getName())
+                 .setKeyFieldName("id")
+                 .setValueType("TEST_VAL_SECONDARY_COMPOSITE")
+                 .addQueryField("id", Integer.class.getName(), null)
+                 .addQueryField("val_obj", Object.class.getName(), null)
+                 .setIndexes(indexes)
+             ))
+         );
 -        
++
+         BinaryObjectBuilder bob = grid().binary().builder("TEST_VAL_SECONDARY_COMPOSITE");
+         BinaryObjectBuilder bobInner = grid().binary().builder("inner");
 -        
++
+         bobInner.setField("inner_k", 0);
+         bobInner.setField("inner_uuid", UUID.randomUUID());
 -        
++
+         bob.setField("val_obj", bobInner.build());
 -        
++
+         IgniteCache<Object, Object> cache = grid().cache(cacheName);
+ 
+         cache.put(0, bob.build());
+ 
+         BinaryObjectBuilder alice = grid().binary().builder("TEST_VAL_SECONDARY_COMPOSITE");
+         BinaryObjectBuilder aliceInner = grid().binary().builder("inner2");
+ 
+         aliceInner.setField("inner_k2", 0);
+         aliceInner.setField("inner_uuid2", UUID.randomUUID());
+ 
+         alice.setField("val_obj", aliceInner.build());
+ 
+         cache.put(1, alice.build());
+ 
+         List<List<?>> rows = execSql(cache.withKeepBinary(), "SELECT id, val_obj FROM " + cacheName);
+ 
+         assertEquals(2, rows.size());
+ 
+         for (List<?> row : rows) {
+             assertNotNull(row.get(0));
+             assertNotNull("id = " + row.get(0), row.get(1));
+         }
+     }
+ 
      /** */
 +    @Test
 +    public void testCreateSystemIndexWithSpecifiedInlineSizeByApi() throws Exception {
 +        inlineSize = 10;
 +
 +        final int pkInlineSize = 22;
 +        final int affInlineSize = 23;
 +
 +        IgniteEx ign = startGrid();
 +
 +        ign.createCache(
 +            new CacheConfiguration<>()
 +                    .setName("test")
 +                    .setQueryEntities(Collections.singleton(
 +                            new QueryEntityEx(
 +                                    new QueryEntity()
 +                                            .setKeyType("TestKeyType")
 +                                            .setValueType("TestValType")
 +                                            .addQueryField("ID", String.class.getName(), null)
 +                                            .addQueryField("ID_AFF", Integer.class.getName(), null)
 +                                            .addQueryField("VAL", Integer.class.getName(), null)
 +                                            .setKeyFields(new LinkedHashSet<>(Arrays.asList("ID", "ID_AFF")))
 +                                            .setTableName("TEST")
 +                            )
 +                                    .setPrimaryKeyInlineSize(pkInlineSize)
 +                                    .setAffinityKeyInlineSize(affInlineSize)
 +                    ))
 +                    .setSqlSchema("PUBLIC")
 +                    .setKeyConfiguration(new CacheKeyConfiguration("TestKeyType", "ID_AFF"))
 +        );
 +
 +        GridH2Table tbl = ((IgniteH2Indexing)ign.context().query().getIndexing()).schemaManager().dataTable("PUBLIC", "TEST");
 +
 +        assertEquals(pkInlineSize, ((H2TreeIndex)tbl.getIndex("_key_PK")).inlineSize());
 +        assertEquals(affInlineSize, ((H2TreeIndex)tbl.getIndex("AFFINITY_KEY")).inlineSize());
 +    }
 +
 +    /** */
 +    @Test
 +    public void testCreateSystemIndexWithSpecifiedInlineSizeByDdl() throws Exception {
 +        inlineSize = 10;
 +
 +        final int pkInlineSize = 22;
 +        final int affInlineSize = 23;
 +
 +        IgniteEx ign = startGrid();
 +
 +        sql("CREATE TABLE TEST (ID VARCHAR, ID_AFF INT, VAL INT, "
 +                + "PRIMARY KEY (ID, ID_AFF)) WITH"
 +                + "\""
 +                + "AFFINITY_KEY=ID_AFF,"
 +                + "PK_INLINE_SIZE=" + pkInlineSize + ","
 +                + "AFFINITY_INDEX_INLINE_SIZE=" + affInlineSize
 +                + "\""
 +        );
 +
 +        GridH2Table tbl = ((IgniteH2Indexing)ign.context().query().getIndexing()).schemaManager().dataTable("PUBLIC", "TEST");
 +
 +        assertEquals(pkInlineSize, ((H2TreeIndex)tbl.getIndex("_key_PK")).inlineSize());
 +        assertEquals(affInlineSize, ((H2TreeIndex)tbl.getIndex("AFFINITY_KEY")).inlineSize());
 +    }
 +
 +    /** */
 +    @Test
 +    public void testCreateWrappedPkIndexByDdl() throws Exception {
 +        inlineSize = 10;
 +
 +        IgniteEx ign = startGrid();
 +
 +        sql("CREATE TABLE TEST_WRAP (ID0 VARCHAR, ID1 INT, VAL INT, "
 +                + "PRIMARY KEY (ID0, ID1)) WITH"
 +                + "\""
 +                + "PK_INDEX_UNWRAP_FILEDS=false"
 +                + "\""
 +        );
 +
 +        sql("CREATE TABLE TEST_UNWRAP_EXPLICIT (ID0 VARCHAR, ID1 INT, VAL INT, "
 +                + "PRIMARY KEY (ID0, ID1)) WITH"
 +                + "\""
 +                + "PK_INDEX_UNWRAP_FILEDS=true"
 +                + "\""
 +        );
 +
 +        GridH2Table tblWrap = ((IgniteH2Indexing)ign.context().query().getIndexing()).schemaManager()
 +                .dataTable("PUBLIC", "TEST_WRAP");
 +        GridH2Table tblUnwrapExplicit = ((IgniteH2Indexing)ign.context().query().getIndexing()).schemaManager()
 +                .dataTable("PUBLIC", "TEST_UNWRAP_EXPLICIT");
 +
 +        assertEquals(1, tblWrap.getIndex("_key_PK").getColumns().length);
 +        assertEquals("_KEY", tblWrap.getIndex("_key_PK").getColumns()[0].getName());
 +
 +        assertEquals(2, tblUnwrapExplicit.getIndex("_key_PK").getColumns().length);
 +        assertEquals("ID0", tblUnwrapExplicit.getIndex("_key_PK").getColumns()[0].getName());
 +        assertEquals("ID1", tblUnwrapExplicit.getIndex("_key_PK").getColumns()[1].getName());
 +    }
 +
 +    /** */
      private void checkAll() {
          IgniteCache<Key, Val> cache = grid(0).cache(DEFAULT_CACHE_NAME);