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:23 UTC
[ignite] 01/01: Merge remote-tracking branch 'remotes/upstream/master' into sql-calcite
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>