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 2021/07/19 09:15:38 UTC

[ignite] branch sql-calcite updated (48dbf69 -> ea6c392)

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

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


    from 48dbf69  IGNITE-15122 Calcite. Remove sync mode of RootNode#closeInternal (#9255)
     add 905e573  IGNITE-14771 Fixed deadlock in GridCacheDataStore initialization. (#9121)
     add d13307d  IGNITE-14352 Support snapshot check command for the list of cache groups (#9105)
     add 1b6af49  IGNITE-14774 Implement metrics for in-memory index pages (#9125)
     add 3e9043c  IGNITE-14783 SystemViewComputeJobTest.testCancelComputeTask fixed (#9129)
     add ab1d3a1  IGNITE-13188 ODBC Fix SQLBindParameter with null StrLen_or_IndPtr
     add 62f790d  IGNITE-14803 .NET: Fix deprecated API usage in streamer example
     add 6425e91  IGNITE-14804 .NET: Fix static analysis warnings
     add 6fa83f0  IGNITE-14719 Thin clients: enable partition awareness by default (Java, .NET, C++)
     add 35e00f4  IGNITE-14801 Add tests for commands to manage metadata (#9137)
     add 7654044  IGNITE-14248 Handle exceptions in PartitionReservationManager#onDoneAfterTopologyUnlock properly. Fixes #9094
     add b823d1d  IGNITE-14781 Add kubernetes dep in examples standalone poms (#9130)
     add 850f9bf  IGNITE-14187 .NET: Add thin client DataStreamer
     add 6a3eb62  IGNITE-14424 Fix cache group re-encryption after cluster secondary activation. (#9036)
     add 8db5b13  IGNITE-14821 Fixed AssertionError when historical iterator tries to iterate WAL out of reservation. Fixes #9146
     add 959a6be  IGNITE-8719: Fix index create or rebuild procedure in failover scenariots. (#9090)
     add 48f71eb  IGNITE-14474 Expanded log for errors with GridDhtPartitionSupplyMessage in GridDhtPartitionDemander. Fixes #9004
     add 789feff  IGNITE-14826 .NET: Support string and array keys in thin client with partition awareness
     add 26d9740  IGNITE-14811 .NET: Enable Roslyn-based code analyzers
     add c037f0f  IGNITE-14739 Unconditional logging of tx states to WAL added to ensure correct tx recovery after node crash - Fixes #9112.
     add 3226df9  IGNITE-14828 Fixed fallback to full rebalance in case of historical rebalancing failure. Fixes #9155
     add e961054  IGNITE-14529 Offline utility to read and analyze index files. - Fixes #9115.
     add 009844f  IGNITE-14782 .NET: Remove bash dependency, execute commands directly
     add 9a96166  IGNITE-14856 Fix "Failed to resolve class name" on server when cache with indexed types is defined on client
     add ac512d5  IGNITE-14894 Fix NPE on local join exchange check during node stop. (#9169)
     add 3f65264  IGNITE-14658 Add client connector SSL metrics. (#9132)
     add 503a984  IGNITE-14812 SQL. Introduce table statistics (#9145)
     add 3cd8f5d  IGNITE-14854 Fix tests IgniteCacheLocalQueryDefaultTimeoutSelfTest for lazy=true mode (#9161)
     add 7ae55e3  IGNITE-14120 fix multiple results bug when query parallelism is enabled for single partition query. (#9164)
     add 84b4380  IGNITE-14899 Fix PagesWriteSpeedBasedThrottle time to throttle calculation (#9172)
     add 8ff5158  IGNITE-14932 Reference to the Ignite Storage Overview video (#9181)
     add b97be50  IGNITE-14923 Replace IGNITE_THRESHOLD_WAL_ARCHIVE_SIZE_PERCENTAGE to DataStorageConfiguration#minWalArchiveSize (#9180)
     add 9e28297  IGNITE-14723 Restore cache from a snapshot using CLI. (#9113)
     add a95242d  IGNITE-14702 Fixing the inconsistency of the built new indexes after restarting the node (#9150)
     add 102c64f  IGNITE-14831 [Test failed] GridCommandLineLoaderTest test crashes the process on some environments (#9157)
     add d953cd4  IGNITE-14978 .NET: Fix build failures on 2.x SDKs
     add 218d09a  IGNITE-14753 Fix builds with maven 3.8.1+
     add ff7e0b8  IGNITE-15006 Fix SSL read error
     add 73eee77  IGNITE-12911 CacheObjectAdapter#put incorrect offset handling fixed - Fixes #7742.
     add 8f92588  IGNITE-14989 Fix the help message of the snapshot restore operation. (#9196)
     add 0dddeca  IGNITE-15017 Contention in lock on Compound future (#9201)
     add f49f474  IGNITE-13428 Ignite Distributed Environment Tests (IEP-56) (#9117)
     add dafc66f  IGNITE-14722 Documentation for the automatic snapshot restore procedure. (#9162)
     add 30c36e4  IGNITE-15007 Add BASELINE_NODE_ATTRIBUTES system view (#9204)
     add 3b7809b  IGNITE-14990 Incorrect values of cache, cache group, data region metrics after cluster re-activation (#9195)
     add bf9a460  IGNITE-13581 Change Data Capture implementation (#9054)
     add a8972de  IGNITE-15028 Add documentation for BASELINE_NODE_ATTRIBUTES system view - Fixes #9210.
     add a1e6ff5  IGNITE-15011 Move native SQL system views to GridSystemViewManager - Fixes #9209.
     add 29ad914  IGNITE-15041 Upgrade travis image to xenial (#9213)
     add 5de1bae  IGNITE-15033 AssertionError: Unexpected rebalance on rebalanced cluster. Fixes #9211
     add 85be7e0  IGNITE-14510 Documentation: java thin client continuous queries - Fixes #9214.
     add c5ebdc9  IGNITE-15049 Add documentation for the performance statistics Control script commands. (#9218)
     add c0c2789  IGNITE-14901 Add documentation for the Discovery and SSL metrics. (#9174)
     add 270512e  IGNITE-15030 fixed SystemViewSelfTest#testCountDownLatch (#9212)
     add 468c41f  IGNITE-15048 Documentation: Page replacement algorithms - Fixes #9216.
     add 63dc55d  IGNITE-14893 Fixed IndexOutOfBoundsException in GridCacheWriteBehindStore flushers lookup by key. Fixes #9177
     add 4dd534c  IGNITE-15063 Documents system views obtaining through a control script. (#9232)
     add 5bb7b61  IGNITE-15042 Fixed flaky SqlSystemViewsSelfTest.testCachesViews - Fixes #9215.
     add cb02f4d  IGNITE-15012 Adaptation of the historical rebalance to the release of WAL segments. Fixes #9206
     add 8d3a841  IGNITE-14893 Fixed checkstyle.
     add c652b98  IGNITE-15065 Add an explicit method to register binary type based on class (#9233)
     add f9fb310  IGNITE-15059 Updated Apache Ignite 2.11 release notes - Fixes #9228.
     add 4ec15c5  IGNITE-15050 Added rename index tree operation with corresponding WAL record. (#9223)
     add 1ad1cc6  GG-30086 Reduce number of messages for "Blocked system-critical thread" (#9247)
     add b2c4aff  IGNITE-14952 Cancelling WAL segments reservation when max WAL archive size is reached - Fixes 9198
     add 97edc89  IGNITE-11704 Add PARTITION_META_PAGE_DELTA_RECORD_V4 WALRecord type placeholder
     add 15bc764  IGNITE-15095 Update DEB & RPM package version in ignite-2.11 branch - Fixes #9244.
     new 3a081e8  Merge branch 'master' into sql-calcite
     new ea6c392  fix merge conflicts

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


Summary of changes:
 .gitignore                                         |   10 +
 .travis.yml                                        |   22 +-
 RELEASE_NOTES.txt                                  |  105 +-
 bin/control.sh                                     |    2 +-
 bin/ignite-cdc.sh                                  |   27 +
 bin/include/build-classpath.sh                     |   26 +-
 bin/index-reader.bat                               |  222 +++
 bin/index-reader.sh                                |  152 ++
 config/ignite-log4j2.xml                           |    4 +-
 config/java.util.logging.properties                |    2 +-
 docs/_data/toc.yaml                                |    2 +
 docs/_docs/code-snippets/java/pom.xml              |    2 +-
 .../org/apache/ignite/snippets/JavaThinClient.java |   44 +-
 .../ignite/snippets/ReplacementPolicies.java       |   65 +
 .../java/org/apache/ignite/snippets/Snapshots.java |   11 +-
 docs/_docs/code-snippets/xml/log4j2-config.xml     |    4 +-
 .../memory-configuration/eviction-policies.adoc    |    2 +-
 .../memory-configuration/replacement-policies.adoc |   96 ++
 docs/_docs/monitoring-metrics/new-metrics.adoc     |   60 +
 .../monitoring-metrics/performance-statistics.adoc |   36 +-
 docs/_docs/monitoring-metrics/system-views.adoc    |   43 +
 docs/_docs/persistence/native-persistence.adoc     |    2 +
 docs/_docs/snapshots/snapshots.adoc                |   74 +-
 docs/_docs/thin-client-comparison.csv              |    3 +-
 docs/_docs/thin-clients/dotnet-thin-client.adoc    |    6 -
 docs/_docs/thin-clients/java-thin-client.adoc      |   23 +
 docs/_docs/tools/control-script.adoc               |   34 +
 examples/pom-standalone-lgpl.xml                   |    6 +
 examples/pom-standalone.xml                        |    6 +
 modules/azure/pom.xml                              |    7 -
 .../JmhPageLockTrackerBenchmark.java               |   18 +-
 .../benchmarks/jmh/tree/BPlusTreeBenchmark.java    |   39 +-
 .../calcite/exec/exp/IgniteSqlFunctionsTest.java   |   17 +
 .../ignite/common/NodeSslConnectionMetricTest.java |  448 ++++++
 .../client/suite/IgniteClientTestSuite.java        |    4 +-
 .../internal/jdbc2/JdbcMetadataSelfTest.java       |    6 +-
 .../ignite/jdbc/thin/JdbcThinMetadataSelfTest.java |   45 +-
 .../SystemViewRowAttributeWalkerGenerator.java     |   17 +
 .../persistence/FoldersReuseCompatibilityTest.java |   12 +-
 .../compress/CompressionProcessorTest.java         |    4 +-
 .../internal/commandline/ProgressPrinter.java      |  152 ++
 .../commandline/StringBuilderOutputStream.java     |   69 +
 .../commandline/argument/parser/CLIArgument.java   |   98 ++
 .../argument/parser/CLIArgumentParser.java         |  188 +++
 .../commandline/indexreader/CacheAwareLink.java    |   39 +
 .../commandline/indexreader/CountOnlyStorage.java  |   51 +
 .../commandline/indexreader/IgniteIndexReader.java | 1666 ++++++++++++++++++++
 .../IgniteIndexReaderFilePageStoreFactory.java     |  115 ++
 .../IgniteIndexReaderFilePageStoreFactoryImpl.java |  103 ++
 .../commandline/indexreader/IndexReaderUtils.java  |   95 ++
 .../commandline/indexreader/ItemCallback.java      |   26 +
 .../commandline/indexreader/ItemStorage.java       |   33 +
 .../commandline/indexreader/ItemsListStorage.java  |   52 +
 .../commandline/indexreader/LinkStorage.java       |   89 ++
 .../commandline/indexreader/PageCallback.java      |   26 +
 .../commandline/indexreader/PageContent.java       |   47 +
 .../commandline/indexreader/PageListsInfo.java     |   58 +
 .../internal/commandline/indexreader/TreeNode.java |   47 +
 .../commandline/indexreader/TreeTraversalInfo.java |   59 +
 .../indexreader/TreeTraverseContext.java           |   75 +
 .../commandline/snapshot/SnapshotCommand.java      |   77 +-
 .../commandline/snapshot/SnapshotSubcommand.java   |    8 +-
 .../indexreader/IgniteIndexReaderTest.java         | 1187 ++++++++++++++
 .../testsuites/IgniteControlUtilityTestSuite.java  |    5 +-
 .../util/GridCommandHandlerAbstractTest.java       |    8 +-
 .../util/GridCommandHandlerClusterByClassTest.java |    3 +-
 .../util/GridCommandHandlerIndexingTest.java       |    2 +-
 .../util/GridCommandHandlerMetadataTest.java       |  291 +++-
 .../apache/ignite/util/GridCommandHandlerTest.java |  184 ++-
 .../apache/ignite/util/SystemViewCommandTest.java  |   10 +-
 modules/core/pom.xml                               |    7 +
 .../main/java/org/apache/ignite/IgniteBinary.java  |    9 +
 .../java/org/apache/ignite/IgniteSnapshot.java     |    9 +
 .../org/apache/ignite/IgniteSystemProperties.java  |   34 +-
 .../org/apache/ignite/cache/CacheEntryVersion.java |   67 +
 .../rendezvous/RendezvousAffinityFunction.java     |    2 +
 .../org/apache/ignite/cdc/CdcConfiguration.java    |  101 ++
 .../java/org/apache/ignite/cdc/CdcConsumer.java    |   77 +
 .../main/java/org/apache/ignite/cdc/CdcEvent.java  |   79 +
 .../main/java/org/apache/ignite/cdc/CdcLoader.java |   75 +
 .../ignite/configuration/ClientConfiguration.java  |   20 +-
 .../configuration/DataStorageConfiguration.java    |  127 +-
 .../org/apache/ignite/internal/IgniteKernal.java   |    6 +-
 .../org/apache/ignite/internal/IgnitionEx.java     |   92 +-
 .../internal/binary/BinaryEnumObjectImpl.java      |    2 +-
 .../ignite/internal/binary/BinaryObjectImpl.java   |    2 +-
 .../query/index/sorted/inline/InlineIndexImpl.java |   15 +-
 .../ignite/internal/cdc/CdcConsumerState.java      |  114 ++
 .../apache/ignite/internal/cdc/CdcEventImpl.java   |  106 ++
 .../ignite/internal/cdc/CdcFileLockHolder.java     |   55 +
 .../org/apache/ignite/internal/cdc/CdcMain.java    |  556 +++++++
 .../ignite/internal/cdc/WalRecordsConsumer.java    |  174 ++
 .../GridClientConnectionManagerAdapter.java        |    2 +-
 .../client/router/impl/GridTcpRouterImpl.java      |    2 +-
 .../ignite/internal/client/thin/ClientBinary.java  |    8 +
 .../GridNioClientConnectionMultiplexer.java        |    2 +-
 .../commandline/meta/tasks/MetadataInfoTask.java   |   13 +-
 .../internal/dto/IgniteDataTransferObject.java     |    2 +-
 .../managers/discovery/GridDiscoveryManager.java   |   98 +-
 .../managers/encryption/CacheGroupPageScanner.java |    2 +
 .../managers/encryption/GridEncryptionManager.java |   22 +-
 .../managers/indexing/IndexesRebuildTask.java      |    4 +
 .../walker/BaselineNodeAttributeViewWalker.java    |   67 +
 .../systemview/walker/BaselineNodeViewWalker.java  |   46 +
 .../systemview/walker/CacheGroupIoViewWalker.java  |   50 +
 .../systemview/walker/NodeAttributeViewWalker.java |   68 +
 .../systemview/walker/NodeMetricsViewWalker.java   |  158 ++
 .../systemview/walker/SqlQueryViewWalker.java      |   12 +-
 .../ignite/internal/pagemem/PageIdAllocator.java   |   19 +-
 .../ignite/internal/pagemem/PageIdUtils.java       |   25 +-
 .../apache/ignite/internal/pagemem/PageMemory.java |    6 +
 .../pagemem/impl/PageMemoryNoStoreImpl.java        |  123 +-
 .../pagemem/store/IgnitePageStoreManager.java      |    6 +-
 .../pagemem/wal/IgniteWriteAheadLogManager.java    |    7 +-
 .../internal/pagemem/wal/record/DataEntry.java     |   60 +-
 .../internal/pagemem/wal/record/DataRecord.java    |    2 +-
 .../wal/record/IndexRenameRootPageRecord.java      |  158 ++
 .../internal/pagemem/wal/record/LazyDataEntry.java |    6 +-
 .../internal/pagemem/wal/record/MvccDataEntry.java |    2 +-
 .../pagemem/wal/record/UnwrapDataEntry.java        |    6 +-
 .../internal/pagemem/wal/record/WALRecord.java     |   29 +-
 .../wal/record/delta/InitNewPageRecord.java        |    8 +-
 .../wal/record/delta/MetaPageInitRecord.java       |    5 +-
 .../wal/record/delta/NewRootInitRecord.java        |    5 +-
 .../record/delta/PagesListInitNewPageRecord.java   |    5 +-
 .../processors/cache/CacheGroupContext.java        |    8 +-
 .../processors/cache/CacheGroupMetricsImpl.java    |   72 +-
 .../internal/processors/cache/CacheObject.java     |    3 +
 .../processors/cache/CacheObjectAdapter.java       |   23 +-
 .../processors/cache/CacheObjectByteArrayImpl.java |    2 +-
 .../processors/cache/GridCacheAdapter.java         |   13 +-
 .../processors/cache/GridCacheEntryEx.java         |   14 +-
 .../processors/cache/GridCacheMapEntry.java        |   39 +-
 .../processors/cache/GridCacheProcessor.java       |  133 +-
 .../internal/processors/cache/GridCacheUtils.java  |   14 +-
 .../cache/IgniteCacheOffheapManager.java           |   17 +
 .../cache/IgniteCacheOffheapManagerImpl.java       |   10 +
 .../binary/CacheObjectBinaryProcessorImpl.java     |    8 +
 .../processors/cache/binary/IgniteBinaryImpl.java  |   12 +
 .../distributed/GridCacheTxRecoveryFuture.java     |    7 +-
 .../GridDistributedTxRemoteAdapter.java            |    7 +-
 .../cache/distributed/dht/GridDhtCacheAdapter.java |    1 +
 .../cache/distributed/dht/GridDhtLockFuture.java   |   11 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java    |   20 +-
 .../dht/colocated/GridDhtColocatedLockFuture.java  |    7 +-
 .../dht/colocated/GridDhtDetachedCacheEntry.java   |    6 +-
 .../dht/preloader/GridDhtForceKeysFuture.java      |    1 +
 .../dht/preloader/GridDhtPartitionDemander.java    |   28 +-
 .../dht/preloader/GridDhtPartitionSupplier.java    |    3 +-
 .../preloader/GridDhtPartitionsExchangeFuture.java |   28 +-
 .../dht/preloader/GridDhtPreloader.java            |   16 +-
 .../cache/distributed/near/GridNearCacheEntry.java |    7 +-
 .../cache/distributed/near/GridNearLockFuture.java |    7 +-
 ...dNearOptimisticSerializableTxPrepareFuture.java |    7 +-
 .../near/GridNearOptimisticTxPrepareFuture.java    |   21 +-
 .../near/GridNearPessimisticTxPrepareFuture.java   |    7 +-
 .../distributed/near/GridNearTxFinishFuture.java   |   19 +-
 .../near/GridNearTxQueryEnlistFuture.java          |   13 +-
 .../processors/cache/mvcc/MvccProcessorImpl.java   |    8 +-
 .../processors/cache/mvcc/txlog/TxLog.java         |   17 +-
 .../processors/cache/persistence/DataRegion.java   |   12 +-
 .../cache/persistence/DataRegionMetricsImpl.java   |  289 +++-
 .../persistence/DataRegionMetricsMXBeanImpl.java   |   11 +-
 .../cache/persistence/DataStructure.java           |    8 +
 .../cache/persistence/FileLockHolder.java          |  202 +++
 .../GridCacheDatabaseSharedManager.java            |  408 ++---
 .../cache/persistence/GridCacheOffheapManager.java |   35 +-
 .../IgniteCacheDatabaseSharedManager.java          |  116 +-
 .../processors/cache/persistence/IndexStorage.java |   17 +
 .../cache/persistence/IndexStorageImpl.java        |   74 +-
 .../persistence/checkpoint/CheckpointHistory.java  |    2 +-
 .../checkpoint/CheckpointHistoryResult.java        |   25 +-
 .../cache/persistence/checkpoint/Checkpointer.java |    4 +-
 .../persistence/defragmentation/PageStoreMap.java  |    2 +-
 .../diagnostic/pagelocktracker/DumpProcessor.java  |   41 -
 .../diagnostic/pagelocktracker/DumpSupported.java  |    9 -
 .../pagelocktracker/LockTrackerFactory.java        |  112 --
 .../pagelocktracker/MemoryCalculator.java          |   70 +
 .../diagnostic/pagelocktracker/PageLockDump.java   |   54 +-
 .../pagelocktracker/PageLockThreadState.java       |   58 +
 .../pagelocktracker/PageLockTracker.java           |    8 -
 .../pagelocktracker/PageLockTrackerFactory.java    |  111 ++
 .../pagelocktracker/PageLockTrackerMXBeanImpl.java |    2 -
 .../pagelocktracker/PageLockTrackerManager.java    |   65 +-
 .../pagelocktracker/SharedPageLockTracker.java     |  143 +-
 .../pagelocktracker/SharedPageLockTrackerDump.java |   52 +
 .../pagelocktracker/ThreadPageLockState.java       |   51 +
 .../pagelocktracker/ThreadPageLocksDumpLock.java   |   96 --
 .../dumpprocessors/ToFileDumpProcessor.java        |   12 +-
 .../dumpprocessors/ToStringDumpHelper.java         |   58 +
 .../dumpprocessors/ToStringDumpProcessor.java      |  436 +++--
 .../diagnostic/pagelocktracker/log/LockLog.java    |   36 +-
 .../diagnostic/pagelocktracker/log/LogEntry.java   |   43 +
 .../pagelocktracker/log/PageLockLogSnapshot.java   |  112 +-
 .../pagelocktracker/stack/LockStack.java           |    8 +-
 .../stack/PageLockStackSnapshot.java               |   45 +-
 .../store/HeapPageMetaInfoStore.java               |   38 +-
 .../store/OffHeapPageMetaInfoStore.java            |   50 +-
 .../persistence/file/FilePageStoreManager.java     |   28 +-
 .../filename/PdsConsistentIdProcessor.java         |  481 +-----
 .../persistence/filename/PdsFolderResolver.java    |  528 +++++++
 .../persistence/filename/PdsFolderSettings.java    |   10 +-
 .../persistence/filename/PdsFoldersResolver.java   |    3 +-
 .../persistence/freelist/AbstractFreeList.java     |   18 +-
 .../cache/persistence/freelist/CacheFreeList.java  |   10 +-
 .../cache/persistence/freelist/PagesList.java      |   12 +-
 .../persistence/freelist/io/PagesListMetaIO.java   |    5 +-
 .../persistence/freelist/io/PagesListNodeIO.java   |    7 +-
 .../cache/persistence/metastorage/MetaStorage.java |   29 +-
 .../cache/persistence/pagemem/PageMemoryImpl.java  |  129 +-
 .../cache/persistence/pagemem/PageMetrics.java     |   40 +
 .../cache/persistence/pagemem/PageMetricsImpl.java |  134 ++
 .../pagemem/PagesWriteSpeedBasedThrottle.java      |   12 +-
 .../partstorage/PartitionMetaStorageImpl.java      |   10 +-
 .../snapshot/IgniteSnapshotManager.java            |  184 ++-
 .../snapshot/SnapshotPartitionsVerifyTask.java     |   34 +-
 .../snapshot/SnapshotPartitionsVerifyTaskArg.java  |   87 +
 .../SnapshotPartitionsVerifyTaskResult.java        |   94 ++
 .../snapshot/SnapshotRestoreCancelTask.java        |   47 +
 .../snapshot/SnapshotRestoreManagementTask.java    |   73 +
 .../snapshot/SnapshotRestoreProcess.java           |  204 ++-
 .../snapshot/SnapshotRestoreStatusTask.java        |   47 +
 .../cache/persistence/tree/BPlusTree.java          |    5 +-
 .../persistence/tree/io/AbstractDataPageIO.java    |    5 +-
 .../cache/persistence/tree/io/BPlusIO.java         |   10 +-
 .../cache/persistence/tree/io/BPlusInnerIO.java    |    6 +-
 .../cache/persistence/tree/io/PageIO.java          |   61 +-
 .../cache/persistence/tree/io/PageMetaIO.java      |    5 +-
 .../cache/persistence/tree/io/PageMetaIOV2.java    |    5 +-
 .../tree/io/PagePartitionCountersIO.java           |    5 +-
 .../persistence/tree/io/PagePartitionMetaIO.java   |    5 +-
 .../persistence/tree/io/PagePartitionMetaIOV2.java |    5 +-
 .../persistence/tree/io/PagePartitionMetaIOV3.java |    5 +-
 .../cache/persistence/tree/util/PageHandler.java   |    5 +-
 .../wal/AbstractWalRecordsIterator.java            |    3 +
 .../persistence/wal/FileWriteAheadLogManager.java  |  219 ++-
 .../wal/aware/SegmentArchiveSizeStorage.java       |  161 +-
 .../cache/persistence/wal/aware/SegmentAware.java  |   48 +-
 .../wal/aware/SegmentReservationStorage.java       |   50 +-
 .../wal/reader/StandaloneWalRecordsIterator.java   |    7 +-
 .../wal/serializer/RecordDataV1Serializer.java     |   62 +-
 .../wal/serializer/RecordDataV2Serializer.java     |   12 +-
 .../cache/store/GridCacheWriteBehindStore.java     |   25 +-
 .../cache/transactions/IgniteTxLocalAdapter.java   |    5 +-
 .../cache/transactions/IgniteTxManager.java        |   14 -
 .../processors/cache/tree/AbstractDataLeafIO.java  |    2 +-
 .../cache/tree/CacheIdAwareDataLeafIO.java         |    2 +-
 .../tree/mvcc/data/MvccCacheIdAwareDataLeafIO.java |    2 +-
 .../cache/verify/IdleVerifyResultV2.java           |   73 +-
 .../cache/verify/VerifyBackupPartitionsTaskV2.java |   53 +-
 .../processors/cache/version/GridCacheVersion.java |   31 +-
 .../cache/version/GridCacheVersionEx.java          |    6 +
 .../cache/version/GridCacheVersionManager.java     |    5 +
 .../cacheobject/IgniteCacheObjectProcessor.java    |   10 +
 .../processors/cacheobject/NoOpBinary.java         |    5 +
 .../cluster/GridClusterStateProcessor.java         |   96 ++
 .../processors/datastreamer/DataStreamerImpl.java  |   42 +-
 .../processors/metric/GridMetricManager.java       |   13 +
 .../internal/processors/metric/MetricRegistry.java |    5 +-
 .../processors/metric/impl/LongAdderMetric.java    |   13 +-
 .../metric/impl/LongAdderWithDelegateMetric.java   |   39 +-
 .../processors/metric/impl/MetricUtils.java        |    9 +
 .../processors/odbc/ClientListenerProcessor.java   |    6 +-
 .../processors/platform/PlatformProcessorImpl.java |    3 +
 .../platform/client/ClientMessageParser.java       |   15 +
 .../platform/client/ClientRequestHandler.java      |   31 +-
 .../processors/platform/client/ClientStatus.java   |    3 +
 .../platform/client/cache/ClientCacheRequest.java  |    2 +-
 .../client/cache/ClientCacheScanQueryRequest.java  |    2 +-
 .../streamer/ClientDataStreamerAddDataRequest.java |   85 +
 .../client/streamer/ClientDataStreamerFlags.java   |   38 +
 .../client/streamer/ClientDataStreamerHandle.java  |   56 +
 .../client/streamer/ClientDataStreamerReader.java  |   77 +
 .../client/streamer/ClientDataStreamerRequest.java |   47 +
 .../streamer/ClientDataStreamerStartRequest.java   |  178 +++
 .../platform/utils/PlatformConfigurationUtils.java |    4 +-
 .../processors/query/GridQueryProcessor.java       |  158 +-
 .../processors/query/IndexRebuildAware.java        |  145 --
 .../query/aware/IndexBuildStatusHolder.java        |  174 ++
 .../query/aware/IndexBuildStatusStorage.java       |  352 +++++
 .../query/aware/IndexRebuildCacheInfo.java         |   80 +
 .../query/aware/IndexRebuildFutureStorage.java     |  145 ++
 .../schema/SchemaIndexCachePartitionWorker.java    |    9 +-
 .../query/stat/IgniteStatisticsManager.java        |   89 ++
 .../processors/query/stat/ObjectStatistics.java    |   23 +
 .../processors/query/stat/StatisticsKey.java       |   83 +
 .../processors/query/stat/StatisticsTarget.java    |  103 ++
 .../query/stat/StatisticsUsageState.java           |  104 ++
 .../stat/config/StatisticsColumnConfiguration.java |  208 +++
 .../stat/config/StatisticsColumnOverrides.java     |  112 ++
 .../stat/config/StatisticsObjectConfiguration.java |  278 ++++
 .../processors/resource/GridResourceIoc.java       |    2 +-
 .../rest/protocols/tcp/GridTcpRestProtocol.java    |   14 +-
 .../org/apache/ignite/internal/sql/SqlKeyword.java |    6 +
 .../org/apache/ignite/internal/sql/SqlParser.java  |   51 +
 .../internal/sql/command/SqlAnalyzeCommand.java    |  194 +++
 .../sql/command/SqlDropStatisticsCommand.java      |   25 +
 .../sql/command/SqlRefreshStatitsicsCommand.java   |   25 +
 .../sql/command/SqlStatisticsCommands.java         |  129 ++
 .../ignite/internal/util/GridJavaProcess.java      |   23 +-
 .../apache/ignite/internal/util/IgniteUtils.java   |  139 ++
 .../internal/util/collection/IntHashMap.java       |   20 +-
 .../ignite/internal/util/collection/IntMap.java    |    5 +-
 .../internal/util/collection/IntRWHashMap.java     |    3 +-
 .../internal/util/function/ThrowableFunction.java  |   37 +
 .../internal/util/future/GridCompoundFuture.java   |  117 +-
 .../ignite/internal/util/nio/GridNioServer.java    |   14 +
 .../internal/util/nio/ssl/GridNioSslFilter.java    |   56 +-
 .../internal/visor/VisorDataTransferObject.java    |    3 +
 .../visor/diagnostic/VisorPageLocksTask.java       |    4 +-
 .../visor/node/VisorDataStorageConfiguration.java  |   17 +-
 .../visor/node/VisorGridConfiguration.java         |    2 +-
 .../visor/node/VisorPersistenceMetrics.java        |    2 +-
 .../visor/snapshot/VisorSnapshotRestoreTask.java   |  121 ++
 .../snapshot/VisorSnapshotRestoreTaskAction.java   |   48 +
 .../snapshot/VisorSnapshotRestoreTaskArg.java      |   98 ++
 .../ignite/internal/visor/tx/VisorTxInfo.java      |    2 +-
 .../visor/verify/VisorIdleVerifyTaskArg.java       |    2 +-
 .../logger/LoggerNodeIdAndApplicationAware.java    |   39 +
 .../apache/ignite/logger/LoggerNodeIdAware.java    |    3 +
 .../org/apache/ignite/logger/java/JavaLogger.java  |    8 +-
 .../ignite/logger/java/JavaLoggerFileHandler.java  |   18 +-
 .../ignite/plugin/security/SecurityPermission.java |    8 +-
 .../security/SecurityPermissionSetBuilder.java     |    3 +-
 .../tcp/internal/GridNioServerWrapper.java         |    9 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java       |    5 +-
 .../ignite/spi/discovery/tcp/TcpDiscoverySpi.java  |    2 +
 .../tcp/internal/TcpDiscoveryStatistics.java       |   15 +
 .../systemview/view/BaselineNodeAttributeView.java |   74 +
 .../spi/systemview/view/BaselineNodeView.java      |   58 +
 .../spi/systemview/view/CacheGroupIoView.java      |   82 +
 .../spi/systemview/view/NodeAttributeView.java     |   75 +
 .../spi/systemview/view/NodeMetricsView.java       |  556 +++++++
 .../startup/cmdline/CdcCommandLineStartup.java     |  164 ++
 .../ignite/startup/cmdline/CommandLineStartup.java |    2 +-
 .../main/resources/META-INF/classnames.properties  |    6 +
 modules/core/src/test/config/log4j2-test.xml       |    4 +-
 .../core/src/test/config/log4j2-verbose-test.xml   |    4 +-
 .../java/org/apache/ignite/TestStorageUtils.java   |    3 +-
 .../ReleaseSegmentOnHistoricalRebalanceTest.java   |  408 +++++
 .../org/apache/ignite/cdc/AbstractCdcTest.java     |  252 +++
 .../org/apache/ignite/cdc/CdcCacheVersionTest.java |  230 +++
 .../java/org/apache/ignite/cdc/CdcSelfTest.java    |  414 +++++
 .../apache/ignite/client/SslParametersTest.java    |   14 +-
 .../internal/ClusterNodeMetricsSelfTest.java       |    2 +-
 .../client/thin/AbstractThinClientTest.java        |    2 +-
 .../internal/client/thin/ReliableChannelTest.java  |    8 +-
 .../encryption/CacheGroupReencryptionTest.java     |   40 +
 .../internal/metric/CacheMetricsAddRemoveTest.java |   86 +-
 .../metric/MetricsClusterActivationTest.java       |  220 +++
 .../internal/metric/SystemViewComputeJobTest.java  |   14 +-
 .../ignite/internal/metric/SystemViewSelfTest.java |  204 ++-
 .../pagemem/impl/PageMemoryNoLoadSelfTest.java     |   12 +-
 .../DataStorageConfigurationValidationTest.java    |   72 +-
 .../processors/cache/GridCacheTestEntryEx.java     |    3 +-
 .../IgniteCachePutKeyAttachedBinaryObjectTest.java |  177 +++
 ...IgniteMarshallerCacheSeparateDirectoryTest.java |  214 +++
 .../binary/BinaryMetadataRegisterClassTest.java    |  165 ++
 .../cache/consistency/AbstractReadRepairTest.java  |    1 +
 .../IgniteSequenceInternalCleanupTest.java         |    4 +-
 .../distributed/CacheBaselineTopologyTest.java     |   11 +-
 ...ebalanceTwoPartsInDifferentCheckpointsTest.java |  158 ++
 ...acheRebalancingUnmarshallingFailedSelfTest.java |   22 +-
 .../eviction/paged/PageEvictionMetricTest.java     |    2 +-
 .../IgniteCacheDatabaseSharedManagerSelfTest.java  |   70 +
 .../IgnitePdsRecoveryAfterFileCorruptionTest.java  |    2 +-
 .../IgnitePdsSporadicDataRecordsOnBackupTest.java  |    2 +-
 .../persistence/IgnitePdsTaskCancelingTest.java    |    2 +-
 .../RestorePartitionStateDuringCheckpointTest.java |  139 ++
 .../db/IgniteLogicalRecoveryWithParamsTest.java    |    9 +-
 .../db/IgnitePdsDataRegionMetricsTest.java         |    4 +-
 ...CheckpointSimulationWithRealCpDisabledTest.java |   10 +-
 .../db/file/IgnitePdsPageReplacementTest.java      |    2 +-
 .../IgniteUidAsConsistentIdMigrationTest.java      |   14 +-
 .../IgniteWalIteratorExceptionDuringReadTest.java  |   35 +-
 .../persistence/db/wal/IgniteWalRebalanceTest.java |   52 +-
 .../db/wal/WalArchiveSizeConfigurationTest.java    |   59 +-
 .../persistence/db/wal/WalCompactionTest.java      |    2 +-
 .../db/wal/WalRecoveryTxLogicalRecordsTest.java    |   24 +-
 .../db/wal/reader/IgniteWalReaderTest.java         |  267 +++-
 .../persistence/defragmentation/LinkMapTest.java   |   18 +-
 .../PageLockTrackerManagerTest.java                |    8 +-
 .../pagelocktracker/SharedPageLockTrackerTest.java |   56 +-
 .../dumpprocessors/ToFileDumpProcessorTest.java    |   11 +-
 .../dumpprocessors/ToStringDumpHelperTest.java     |   75 +
 .../pagelocktracker/log/HeapArrayLockLogTest.java  |    6 +-
 .../pagelocktracker/log/OffHeapLockLogTest.java    |    6 +-
 .../pagelocktracker/log/PageLockLogTest.java       |    5 +-
 .../stack/HeapArrayLockStackTest.java              |    6 +-
 .../stack/OffHeapLockStackTest.java                |    6 +-
 .../pagelocktracker/stack/PageLockStackTest.java   |    6 +-
 .../pagemem/BPlusTreePageMemoryImplTest.java       |    7 +-
 .../BPlusTreeReuseListPageMemoryImplTest.java      |    7 +-
 .../IgnitePageMemReplaceDelayedWriteUnitTest.java  |   45 +-
 .../pagemem/IgniteThrottlingUnitTest.java          |   29 +-
 .../pagemem/IndexStoragePageMemoryImplTest.java    |   13 +-
 .../persistence/pagemem/NoOpPageStoreManager.java  |    3 +-
 .../cache/persistence/pagemem/NoOpWALManager.java  |    2 +-
 .../pagemem/PageMemoryImplNoLoadTest.java          |   20 +-
 .../persistence/pagemem/PageMemoryImplTest.java    |  138 +-
 .../pagemem/PageMemoryNoStoreLeakTest.java         |    8 +-
 .../snapshot/AbstractSnapshotSelfTest.java         |    2 +-
 .../snapshot/IgniteClusterSnapshotCheckTest.java   |  150 +-
 .../IgniteClusterSnapshotRestoreBaseTest.java      |    3 -
 .../snapshot/IgniteClusterSnapshotSelfTest.java    |    2 +-
 .../wal/FileWriteAheadLogManagerSelfTest.java      |   52 +
 .../persistence/wal/WalArchiveConsistencyTest.java |    4 +-
 .../persistence/wal/aware/SegmentAwareTest.java    |  328 +++-
 .../wal/memtracker/PageMemoryTracker.java          |   58 +-
 .../persistence/wal/scanner/WalScannerTest.java    |    2 +-
 .../cache/query/CacheDataPageScanQueryTest.java    |    2 +-
 .../store/GridCacheWriteBehindStoreSelfTest.java   |   42 +-
 .../TxRollbackAsyncWithPersistenceTest.java        |   14 -
 .../processors/cluster/BaselineAutoAdjustTest.java |    7 +-
 .../processors/database/BPlusTreeSelfTest.java     |    4 +-
 .../processors/database/CacheFreeListSelfTest.java |   18 +-
 .../database/DataRegionMetricsSelfTest.java        |   18 +-
 .../processors/database/IndexStorageSelfTest.java  |    5 +-
 .../DurableBackgroundTasksProcessorSelfTest.java   |   27 -
 .../metastorage/DistributedMetaStorageTest.java    |    4 +-
 .../persistence/ReadWriteMetaStorageMock.java      |    2 +-
 .../internal/sql/SqlParserAnalyzeSelfTest.java     |   97 ++
 .../sql/SqlParserDropStatisticsSelfTest.java       |   78 +
 .../sql/SqlParserRefreshStatisticsSelfTest.java    |   82 +
 .../ignite/internal/util/IgniteUtilsSelfTest.java  |   28 +
 .../internal/util/collection/IntHashMapTest.java   |   66 +-
 .../internal/util/nio/GridNioSslSelfTest.java      |    2 +-
 .../apache/ignite/logger/java/JavaLoggerTest.java  |   20 +-
 .../ignite/platform/PlatformStartIgniteUtils.java  |   76 +
 .../ignite/plugin/AbstractCachePluginProvider.java |   70 +
 .../security/SecurityPermissionSetBuilderTest.java |    4 +-
 .../apache/ignite/testframework/GridTestUtils.java |   17 +
 .../junits/common/GridCommonAbstractTest.java      |   46 +-
 .../logger/GridLog4jRollingFileAppender.java       |    8 +-
 .../junits/logger/GridTestLog4jLogger.java         |   10 +-
 .../testframework/wal/record/RecordUtils.java      |   34 +
 .../ignite/testsuites/IgniteBasicTestSuite.java    |    4 +
 .../testsuites/IgniteBinaryObjectsTestSuite.java   |    2 +
 .../ignite/testsuites/IgniteCacheTestSuite8.java   |    3 +
 .../ignite/testsuites/IgnitePdsMvccTestSuite4.java |    2 +
 .../ignite/testsuites/IgnitePdsTestSuite.java      |    5 +
 .../ignite/testsuites/IgnitePdsTestSuite2.java     |    9 +
 .../ignite/testsuites/IgnitePdsTestSuite4.java     |    4 +
 ...ridCommandHandlerClusterByClassTest_help.output |   19 +
 ...andHandlerClusterByClassWithSSLTest_help.output |   19 +
 .../ignite/development/utils/DataEntryWrapper.java |    3 +-
 .../apache/ignite/development/utils/WalStat.java   |    4 +-
 .../utils/IgniteWalConverterArgumentsTest.java     |    4 +-
 .../utils/IgniteWalConverterSensitiveDataTest.java |    3 +-
 .../development/utils/IgniteWalConverterTest.java  |    4 +-
 modules/ducktests/README.md                        |  126 ++
 .../licenses/apache-2.0.txt                        |    0
 modules/ducktests/pom.xml                          |  220 +++
 .../tests/ContinuousDataLoadApplication.java       |  170 ++
 .../authentication/UserModifyingApplication.java   |   61 +
 .../CellularAffinityBackupFilter.java              |   59 +
 .../CellularPreparedTxStreamer.java                |  153 ++
 .../cellular_affinity_test/CellularTxStreamer.java |  135 ++
 .../DistributionChecker.java                       |   55 +
 .../tests/client_test/IgniteCachePutClient.java    |   63 +
 .../LongRunningTransactionsGenerator.java          |  157 ++
 .../DataLoaderAndCheckerApplication.java           |  121 ++
 .../LongTxStreamerApplication.java                 |  113 ++
 .../SingleKeyTxStreamerApplication.java            |   74 +
 .../tests/rebalance/DataGenerationApplication.java |   90 ++
 .../tests/self_test/TestKillableApplication.java   |   39 +
 .../self_test/TestSelfKillableApplication.java     |   36 +
 .../tests/smoke_test/AssertionApplication.java     |   35 +
 .../tests/smoke_test/SimpleApplication.java        |   50 +
 .../tests/snapshot_test/DataLoaderApplication.java |   65 +
 .../ThinClientSelfTestApplication.java             |   44 +
 .../ducktest/utils/IgniteAwareApplication.java     |  322 ++++
 .../utils/IgniteAwareApplicationService.java       |  112 ++
 .../ducktests/src/main/resources/log4j.properties  |   25 +
 modules/ducktests/tests/MANIFEST.in                |   16 +
 modules/ducktests/tests/certs/functions.sh         |  110 ++
 modules/ducktests/tests/certs/mkcerts.sh           |   36 +
 .../ducktests/tests/checks/utils/check_cluster.py  |  106 ++
 .../tests/checks/utils/check_enum_constructible.py |   73 +
 .../utils/check_get_credentials_from_globals.py    |   51 +
 .../utils/check_get_ssl_params_from_globals.py     |  129 ++
 .../tests/checks/utils/check_jvm_settings.py       |   78 +
 .../tests/checks/utils/check_parametrized.py       |  269 ++++
 .../ducktests/tests/checks/utils/check_version.py  |  101 ++
 modules/ducktests/tests/docker/Dockerfile          |  100 ++
 modules/ducktests/tests/docker/clean_up.sh         |   19 +
 modules/ducktests/tests/docker/ducker-ignite       |  660 ++++++++
 .../ducktests/tests/docker/requirements-dev.txt    |   19 +
 modules/ducktests/tests/docker/requirements.txt    |   16 +
 modules/ducktests/tests/docker/run_tests.sh        |  164 ++
 modules/ducktests/tests/docker/ssh-config          |   21 +
 modules/ducktests/tests/docker/ssh/authorized_keys |   15 +
 modules/ducktests/tests/docker/ssh/config          |   21 +
 modules/ducktests/tests/docker/ssh/id_rsa          |   27 +
 modules/ducktests/tests/docker/ssh/id_rsa.pub      |    1 +
 modules/ducktests/tests/ignitetest/__init__.py     |   23 +
 .../tests/ignitetest/services/__init__.py          |   14 +
 .../ducktests/tests/ignitetest/services/ignite.py  |   33 +
 .../tests/ignitetest/services/ignite_app.py        |  113 ++
 .../services/ignite_execution_exception.py         |   24 +
 .../ducktests/tests/ignitetest/services/spark.py   |  177 +++
 .../tests/ignitetest/services/utils/__init__.py    |   31 +
 .../ignitetest/services/utils/auth/__init__.py     |   46 +
 .../ignitetest/services/utils/background_thread.py |  113 ++
 .../tests/ignitetest/services/utils/concurrent.py  |   90 ++
 .../ignitetest/services/utils/config_template.py   |   82 +
 .../ignitetest/services/utils/control_utility.py   |  457 ++++++
 .../tests/ignitetest/services/utils/decorators.py  |   40 +
 .../ignitetest/services/utils/ducktests_service.py |   58 +
 .../ignitetest/services/utils/ignite_aware.py      |  590 +++++++
 .../utils/ignite_configuration/__init__.py         |  156 ++
 .../ignite_configuration/binary_configuration.py   |   27 +
 .../services/utils/ignite_configuration/cache.py   |   29 +
 .../utils/ignite_configuration/communication.py    |   45 +
 .../utils/ignite_configuration/data_storage.py     |   39 +
 .../utils/ignite_configuration/discovery.py        |  146 ++
 .../tests/ignitetest/services/utils/ignite_spec.py |  292 ++++
 .../tests/ignitetest/services/utils/jmx_utils.py   |  203 +++
 .../tests/ignitetest/services/utils/jvm_utils.py   |  102 ++
 .../tests/ignitetest/services/utils/log_utils.py   |   42 +
 .../tests/ignitetest/services/utils/path.py        |  237 +++
 .../ignitetest/services/utils/ssl/__init__.py      |   14 +
 .../utils/ssl/client_connector_configuration.py    |   38 +
 .../services/utils/ssl/connector_configuration.py  |   32 +
 .../ignitetest/services/utils/ssl/ssl_params.py    |   98 ++
 .../services/utils/templates/cache_macro.j2        |   34 +
 .../utils/templates/communication_macro.j2         |   25 +
 .../utils/templates/connector_configuration.j2     |   30 +
 .../services/utils/templates/datastorage_macro.j2  |   49 +
 .../services/utils/templates/discovery_macro.j2    |   71 +
 .../services/utils/templates/ignite.xml.j2         |  135 ++
 .../services/utils/templates/log4j.xml.j2          |   63 +
 .../services/utils/templates/misc_macro.j2         |   46 +
 .../services/utils/templates/ssl_params_macro.j2   |   33 +
 .../utils/templates/thin_client_config.xml.j2      |   44 +
 .../tests/ignitetest/services/utils/time_utils.py  |   28 +
 .../tests/ignitetest/services/zk/__init__.py       |   14 +
 .../services/zk/templates/log4j.properties.j2      |   33 +
 .../services/zk/templates/zookeeper.properties.j2  |   29 +
 .../tests/ignitetest/services/zk/zookeeper.py      |  172 ++
 .../ducktests/tests/ignitetest/tests/__init__.py   |   71 +
 .../ducktests/tests/ignitetest/tests/auth_test.py  |  124 ++
 .../ignitetest/tests/cellular_affinity_test.py     |  334 ++++
 .../tests/ignitetest/tests/client_test.py          |  159 ++
 .../ignitetest/tests/control_utility/__init__.py   |   18 +
 .../tests/control_utility/baseline_test.py         |  206 +++
 .../ignitetest/tests/control_utility/tx_test.py    |  191 +++
 .../tests/ignitetest/tests/discovery_test.py       |  374 +++++
 .../ignitetest/tests/persistence_upgrade_test.py   |   66 +
 .../tests/ignitetest/tests/pme_free_switch_test.py |  136 ++
 .../tests/ignitetest/tests/rebalance/__init__.py   |   18 +
 .../ignitetest/tests/rebalance/in_memory_test.py   |  112 ++
 .../ignitetest/tests/rebalance/persistent_test.py  |  246 +++
 .../tests/ignitetest/tests/rebalance/util.py       |  324 ++++
 .../ducktests/tests/ignitetest/tests/self_test.py  |  164 ++
 .../ducktests/tests/ignitetest/tests/smoke_test.py |   87 +
 .../tests/ignitetest/tests/snapshot_test.py        |  101 ++
 .../ducktests/tests/ignitetest/tests/ssl_test.py   |   76 +
 .../tests/ignitetest/tests/suites/fast_suite.yml   |   34 +
 .../tests/ignitetest/tests/suites/slow_suite.yml   |   20 +
 .../tests/ignitetest/tests/thin_client_test.py     |   63 +
 .../ducktests/tests/ignitetest/utils/__init__.py   |   22 +
 modules/ducktests/tests/ignitetest/utils/_mark.py  |  233 +++
 modules/ducktests/tests/ignitetest/utils/enum.py   |   66 +
 .../tests/ignitetest/utils/ignite_test.py          |   76 +
 .../ducktests/tests/ignitetest/utils/version.py    |  101 ++
 modules/ducktests/tests/setup.py                   |   34 +
 modules/ducktests/tests/tox.ini                    |   65 +
 .../cache/PlatformTestCachePluginProvider.java     |   49 +-
 modules/extdata/uri/pom.xml                        |   59 +-
 .../HibernateL2CacheTransactionalSelfTest.java     |    3 +-
 .../HibernateL2CacheTransactionalSelfTest.java     |    3 +-
 .../HibernateL2CacheTransactionalSelfTest.java     |    3 +-
 modules/indexing/pom.xml                           |    7 +
 .../StatisticsColumnConfigurationViewWalker.java   |   87 +
 .../StatisticsColumnLocalDataViewWalker.java       |   90 ++
 .../StatisticsColumnPartitionDataViewWalker.java   |   96 ++
 .../processors/query/h2/CommandProcessor.java      |  268 +++-
 .../processors/query/h2/IgniteH2Indexing.java      |   16 +
 .../internal/processors/query/h2/QueryParser.java  |    3 +-
 .../processors/query/h2/SchemaManager.java         |  135 +-
 .../query/h2/database/H2TreeIndexBase.java         |    2 +-
 .../query/h2/index/QueryIndexDefinition.java       |    6 +-
 .../processors/query/h2/opt/GridH2ProxyIndex.java  |    2 +-
 .../processors/query/h2/opt/GridH2Table.java       |   18 +
 .../processors/query/h2/opt/H2IndexCostedBase.java |  510 +++++-
 .../h2/sys/view/SqlSystemViewBaselineNodes.java    |   88 --
 .../view/SqlSystemViewCacheGroupsIOStatistics.java |  124 --
 .../h2/sys/view/SqlSystemViewNodeAttributes.java   |  108 --
 .../h2/sys/view/SqlSystemViewNodeMetrics.java      |  211 ---
 .../query/h2/twostep/GridMapQueryExecutor.java     |    9 +-
 .../query/h2/twostep/GridReduceQueryExecutor.java  |    4 +-
 .../h2/twostep/PartitionReservationManager.java    |    5 +-
 .../processors/query/stat/ColumnStatistics.java    |  182 +++
 .../query/stat/ColumnStatisticsCollector.java      |  274 ++++
 .../query/stat/GatherStatisticCancelException.java |   28 +
 .../internal/processors/query/stat/Hasher.java     |  233 +++
 .../stat/IgniteStatisticsConfigurationManager.java |  821 ++++++++++
 .../query/stat/IgniteStatisticsDummyStoreImpl.java |  127 ++
 .../query/stat/IgniteStatisticsHelper.java         |  212 +++
 .../stat/IgniteStatisticsInMemoryStoreImpl.java    |  213 +++
 .../query/stat/IgniteStatisticsManagerImpl.java    |  409 +++++
 .../stat/IgniteStatisticsPersistenceStoreImpl.java |  665 ++++++++
 .../query/stat/IgniteStatisticsRepository.java     |  657 ++++++++
 .../query/stat/IgniteStatisticsStore.java          |  120 ++
 .../stat/LocalStatisticsGatheringContext.java      |  109 ++
 .../query/stat/ObjectPartitionStatisticsImpl.java  |  100 ++
 .../ObjectPartitionStatisticsObsolescence.java     |   96 ++
 .../query/stat/ObjectStatisticsImpl.java           |  107 ++
 .../processors/query/stat/StatisticsGatherer.java  |  282 ++++
 .../processors/query/stat/StatisticsType.java      |   44 +
 .../processors/query/stat/StatisticsUtils.java     |  175 ++
 .../internal/processors/query/stat/hll/HLL.java    | 1159 ++++++++++++++
 .../processors/query/stat/hll/HLLType.java         |   29 +
 .../BigEndianAscendingWordDeserializer.java        |  168 ++
 .../BigEndianAscendingWordSerializer.java          |  170 ++
 .../query/stat/hll/serialization/HLLMetadata.java  |  147 ++
 .../query/stat/hll/serialization/IHLLMetadata.java |   71 +
 .../stat/hll/serialization/ISchemaVersion.java     |   87 +
 .../stat/hll/serialization/IWordDeserializer.java  |   41 +
 .../stat/hll/serialization/IWordSerializer.java    |   37 +
 .../stat/hll/serialization/SchemaVersionOne.java   |  153 ++
 .../stat/hll/serialization/SerializationUtil.java  |  281 ++++
 .../processors/query/stat/hll/util/BitUtil.java    |   71 +
 .../processors/query/stat/hll/util/BitVector.java  |  288 ++++
 .../processors/query/stat/hll/util/HLLUtil.java    |  203 +++
 .../query/stat/hll/util/LongIterator.java          |   35 +
 .../processors/query/stat/hll/util/NumberUtil.java |  178 +++
 .../query/stat/messages/StatisticsColumnData.java  |  338 ++++
 .../query/stat/messages/StatisticsKeyMessage.java  |  193 +++
 .../query/stat/messages/StatisticsObjectData.java  |  266 ++++
 .../query/stat/task/GatherPartitionStatistics.java |  196 +++
 .../view/StatisticsColumnConfigurationView.java    |  118 ++
 .../stat/view/StatisticsColumnLocalDataView.java   |  144 ++
 .../view/StatisticsColumnPartitionDataView.java    |  159 ++
 .../org/apache/ignite/internal/cdc/SqlCdcTest.java |  179 +++
 .../metric/AbstractIndexPageMetricsTest.java       |  207 +++
 .../ignite/internal/metric/IndexPageCounter.java   |  102 ++
 .../metric/IndexPagesMetricsInMemoryTest.java      |   47 +
 .../IndexPagesMetricsPageDisplacementTest.java     |  194 +++
 .../metric/IndexPagesMetricsPersistentTest.java    |   70 +
 ...ervationsOnDoneAfterTopologyUnlockFailTest.java |   75 +
 .../cache/index/AbstractRebuildIndexTest.java      |  336 ++++
 .../cache/index/ForceRebuildIndexTest.java         |  180 +--
 .../processors/cache/index/IgniteH2IndexingEx.java |  113 ++
 .../cache/index/IndexesRebuildTaskEx.java          |  102 +-
 .../processors/cache/index/IndexingTestUtils.java  |  179 +++
 .../cache/index/RenameIndexTreeTest.java           |  294 ++++
 .../cache/index/ResumeCreateIndexTest.java         |  492 ++++++
 .../cache/index/ResumeRebuildIndexTest.java        |  442 ++++++
 .../cache/index/StopRebuildIndexTest.java          |   90 +-
 ...gniteCacheLocalQueryDefaultTimeoutSelfTest.java |   20 +-
 .../cache/metric/SqlViewExporterSpiTest.java       |    6 +-
 .../IgnitePdsIndexingDefragmentationTest.java      |    2 +
 .../persistence/db/wal/IgniteWalRecoveryTest.java  |   26 +-
 .../IgniteClusterSnapshotCheckWithIndexesTest.java |    6 +-
 .../IgniteClusterSnapshotWithIndexesTest.java      |    2 +
 ...niteSqlSinglePartitionMultiParallelismTest.java |  157 ++
 .../processors/query/SqlSystemViewsSelfTest.java   |   65 +-
 .../inlinecolumn/InlineIndexColumnTest.java        |   76 +-
 .../ColumnStatisticsCollectorAggregationTest.java  |  124 ++
 .../query/stat/ColumnStatisticsCollectorTest.java  |  199 +++
 .../processors/query/stat/HasherSelfTest.java      |   79 +
 .../stat/IgniteStatisticsRepositoryStaticTest.java |  133 ++
 .../query/stat/IgniteStatisticsRepositoryTest.java |  249 +++
 .../query/stat/ManagerStatisticsTypesTest.java     |  290 ++++
 ...cValueDistributionTableStatisticsUsageTest.java |  271 ++++
 .../PSUCompositeIndexTableStatisticsUsageTest.java |  136 ++
 .../stat/PSUStatisticPartialGatheringTest.java     |   90 ++
 .../query/stat/PSUStatisticsStorageTest.java       |   95 ++
 .../query/stat/PSUStatisticsTypesTest.java         |  281 ++++
 ...UValueDistributionTableStatisticsUsageTest.java |  144 ++
 .../query/stat/SqlStatisticsCommandTests.java      |  313 ++++
 .../query/stat/StatisticsAbstractTest.java         |  706 +++++++++
 .../processors/query/stat/StatisticsClearTest.java |  205 +++
 .../query/stat/StatisticsConfigurationTest.java    |  635 ++++++++
 .../query/stat/StatisticsGatheringTest.java        |   99 ++
 .../query/stat/StatisticsObsolescenceTest.java     |  129 ++
 .../query/stat/StatisticsRestartAbstractTest.java  |   92 ++
 .../query/stat/StatisticsStorageAbstractTest.java  |   72 +
 .../query/stat/StatisticsStorageInMemoryTest.java  |   41 +
 .../stat/StatisticsStoragePersistenceTest.java     |   41 +
 .../query/stat/StatisticsStorageRestartTest.java   |  140 ++
 .../query/stat/StatisticsStorageTest.java          |  193 +++
 .../query/stat/StatisticsStorageUnitTest.java      |  146 ++
 .../query/stat/StatisticsTypesAbstractTest.java    |  206 +++
 .../query/stat/StatisticsViewsInMemoryTest.java    |   41 +
 .../query/stat/StatisticsViewsPersistenceTest.java |   41 +
 .../processors/query/stat/StatisticsViewsTest.java |  245 +++
 .../processors/query/stat/hll/FullHLLTest.java     |  445 ++++++
 .../query/stat/hll/ProbabilisticTestUtil.java      |   79 +
 .../timeout/AbstractDefaultQueryTimeoutTest.java   |   22 +-
 .../timeout/DefaultQueryTimeoutTestSuite.java      |    3 -
 .../DefaultQueryTimeoutThickJavaLazyTest.java      |   28 -
 .../timeout/DefaultQueryTimeoutThickJavaTest.java  |   61 +-
 ...DefaultQueryTimeoutThickJavaUpdateLazyTest.java |   28 -
 .../DefaultQueryTimeoutThickJavaUpdateTest.java    |   28 -
 .../IgniteBinaryCacheQueryTestSuite.java           |   10 +-
 .../testsuites/IgniteCacheQuerySelfTestSuite6.java |    4 +-
 ...teCacheWithIndexingAndPersistenceTestSuite.java |    6 +-
 .../IgniteCacheWithIndexingTestSuite.java          |    5 +-
 .../IgnitePdsWithIndexingCoreTestSuite.java        |    4 +-
 .../testsuites/IgnitePdsWithIndexingTestSuite.java |    8 +-
 .../testsuites/IgniteStatisticsTestSuite.java      |   99 ++
 modules/jta/pom.xml                                |    6 +
 .../cache/GridJtaTransactionManagerSelfTest.java   |    3 +-
 .../cache/jta/AbstractCacheJtaSelfTest.java        |    3 +-
 modules/kubernetes/pom.xml                         |    7 -
 .../apache/ignite/logger/log4j/Log4JLogger.java    |    8 +-
 .../ignite/logger/log4j/Log4jNodeIdFilePath.java   |   14 +-
 .../apache/ignite/logger/log4j2/Log4J2Logger.java  |   10 +-
 .../ignite/logger/log4j2/Log4j2LoggerSelfTest.java |   16 +-
 .../cluster-compute-example/CMakeLists.txt         |   13 +-
 .../src/network/ssl/secure_socket_client.cpp       |   20 +-
 .../platforms/cpp/odbc-test/src/sql_types_test.cpp |   48 +
 .../cpp/odbc/src/app/application_data_buffer.cpp   |    2 +-
 modules/platforms/cpp/odbc/src/connection.cpp      |    3 +-
 .../ignite/thin/ignite_client_configuration.h      |    2 +-
 modules/platforms/dotnet/.config/dotnet-tools.json |   12 +
 .../Apache.Ignite.BenchmarkDotNet.csproj           |    4 +
 .../DataStreamer/DataStreamerBatchSizeBenchmark.cs |   83 +
 .../DataStreamer/DataStreamerBenchmark.cs          |    2 +-
 .../ThinClient/ThinClientBenchmarkBase.cs          |    4 +-
 .../ThinClient/ThinClientDataStreamerBenchmark.cs  |   98 ++
 ...ThinClientDataStreamerBenchmarkMultithreaded.cs |   95 ++
 .../ThinClientDataStreamerFlushBenchmark.cs        |  121 ++
 .../dotnet/Apache.Ignite.BenchmarkDotNet/Utils.cs  |   13 +-
 .../Apache.Ignite.Benchmarks.DotNetCore.csproj     |    6 +-
 .../Apache.Ignite.Benchmarks/BenchmarkBase.cs      |   10 +-
 .../Apache.Ignite.Benchmarks/BenchmarkRunner.cs    |    2 +-
 .../Apache.Ignite.Benchmarks/BenchmarkUtils.cs     |    6 +-
 .../Result/BenchmarkFileResultWriter.cs            |    4 +-
 .../Apache.Ignite.Core.Tests.DotNetCore.csproj     |    5 +
 .../Apache.Ignite.Core.Tests.csproj                |    5 +
 .../Serializable/AdvancedSerializationTest.cs      |    2 +
 .../Platform/PlatformCacheTopologyChangeTest.cs    |    2 +-
 .../Cache/Query/CacheQueriesTest.cs                |    2 +-
 .../Continuous/ContinuousQueryAbstractTest.cs      |    8 +-
 .../Query/QueryEntityMetadataRegistrationTest.cs   |    4 +
 .../Client/Cache/CacheTest.cs                      |   18 +
 .../Client/Cache/ContinuousQueryTest.cs            |   12 +-
 .../Client/Cache/EmptyObject.cs                    |    2 +-
 .../Client/Cache/PartitionAwarenessTest.cs         |   60 +-
 .../Client/Cache/SerializableObjectsTest.cs        |   24 +-
 .../Client/ClientConnectionTest.cs                 |    3 +-
 .../Client/ClientSecurityPermissionsTest.cs        |  107 ++
 .../Client/ClientTestBase.cs                       |   19 +-
 .../Client/Cluster/ClientClusterDiscoveryTests.cs  |   18 +-
 .../Cluster/ClientClusterDiscoveryTestsBase.cs     |    3 +-
 .../Client/Datastream/DataStreamerClientTest.cs    |  825 ++++++++++
 .../DataStreamerClientTestPartitionAware.cs        |   38 +
 .../DataStreamerClientTopologyChangeTest.cs        |  344 ++++
 ...reamerClientTopologyChangeTestPartitionAware.cs |   37 +
 .../Client/IgniteClientConfigurationTest.cs        |    7 +-
 .../Config/full-config.xml                         |    1 +
 .../Dataload/DataStreamerTest.cs                   |   18 +-
 .../Apache.Ignite.Core.Tests/DisposeAction.cs      |    2 +-
 .../Examples/ProjectFilesTest.cs                   |    2 +-
 .../IgniteConfigurationSerializerTest.cs           |    2 +
 .../IgniteConfigurationTest.cs                     |    3 +
 .../Process/IgniteProcess.cs                       |    6 +-
 .../Process/IgniteProcessConsoleOutputReader.cs    |    4 +-
 .../Apache.Ignite.Core.Tests/ProjectFilesTest.cs   |    4 +-
 .../Services/PlatformTestService.cs                |    1 +
 .../dotnet/Apache.Ignite.Core.Tests/ShellTests.cs  |   54 +
 .../dotnet/Apache.Ignite.Core.Tests/TestUtils.cs   |   42 +-
 .../Apache.Ignite.Core.Tests/TestUtilsJni.cs       |   13 +
 .../Apache.Ignite.Core.DotNetCore.csproj           |   13 +-
 .../Apache.Ignite.Core/Apache.Ignite.Core.csproj   |   10 +-
 .../Apache.Ignite.Core/Apache.Ignite.Core.ruleset  |   26 -
 .../Binary/BinaryBasicNameMapper.cs                |    3 +
 .../Cache/Affinity/AffinityKeyMappedAttribute.cs   |    4 +-
 .../Cache/Configuration/MemoryConfiguration.cs     |    5 +-
 .../Apache.Ignite.Core/Client/ClientStatusCode.cs  |    5 +
 .../Client/Datastream/DataStreamerClientOptions.cs |  213 +++
 .../Client/Datastream/IDataStreamerClient.cs       |  102 ++
 .../Apache.Ignite.Core/Client/IIgniteClient.cs     |   33 +
 .../Client/IgniteClientConfiguration.cs            |   14 +-
 .../Apache.Ignite.Core/Client/SslStreamFactory.cs  |    9 +-
 .../Client/Transactions/ITransactionsClient.cs     |    2 +-
 .../Common/IgniteProductVersion.cs                 |   10 +-
 .../Configuration/DataStorageConfiguration.cs      |    9 +
 .../Configuration/LockConfiguration.cs             |    4 +
 .../Encryption/Keystore/KeystoreEncryptionSpi.cs   |   11 +-
 .../Apache.Ignite.Core/IgniteConfiguration.cs      |    2 +
 .../IgniteConfigurationSection.xsd                 |    5 +
 .../dotnet/Apache.Ignite.Core/Ignition.cs          |    1 +
 .../Impl/Binary/BinaryHashCodeUtils.cs             |  132 +-
 .../Apache.Ignite.Core/Impl/Binary/BinaryUtils.cs  |    2 +-
 .../Impl/Binary/Io/BinaryHeapStream.cs             |   18 +-
 .../Impl/Binary/Structure/BinaryStructureEntry.cs  |    3 +-
 .../Binary/Structure/BinaryStructureJumpTable.cs   |    2 +-
 .../Query/Continuous/ContinuousQueryHandleImpl.cs  |    7 +
 .../Impl/Client/Cache/CacheClient.cs               |   12 +-
 .../Impl/Client/ClientFailoverSocket.cs            |    7 +-
 .../Apache.Ignite.Core/Impl/Client/ClientOp.cs     |    6 +-
 .../Impl/Client/ClientPlatformId.cs                |   33 +
 .../Apache.Ignite.Core/Impl/Client/ClientSocket.cs |   36 +-
 .../Impl/Client/Compute/ComputeClient.cs           |   13 +-
 .../Impl/Client/Datastream/DataStreamerClient.cs   |  699 ++++++++
 .../Client/Datastream/DataStreamerClientBuffer.cs  |  346 ++++
 .../Client/Datastream/DataStreamerClientEntry.cs   |  102 ++
 .../Datastream/DataStreamerClientPerNodeBuffer.cs  |  154 ++
 .../Apache.Ignite.Core/Impl/Client/IgniteClient.cs |   23 +
 .../Apache.Ignite.Core/Impl/Common/Classpath.cs    |   14 +-
 .../Common/IgniteConfigurationXmlSerializer.cs     |   13 +-
 .../Apache.Ignite.Core/Impl/Common/TaskRunner.cs   |   19 +
 .../Impl/Datastream/DataStreamerImpl.cs            |    2 +
 .../Apache.Ignite.Core/Impl/IgniteManager.cs       |    2 +-
 .../Apache.Ignite.Core/Impl/PlatformJniTarget.cs   |   18 +-
 .../dotnet/Apache.Ignite.Core/Impl/Shell.cs        |   43 +-
 .../Impl/Unmanaged/Jni/JvmDll.cs                   |    7 +-
 .../dotnet/Apache.Ignite.Core/Impl/Unmanaged/Os.cs |    6 +-
 .../Impl/Unmanaged/UnmanagedCallbacks.cs           |    2 +
 .../Apache.Ignite.DotNetCore.sln.DotSettings       |    1 +
 .../Apache.Ignite.Linq.DotNetCore.csproj           |   17 +-
 .../Apache.Ignite.Linq/Apache.Ignite.Linq.csproj   |    1 -
 .../CacheClientLinqExtensions.cs                   |   28 +-
 .../Apache.Ignite.Linq/CacheLinqExtensions.cs      |   39 +-
 .../Impl/CacheQueryExpressionVisitor.cs            |   42 +-
 .../Impl/CacheQueryModelVisitor.cs                 |   28 +-
 .../Impl/Dml/RemoveAllExpressionNode.cs            |    4 +-
 .../Impl/Dml/UpdateAllExpressionNode.cs            |    9 +-
 .../Apache.Ignite.Linq/Impl/MethodVisitor.cs       |   14 +-
 .../platforms/dotnet/Apache.Ignite.Tests.ruleset   |  136 ++
 modules/platforms/dotnet/Apache.Ignite.ruleset     |   71 +
 .../Apache.Ignite/Apache.Ignite.DotNetCore.csproj  |   13 +
 .../Apache.Ignite/Config/ArgsConfigurator.cs       |    2 +-
 .../platforms/dotnet/Apache.Ignite/IgniteRunner.cs |   28 +-
 .../Service/IgniteService.DotNetCore.cs            |    3 +
 modules/platforms/dotnet/Directory.Build.props     |   23 +
 .../dotnet/examples/Directory.Build.props          |    4 +
 .../examples/Thick/Cache/DataStreamer/Program.cs   |    2 +-
 .../platforms/dotnet/release/Directory.Build.props |   23 +
 .../config/cdc/cdc-config-without-persistence.xml  |   30 +
 .../src/test/config/cdc/correct-cdc-config.xml     |   53 +
 .../src/test/config/cdc/double-cdc-config.xml      |   30 +
 .../src/test/config/cdc/double-ignite-config.xml   |   30 +
 .../apache/ignite/cdc/CdcConfigurationTest.java    |  140 ++
 .../ignite/testsuites/IgniteSpringTestSuite.java   |    6 +-
 modules/urideploy/pom.xml                          |    7 -
 .../org/apache/ignite/yardstick/cache/Loader.java  |    2 +-
 ...coverySegmentationAndConnectionRestoreTest.java |    3 -
 packaging/deb/changelog                            |   12 +
 packaging/rpm/apache-ignite.spec                   |    8 +-
 parent/pom.xml                                     |   12 +-
 pom.xml                                            |   18 +
 scripts/build-module.sh                            |   26 +
 scripts/build.sh                                   |   25 +
 849 files changed, 59514 insertions(+), 5474 deletions(-)
 create mode 100755 bin/ignite-cdc.sh
 create mode 100644 bin/index-reader.bat
 create mode 100644 bin/index-reader.sh
 create mode 100644 docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/ReplacementPolicies.java
 create mode 100644 docs/_docs/memory-configuration/replacement-policies.adoc
 create mode 100644 modules/clients/src/test/java/org/apache/ignite/common/NodeSslConnectionMetricTest.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/ProgressPrinter.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/StringBuilderOutputStream.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/argument/parser/CLIArgument.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/argument/parser/CLIArgumentParser.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/CacheAwareLink.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/CountOnlyStorage.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/IgniteIndexReader.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/IgniteIndexReaderFilePageStoreFactory.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/IgniteIndexReaderFilePageStoreFactoryImpl.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/IndexReaderUtils.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/ItemCallback.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/ItemStorage.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/ItemsListStorage.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/LinkStorage.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/PageCallback.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/PageContent.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/PageListsInfo.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/TreeNode.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/TreeTraversalInfo.java
 create mode 100644 modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/TreeTraverseContext.java
 create mode 100644 modules/control-utility/src/test/java/org/apache/ignite/internal/commandline/indexreader/IgniteIndexReaderTest.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/cache/CacheEntryVersion.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/cdc/CdcConfiguration.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/cdc/CdcConsumer.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/cdc/CdcEvent.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/cdc/CdcLoader.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/cdc/CdcConsumerState.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/cdc/CdcEventImpl.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/cdc/CdcFileLockHolder.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/cdc/CdcMain.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/cdc/WalRecordsConsumer.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/BaselineNodeAttributeViewWalker.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/BaselineNodeViewWalker.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/CacheGroupIoViewWalker.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/NodeAttributeViewWalker.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/NodeMetricsViewWalker.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/IndexRenameRootPageRecord.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/FileLockHolder.java
 delete mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/diagnostic/pagelocktracker/DumpProcessor.java
 delete mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/diagnostic/pagelocktracker/LockTrackerFactory.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/diagnostic/pagelocktracker/MemoryCalculator.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/diagnostic/pagelocktracker/PageLockThreadState.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/diagnostic/pagelocktracker/PageLockTrackerFactory.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/diagnostic/pagelocktracker/SharedPageLockTrackerDump.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/diagnostic/pagelocktracker/ThreadPageLockState.java
 delete mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/diagnostic/pagelocktracker/ThreadPageLocksDumpLock.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/diagnostic/pagelocktracker/dumpprocessors/ToStringDumpHelper.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/diagnostic/pagelocktracker/log/LogEntry.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/filename/PdsFolderResolver.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMetrics.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMetricsImpl.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotPartitionsVerifyTaskArg.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotPartitionsVerifyTaskResult.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotRestoreCancelTask.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotRestoreManagementTask.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotRestoreStatusTask.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/streamer/ClientDataStreamerAddDataRequest.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/streamer/ClientDataStreamerFlags.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/streamer/ClientDataStreamerHandle.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/streamer/ClientDataStreamerReader.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/streamer/ClientDataStreamerRequest.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/streamer/ClientDataStreamerStartRequest.java
 delete mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/query/IndexRebuildAware.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/query/aware/IndexBuildStatusHolder.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/query/aware/IndexBuildStatusStorage.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/query/aware/IndexRebuildCacheInfo.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/query/aware/IndexRebuildFutureStorage.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/query/stat/IgniteStatisticsManager.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/query/stat/ObjectStatistics.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/query/stat/StatisticsKey.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/query/stat/StatisticsTarget.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/query/stat/StatisticsUsageState.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/query/stat/config/StatisticsColumnConfiguration.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/query/stat/config/StatisticsColumnOverrides.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/processors/query/stat/config/StatisticsObjectConfiguration.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/sql/command/SqlAnalyzeCommand.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/sql/command/SqlDropStatisticsCommand.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/sql/command/SqlRefreshStatitsicsCommand.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/sql/command/SqlStatisticsCommands.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/util/function/ThrowableFunction.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/visor/snapshot/VisorSnapshotRestoreTask.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/visor/snapshot/VisorSnapshotRestoreTaskAction.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/visor/snapshot/VisorSnapshotRestoreTaskArg.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/logger/LoggerNodeIdAndApplicationAware.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/spi/systemview/view/BaselineNodeAttributeView.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/spi/systemview/view/BaselineNodeView.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/spi/systemview/view/CacheGroupIoView.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/spi/systemview/view/NodeAttributeView.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/spi/systemview/view/NodeMetricsView.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/startup/cmdline/CdcCommandLineStartup.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/cache/ReleaseSegmentOnHistoricalRebalanceTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/cdc/AbstractCdcTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/cdc/CdcCacheVersionTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/cdc/CdcSelfTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsClusterActivationTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCachePutKeyAttachedBinaryObjectTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheSeparateDirectoryTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/BinaryMetadataRegisterClassTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/HistoricalRebalanceTwoPartsInDifferentCheckpointsTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManagerSelfTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/RestorePartitionStateDuringCheckpointTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/diagnostic/pagelocktracker/dumpprocessors/ToStringDumpHelperTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManagerSelfTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/sql/SqlParserAnalyzeSelfTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/sql/SqlParserDropStatisticsSelfTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/internal/sql/SqlParserRefreshStatisticsSelfTest.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/platform/PlatformStartIgniteUtils.java
 create mode 100644 modules/core/src/test/java/org/apache/ignite/plugin/AbstractCachePluginProvider.java
 create mode 100644 modules/ducktests/README.md
 copy modules/{zookeeper => ducktests}/licenses/apache-2.0.txt (100%)
 create mode 100644 modules/ducktests/pom.xml
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/ContinuousDataLoadApplication.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/authentication/UserModifyingApplication.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/cellular_affinity_test/CellularAffinityBackupFilter.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/cellular_affinity_test/CellularPreparedTxStreamer.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/cellular_affinity_test/CellularTxStreamer.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/cellular_affinity_test/DistributionChecker.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/client_test/IgniteCachePutClient.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/control_utility/LongRunningTransactionsGenerator.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/persistence_upgrade_test/DataLoaderAndCheckerApplication.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/pme_free_switch_test/LongTxStreamerApplication.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/pme_free_switch_test/SingleKeyTxStreamerApplication.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/rebalance/DataGenerationApplication.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/self_test/TestKillableApplication.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/self_test/TestSelfKillableApplication.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/smoke_test/AssertionApplication.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/smoke_test/SimpleApplication.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/snapshot_test/DataLoaderApplication.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/tests/thin_client_test/ThinClientSelfTestApplication.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/utils/IgniteAwareApplication.java
 create mode 100644 modules/ducktests/src/main/java/org/apache/ignite/internal/ducktest/utils/IgniteAwareApplicationService.java
 create mode 100644 modules/ducktests/src/main/resources/log4j.properties
 create mode 100644 modules/ducktests/tests/MANIFEST.in
 create mode 100644 modules/ducktests/tests/certs/functions.sh
 create mode 100755 modules/ducktests/tests/certs/mkcerts.sh
 create mode 100644 modules/ducktests/tests/checks/utils/check_cluster.py
 create mode 100644 modules/ducktests/tests/checks/utils/check_enum_constructible.py
 create mode 100644 modules/ducktests/tests/checks/utils/check_get_credentials_from_globals.py
 create mode 100644 modules/ducktests/tests/checks/utils/check_get_ssl_params_from_globals.py
 create mode 100644 modules/ducktests/tests/checks/utils/check_jvm_settings.py
 create mode 100644 modules/ducktests/tests/checks/utils/check_parametrized.py
 create mode 100644 modules/ducktests/tests/checks/utils/check_version.py
 create mode 100644 modules/ducktests/tests/docker/Dockerfile
 create mode 100755 modules/ducktests/tests/docker/clean_up.sh
 create mode 100755 modules/ducktests/tests/docker/ducker-ignite
 create mode 100644 modules/ducktests/tests/docker/requirements-dev.txt
 create mode 100644 modules/ducktests/tests/docker/requirements.txt
 create mode 100755 modules/ducktests/tests/docker/run_tests.sh
 create mode 100644 modules/ducktests/tests/docker/ssh-config
 create mode 100644 modules/ducktests/tests/docker/ssh/authorized_keys
 create mode 100644 modules/ducktests/tests/docker/ssh/config
 create mode 100644 modules/ducktests/tests/docker/ssh/id_rsa
 create mode 100644 modules/ducktests/tests/docker/ssh/id_rsa.pub
 create mode 100644 modules/ducktests/tests/ignitetest/__init__.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/__init__.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/ignite.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/ignite_app.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/ignite_execution_exception.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/spark.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/__init__.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/auth/__init__.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/background_thread.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/concurrent.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/config_template.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/control_utility.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/decorators.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/ducktests_service.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/ignite_aware.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/ignite_configuration/__init__.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/ignite_configuration/binary_configuration.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/ignite_configuration/cache.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/ignite_configuration/communication.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/ignite_configuration/data_storage.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/ignite_configuration/discovery.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/jmx_utils.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/jvm_utils.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/log_utils.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/path.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/ssl/__init__.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/ssl/client_connector_configuration.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/ssl/connector_configuration.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/ssl/ssl_params.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/templates/cache_macro.j2
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/templates/communication_macro.j2
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/templates/connector_configuration.j2
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/templates/datastorage_macro.j2
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/templates/discovery_macro.j2
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/templates/ignite.xml.j2
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/templates/log4j.xml.j2
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/templates/misc_macro.j2
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/templates/ssl_params_macro.j2
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/templates/thin_client_config.xml.j2
 create mode 100644 modules/ducktests/tests/ignitetest/services/utils/time_utils.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/zk/__init__.py
 create mode 100644 modules/ducktests/tests/ignitetest/services/zk/templates/log4j.properties.j2
 create mode 100644 modules/ducktests/tests/ignitetest/services/zk/templates/zookeeper.properties.j2
 create mode 100644 modules/ducktests/tests/ignitetest/services/zk/zookeeper.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/__init__.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/auth_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/cellular_affinity_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/client_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/control_utility/__init__.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/control_utility/baseline_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/control_utility/tx_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/discovery_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/persistence_upgrade_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/pme_free_switch_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/rebalance/__init__.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/rebalance/in_memory_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/rebalance/persistent_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/rebalance/util.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/self_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/smoke_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/snapshot_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/ssl_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/tests/suites/fast_suite.yml
 create mode 100644 modules/ducktests/tests/ignitetest/tests/suites/slow_suite.yml
 create mode 100644 modules/ducktests/tests/ignitetest/tests/thin_client_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/utils/__init__.py
 create mode 100644 modules/ducktests/tests/ignitetest/utils/_mark.py
 create mode 100644 modules/ducktests/tests/ignitetest/utils/enum.py
 create mode 100644 modules/ducktests/tests/ignitetest/utils/ignite_test.py
 create mode 100644 modules/ducktests/tests/ignitetest/utils/version.py
 create mode 100644 modules/ducktests/tests/setup.py
 create mode 100644 modules/ducktests/tests/tox.ini
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/managers/systemview/walker/StatisticsColumnConfigurationViewWalker.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/managers/systemview/walker/StatisticsColumnLocalDataViewWalker.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/managers/systemview/walker/StatisticsColumnPartitionDataViewWalker.java
 delete mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sys/view/SqlSystemViewBaselineNodes.java
 delete mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sys/view/SqlSystemViewCacheGroupsIOStatistics.java
 delete mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sys/view/SqlSystemViewNodeAttributes.java
 delete mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sys/view/SqlSystemViewNodeMetrics.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/ColumnStatistics.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/ColumnStatisticsCollector.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/GatherStatisticCancelException.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/Hasher.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/IgniteStatisticsConfigurationManager.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/IgniteStatisticsDummyStoreImpl.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/IgniteStatisticsHelper.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/IgniteStatisticsInMemoryStoreImpl.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/IgniteStatisticsManagerImpl.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/IgniteStatisticsPersistenceStoreImpl.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/IgniteStatisticsRepository.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/IgniteStatisticsStore.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/LocalStatisticsGatheringContext.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/ObjectPartitionStatisticsImpl.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/ObjectPartitionStatisticsObsolescence.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/ObjectStatisticsImpl.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/StatisticsGatherer.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/StatisticsType.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/StatisticsUtils.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/HLL.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/HLLType.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/serialization/BigEndianAscendingWordDeserializer.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/serialization/BigEndianAscendingWordSerializer.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/serialization/HLLMetadata.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/serialization/IHLLMetadata.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/serialization/ISchemaVersion.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/serialization/IWordDeserializer.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/serialization/IWordSerializer.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/serialization/SchemaVersionOne.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/serialization/SerializationUtil.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/util/BitUtil.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/util/BitVector.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/util/HLLUtil.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/util/LongIterator.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/hll/util/NumberUtil.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/messages/StatisticsColumnData.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/messages/StatisticsKeyMessage.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/messages/StatisticsObjectData.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/task/GatherPartitionStatistics.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/view/StatisticsColumnConfigurationView.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/view/StatisticsColumnLocalDataView.java
 create mode 100644 modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/stat/view/StatisticsColumnPartitionDataView.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/cdc/SqlCdcTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/metric/AbstractIndexPageMetricsTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/metric/IndexPageCounter.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/metric/IndexPagesMetricsInMemoryTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/metric/IndexPagesMetricsPageDisplacementTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/metric/IndexPagesMetricsPersistentTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ReservationsOnDoneAfterTopologyUnlockFailTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/AbstractRebuildIndexTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/IgniteH2IndexingEx.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/IndexingTestUtils.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/RenameIndexTreeTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/ResumeCreateIndexTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/ResumeRebuildIndexTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSinglePartitionMultiParallelismTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/ColumnStatisticsCollectorAggregationTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/ColumnStatisticsCollectorTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/HasherSelfTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/IgniteStatisticsRepositoryStaticTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/IgniteStatisticsRepositoryTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/ManagerStatisticsTypesTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/PSUBasicValueDistributionTableStatisticsUsageTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/PSUCompositeIndexTableStatisticsUsageTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/PSUStatisticPartialGatheringTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/PSUStatisticsStorageTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/PSUStatisticsTypesTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/PSUValueDistributionTableStatisticsUsageTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/SqlStatisticsCommandTests.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsAbstractTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsClearTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsConfigurationTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsGatheringTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsObsolescenceTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsRestartAbstractTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsStorageAbstractTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsStorageInMemoryTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsStoragePersistenceTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsStorageRestartTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsStorageTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsStorageUnitTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsTypesAbstractTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsViewsInMemoryTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsViewsPersistenceTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/StatisticsViewsTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/hll/FullHLLTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/stat/hll/ProbabilisticTestUtil.java
 delete mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/timeout/DefaultQueryTimeoutThickJavaLazyTest.java
 delete mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/timeout/DefaultQueryTimeoutThickJavaUpdateLazyTest.java
 delete mode 100644 modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/timeout/DefaultQueryTimeoutThickJavaUpdateTest.java
 create mode 100644 modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteStatisticsTestSuite.java
 create mode 100644 modules/platforms/dotnet/.config/dotnet-tools.json
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.BenchmarkDotNet/DataStreamer/DataStreamerBatchSizeBenchmark.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.BenchmarkDotNet/ThinClient/ThinClientDataStreamerBenchmark.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.BenchmarkDotNet/ThinClient/ThinClientDataStreamerBenchmarkMultithreaded.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.BenchmarkDotNet/ThinClient/ThinClientDataStreamerFlushBenchmark.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core.Tests/Client/ClientSecurityPermissionsTest.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core.Tests/Client/Datastream/DataStreamerClientTest.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core.Tests/Client/Datastream/DataStreamerClientTestPartitionAware.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core.Tests/Client/Datastream/DataStreamerClientTopologyChangeTest.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core.Tests/Client/Datastream/DataStreamerClientTopologyChangeTestPartitionAware.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core.Tests/ShellTests.cs
 delete mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.ruleset
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Client/Datastream/DataStreamerClientOptions.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Client/Datastream/IDataStreamerClient.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Impl/Client/ClientPlatformId.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Impl/Client/Datastream/DataStreamerClient.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Impl/Client/Datastream/DataStreamerClientBuffer.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Impl/Client/Datastream/DataStreamerClientEntry.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Core/Impl/Client/Datastream/DataStreamerClientPerNodeBuffer.cs
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.Tests.ruleset
 create mode 100644 modules/platforms/dotnet/Apache.Ignite.ruleset
 create mode 100644 modules/platforms/dotnet/Directory.Build.props
 create mode 100644 modules/platforms/dotnet/release/Directory.Build.props
 create mode 100644 modules/spring/src/test/config/cdc/cdc-config-without-persistence.xml
 create mode 100644 modules/spring/src/test/config/cdc/correct-cdc-config.xml
 create mode 100644 modules/spring/src/test/config/cdc/double-cdc-config.xml
 create mode 100644 modules/spring/src/test/config/cdc/double-ignite-config.xml
 create mode 100644 modules/spring/src/test/java/org/apache/ignite/cdc/CdcConfigurationTest.java
 create mode 100755 scripts/build-module.sh
 create mode 100755 scripts/build.sh

[ignite] 01/02: Merge branch 'master' into sql-calcite

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

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

commit 3a081e8267c55c2a8ab5ac8028030edbeef0efb3
Merge: 48dbf69 15bc764
Author: tledkov <tl...@gridgain.com>
AuthorDate: Mon Jul 19 11:17:09 2021 +0300

    Merge branch 'master' into sql-calcite
    
    # Conflicts:
    #	modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
    #	modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/CommandProcessor.java
    #	modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/QueryParser.java
    #	modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/SchemaManager.java

 .gitignore                                         |   10 +
 .travis.yml                                        |   22 +-
 RELEASE_NOTES.txt                                  |  105 +-
 bin/control.sh                                     |    2 +-
 bin/ignite-cdc.sh                                  |   27 +
 bin/include/build-classpath.sh                     |   26 +-
 bin/index-reader.bat                               |  222 +++
 bin/index-reader.sh                                |  152 ++
 config/ignite-log4j2.xml                           |    4 +-
 config/java.util.logging.properties                |    2 +-
 docs/_data/toc.yaml                                |    2 +
 docs/_docs/code-snippets/java/pom.xml              |    2 +-
 .../org/apache/ignite/snippets/JavaThinClient.java |   44 +-
 .../ignite/snippets/ReplacementPolicies.java       |   65 +
 .../java/org/apache/ignite/snippets/Snapshots.java |   11 +-
 docs/_docs/code-snippets/xml/log4j2-config.xml     |    4 +-
 .../memory-configuration/eviction-policies.adoc    |    2 +-
 .../memory-configuration/replacement-policies.adoc |   96 ++
 docs/_docs/monitoring-metrics/new-metrics.adoc     |   60 +
 .../monitoring-metrics/performance-statistics.adoc |   36 +-
 docs/_docs/monitoring-metrics/system-views.adoc    |   43 +
 docs/_docs/persistence/native-persistence.adoc     |    2 +
 docs/_docs/snapshots/snapshots.adoc                |   74 +-
 docs/_docs/thin-client-comparison.csv              |    3 +-
 docs/_docs/thin-clients/dotnet-thin-client.adoc    |    6 -
 docs/_docs/thin-clients/java-thin-client.adoc      |   23 +
 docs/_docs/tools/control-script.adoc               |   34 +
 examples/pom-standalone-lgpl.xml                   |    6 +
 examples/pom-standalone.xml                        |    6 +
 modules/azure/pom.xml                              |    7 -
 .../JmhPageLockTrackerBenchmark.java               |   18 +-
 .../benchmarks/jmh/tree/BPlusTreeBenchmark.java    |   39 +-
 .../ignite/common/NodeSslConnectionMetricTest.java |  448 ++++++
 .../client/suite/IgniteClientTestSuite.java        |    4 +-
 .../internal/jdbc2/JdbcMetadataSelfTest.java       |    6 +-
 .../ignite/jdbc/thin/JdbcThinMetadataSelfTest.java |   45 +-
 .../SystemViewRowAttributeWalkerGenerator.java     |   17 +
 .../persistence/FoldersReuseCompatibilityTest.java |   12 +-
 .../compress/CompressionProcessorTest.java         |    4 +-
 .../internal/commandline/ProgressPrinter.java      |  152 ++
 .../commandline/StringBuilderOutputStream.java     |   69 +
 .../commandline/argument/parser/CLIArgument.java   |   98 ++
 .../argument/parser/CLIArgumentParser.java         |  188 +++
 .../commandline/indexreader/CacheAwareLink.java    |   39 +
 .../commandline/indexreader/CountOnlyStorage.java  |   51 +
 .../commandline/indexreader/IgniteIndexReader.java | 1666 ++++++++++++++++++++
 .../IgniteIndexReaderFilePageStoreFactory.java     |  115 ++
 .../IgniteIndexReaderFilePageStoreFactoryImpl.java |  103 ++
 .../commandline/indexreader/IndexReaderUtils.java  |   95 ++
 .../commandline/indexreader/ItemCallback.java      |   26 +
 .../commandline/indexreader/ItemStorage.java       |   33 +
 .../commandline/indexreader/ItemsListStorage.java  |   52 +
 .../commandline/indexreader/LinkStorage.java       |   89 ++
 .../commandline/indexreader/PageCallback.java      |   26 +
 .../commandline/indexreader/PageContent.java       |   47 +
 .../commandline/indexreader/PageListsInfo.java     |   58 +
 .../internal/commandline/indexreader/TreeNode.java |   47 +
 .../commandline/indexreader/TreeTraversalInfo.java |   59 +
 .../indexreader/TreeTraverseContext.java           |   75 +
 .../commandline/snapshot/SnapshotCommand.java      |   77 +-
 .../commandline/snapshot/SnapshotSubcommand.java   |    8 +-
 .../indexreader/IgniteIndexReaderTest.java         | 1187 ++++++++++++++
 .../testsuites/IgniteControlUtilityTestSuite.java  |    5 +-
 .../util/GridCommandHandlerAbstractTest.java       |    8 +-
 .../util/GridCommandHandlerClusterByClassTest.java |    3 +-
 .../util/GridCommandHandlerIndexingTest.java       |    2 +-
 .../util/GridCommandHandlerMetadataTest.java       |  291 +++-
 .../apache/ignite/util/GridCommandHandlerTest.java |  184 ++-
 .../apache/ignite/util/SystemViewCommandTest.java  |   10 +-
 modules/core/pom.xml                               |    7 +
 .../main/java/org/apache/ignite/IgniteBinary.java  |    9 +
 .../java/org/apache/ignite/IgniteSnapshot.java     |    9 +
 .../org/apache/ignite/IgniteSystemProperties.java  |   34 +-
 .../org/apache/ignite/cache/CacheEntryVersion.java |   67 +
 .../rendezvous/RendezvousAffinityFunction.java     |    2 +
 .../org/apache/ignite/cdc/CdcConfiguration.java    |  101 ++
 .../java/org/apache/ignite/cdc/CdcConsumer.java    |   77 +
 .../main/java/org/apache/ignite/cdc/CdcEvent.java  |   79 +
 .../main/java/org/apache/ignite/cdc/CdcLoader.java |   75 +
 .../ignite/configuration/ClientConfiguration.java  |   20 +-
 .../configuration/DataStorageConfiguration.java    |  127 +-
 .../org/apache/ignite/internal/IgniteKernal.java   |    6 +-
 .../org/apache/ignite/internal/IgnitionEx.java     |   92 +-
 .../internal/binary/BinaryEnumObjectImpl.java      |    2 +-
 .../ignite/internal/binary/BinaryObjectImpl.java   |    2 +-
 .../query/index/sorted/inline/InlineIndexImpl.java |   15 +-
 .../ignite/internal/cdc/CdcConsumerState.java      |  114 ++
 .../apache/ignite/internal/cdc/CdcEventImpl.java   |  106 ++
 .../ignite/internal/cdc/CdcFileLockHolder.java     |   55 +
 .../org/apache/ignite/internal/cdc/CdcMain.java    |  556 +++++++
 .../ignite/internal/cdc/WalRecordsConsumer.java    |  174 ++
 .../GridClientConnectionManagerAdapter.java        |    2 +-
 .../client/router/impl/GridTcpRouterImpl.java      |    2 +-
 .../ignite/internal/client/thin/ClientBinary.java  |    8 +
 .../GridNioClientConnectionMultiplexer.java        |    2 +-
 .../commandline/meta/tasks/MetadataInfoTask.java   |   13 +-
 .../internal/dto/IgniteDataTransferObject.java     |    2 +-
 .../managers/discovery/GridDiscoveryManager.java   |   98 +-
 .../managers/encryption/CacheGroupPageScanner.java |    2 +
 .../managers/encryption/GridEncryptionManager.java |   22 +-
 .../managers/indexing/IndexesRebuildTask.java      |    4 +
 .../walker/BaselineNodeAttributeViewWalker.java    |   67 +
 .../systemview/walker/BaselineNodeViewWalker.java  |   46 +
 .../systemview/walker/CacheGroupIoViewWalker.java  |   50 +
 .../systemview/walker/NodeAttributeViewWalker.java |   68 +
 .../systemview/walker/NodeMetricsViewWalker.java   |  158 ++
 .../systemview/walker/SqlQueryViewWalker.java      |   12 +-
 .../ignite/internal/pagemem/PageIdAllocator.java   |   19 +-
 .../ignite/internal/pagemem/PageIdUtils.java       |   25 +-
 .../apache/ignite/internal/pagemem/PageMemory.java |    6 +
 .../pagemem/impl/PageMemoryNoStoreImpl.java        |  123 +-
 .../pagemem/store/IgnitePageStoreManager.java      |    6 +-
 .../pagemem/wal/IgniteWriteAheadLogManager.java    |    7 +-
 .../internal/pagemem/wal/record/DataEntry.java     |   60 +-
 .../internal/pagemem/wal/record/DataRecord.java    |    2 +-
 .../wal/record/IndexRenameRootPageRecord.java      |  158 ++
 .../internal/pagemem/wal/record/LazyDataEntry.java |    6 +-
 .../internal/pagemem/wal/record/MvccDataEntry.java |    2 +-
 .../pagemem/wal/record/UnwrapDataEntry.java        |    6 +-
 .../internal/pagemem/wal/record/WALRecord.java     |   29 +-
 .../wal/record/delta/InitNewPageRecord.java        |    8 +-
 .../wal/record/delta/MetaPageInitRecord.java       |    5 +-
 .../wal/record/delta/NewRootInitRecord.java        |    5 +-
 .../record/delta/PagesListInitNewPageRecord.java   |    5 +-
 .../processors/cache/CacheGroupContext.java        |    8 +-
 .../processors/cache/CacheGroupMetricsImpl.java    |   72 +-
 .../internal/processors/cache/CacheObject.java     |    3 +
 .../processors/cache/CacheObjectAdapter.java       |   23 +-
 .../processors/cache/CacheObjectByteArrayImpl.java |    2 +-
 .../processors/cache/GridCacheAdapter.java         |   13 +-
 .../processors/cache/GridCacheEntryEx.java         |   14 +-
 .../processors/cache/GridCacheMapEntry.java        |   39 +-
 .../processors/cache/GridCacheProcessor.java       |  133 +-
 .../internal/processors/cache/GridCacheUtils.java  |   14 +-
 .../cache/IgniteCacheOffheapManager.java           |   17 +
 .../cache/IgniteCacheOffheapManagerImpl.java       |   10 +
 .../binary/CacheObjectBinaryProcessorImpl.java     |    8 +
 .../processors/cache/binary/IgniteBinaryImpl.java  |   12 +
 .../distributed/GridCacheTxRecoveryFuture.java     |    7 +-
 .../GridDistributedTxRemoteAdapter.java            |    7 +-
 .../cache/distributed/dht/GridDhtCacheAdapter.java |    1 +
 .../cache/distributed/dht/GridDhtLockFuture.java   |   11 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java    |   20 +-
 .../dht/colocated/GridDhtColocatedLockFuture.java  |    7 +-
 .../dht/colocated/GridDhtDetachedCacheEntry.java   |    6 +-
 .../dht/preloader/GridDhtForceKeysFuture.java      |    1 +
 .../dht/preloader/GridDhtPartitionDemander.java    |   28 +-
 .../dht/preloader/GridDhtPartitionSupplier.java    |    3 +-
 .../preloader/GridDhtPartitionsExchangeFuture.java |   28 +-
 .../dht/preloader/GridDhtPreloader.java            |   16 +-
 .../cache/distributed/near/GridNearCacheEntry.java |    7 +-
 .../cache/distributed/near/GridNearLockFuture.java |    7 +-
 ...dNearOptimisticSerializableTxPrepareFuture.java |    7 +-
 .../near/GridNearOptimisticTxPrepareFuture.java    |   21 +-
 .../near/GridNearPessimisticTxPrepareFuture.java   |    7 +-
 .../distributed/near/GridNearTxFinishFuture.java   |   19 +-
 .../near/GridNearTxQueryEnlistFuture.java          |   13 +-
 .../processors/cache/mvcc/MvccProcessorImpl.java   |    8 +-
 .../processors/cache/mvcc/txlog/TxLog.java         |   17 +-
 .../processors/cache/persistence/DataRegion.java   |   12 +-
 .../cache/persistence/DataRegionMetricsImpl.java   |  289 +++-
 .../persistence/DataRegionMetricsMXBeanImpl.java   |   11 +-
 .../cache/persistence/DataStructure.java           |    8 +
 .../cache/persistence/FileLockHolder.java          |  202 +++
 .../GridCacheDatabaseSharedManager.java            |  408 ++---
 .../cache/persistence/GridCacheOffheapManager.java |   35 +-
 .../IgniteCacheDatabaseSharedManager.java          |  116 +-
 .../processors/cache/persistence/IndexStorage.java |   17 +
 .../cache/persistence/IndexStorageImpl.java        |   74 +-
 .../persistence/checkpoint/CheckpointHistory.java  |    2 +-
 .../checkpoint/CheckpointHistoryResult.java        |   25 +-
 .../cache/persistence/checkpoint/Checkpointer.java |    4 +-
 .../persistence/defragmentation/PageStoreMap.java  |    2 +-
 .../diagnostic/pagelocktracker/DumpProcessor.java  |   41 -
 .../diagnostic/pagelocktracker/DumpSupported.java  |    9 -
 .../pagelocktracker/LockTrackerFactory.java        |  112 --
 .../pagelocktracker/MemoryCalculator.java          |   70 +
 .../diagnostic/pagelocktracker/PageLockDump.java   |   54 +-
 .../pagelocktracker/PageLockThreadState.java       |   58 +
 .../pagelocktracker/PageLockTracker.java           |    8 -
 .../pagelocktracker/PageLockTrackerFactory.java    |  111 ++
 .../pagelocktracker/PageLockTrackerMXBeanImpl.java |    2 -
 .../pagelocktracker/PageLockTrackerManager.java    |   65 +-
 .../pagelocktracker/SharedPageLockTracker.java     |  143 +-
 .../pagelocktracker/SharedPageLockTrackerDump.java |   52 +
 .../pagelocktracker/ThreadPageLockState.java       |   51 +
 .../pagelocktracker/ThreadPageLocksDumpLock.java   |   96 --
 .../dumpprocessors/ToFileDumpProcessor.java        |   12 +-
 .../dumpprocessors/ToStringDumpHelper.java         |   58 +
 .../dumpprocessors/ToStringDumpProcessor.java      |  436 +++--
 .../diagnostic/pagelocktracker/log/LockLog.java    |   36 +-
 .../diagnostic/pagelocktracker/log/LogEntry.java   |   43 +
 .../pagelocktracker/log/PageLockLogSnapshot.java   |  112 +-
 .../pagelocktracker/stack/LockStack.java           |    8 +-
 .../stack/PageLockStackSnapshot.java               |   45 +-
 .../store/HeapPageMetaInfoStore.java               |   38 +-
 .../store/OffHeapPageMetaInfoStore.java            |   50 +-
 .../persistence/file/FilePageStoreManager.java     |   28 +-
 .../filename/PdsConsistentIdProcessor.java         |  481 +-----
 .../persistence/filename/PdsFolderResolver.java    |  528 +++++++
 .../persistence/filename/PdsFolderSettings.java    |   10 +-
 .../persistence/filename/PdsFoldersResolver.java   |    3 +-
 .../persistence/freelist/AbstractFreeList.java     |   18 +-
 .../cache/persistence/freelist/CacheFreeList.java  |   10 +-
 .../cache/persistence/freelist/PagesList.java      |   12 +-
 .../persistence/freelist/io/PagesListMetaIO.java   |    5 +-
 .../persistence/freelist/io/PagesListNodeIO.java   |    7 +-
 .../cache/persistence/metastorage/MetaStorage.java |   29 +-
 .../cache/persistence/pagemem/PageMemoryImpl.java  |  129 +-
 .../cache/persistence/pagemem/PageMetrics.java     |   40 +
 .../cache/persistence/pagemem/PageMetricsImpl.java |  134 ++
 .../pagemem/PagesWriteSpeedBasedThrottle.java      |   12 +-
 .../partstorage/PartitionMetaStorageImpl.java      |   10 +-
 .../snapshot/IgniteSnapshotManager.java            |  184 ++-
 .../snapshot/SnapshotPartitionsVerifyTask.java     |   34 +-
 .../snapshot/SnapshotPartitionsVerifyTaskArg.java  |   87 +
 .../SnapshotPartitionsVerifyTaskResult.java        |   94 ++
 .../snapshot/SnapshotRestoreCancelTask.java        |   47 +
 .../snapshot/SnapshotRestoreManagementTask.java    |   73 +
 .../snapshot/SnapshotRestoreProcess.java           |  204 ++-
 .../snapshot/SnapshotRestoreStatusTask.java        |   47 +
 .../cache/persistence/tree/BPlusTree.java          |    5 +-
 .../persistence/tree/io/AbstractDataPageIO.java    |    5 +-
 .../cache/persistence/tree/io/BPlusIO.java         |   10 +-
 .../cache/persistence/tree/io/BPlusInnerIO.java    |    6 +-
 .../cache/persistence/tree/io/PageIO.java          |   61 +-
 .../cache/persistence/tree/io/PageMetaIO.java      |    5 +-
 .../cache/persistence/tree/io/PageMetaIOV2.java    |    5 +-
 .../tree/io/PagePartitionCountersIO.java           |    5 +-
 .../persistence/tree/io/PagePartitionMetaIO.java   |    5 +-
 .../persistence/tree/io/PagePartitionMetaIOV2.java |    5 +-
 .../persistence/tree/io/PagePartitionMetaIOV3.java |    5 +-
 .../cache/persistence/tree/util/PageHandler.java   |    5 +-
 .../wal/AbstractWalRecordsIterator.java            |    3 +
 .../persistence/wal/FileWriteAheadLogManager.java  |  219 ++-
 .../wal/aware/SegmentArchiveSizeStorage.java       |  161 +-
 .../cache/persistence/wal/aware/SegmentAware.java  |   48 +-
 .../wal/aware/SegmentReservationStorage.java       |   50 +-
 .../wal/reader/StandaloneWalRecordsIterator.java   |    7 +-
 .../wal/serializer/RecordDataV1Serializer.java     |   62 +-
 .../wal/serializer/RecordDataV2Serializer.java     |   12 +-
 .../cache/store/GridCacheWriteBehindStore.java     |   25 +-
 .../cache/transactions/IgniteTxLocalAdapter.java   |    5 +-
 .../cache/transactions/IgniteTxManager.java        |   14 -
 .../processors/cache/tree/AbstractDataLeafIO.java  |    2 +-
 .../cache/tree/CacheIdAwareDataLeafIO.java         |    2 +-
 .../tree/mvcc/data/MvccCacheIdAwareDataLeafIO.java |    2 +-
 .../cache/verify/IdleVerifyResultV2.java           |   73 +-
 .../cache/verify/VerifyBackupPartitionsTaskV2.java |   53 +-
 .../processors/cache/version/GridCacheVersion.java |   31 +-
 .../cache/version/GridCacheVersionEx.java          |    6 +
 .../cache/version/GridCacheVersionManager.java     |    5 +
 .../cacheobject/IgniteCacheObjectProcessor.java    |   10 +
 .../processors/cacheobject/NoOpBinary.java         |    5 +
 .../cluster/GridClusterStateProcessor.java         |   96 ++
 .../processors/datastreamer/DataStreamerImpl.java  |   42 +-
 .../processors/metric/GridMetricManager.java       |   13 +
 .../internal/processors/metric/MetricRegistry.java |    5 +-
 .../processors/metric/impl/LongAdderMetric.java    |   13 +-
 .../metric/impl/LongAdderWithDelegateMetric.java   |   39 +-
 .../processors/metric/impl/MetricUtils.java        |    9 +
 .../processors/odbc/ClientListenerProcessor.java   |    6 +-
 .../processors/platform/PlatformProcessorImpl.java |    3 +
 .../platform/client/ClientMessageParser.java       |   15 +
 .../platform/client/ClientRequestHandler.java      |   31 +-
 .../processors/platform/client/ClientStatus.java   |    3 +
 .../platform/client/cache/ClientCacheRequest.java  |    2 +-
 .../client/cache/ClientCacheScanQueryRequest.java  |    2 +-
 .../streamer/ClientDataStreamerAddDataRequest.java |   85 +
 .../client/streamer/ClientDataStreamerFlags.java   |   38 +
 .../client/streamer/ClientDataStreamerHandle.java  |   56 +
 .../client/streamer/ClientDataStreamerReader.java  |   77 +
 .../client/streamer/ClientDataStreamerRequest.java |   47 +
 .../streamer/ClientDataStreamerStartRequest.java   |  178 +++
 .../platform/utils/PlatformConfigurationUtils.java |    4 +-
 .../processors/query/IndexRebuildAware.java        |  145 --
 .../query/aware/IndexBuildStatusHolder.java        |  174 ++
 .../query/aware/IndexBuildStatusStorage.java       |  352 +++++
 .../query/aware/IndexRebuildCacheInfo.java         |   80 +
 .../query/aware/IndexRebuildFutureStorage.java     |  145 ++
 .../schema/SchemaIndexCachePartitionWorker.java    |    9 +-
 .../query/stat/IgniteStatisticsManager.java        |   89 ++
 .../processors/query/stat/ObjectStatistics.java    |   23 +
 .../processors/query/stat/StatisticsKey.java       |   83 +
 .../processors/query/stat/StatisticsTarget.java    |  103 ++
 .../query/stat/StatisticsUsageState.java           |  104 ++
 .../stat/config/StatisticsColumnConfiguration.java |  208 +++
 .../stat/config/StatisticsColumnOverrides.java     |  112 ++
 .../stat/config/StatisticsObjectConfiguration.java |  278 ++++
 .../processors/resource/GridResourceIoc.java       |    2 +-
 .../rest/protocols/tcp/GridTcpRestProtocol.java    |   14 +-
 .../org/apache/ignite/internal/sql/SqlKeyword.java |    6 +
 .../org/apache/ignite/internal/sql/SqlParser.java  |   51 +
 .../internal/sql/command/SqlAnalyzeCommand.java    |  194 +++
 .../sql/command/SqlDropStatisticsCommand.java      |   25 +
 .../sql/command/SqlRefreshStatitsicsCommand.java   |   25 +
 .../sql/command/SqlStatisticsCommands.java         |  129 ++
 .../ignite/internal/util/GridJavaProcess.java      |   23 +-
 .../apache/ignite/internal/util/IgniteUtils.java   |  139 ++
 .../internal/util/collection/IntHashMap.java       |   20 +-
 .../ignite/internal/util/collection/IntMap.java    |    5 +-
 .../internal/util/collection/IntRWHashMap.java     |    3 +-
 .../internal/util/function/ThrowableFunction.java  |   37 +
 .../internal/util/future/GridCompoundFuture.java   |  117 +-
 .../ignite/internal/util/nio/GridNioServer.java    |   14 +
 .../internal/util/nio/ssl/GridNioSslFilter.java    |   56 +-
 .../internal/visor/VisorDataTransferObject.java    |    3 +
 .../visor/diagnostic/VisorPageLocksTask.java       |    4 +-
 .../visor/node/VisorDataStorageConfiguration.java  |   17 +-
 .../visor/node/VisorGridConfiguration.java         |    2 +-
 .../visor/node/VisorPersistenceMetrics.java        |    2 +-
 .../visor/snapshot/VisorSnapshotRestoreTask.java   |  121 ++
 .../snapshot/VisorSnapshotRestoreTaskAction.java   |   48 +
 .../snapshot/VisorSnapshotRestoreTaskArg.java      |   98 ++
 .../ignite/internal/visor/tx/VisorTxInfo.java      |    2 +-
 .../visor/verify/VisorIdleVerifyTaskArg.java       |    2 +-
 .../logger/LoggerNodeIdAndApplicationAware.java    |   39 +
 .../apache/ignite/logger/LoggerNodeIdAware.java    |    3 +
 .../org/apache/ignite/logger/java/JavaLogger.java  |    8 +-
 .../ignite/logger/java/JavaLoggerFileHandler.java  |   18 +-
 .../ignite/plugin/security/SecurityPermission.java |    8 +-
 .../security/SecurityPermissionSetBuilder.java     |    3 +-
 .../tcp/internal/GridNioServerWrapper.java         |    9 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java       |    5 +-
 .../ignite/spi/discovery/tcp/TcpDiscoverySpi.java  |    2 +
 .../tcp/internal/TcpDiscoveryStatistics.java       |   15 +
 .../systemview/view/BaselineNodeAttributeView.java |   74 +
 .../spi/systemview/view/BaselineNodeView.java      |   58 +
 .../spi/systemview/view/CacheGroupIoView.java      |   82 +
 .../spi/systemview/view/NodeAttributeView.java     |   75 +
 .../spi/systemview/view/NodeMetricsView.java       |  556 +++++++
 .../startup/cmdline/CdcCommandLineStartup.java     |  164 ++
 .../ignite/startup/cmdline/CommandLineStartup.java |    2 +-
 .../main/resources/META-INF/classnames.properties  |    6 +
 modules/core/src/test/config/log4j2-test.xml       |    4 +-
 .../core/src/test/config/log4j2-verbose-test.xml   |    4 +-
 .../java/org/apache/ignite/TestStorageUtils.java   |    3 +-
 .../ReleaseSegmentOnHistoricalRebalanceTest.java   |  408 +++++
 .../org/apache/ignite/cdc/AbstractCdcTest.java     |  252 +++
 .../org/apache/ignite/cdc/CdcCacheVersionTest.java |  230 +++
 .../java/org/apache/ignite/cdc/CdcSelfTest.java    |  414 +++++
 .../apache/ignite/client/SslParametersTest.java    |   14 +-
 .../internal/ClusterNodeMetricsSelfTest.java       |    2 +-
 .../client/thin/AbstractThinClientTest.java        |    2 +-
 .../internal/client/thin/ReliableChannelTest.java  |    8 +-
 .../encryption/CacheGroupReencryptionTest.java     |   40 +
 .../internal/metric/CacheMetricsAddRemoveTest.java |   86 +-
 .../metric/MetricsClusterActivationTest.java       |  220 +++
 .../internal/metric/SystemViewComputeJobTest.java  |   14 +-
 .../ignite/internal/metric/SystemViewSelfTest.java |  204 ++-
 .../pagemem/impl/PageMemoryNoLoadSelfTest.java     |   12 +-
 .../DataStorageConfigurationValidationTest.java    |   72 +-
 .../processors/cache/GridCacheTestEntryEx.java     |    3 +-
 .../IgniteCachePutKeyAttachedBinaryObjectTest.java |  177 +++
 ...IgniteMarshallerCacheSeparateDirectoryTest.java |  214 +++
 .../binary/BinaryMetadataRegisterClassTest.java    |  165 ++
 .../cache/consistency/AbstractReadRepairTest.java  |    1 +
 .../IgniteSequenceInternalCleanupTest.java         |    4 +-
 .../distributed/CacheBaselineTopologyTest.java     |   11 +-
 ...ebalanceTwoPartsInDifferentCheckpointsTest.java |  158 ++
 ...acheRebalancingUnmarshallingFailedSelfTest.java |   22 +-
 .../eviction/paged/PageEvictionMetricTest.java     |    2 +-
 .../IgniteCacheDatabaseSharedManagerSelfTest.java  |   70 +
 .../IgnitePdsRecoveryAfterFileCorruptionTest.java  |    2 +-
 .../IgnitePdsSporadicDataRecordsOnBackupTest.java  |    2 +-
 .../persistence/IgnitePdsTaskCancelingTest.java    |    2 +-
 .../RestorePartitionStateDuringCheckpointTest.java |  139 ++
 .../db/IgniteLogicalRecoveryWithParamsTest.java    |    9 +-
 .../db/IgnitePdsDataRegionMetricsTest.java         |    4 +-
 ...CheckpointSimulationWithRealCpDisabledTest.java |   10 +-
 .../db/file/IgnitePdsPageReplacementTest.java      |    2 +-
 .../IgniteUidAsConsistentIdMigrationTest.java      |   14 +-
 .../IgniteWalIteratorExceptionDuringReadTest.java  |   35 +-
 .../persistence/db/wal/IgniteWalRebalanceTest.java |   52 +-
 .../db/wal/WalArchiveSizeConfigurationTest.java    |   59 +-
 .../persistence/db/wal/WalCompactionTest.java      |    2 +-
 .../db/wal/WalRecoveryTxLogicalRecordsTest.java    |   24 +-
 .../db/wal/reader/IgniteWalReaderTest.java         |  267 +++-
 .../persistence/defragmentation/LinkMapTest.java   |   18 +-
 .../PageLockTrackerManagerTest.java                |    8 +-
 .../pagelocktracker/SharedPageLockTrackerTest.java |   56 +-
 .../dumpprocessors/ToFileDumpProcessorTest.java    |   11 +-
 .../dumpprocessors/ToStringDumpHelperTest.java     |   75 +
 .../pagelocktracker/log/HeapArrayLockLogTest.java  |    6 +-
 .../pagelocktracker/log/OffHeapLockLogTest.java    |    6 +-
 .../pagelocktracker/log/PageLockLogTest.java       |    5 +-
 .../stack/HeapArrayLockStackTest.java              |    6 +-
 .../stack/OffHeapLockStackTest.java                |    6 +-
 .../pagelocktracker/stack/PageLockStackTest.java   |    6 +-
 .../pagemem/BPlusTreePageMemoryImplTest.java       |    7 +-
 .../BPlusTreeReuseListPageMemoryImplTest.java      |    7 +-
 .../IgnitePageMemReplaceDelayedWriteUnitTest.java  |   45 +-
 .../pagemem/IgniteThrottlingUnitTest.java          |   29 +-
 .../pagemem/IndexStoragePageMemoryImplTest.java    |   13 +-
 .../persistence/pagemem/NoOpPageStoreManager.java  |    3 +-
 .../cache/persistence/pagemem/NoOpWALManager.java  |    2 +-
 .../pagemem/PageMemoryImplNoLoadTest.java          |   20 +-
 .../persistence/pagemem/PageMemoryImplTest.java    |  138 +-
 .../pagemem/PageMemoryNoStoreLeakTest.java         |    8 +-
 .../snapshot/AbstractSnapshotSelfTest.java         |    2 +-
 .../snapshot/IgniteClusterSnapshotCheckTest.java   |  150 +-
 .../IgniteClusterSnapshotRestoreBaseTest.java      |    3 -
 .../snapshot/IgniteClusterSnapshotSelfTest.java    |    2 +-
 .../wal/FileWriteAheadLogManagerSelfTest.java      |   52 +
 .../persistence/wal/WalArchiveConsistencyTest.java |    4 +-
 .../persistence/wal/aware/SegmentAwareTest.java    |  328 +++-
 .../wal/memtracker/PageMemoryTracker.java          |   58 +-
 .../persistence/wal/scanner/WalScannerTest.java    |    2 +-
 .../cache/query/CacheDataPageScanQueryTest.java    |    2 +-
 .../store/GridCacheWriteBehindStoreSelfTest.java   |   42 +-
 .../TxRollbackAsyncWithPersistenceTest.java        |   14 -
 .../processors/cluster/BaselineAutoAdjustTest.java |    7 +-
 .../processors/database/BPlusTreeSelfTest.java     |    4 +-
 .../processors/database/CacheFreeListSelfTest.java |   18 +-
 .../database/DataRegionMetricsSelfTest.java        |   18 +-
 .../processors/database/IndexStorageSelfTest.java  |    5 +-
 .../DurableBackgroundTasksProcessorSelfTest.java   |   27 -
 .../metastorage/DistributedMetaStorageTest.java    |    4 +-
 .../persistence/ReadWriteMetaStorageMock.java      |    2 +-
 .../internal/sql/SqlParserAnalyzeSelfTest.java     |   97 ++
 .../sql/SqlParserDropStatisticsSelfTest.java       |   78 +
 .../sql/SqlParserRefreshStatisticsSelfTest.java    |   82 +
 .../ignite/internal/util/IgniteUtilsSelfTest.java  |   28 +
 .../internal/util/collection/IntHashMapTest.java   |   66 +-
 .../internal/util/nio/GridNioSslSelfTest.java      |    2 +-
 .../apache/ignite/logger/java/JavaLoggerTest.java  |   20 +-
 .../ignite/platform/PlatformStartIgniteUtils.java  |   76 +
 .../ignite/plugin/AbstractCachePluginProvider.java |   70 +
 .../security/SecurityPermissionSetBuilderTest.java |    4 +-
 .../apache/ignite/testframework/GridTestUtils.java |   17 +
 .../junits/common/GridCommonAbstractTest.java      |   46 +-
 .../logger/GridLog4jRollingFileAppender.java       |    8 +-
 .../junits/logger/GridTestLog4jLogger.java         |   10 +-
 .../testframework/wal/record/RecordUtils.java      |   27 +
 .../ignite/testsuites/IgniteBasicTestSuite.java    |    4 +
 .../testsuites/IgniteBinaryObjectsTestSuite.java   |    2 +
 .../ignite/testsuites/IgniteCacheTestSuite8.java   |    3 +
 .../ignite/testsuites/IgnitePdsMvccTestSuite4.java |    2 +
 .../ignite/testsuites/IgnitePdsTestSuite.java      |    5 +
 .../ignite/testsuites/IgnitePdsTestSuite2.java     |    9 +
 .../ignite/testsuites/IgnitePdsTestSuite4.java     |    4 +
 ...ridCommandHandlerClusterByClassTest_help.output |   19 +
 ...andHandlerClusterByClassWithSSLTest_help.output |   19 +
 .../ignite/development/utils/DataEntryWrapper.java |    3 +-
 .../apache/ignite/development/utils/WalStat.java   |    4 +-
 .../utils/IgniteWalConverterArgumentsTest.java     |    4 +-
 .../utils/IgniteWalConverterSensitiveDataTest.java |    3 +-
 .../development/utils/IgniteWalConverterTest.java  |    4 +-
 modules/ducktests/README.md                        |  126 ++
 modules/ducktests/licenses/apache-2.0.txt          |  202 +++
 modules/ducktests/pom.xml                          |  220 +++
 .../tests/ContinuousDataLoadApplication.java       |  170 ++
 .../authentication/UserModifyingApplication.java   |   61 +
 .../CellularAffinityBackupFilter.java              |   59 +
 .../CellularPreparedTxStreamer.java                |  153 ++
 .../cellular_affinity_test/CellularTxStreamer.java |  135 ++
 .../DistributionChecker.java                       |   55 +
 .../tests/client_test/IgniteCachePutClient.java    |   63 +
 .../LongRunningTransactionsGenerator.java          |  157 ++
 .../DataLoaderAndCheckerApplication.java           |  121 ++
 .../LongTxStreamerApplication.java                 |  113 ++
 .../SingleKeyTxStreamerApplication.java            |   74 +
 .../tests/rebalance/DataGenerationApplication.java |   90 ++
 .../tests/self_test/TestKillableApplication.java   |   39 +
 .../self_test/TestSelfKillableApplication.java     |   36 +
 .../tests/smoke_test/AssertionApplication.java     |   35 +
 .../tests/smoke_test/SimpleApplication.java        |   50 +
 .../tests/snapshot_test/DataLoaderApplication.java |   65 +
 .../ThinClientSelfTestApplication.java             |   44 +
 .../ducktest/utils/IgniteAwareApplication.java     |  322 ++++
 .../utils/IgniteAwareApplicationService.java       |  112 ++
 .../ducktests/src/main/resources/log4j.properties  |   25 +
 modules/ducktests/tests/MANIFEST.in                |   16 +
 modules/ducktests/tests/certs/functions.sh         |  110 ++
 modules/ducktests/tests/certs/mkcerts.sh           |   36 +
 .../ducktests/tests/checks/utils/check_cluster.py  |  106 ++
 .../tests/checks/utils/check_enum_constructible.py |   73 +
 .../utils/check_get_credentials_from_globals.py    |   51 +
 .../utils/check_get_ssl_params_from_globals.py     |  129 ++
 .../tests/checks/utils/check_jvm_settings.py       |   78 +
 .../tests/checks/utils/check_parametrized.py       |  269 ++++
 .../ducktests/tests/checks/utils/check_version.py  |  101 ++
 modules/ducktests/tests/docker/Dockerfile          |  100 ++
 modules/ducktests/tests/docker/clean_up.sh         |   19 +
 modules/ducktests/tests/docker/ducker-ignite       |  660 ++++++++
 .../ducktests/tests/docker/requirements-dev.txt    |   19 +
 modules/ducktests/tests/docker/requirements.txt    |   16 +
 modules/ducktests/tests/docker/run_tests.sh        |  164 ++
 modules/ducktests/tests/docker/ssh-config          |   21 +
 modules/ducktests/tests/docker/ssh/authorized_keys |   15 +
 modules/ducktests/tests/docker/ssh/config          |   21 +
 modules/ducktests/tests/docker/ssh/id_rsa          |   27 +
 modules/ducktests/tests/docker/ssh/id_rsa.pub      |    1 +
 modules/ducktests/tests/ignitetest/__init__.py     |   23 +
 .../tests/ignitetest/services/__init__.py          |   14 +
 .../ducktests/tests/ignitetest/services/ignite.py  |   33 +
 .../tests/ignitetest/services/ignite_app.py        |  113 ++
 .../services/ignite_execution_exception.py         |   24 +
 .../ducktests/tests/ignitetest/services/spark.py   |  177 +++
 .../tests/ignitetest/services/utils/__init__.py    |   31 +
 .../ignitetest/services/utils/auth/__init__.py     |   46 +
 .../ignitetest/services/utils/background_thread.py |  113 ++
 .../tests/ignitetest/services/utils/concurrent.py  |   90 ++
 .../ignitetest/services/utils/config_template.py   |   82 +
 .../ignitetest/services/utils/control_utility.py   |  457 ++++++
 .../tests/ignitetest/services/utils/decorators.py  |   40 +
 .../ignitetest/services/utils/ducktests_service.py |   58 +
 .../ignitetest/services/utils/ignite_aware.py      |  590 +++++++
 .../utils/ignite_configuration/__init__.py         |  156 ++
 .../ignite_configuration/binary_configuration.py   |   27 +
 .../services/utils/ignite_configuration/cache.py   |   29 +
 .../utils/ignite_configuration/communication.py    |   45 +
 .../utils/ignite_configuration/data_storage.py     |   39 +
 .../utils/ignite_configuration/discovery.py        |  146 ++
 .../tests/ignitetest/services/utils/ignite_spec.py |  292 ++++
 .../tests/ignitetest/services/utils/jmx_utils.py   |  203 +++
 .../tests/ignitetest/services/utils/jvm_utils.py   |  102 ++
 .../tests/ignitetest/services/utils/log_utils.py   |   42 +
 .../tests/ignitetest/services/utils/path.py        |  237 +++
 .../ignitetest/services/utils/ssl/__init__.py      |   14 +
 .../utils/ssl/client_connector_configuration.py    |   38 +
 .../services/utils/ssl/connector_configuration.py  |   32 +
 .../ignitetest/services/utils/ssl/ssl_params.py    |   98 ++
 .../services/utils/templates/cache_macro.j2        |   34 +
 .../utils/templates/communication_macro.j2         |   25 +
 .../utils/templates/connector_configuration.j2     |   30 +
 .../services/utils/templates/datastorage_macro.j2  |   49 +
 .../services/utils/templates/discovery_macro.j2    |   71 +
 .../services/utils/templates/ignite.xml.j2         |  135 ++
 .../services/utils/templates/log4j.xml.j2          |   63 +
 .../services/utils/templates/misc_macro.j2         |   46 +
 .../services/utils/templates/ssl_params_macro.j2   |   33 +
 .../utils/templates/thin_client_config.xml.j2      |   44 +
 .../tests/ignitetest/services/utils/time_utils.py  |   28 +
 .../tests/ignitetest/services/zk/__init__.py       |   14 +
 .../services/zk/templates/log4j.properties.j2      |   33 +
 .../services/zk/templates/zookeeper.properties.j2  |   29 +
 .../tests/ignitetest/services/zk/zookeeper.py      |  172 ++
 .../ducktests/tests/ignitetest/tests/__init__.py   |   71 +
 .../ducktests/tests/ignitetest/tests/auth_test.py  |  124 ++
 .../ignitetest/tests/cellular_affinity_test.py     |  334 ++++
 .../tests/ignitetest/tests/client_test.py          |  159 ++
 .../ignitetest/tests/control_utility/__init__.py   |   18 +
 .../tests/control_utility/baseline_test.py         |  206 +++
 .../ignitetest/tests/control_utility/tx_test.py    |  191 +++
 .../tests/ignitetest/tests/discovery_test.py       |  374 +++++
 .../ignitetest/tests/persistence_upgrade_test.py   |   66 +
 .../tests/ignitetest/tests/pme_free_switch_test.py |  136 ++
 .../tests/ignitetest/tests/rebalance/__init__.py   |   18 +
 .../ignitetest/tests/rebalance/in_memory_test.py   |  112 ++
 .../ignitetest/tests/rebalance/persistent_test.py  |  246 +++
 .../tests/ignitetest/tests/rebalance/util.py       |  324 ++++
 .../ducktests/tests/ignitetest/tests/self_test.py  |  164 ++
 .../ducktests/tests/ignitetest/tests/smoke_test.py |   87 +
 .../tests/ignitetest/tests/snapshot_test.py        |  101 ++
 .../ducktests/tests/ignitetest/tests/ssl_test.py   |   76 +
 .../tests/ignitetest/tests/suites/fast_suite.yml   |   34 +
 .../tests/ignitetest/tests/suites/slow_suite.yml   |   20 +
 .../tests/ignitetest/tests/thin_client_test.py     |   63 +
 .../ducktests/tests/ignitetest/utils/__init__.py   |   22 +
 modules/ducktests/tests/ignitetest/utils/_mark.py  |  233 +++
 modules/ducktests/tests/ignitetest/utils/enum.py   |   66 +
 .../tests/ignitetest/utils/ignite_test.py          |   76 +
 .../ducktests/tests/ignitetest/utils/version.py    |  101 ++
 modules/ducktests/tests/setup.py                   |   34 +
 modules/ducktests/tests/tox.ini                    |   65 +
 .../cache/PlatformTestCachePluginProvider.java     |   49 +-
 modules/extdata/uri/pom.xml                        |   59 +-
 .../HibernateL2CacheTransactionalSelfTest.java     |    3 +-
 .../HibernateL2CacheTransactionalSelfTest.java     |    3 +-
 .../HibernateL2CacheTransactionalSelfTest.java     |    3 +-
 modules/indexing/pom.xml                           |    7 +
 .../StatisticsColumnConfigurationViewWalker.java   |   87 +
 .../StatisticsColumnLocalDataViewWalker.java       |   90 ++
 .../StatisticsColumnPartitionDataViewWalker.java   |   96 ++
 .../processors/query/h2/IgniteH2Indexing.java      |   16 +
 .../query/h2/database/H2TreeIndexBase.java         |    2 +-
 .../query/h2/index/QueryIndexDefinition.java       |    6 +-
 .../processors/query/h2/opt/GridH2ProxyIndex.java  |    2 +-
 .../processors/query/h2/opt/GridH2Table.java       |   18 +
 .../processors/query/h2/opt/H2IndexCostedBase.java |  510 +++++-
 .../h2/sys/view/SqlSystemViewBaselineNodes.java    |   88 --
 .../view/SqlSystemViewCacheGroupsIOStatistics.java |  124 --
 .../h2/sys/view/SqlSystemViewNodeAttributes.java   |  108 --
 .../h2/sys/view/SqlSystemViewNodeMetrics.java      |  211 ---
 .../query/h2/twostep/GridMapQueryExecutor.java     |    9 +-
 .../query/h2/twostep/GridReduceQueryExecutor.java  |    4 +-
 .../h2/twostep/PartitionReservationManager.java    |    5 +-
 .../processors/query/stat/ColumnStatistics.java    |  182 +++
 .../query/stat/ColumnStatisticsCollector.java      |  274 ++++
 .../query/stat/GatherStatisticCancelException.java |   28 +
 .../internal/processors/query/stat/Hasher.java     |  233 +++
 .../stat/IgniteStatisticsConfigurationManager.java |  821 ++++++++++
 .../query/stat/IgniteStatisticsDummyStoreImpl.java |  127 ++
 .../query/stat/IgniteStatisticsHelper.java         |  212 +++
 .../stat/IgniteStatisticsInMemoryStoreImpl.java    |  213 +++
 .../query/stat/IgniteStatisticsManagerImpl.java    |  409 +++++
 .../stat/IgniteStatisticsPersistenceStoreImpl.java |  665 ++++++++
 .../query/stat/IgniteStatisticsRepository.java     |  657 ++++++++
 .../query/stat/IgniteStatisticsStore.java          |  120 ++
 .../stat/LocalStatisticsGatheringContext.java      |  109 ++
 .../query/stat/ObjectPartitionStatisticsImpl.java  |  100 ++
 .../ObjectPartitionStatisticsObsolescence.java     |   96 ++
 .../query/stat/ObjectStatisticsImpl.java           |  107 ++
 .../processors/query/stat/StatisticsGatherer.java  |  282 ++++
 .../processors/query/stat/StatisticsType.java      |   44 +
 .../processors/query/stat/StatisticsUtils.java     |  175 ++
 .../internal/processors/query/stat/hll/HLL.java    | 1159 ++++++++++++++
 .../processors/query/stat/hll/HLLType.java         |   29 +
 .../BigEndianAscendingWordDeserializer.java        |  168 ++
 .../BigEndianAscendingWordSerializer.java          |  170 ++
 .../query/stat/hll/serialization/HLLMetadata.java  |  147 ++
 .../query/stat/hll/serialization/IHLLMetadata.java |   71 +
 .../stat/hll/serialization/ISchemaVersion.java     |   87 +
 .../stat/hll/serialization/IWordDeserializer.java  |   41 +
 .../stat/hll/serialization/IWordSerializer.java    |   37 +
 .../stat/hll/serialization/SchemaVersionOne.java   |  153 ++
 .../stat/hll/serialization/SerializationUtil.java  |  281 ++++
 .../processors/query/stat/hll/util/BitUtil.java    |   71 +
 .../processors/query/stat/hll/util/BitVector.java  |  288 ++++
 .../processors/query/stat/hll/util/HLLUtil.java    |  203 +++
 .../query/stat/hll/util/LongIterator.java          |   35 +
 .../processors/query/stat/hll/util/NumberUtil.java |  178 +++
 .../query/stat/messages/StatisticsColumnData.java  |  338 ++++
 .../query/stat/messages/StatisticsKeyMessage.java  |  193 +++
 .../query/stat/messages/StatisticsObjectData.java  |  266 ++++
 .../query/stat/task/GatherPartitionStatistics.java |  196 +++
 .../view/StatisticsColumnConfigurationView.java    |  118 ++
 .../stat/view/StatisticsColumnLocalDataView.java   |  144 ++
 .../view/StatisticsColumnPartitionDataView.java    |  159 ++
 .../org/apache/ignite/internal/cdc/SqlCdcTest.java |  179 +++
 .../metric/AbstractIndexPageMetricsTest.java       |  207 +++
 .../ignite/internal/metric/IndexPageCounter.java   |  102 ++
 .../metric/IndexPagesMetricsInMemoryTest.java      |   47 +
 .../IndexPagesMetricsPageDisplacementTest.java     |  194 +++
 .../metric/IndexPagesMetricsPersistentTest.java    |   70 +
 ...ervationsOnDoneAfterTopologyUnlockFailTest.java |   75 +
 .../cache/index/AbstractRebuildIndexTest.java      |  336 ++++
 .../cache/index/ForceRebuildIndexTest.java         |  180 +--
 .../processors/cache/index/IgniteH2IndexingEx.java |  113 ++
 .../cache/index/IndexesRebuildTaskEx.java          |  102 +-
 .../processors/cache/index/IndexingTestUtils.java  |  179 +++
 .../cache/index/RenameIndexTreeTest.java           |  294 ++++
 .../cache/index/ResumeCreateIndexTest.java         |  492 ++++++
 .../cache/index/ResumeRebuildIndexTest.java        |  442 ++++++
 .../cache/index/StopRebuildIndexTest.java          |   90 +-
 ...gniteCacheLocalQueryDefaultTimeoutSelfTest.java |   20 +-
 .../cache/metric/SqlViewExporterSpiTest.java       |    6 +-
 .../IgnitePdsIndexingDefragmentationTest.java      |    2 +
 .../persistence/db/wal/IgniteWalRecoveryTest.java  |   26 +-
 .../IgniteClusterSnapshotCheckWithIndexesTest.java |    6 +-
 .../IgniteClusterSnapshotWithIndexesTest.java      |    2 +
 ...niteSqlSinglePartitionMultiParallelismTest.java |  157 ++
 .../processors/query/SqlSystemViewsSelfTest.java   |   65 +-
 .../inlinecolumn/InlineIndexColumnTest.java        |   76 +-
 .../ColumnStatisticsCollectorAggregationTest.java  |  124 ++
 .../query/stat/ColumnStatisticsCollectorTest.java  |  199 +++
 .../processors/query/stat/HasherSelfTest.java      |   79 +
 .../stat/IgniteStatisticsRepositoryStaticTest.java |  133 ++
 .../query/stat/IgniteStatisticsRepositoryTest.java |  249 +++
 .../query/stat/ManagerStatisticsTypesTest.java     |  290 ++++
 ...cValueDistributionTableStatisticsUsageTest.java |  271 ++++
 .../PSUCompositeIndexTableStatisticsUsageTest.java |  136 ++
 .../stat/PSUStatisticPartialGatheringTest.java     |   90 ++
 .../query/stat/PSUStatisticsStorageTest.java       |   95 ++
 .../query/stat/PSUStatisticsTypesTest.java         |  281 ++++
 ...UValueDistributionTableStatisticsUsageTest.java |  144 ++
 .../query/stat/SqlStatisticsCommandTests.java      |  313 ++++
 .../query/stat/StatisticsAbstractTest.java         |  706 +++++++++
 .../processors/query/stat/StatisticsClearTest.java |  205 +++
 .../query/stat/StatisticsConfigurationTest.java    |  635 ++++++++
 .../query/stat/StatisticsGatheringTest.java        |   99 ++
 .../query/stat/StatisticsObsolescenceTest.java     |  129 ++
 .../query/stat/StatisticsRestartAbstractTest.java  |   92 ++
 .../query/stat/StatisticsStorageAbstractTest.java  |   72 +
 .../query/stat/StatisticsStorageInMemoryTest.java  |   41 +
 .../stat/StatisticsStoragePersistenceTest.java     |   41 +
 .../query/stat/StatisticsStorageRestartTest.java   |  140 ++
 .../query/stat/StatisticsStorageTest.java          |  193 +++
 .../query/stat/StatisticsStorageUnitTest.java      |  146 ++
 .../query/stat/StatisticsTypesAbstractTest.java    |  206 +++
 .../query/stat/StatisticsViewsInMemoryTest.java    |   41 +
 .../query/stat/StatisticsViewsPersistenceTest.java |   41 +
 .../processors/query/stat/StatisticsViewsTest.java |  245 +++
 .../processors/query/stat/hll/FullHLLTest.java     |  445 ++++++
 .../query/stat/hll/ProbabilisticTestUtil.java      |   79 +
 .../timeout/AbstractDefaultQueryTimeoutTest.java   |   22 +-
 .../timeout/DefaultQueryTimeoutTestSuite.java      |    3 -
 .../DefaultQueryTimeoutThickJavaLazyTest.java      |   28 -
 .../timeout/DefaultQueryTimeoutThickJavaTest.java  |   61 +-
 ...DefaultQueryTimeoutThickJavaUpdateLazyTest.java |   28 -
 .../DefaultQueryTimeoutThickJavaUpdateTest.java    |   28 -
 .../IgniteBinaryCacheQueryTestSuite.java           |   10 +-
 .../testsuites/IgniteCacheQuerySelfTestSuite6.java |    4 +-
 ...teCacheWithIndexingAndPersistenceTestSuite.java |    6 +-
 .../IgniteCacheWithIndexingTestSuite.java          |    5 +-
 .../IgnitePdsWithIndexingCoreTestSuite.java        |    4 +-
 .../testsuites/IgnitePdsWithIndexingTestSuite.java |    8 +-
 .../testsuites/IgniteStatisticsTestSuite.java      |   99 ++
 modules/jta/pom.xml                                |    6 +
 .../cache/GridJtaTransactionManagerSelfTest.java   |    3 +-
 .../cache/jta/AbstractCacheJtaSelfTest.java        |    3 +-
 modules/kubernetes/pom.xml                         |    7 -
 .../apache/ignite/logger/log4j/Log4JLogger.java    |    8 +-
 .../ignite/logger/log4j/Log4jNodeIdFilePath.java   |   14 +-
 .../apache/ignite/logger/log4j2/Log4J2Logger.java  |   10 +-
 .../ignite/logger/log4j2/Log4j2LoggerSelfTest.java |   16 +-
 .../cluster-compute-example/CMakeLists.txt         |   13 +-
 .../src/network/ssl/secure_socket_client.cpp       |   20 +-
 .../platforms/cpp/odbc-test/src/sql_types_test.cpp |   48 +
 .../cpp/odbc/src/app/application_data_buffer.cpp   |    2 +-
 modules/platforms/cpp/odbc/src/connection.cpp      |    3 +-
 .../ignite/thin/ignite_client_configuration.h      |    2 +-
 modules/platforms/dotnet/.config/dotnet-tools.json |   12 +
 .../Apache.Ignite.BenchmarkDotNet.csproj           |    4 +
 .../DataStreamer/DataStreamerBatchSizeBenchmark.cs |   83 +
 .../DataStreamer/DataStreamerBenchmark.cs          |    2 +-
 .../ThinClient/ThinClientBenchmarkBase.cs          |    4 +-
 .../ThinClient/ThinClientDataStreamerBenchmark.cs  |   98 ++
 ...ThinClientDataStreamerBenchmarkMultithreaded.cs |   95 ++
 .../ThinClientDataStreamerFlushBenchmark.cs        |  121 ++
 .../dotnet/Apache.Ignite.BenchmarkDotNet/Utils.cs  |   13 +-
 .../Apache.Ignite.Benchmarks.DotNetCore.csproj     |    6 +-
 .../Apache.Ignite.Benchmarks/BenchmarkBase.cs      |   10 +-
 .../Apache.Ignite.Benchmarks/BenchmarkRunner.cs    |    2 +-
 .../Apache.Ignite.Benchmarks/BenchmarkUtils.cs     |    6 +-
 .../Result/BenchmarkFileResultWriter.cs            |    4 +-
 .../Apache.Ignite.Core.Tests.DotNetCore.csproj     |    5 +
 .../Apache.Ignite.Core.Tests.csproj                |    5 +
 .../Serializable/AdvancedSerializationTest.cs      |    2 +
 .../Platform/PlatformCacheTopologyChangeTest.cs    |    2 +-
 .../Cache/Query/CacheQueriesTest.cs                |    2 +-
 .../Continuous/ContinuousQueryAbstractTest.cs      |    8 +-
 .../Query/QueryEntityMetadataRegistrationTest.cs   |    4 +
 .../Client/Cache/CacheTest.cs                      |   18 +
 .../Client/Cache/ContinuousQueryTest.cs            |   12 +-
 .../Client/Cache/EmptyObject.cs                    |    2 +-
 .../Client/Cache/PartitionAwarenessTest.cs         |   60 +-
 .../Client/Cache/SerializableObjectsTest.cs        |   24 +-
 .../Client/ClientConnectionTest.cs                 |    3 +-
 .../Client/ClientSecurityPermissionsTest.cs        |  107 ++
 .../Client/ClientTestBase.cs                       |   19 +-
 .../Client/Cluster/ClientClusterDiscoveryTests.cs  |   18 +-
 .../Cluster/ClientClusterDiscoveryTestsBase.cs     |    3 +-
 .../Client/Datastream/DataStreamerClientTest.cs    |  825 ++++++++++
 .../DataStreamerClientTestPartitionAware.cs        |   38 +
 .../DataStreamerClientTopologyChangeTest.cs        |  344 ++++
 ...reamerClientTopologyChangeTestPartitionAware.cs |   37 +
 .../Client/IgniteClientConfigurationTest.cs        |    7 +-
 .../Config/full-config.xml                         |    1 +
 .../Dataload/DataStreamerTest.cs                   |   18 +-
 .../Apache.Ignite.Core.Tests/DisposeAction.cs      |    2 +-
 .../Examples/ProjectFilesTest.cs                   |    2 +-
 .../IgniteConfigurationSerializerTest.cs           |    2 +
 .../IgniteConfigurationTest.cs                     |    3 +
 .../Process/IgniteProcess.cs                       |    6 +-
 .../Process/IgniteProcessConsoleOutputReader.cs    |    4 +-
 .../Apache.Ignite.Core.Tests/ProjectFilesTest.cs   |    4 +-
 .../Services/PlatformTestService.cs                |    1 +
 .../dotnet/Apache.Ignite.Core.Tests/ShellTests.cs  |   54 +
 .../dotnet/Apache.Ignite.Core.Tests/TestUtils.cs   |   42 +-
 .../Apache.Ignite.Core.Tests/TestUtilsJni.cs       |   13 +
 .../Apache.Ignite.Core.DotNetCore.csproj           |   13 +-
 .../Apache.Ignite.Core/Apache.Ignite.Core.csproj   |   10 +-
 .../Apache.Ignite.Core/Apache.Ignite.Core.ruleset  |   26 -
 .../Binary/BinaryBasicNameMapper.cs                |    3 +
 .../Cache/Affinity/AffinityKeyMappedAttribute.cs   |    4 +-
 .../Cache/Configuration/MemoryConfiguration.cs     |    5 +-
 .../Apache.Ignite.Core/Client/ClientStatusCode.cs  |    5 +
 .../Client/Datastream/DataStreamerClientOptions.cs |  213 +++
 .../Client/Datastream/IDataStreamerClient.cs       |  102 ++
 .../Apache.Ignite.Core/Client/IIgniteClient.cs     |   33 +
 .../Client/IgniteClientConfiguration.cs            |   14 +-
 .../Apache.Ignite.Core/Client/SslStreamFactory.cs  |    9 +-
 .../Client/Transactions/ITransactionsClient.cs     |    2 +-
 .../Common/IgniteProductVersion.cs                 |   10 +-
 .../Configuration/DataStorageConfiguration.cs      |    9 +
 .../Configuration/LockConfiguration.cs             |    4 +
 .../Encryption/Keystore/KeystoreEncryptionSpi.cs   |   11 +-
 .../Apache.Ignite.Core/IgniteConfiguration.cs      |    2 +
 .../IgniteConfigurationSection.xsd                 |    5 +
 .../dotnet/Apache.Ignite.Core/Ignition.cs          |    1 +
 .../Impl/Binary/BinaryHashCodeUtils.cs             |  132 +-
 .../Apache.Ignite.Core/Impl/Binary/BinaryUtils.cs  |    2 +-
 .../Impl/Binary/Io/BinaryHeapStream.cs             |   18 +-
 .../Impl/Binary/Structure/BinaryStructureEntry.cs  |    3 +-
 .../Binary/Structure/BinaryStructureJumpTable.cs   |    2 +-
 .../Query/Continuous/ContinuousQueryHandleImpl.cs  |    7 +
 .../Impl/Client/Cache/CacheClient.cs               |   12 +-
 .../Impl/Client/ClientFailoverSocket.cs            |    7 +-
 .../Apache.Ignite.Core/Impl/Client/ClientOp.cs     |    6 +-
 .../Impl/Client/ClientPlatformId.cs                |   33 +
 .../Apache.Ignite.Core/Impl/Client/ClientSocket.cs |   36 +-
 .../Impl/Client/Compute/ComputeClient.cs           |   13 +-
 .../Impl/Client/Datastream/DataStreamerClient.cs   |  699 ++++++++
 .../Client/Datastream/DataStreamerClientBuffer.cs  |  346 ++++
 .../Client/Datastream/DataStreamerClientEntry.cs   |  102 ++
 .../Datastream/DataStreamerClientPerNodeBuffer.cs  |  154 ++
 .../Apache.Ignite.Core/Impl/Client/IgniteClient.cs |   23 +
 .../Apache.Ignite.Core/Impl/Common/Classpath.cs    |   14 +-
 .../Common/IgniteConfigurationXmlSerializer.cs     |   13 +-
 .../Apache.Ignite.Core/Impl/Common/TaskRunner.cs   |   19 +
 .../Impl/Datastream/DataStreamerImpl.cs            |    2 +
 .../Apache.Ignite.Core/Impl/IgniteManager.cs       |    2 +-
 .../Apache.Ignite.Core/Impl/PlatformJniTarget.cs   |   18 +-
 .../dotnet/Apache.Ignite.Core/Impl/Shell.cs        |   43 +-
 .../Impl/Unmanaged/Jni/JvmDll.cs                   |    7 +-
 .../dotnet/Apache.Ignite.Core/Impl/Unmanaged/Os.cs |    6 +-
 .../Impl/Unmanaged/UnmanagedCallbacks.cs           |    2 +
 .../Apache.Ignite.DotNetCore.sln.DotSettings       |    1 +
 .../Apache.Ignite.Linq.DotNetCore.csproj           |   17 +-
 .../Apache.Ignite.Linq/Apache.Ignite.Linq.csproj   |    1 -
 .../CacheClientLinqExtensions.cs                   |   28 +-
 .../Apache.Ignite.Linq/CacheLinqExtensions.cs      |   39 +-
 .../Impl/CacheQueryExpressionVisitor.cs            |   42 +-
 .../Impl/CacheQueryModelVisitor.cs                 |   28 +-
 .../Impl/Dml/RemoveAllExpressionNode.cs            |    4 +-
 .../Impl/Dml/UpdateAllExpressionNode.cs            |    9 +-
 .../Apache.Ignite.Linq/Impl/MethodVisitor.cs       |   14 +-
 .../platforms/dotnet/Apache.Ignite.Tests.ruleset   |  136 ++
 modules/platforms/dotnet/Apache.Ignite.ruleset     |   71 +
 .../Apache.Ignite/Apache.Ignite.DotNetCore.csproj  |   13 +
 .../Apache.Ignite/Config/ArgsConfigurator.cs       |    2 +-
 .../platforms/dotnet/Apache.Ignite/IgniteRunner.cs |   28 +-
 .../Service/IgniteService.DotNetCore.cs            |    3 +
 modules/platforms/dotnet/Directory.Build.props     |   23 +
 .../dotnet/examples/Directory.Build.props          |    4 +
 .../examples/Thick/Cache/DataStreamer/Program.cs   |    2 +-
 .../platforms/dotnet/release/Directory.Build.props |   23 +
 .../config/cdc/cdc-config-without-persistence.xml  |   30 +
 .../src/test/config/cdc/correct-cdc-config.xml     |   53 +
 .../src/test/config/cdc/double-cdc-config.xml      |   30 +
 .../src/test/config/cdc/double-ignite-config.xml   |   30 +
 .../apache/ignite/cdc/CdcConfigurationTest.java    |  140 ++
 .../ignite/testsuites/IgniteSpringTestSuite.java   |    6 +-
 modules/urideploy/pom.xml                          |    7 -
 .../org/apache/ignite/yardstick/cache/Loader.java  |    2 +-
 ...coverySegmentationAndConnectionRestoreTest.java |    3 -
 packaging/deb/changelog                            |   12 +
 packaging/rpm/apache-ignite.spec                   |    8 +-
 parent/pom.xml                                     |   12 +-
 pom.xml                                            |   18 +
 scripts/build-module.sh                            |   26 +
 scripts/build.sh                                   |   25 +
 844 files changed, 59212 insertions(+), 5390 deletions(-)

diff --cc modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
index 5086f3e,e149dbe..5d10b4b
--- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
@@@ -124,8 -124,8 +124,9 @@@ import static org.apache.ignite.interna
  import static org.apache.ignite.internal.processors.performancestatistics.FilePerformanceStatisticsWriter.DFLT_CACHED_STRINGS_THRESHOLD;
  import static org.apache.ignite.internal.processors.performancestatistics.FilePerformanceStatisticsWriter.DFLT_FILE_MAX_SIZE;
  import static org.apache.ignite.internal.processors.performancestatistics.FilePerformanceStatisticsWriter.DFLT_FLUSH_SIZE;
 +import static org.apache.ignite.internal.processors.query.GridQueryProcessor.DFLT_IGNITE_EXPERIMENTAL_SQL_ENGINE;
  import static org.apache.ignite.internal.processors.query.QueryUtils.DFLT_INDEXING_DISCOVERY_HISTORY_SIZE;
+ import static org.apache.ignite.internal.processors.query.schema.SchemaIndexCachePartitionWorker.DFLT_IGNITE_INDEX_REBUILD_BATCH_SIZE;
  import static org.apache.ignite.internal.processors.rest.GridRestProcessor.DFLT_SES_TIMEOUT;
  import static org.apache.ignite.internal.processors.rest.GridRestProcessor.DFLT_SES_TOKEN_INVALIDATE_INTERVAL;
  import static org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.DFLT_MAX_TASK_RESULTS;
@@@ -2013,11 -1994,15 +1995,19 @@@ public final class IgniteSystemProperti
          "stopped when the threshold is exceeded", type = Integer.class, defaults = "" + DFLT_CACHED_STRINGS_THRESHOLD)
      public static final String IGNITE_PERF_STAT_CACHED_STRINGS_THRESHOLD = "IGNITE_PERF_STAT_CACHED_STRINGS_THRESHOLD";
  
 +    @SystemProperty(value = "Determines whether to use the experimental sql, calcite based, engine.",
 +        defaults = "" + DFLT_IGNITE_EXPERIMENTAL_SQL_ENGINE)
 +    public static final String IGNITE_EXPERIMENTAL_SQL_ENGINE = "IGNITE_EXPERIMENTAL_SQL_ENGINE";
 +
      /**
+      * Count of rows, being processed within a single checkpoint lock when indexes are rebuilt.
+      * The default value is {@link SchemaIndexCachePartitionWorker#DFLT_IGNITE_INDEX_REBUILD_BATCH_SIZE}.
+      */
+     @SystemProperty(value = "Count of rows, being processed within a single checkpoint lock when indexes are rebuilt",
+         type = Integer.class, defaults = "" + DFLT_IGNITE_INDEX_REBUILD_BATCH_SIZE)
+     public static final String IGNITE_INDEX_REBUILD_BATCH_SIZE = "IGNITE_INDEX_REBUILD_BATCH_SIZE";
+ 
+     /**
       * Enforces singleton.
       */
      private IgniteSystemProperties() {

[ignite] 02/02: fix merge conflicts

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

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

commit ea6c392628d9b99f7f5319d4cc11d12f1e62f2a4
Author: tledkov <tl...@gridgain.com>
AuthorDate: Mon Jul 19 12:14:28 2021 +0300

    fix merge conflicts
---
 .../calcite/exec/exp/IgniteSqlFunctionsTest.java   |  17 ++
 .../processors/query/GridQueryProcessor.java       | 158 ++++++++----
 .../testframework/wal/record/RecordUtils.java      |   7 +
 .../processors/query/h2/CommandProcessor.java      | 268 ++++++++++++++++++++-
 .../internal/processors/query/h2/QueryParser.java  |   3 +-
 .../processors/query/h2/SchemaManager.java         | 135 ++++++++---
 6 files changed, 504 insertions(+), 84 deletions(-)

diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/IgniteSqlFunctionsTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/IgniteSqlFunctionsTest.java
index 993de3b..90cf6f9 100644
--- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/IgniteSqlFunctionsTest.java
+++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/IgniteSqlFunctionsTest.java
@@ -1,3 +1,20 @@
+/*
+ * 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.exp;
 
 import java.math.BigDecimal;
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index 46227b5..eec8ccb 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@ -89,6 +89,8 @@ import org.apache.ignite.internal.processors.cache.query.IgniteQueryErrorCode;
 import org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessor;
 import org.apache.ignite.internal.processors.platform.PlatformContext;
 import org.apache.ignite.internal.processors.platform.PlatformProcessor;
+import org.apache.ignite.internal.processors.query.aware.IndexBuildStatusStorage;
+import org.apache.ignite.internal.processors.query.aware.IndexRebuildFutureStorage;
 import org.apache.ignite.internal.processors.query.property.QueryBinaryProperty;
 import org.apache.ignite.internal.processors.query.schema.SchemaIndexCacheVisitor;
 import org.apache.ignite.internal.processors.query.schema.SchemaIndexCacheVisitorClosure;
@@ -252,8 +254,11 @@ public class GridQueryProcessor extends GridProcessorAdapter {
     /** Cache name - value typeId pairs for which type mismatch message was logged. */
     private final Set<Long> missedCacheTypes = ConcurrentHashMap.newKeySet();
 
-    /** Index rebuild aware. */
-    private final IndexRebuildAware idxRebuildAware = new IndexRebuildAware();
+    /** Index rebuild futures. */
+    private final IndexRebuildFutureStorage idxRebuildFutStorage = new IndexRebuildFutureStorage();
+
+    /** Index build statuses. */
+    private final IndexBuildStatusStorage idxBuildStatusStorage;
 
     /** Experimental calcite query engine. */
     private QueryEngine experimentalQueryEngine;
@@ -265,6 +270,8 @@ public class GridQueryProcessor extends GridProcessorAdapter {
     private final boolean useExperimentalSqlEngine;
 
     /**
+     * Constructor.
+     *
      * @param ctx Kernal context.
      */
     public GridQueryProcessor(GridKernalContext ctx) throws IgniteCheckedException {
@@ -276,24 +283,22 @@ public class GridQueryProcessor extends GridProcessorAdapter {
             idxCls = null;
         }
         else
-            idx = INDEXING.inClassPath() ? U.<GridQueryIndexing>newInstance(INDEXING.className()) : null;
+            idx = INDEXING.inClassPath() ? U.newInstance(INDEXING.className()) : null;
 
         idxProc = ctx.indexProcessor();
 
         valCtx = new CacheQueryObjectValueContext(ctx);
 
-        ioLsnr = new GridMessageListener() {
-            @Override public void onMessage(UUID nodeId, Object msg, byte plc) {
-                if (msg instanceof SchemaOperationStatusMessage) {
-                    SchemaOperationStatusMessage msg0 = (SchemaOperationStatusMessage)msg;
+        ioLsnr = (nodeId, msg, plc) -> {
+            if (msg instanceof SchemaOperationStatusMessage) {
+                SchemaOperationStatusMessage msg0 = (SchemaOperationStatusMessage)msg;
 
-                    msg0.senderNodeId(nodeId);
+                msg0.senderNodeId(nodeId);
 
-                    processStatusMessage(msg0);
-                }
-                else
-                    U.warn(log, "Unsupported IO message: " + msg);
+                processStatusMessage(msg0);
             }
+            else
+                U.warn(log, "Unsupported IO message: " + msg);
         };
 
         for (GridComponent cmp : ctx.components()) {
@@ -306,6 +311,8 @@ public class GridQueryProcessor extends GridProcessorAdapter {
         }
 
         useExperimentalSqlEngine = getBoolean(IGNITE_EXPERIMENTAL_SQL_ENGINE);
+
+        idxBuildStatusStorage = new IndexBuildStatusStorage(ctx);
     }
 
     /** {@inheritDoc} */
@@ -321,12 +328,14 @@ public class GridQueryProcessor extends GridProcessorAdapter {
         ctx.io().addMessageListener(TOPIC_SCHEMA, ioLsnr);
 
         // Schedule queries detail metrics eviction.
-        qryDetailMetricsEvictTask = ctx.timeout().schedule(new Runnable() {
-            @Override public void run() {
-                for (GridCacheContext ctxs : ctx.cache().context().cacheContexts())
-                    ctxs.queries().evictDetailMetrics();
-            }
+        qryDetailMetricsEvictTask = ctx.timeout().schedule(() -> {
+            for (GridCacheContext ctxs : ctx.cache().context().cacheContexts())
+                ctxs.queries().evictDetailMetrics();
         }, QRY_DETAIL_METRICS_EVICTION_FREQ, QRY_DETAIL_METRICS_EVICTION_FREQ);
+
+        idxBuildStatusStorage.start();
+
+        registerMetadataForRegisteredCaches(false);
     }
 
     /** {@inheritDoc} */
@@ -348,6 +357,8 @@ public class GridQueryProcessor extends GridProcessorAdapter {
         }
 
         busyLock.block();
+
+        idxBuildStatusStorage.stop();
     }
 
     /** {@inheritDoc} */
@@ -368,8 +379,6 @@ public class GridQueryProcessor extends GridProcessorAdapter {
      * @throws IgniteCheckedException If failed.
      */
     public void onCacheKernalStart() throws IgniteCheckedException {
-        registerMetadataForRegisteredCaches();
-
         synchronized (stateMux) {
             exchangeReady = true;
 
@@ -377,6 +386,8 @@ public class GridQueryProcessor extends GridProcessorAdapter {
             for (SchemaOperation schemaOp : schemaOps.values())
                 onSchemaPropose(schemaOp.proposeMessage());
         }
+
+        idxBuildStatusStorage.onCacheKernalStart();
     }
 
     /**
@@ -489,7 +500,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
     public void beforeExchange(GridDhtPartitionsExchangeFuture fut) {
         Set<Integer> cacheIds = rebuildIndexCacheIds(fut);
 
-        Set<Integer> rejected = idxRebuildAware.prepareRebuildIndexes(cacheIds, fut.initialVersion());
+        Set<Integer> rejected = idxRebuildFutStorage.prepareRebuildIndexes(cacheIds, fut.initialVersion());
 
         if (log.isDebugEnabled()) {
             log.debug("Preparing features of rebuilding indexes for caches on exchange [requested=" + cacheIds +
@@ -1159,10 +1170,12 @@ public class GridQueryProcessor extends GridProcessorAdapter {
 
     /**
      * Register metadata locally for already registered caches.
+     *
+     * @param platformOnly Whether to register non-Java platformOnly types only.
      */
-    private void registerMetadataForRegisteredCaches() {
+    public void registerMetadataForRegisteredCaches(boolean platformOnly) {
         for (DynamicCacheDescriptor cacheDescriptor : ctx.cache().cacheDescriptors().values())
-            registerBinaryMetadata(cacheDescriptor.cacheConfiguration(), cacheDescriptor.schema());
+            registerBinaryMetadata(cacheDescriptor.cacheConfiguration(), cacheDescriptor.schema(), platformOnly);
     }
 
     /**
@@ -1176,7 +1189,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
                 continue;
 
             try {
-                registerBinaryMetadata(req.startCacheConfiguration(), req.schema());
+                registerBinaryMetadata(req.startCacheConfiguration(), req.schema(), false);
             }
             catch (BinaryObjectException e) {
                 ctx.cache().completeCacheStartFuture(req, false, e);
@@ -1189,9 +1202,10 @@ public class GridQueryProcessor extends GridProcessorAdapter {
      *
      * @param ccfg Cache configuration.
      * @param schema Schema for which register metadata is required.
+     * @param platformOnly Whether to register non-Java platformOnly types only.
      * @throws BinaryObjectException if register was failed.
      */
-    private void registerBinaryMetadata(CacheConfiguration ccfg, QuerySchema schema) throws BinaryObjectException {
+    private void registerBinaryMetadata(CacheConfiguration ccfg, QuerySchema schema, boolean platformOnly) throws BinaryObjectException {
         if (schema != null) {
             Collection<QueryEntity> qryEntities = schema.entities();
 
@@ -1200,8 +1214,8 @@ public class GridQueryProcessor extends GridProcessorAdapter {
 
                 if (binaryEnabled) {
                     for (QueryEntity qryEntity : qryEntities) {
-                        registerTypeLocally(qryEntity.findKeyType());
-                        registerTypeLocally(qryEntity.findValueType());
+                        registerTypeLocally(qryEntity.findKeyType(), platformOnly);
+                        registerTypeLocally(qryEntity.findValueType(), platformOnly);
                     }
                 }
             }
@@ -1289,9 +1303,10 @@ public class GridQueryProcessor extends GridProcessorAdapter {
      * Register class metadata locally if it didn't do it earlier.
      *
      * @param clsName Class name for which the metadata should be registered.
+     * @param platformOnly Whether to only register non-Java platform types only.
      * @throws BinaryObjectException if register was failed.
      */
-    private void registerTypeLocally(String clsName) throws BinaryObjectException {
+    private void registerTypeLocally(String clsName, boolean platformOnly) throws BinaryObjectException {
         if (clsName == null)
             return;
 
@@ -1302,8 +1317,10 @@ public class GridQueryProcessor extends GridProcessorAdapter {
 
             Class<?> cls = U.box(U.classForName(clsName, null, true));
 
-            if (cls != null)
-                binProc.binaryContext().registerClass(cls, true, false, true);
+            if (cls != null) {
+                if (!platformOnly)
+                    binProc.binaryContext().registerClass(cls, true, false, true);
+            }
             else
                 registerPlatformTypeLocally(clsName, binProc);
         }
@@ -1318,9 +1335,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
     private void registerPlatformTypeLocally(String clsName, CacheObjectBinaryProcessorImpl binProc) {
         PlatformProcessor platformProc = ctx.platform();
 
-        assert platformProc != null : "Platform processor must be initialized";
-
-        if (!platformProc.hasContext())
+        if (platformProc == null || !platformProc.hasContext())
             return;
 
         PlatformContext platformCtx = platformProc.context();
@@ -1919,20 +1934,26 @@ public class GridQueryProcessor extends GridProcessorAdapter {
 
                     GridFutureAdapter<Void> createIdxFut = new GridFutureAdapter<>();
 
+                    GridCacheContext<?, ?> cacheCtx = cacheInfo.cacheContext();
+
                     visitor = new SchemaIndexCacheVisitorImpl(
-                        cacheInfo.cacheContext(),
+                        cacheCtx,
                         cancelTok,
                         createIdxFut
                     ) {
                         /** {@inheritDoc} */
                         @Override public void visit(SchemaIndexCacheVisitorClosure clo) {
-                            super.visit(clo);
+                            idxBuildStatusStorage.onStartBuildNewIndex(cacheCtx);
 
                             try {
+                                super.visit(clo);
+
                                 buildIdxFut.get();
                             }
                             catch (Exception e) {
                                 throw new IgniteException(e);
+                            } finally {
+                                idxBuildStatusStorage.onFinishBuildNewIndex(cacheName);
                             }
                         }
                     };
@@ -1977,7 +1998,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
                     registerCache0(op0.cacheName(), op.schemaName(), cacheInfo, candRes.get1(), false);
                 }
 
-                if (idxRebuildAware.prepareRebuildIndexes(singleton(cacheInfo.cacheId()), null).isEmpty())
+                if (idxRebuildFutStorage.prepareRebuildIndexes(singleton(cacheInfo.cacheId()), null).isEmpty())
                     rebuildIndexesFromHash0(cacheInfo.cacheContext(), false);
                 else {
                     if (log.isInfoEnabled())
@@ -2407,7 +2428,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
         @Nullable IgniteInternalFuture<?> idxFut,
         GridCacheContext<?, ?> cctx
     ) {
-        GridFutureAdapter<Void> res = idxRebuildAware.indexRebuildFuture(cctx.cacheId());
+        GridFutureAdapter<Void> res = idxRebuildFutStorage.indexRebuildFuture(cctx.cacheId());
 
         assert res != null;
 
@@ -2425,13 +2446,13 @@ public class GridQueryProcessor extends GridProcessorAdapter {
                 else if (!(err instanceof NodeStoppingException))
                     log.error("Failed to rebuild indexes for cache " + cacheInfo, err);
 
-                idxRebuildAware.onFinishRebuildIndexes(cctx.cacheId(), err);
+                idxRebuildFutStorage.onFinishRebuildIndexes(cctx.cacheId(), err);
             });
 
             return res;
         }
         else {
-            idxRebuildAware.onFinishRebuildIndexes(cctx.cacheId(), null);
+            idxRebuildFutStorage.onFinishRebuildIndexes(cctx.cacheId(), null);
 
             return null;
         }
@@ -2441,7 +2462,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
      * @return Future that will be completed when indexes for given cache are restored.
      */
     @Nullable public IgniteInternalFuture<?> indexRebuildFuture(int cacheId) {
-        return idxRebuildAware.indexRebuildFuture(cacheId);
+        return idxRebuildFutStorage.indexRebuildFuture(cacheId);
     }
 
     /**
@@ -3856,7 +3877,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
         GridDhtPartitionsExchangeFuture fut,
         @Nullable Set<Integer> cacheIds
     ) {
-        idxRebuildAware.cancelRebuildIndexesOnExchange(
+        idxRebuildFutStorage.cancelRebuildIndexesOnExchange(
             cacheIds != null ? cacheIds : rebuildIndexCacheIds(fut),
             fut.initialVersion()
         );
@@ -3870,7 +3891,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
      * @return {@code True} if need to rebuild.
      */
     public boolean rebuildIndexOnExchange(int cacheId, GridDhtPartitionsExchangeFuture fut) {
-        return idxRebuildAware.rebuildIndexesOnExchange(cacheId, fut.initialVersion());
+        return idxRebuildFutStorage.rebuildIndexesOnExchange(cacheId, fut.initialVersion());
     }
 
     /**
@@ -3881,7 +3902,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
      * @return Cache ids for which features have not been added.
      */
     public Set<Integer> prepareRebuildIndexes(Set<Integer> cacheIds) {
-        return idxRebuildAware.prepareRebuildIndexes(cacheIds, null);
+        return idxRebuildFutStorage.prepareRebuildIndexes(cacheIds, null);
     }
 
     /**
@@ -3910,4 +3931,57 @@ public class GridQueryProcessor extends GridProcessorAdapter {
 
         return cacheIds;
     }
+
+    /**
+     * Callback on start of rebuild cache indexes.
+     * <p/>
+     * Adding an entry that rebuilding the cache indexes in progress.
+     * If the cache is persistent, then add this entry to the MetaStorage.
+     * <p/>
+     * When restarting/reactivating the node, it will be possible to check if
+     * the rebuilding of the indexes has been {@link #rebuildIndexesCompleted}.
+     *
+     * @param cacheCtx Cache context.
+     * @see #onFinishRebuildIndexes
+     * @see #rebuildIndexesCompleted
+     */
+    public void onStartRebuildIndexes(GridCacheContext cacheCtx) {
+        idxBuildStatusStorage.onStartRebuildIndexes(cacheCtx);
+    }
+
+    /**
+     * Callback on finish of rebuild cache indexes.
+     * <p/>
+     * If the cache is persistent, then we mark that the rebuilding of the
+     * indexes is completed and the entry will be deleted from the MetaStorage
+     * at the end of the checkpoint. Otherwise, delete the index rebuild entry.
+     *
+     * @param cacheCtx Cache context.
+     */
+    public void onFinishRebuildIndexes(GridCacheContext cacheCtx) {
+        idxBuildStatusStorage.onFinishRebuildIndexes(cacheCtx.name());
+    }
+
+    /**
+     * Check if rebuilding of indexes for the cache has been completed.
+     *
+     * @param cacheCtx Cache context.
+     * @return {@code True} if completed.
+     */
+    public boolean rebuildIndexesCompleted(GridCacheContext cacheCtx) {
+        return idxBuildStatusStorage.rebuildCompleted(cacheCtx.name());
+    }
+
+    /**
+     * Force a mark that the index rebuild for the cache has completed.
+     * <p/>
+     * If the cache is persistent, then we mark that the rebuilding of the
+     * indexes is completed and the entry will be deleted from the MetaStorage
+     * at the end of the checkpoint. Otherwise, delete the index rebuild entry.
+     *
+     * @param cacheName Cache name.
+     */
+    public void completeRebuildIndexes(String cacheName) {
+        idxBuildStatusStorage.onFinishRebuildIndexes(cacheName);
+    }
 }
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/wal/record/RecordUtils.java b/modules/core/src/test/java/org/apache/ignite/testframework/wal/record/RecordUtils.java
index 11efd68..5317b48 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/wal/record/RecordUtils.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/wal/record/RecordUtils.java
@@ -149,6 +149,7 @@ import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType
 import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.PAGE_RECORD;
 import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.PARTITION_DESTROY;
 import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.PARTITION_META_PAGE_DELTA_RECORD_V3;
+import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.PARTITION_META_PAGE_DELTA_RECORD_V4;
 import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.PARTITION_META_PAGE_UPDATE_COUNTERS;
 import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.PARTITION_META_PAGE_UPDATE_COUNTERS_V2;
 import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.PART_META_UPDATE_STATE;
@@ -227,6 +228,7 @@ public class RecordUtils {
             put(ROLLBACK_TX_RECORD, RecordUtils::buildRollbackRecord);
             put(PARTITION_META_PAGE_UPDATE_COUNTERS_V2, RecordUtils::buildMetaPageUpdatePartitionDataRecordV2);
             put(PARTITION_META_PAGE_DELTA_RECORD_V3, RecordUtils::buildMetaPageUpdatePartitionDataRecordV3);
+            put(PARTITION_META_PAGE_DELTA_RECORD_V4, RecordUtils::buildMetaPageUpdatePartitionDataRecordV4);
             put(MASTER_KEY_CHANGE_RECORD, RecordUtils::buildMasterKeyChangeRecord);
             put(MASTER_KEY_CHANGE_RECORD_V2, RecordUtils::buildMasterKeyChangeRecordV2);
             put(REENCRYPTION_START_RECORD, RecordUtils::buildEncryptionStatusRecord);
@@ -548,6 +550,11 @@ public class RecordUtils {
     }
 
     /** **/
+    public static UnsupportedWalRecord buildMetaPageUpdatePartitionDataRecordV4() {
+        return new UnsupportedWalRecord(PARTITION_META_PAGE_DELTA_RECORD_V4);
+    }
+
+    /** **/
     public static UnsupportedWalRecord buildMasterKeyChangeRecord() {
         return new UnsupportedWalRecord(MASTER_KEY_CHANGE_RECORD);
     }
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/CommandProcessor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/CommandProcessor.java
index db5f715..cb70f8c 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/CommandProcessor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/CommandProcessor.java
@@ -33,10 +33,12 @@ import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteCluster;
 import org.apache.ignite.IgniteDataStreamer;
 import org.apache.ignite.IgniteSystemProperties;
 import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.cache.QueryIndex;
+import org.apache.ignite.cache.QueryIndexType;
 import org.apache.ignite.cache.query.BulkLoadContextCursor;
 import org.apache.ignite.cache.query.FieldsQueryCursor;
 import org.apache.ignite.cluster.ClusterNode;
@@ -44,9 +46,13 @@ import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.events.DiscoveryEvent;
 import org.apache.ignite.events.Event;
 import org.apache.ignite.events.EventType;
+import org.apache.ignite.internal.ComputeMXBeanImpl;
 import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.GridTopic;
 import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.QueryMXBeanImpl;
+import org.apache.ignite.internal.ServiceMXBeanImpl;
+import org.apache.ignite.internal.TransactionsMXBeanImpl;
 import org.apache.ignite.internal.managers.communication.GridIoPolicy;
 import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener;
 import org.apache.ignite.internal.processors.bulkload.BulkLoadAckClientParameters;
@@ -81,9 +87,13 @@ import org.apache.ignite.internal.processors.query.h2.sql.GridSqlStatement;
 import org.apache.ignite.internal.processors.query.messages.GridQueryKillRequest;
 import org.apache.ignite.internal.processors.query.messages.GridQueryKillResponse;
 import org.apache.ignite.internal.processors.query.schema.SchemaOperationException;
+import org.apache.ignite.internal.processors.query.stat.StatisticsKey;
+import org.apache.ignite.internal.processors.query.stat.StatisticsTarget;
+import org.apache.ignite.internal.processors.query.stat.config.StatisticsObjectConfiguration;
 import org.apache.ignite.internal.sql.SqlCommandProcessor;
 import org.apache.ignite.internal.sql.command.SqlAlterTableCommand;
 import org.apache.ignite.internal.sql.command.SqlAlterUserCommand;
+import org.apache.ignite.internal.sql.command.SqlAnalyzeCommand;
 import org.apache.ignite.internal.sql.command.SqlBeginTransactionCommand;
 import org.apache.ignite.internal.sql.command.SqlBulkLoadCommand;
 import org.apache.ignite.internal.sql.command.SqlCommand;
@@ -91,8 +101,16 @@ import org.apache.ignite.internal.sql.command.SqlCommitTransactionCommand;
 import org.apache.ignite.internal.sql.command.SqlCreateIndexCommand;
 import org.apache.ignite.internal.sql.command.SqlCreateUserCommand;
 import org.apache.ignite.internal.sql.command.SqlDropIndexCommand;
+import org.apache.ignite.internal.sql.command.SqlDropStatisticsCommand;
 import org.apache.ignite.internal.sql.command.SqlDropUserCommand;
+import org.apache.ignite.internal.sql.command.SqlIndexColumn;
+import org.apache.ignite.internal.sql.command.SqlKillComputeTaskCommand;
+import org.apache.ignite.internal.sql.command.SqlKillContinuousQueryCommand;
 import org.apache.ignite.internal.sql.command.SqlKillQueryCommand;
+import org.apache.ignite.internal.sql.command.SqlKillScanQueryCommand;
+import org.apache.ignite.internal.sql.command.SqlKillServiceCommand;
+import org.apache.ignite.internal.sql.command.SqlKillTransactionCommand;
+import org.apache.ignite.internal.sql.command.SqlRefreshStatitsicsCommand;
 import org.apache.ignite.internal.sql.command.SqlRollbackTransactionCommand;
 import org.apache.ignite.internal.sql.command.SqlSetStreamingCommand;
 import org.apache.ignite.internal.util.future.GridFinishedFuture;
@@ -363,7 +381,10 @@ public class CommandProcessor extends SqlCommandProcessor {
             || cmd instanceof SqlAlterTableCommand
             || cmd instanceof SqlCreateUserCommand
             || cmd instanceof SqlAlterUserCommand
-            || cmd instanceof SqlDropUserCommand;
+            || cmd instanceof SqlDropUserCommand
+            || cmd instanceof SqlAnalyzeCommand
+            || cmd instanceof SqlRefreshStatitsicsCommand
+            || cmd instanceof SqlDropStatisticsCommand;
     }
 
     /**
@@ -513,6 +534,251 @@ public class CommandProcessor extends SqlCommandProcessor {
     }
 
     /**
+     * Process kill scan query cmd.
+     *
+     * @param cmd Command.
+     */
+    private void processKillScanQueryCommand(SqlKillScanQueryCommand cmd) {
+        new QueryMXBeanImpl(ctx)
+            .cancelScan(cmd.getOriginNodeId(), cmd.getCacheName(), cmd.getQryId());
+    }
+
+    /**
+     * Process kill compute task command.
+     *
+     * @param cmd Command.
+     */
+    private void processKillComputeTaskCommand(SqlKillComputeTaskCommand cmd) {
+        new ComputeMXBeanImpl(ctx).cancel(cmd.getSessionId());
+    }
+
+    /**
+     * Process kill transaction cmd.
+     *
+     * @param cmd Command.
+     */
+    private void processKillTxCommand(SqlKillTransactionCommand cmd) {
+        new TransactionsMXBeanImpl(ctx).cancel(cmd.getXid());
+    }
+
+    /**
+     * Process kill service command.
+     *
+     * @param cmd Command.
+     */
+    private void processKillServiceTaskCommand(SqlKillServiceCommand cmd) {
+        new ServiceMXBeanImpl(ctx).cancel(cmd.getName());
+    }
+
+    /**
+     * Process kill continuous query cmd.
+     *
+     * @param cmd Command.
+     */
+    private void processKillContinuousQueryCommand(SqlKillContinuousQueryCommand cmd) {
+        new QueryMXBeanImpl(ctx).cancelContinuous(cmd.getOriginNodeId(), cmd.getRoutineId());
+    }
+
+    /**
+     * Process analyze command.
+     *
+     * @param cmd Sql analyze command.
+     */
+    private void processAnalyzeCommand(SqlAnalyzeCommand cmd) throws IgniteCheckedException {
+        ctx.security().authorize(SecurityPermission.CHANGE_STATISTICS);
+
+        IgniteH2Indexing indexing = (IgniteH2Indexing)ctx.query().getIndexing();
+
+        StatisticsObjectConfiguration objCfgs[] = cmd.configurations().stream()
+            .map(t -> {
+                if (t.key().schema() == null) {
+                    StatisticsKey key = new StatisticsKey(cmd.schemaName(), t.key().obj());
+                    return new StatisticsObjectConfiguration(key, t.columns().values(),
+                        t.maxPartitionObsolescencePercent());
+                }
+                else
+                    return t;
+            }).toArray(StatisticsObjectConfiguration[]::new);
+
+        indexing.statsManager().collectStatistics(objCfgs);
+    }
+
+    /**
+     * Process refresh statistics command.
+     *
+     * @param cmd Refresh statistics command.
+     */
+    private void processRefreshStatisticsCommand(SqlRefreshStatitsicsCommand cmd) throws IgniteCheckedException {
+        ctx.security().authorize(SecurityPermission.REFRESH_STATISTICS);
+
+        IgniteH2Indexing indexing = (IgniteH2Indexing)ctx.query().getIndexing();
+
+        StatisticsTarget[] targets = cmd.targets().stream()
+            .map(t -> (t.schema() == null) ? new StatisticsTarget(cmd.schemaName(), t.obj(), t.columns()) : t)
+            .toArray(StatisticsTarget[]::new);
+
+        indexing.statsManager().refreshStatistics(targets);
+    }
+
+    /**
+     * Process drop statistics command.
+     *
+     * @param cmd Drop statistics command.
+     */
+    private void processDropStatisticsCommand(SqlDropStatisticsCommand cmd) throws IgniteCheckedException {
+        ctx.security().authorize(SecurityPermission.CHANGE_STATISTICS);
+
+        IgniteH2Indexing indexing = (IgniteH2Indexing)ctx.query().getIndexing();
+
+        StatisticsTarget[] targets = cmd.targets().stream()
+            .map(t -> (t.schema() == null) ? new StatisticsTarget(cmd.schemaName(), t.obj(), t.columns()) : t)
+            .toArray(StatisticsTarget[]::new);
+
+        indexing.statsManager().dropStatistics(targets);
+    }
+
+    /**
+     * Run DDL statement.
+     *
+     * @param sql Original SQL.
+     * @param cmd Command.
+     */
+    private void runCommandNativeDdl(String sql, SqlCommand cmd) {
+        IgniteInternalFuture fut = null;
+
+        try {
+            isDdlOnSchemaSupported(cmd.schemaName());
+
+            finishActiveTxIfNecessary();
+
+            if (cmd instanceof SqlCreateIndexCommand) {
+                SqlCreateIndexCommand cmd0 = (SqlCreateIndexCommand)cmd;
+
+                GridH2Table tbl = schemaMgr.dataTable(cmd0.schemaName(), cmd0.tableName());
+
+                if (tbl == null)
+                    throw new SchemaOperationException(SchemaOperationException.CODE_TABLE_NOT_FOUND, cmd0.tableName());
+
+                assert tbl.rowDescriptor() != null;
+
+                ensureDdlSupported(tbl.cacheInfo());
+
+                QueryIndex newIdx = new QueryIndex();
+
+                newIdx.setName(cmd0.indexName());
+
+                newIdx.setIndexType(cmd0.spatial() ? QueryIndexType.GEOSPATIAL : QueryIndexType.SORTED);
+
+                LinkedHashMap<String, Boolean> flds = new LinkedHashMap<>();
+
+                // Let's replace H2's table and property names by those operated by GridQueryProcessor.
+                GridQueryTypeDescriptor typeDesc = tbl.rowDescriptor().type();
+
+                for (SqlIndexColumn col : cmd0.columns()) {
+                    GridQueryProperty prop = typeDesc.property(col.name());
+
+                    if (prop == null)
+                        throw new SchemaOperationException(SchemaOperationException.CODE_COLUMN_NOT_FOUND, col.name());
+
+                    flds.put(prop.name(), !col.descending());
+                }
+
+                newIdx.setFields(flds);
+                newIdx.setInlineSize(cmd0.inlineSize());
+
+                fut = ctx.query().dynamicIndexCreate(tbl.cacheName(), cmd.schemaName(), typeDesc.tableName(),
+                    newIdx, cmd0.ifNotExists(), cmd0.parallel());
+            }
+            else if (cmd instanceof SqlDropIndexCommand) {
+                SqlDropIndexCommand cmd0 = (SqlDropIndexCommand)cmd;
+
+                GridH2Table tbl = schemaMgr.dataTableForIndex(cmd0.schemaName(), cmd0.indexName());
+
+                if (tbl != null) {
+                    ensureDdlSupported(tbl.cacheInfo());
+
+                    fut = ctx.query().dynamicIndexDrop(tbl.cacheName(), cmd0.schemaName(), cmd0.indexName(),
+                        cmd0.ifExists());
+                }
+                else {
+                    if (cmd0.ifExists())
+                        fut = new GridFinishedFuture();
+                    else
+                        throw new SchemaOperationException(SchemaOperationException.CODE_INDEX_NOT_FOUND,
+                            cmd0.indexName());
+                }
+            }
+            else if (cmd instanceof SqlAlterTableCommand) {
+                SqlAlterTableCommand cmd0 = (SqlAlterTableCommand)cmd;
+
+                GridH2Table tbl = schemaMgr.dataTable(cmd0.schemaName(), cmd0.tableName());
+
+                if (tbl == null) {
+                    throw new SchemaOperationException(SchemaOperationException.CODE_TABLE_NOT_FOUND,
+                        cmd0.tableName());
+                }
+
+                Boolean logging = cmd0.logging();
+
+                assert logging != null : "Only LOGGING/NOLOGGING are supported at the moment.";
+
+                IgniteCluster cluster = ctx.grid().cluster();
+
+                if (logging) {
+                    boolean res = cluster.enableWal(tbl.cacheName());
+
+                    if (!res)
+                        throw new IgniteSQLException("Logging already enabled for table: " + cmd0.tableName());
+                }
+                else {
+                    boolean res = cluster.disableWal(tbl.cacheName());
+
+                    if (!res)
+                        throw new IgniteSQLException("Logging already disabled for table: " + cmd0.tableName());
+                }
+
+                fut = new GridFinishedFuture();
+            }
+            else if (cmd instanceof SqlCreateUserCommand) {
+                SqlCreateUserCommand addCmd = (SqlCreateUserCommand)cmd;
+
+                ctx.security().createUser(addCmd.userName(), addCmd.password().toCharArray());
+            }
+            else if (cmd instanceof SqlAlterUserCommand) {
+                SqlAlterUserCommand altCmd = (SqlAlterUserCommand)cmd;
+
+                ctx.security().alterUser(altCmd.userName(), altCmd.password().toCharArray());
+            }
+            else if (cmd instanceof SqlDropUserCommand) {
+                SqlDropUserCommand dropCmd = (SqlDropUserCommand)cmd;
+
+                ctx.security().dropUser(dropCmd.userName());
+            }
+            else if (cmd instanceof SqlAnalyzeCommand)
+                processAnalyzeCommand((SqlAnalyzeCommand) cmd);
+            else if (cmd instanceof SqlRefreshStatitsicsCommand)
+                processRefreshStatisticsCommand((SqlRefreshStatitsicsCommand) cmd);
+            else if (cmd instanceof SqlDropStatisticsCommand)
+                processDropStatisticsCommand((SqlDropStatisticsCommand) cmd);
+            else
+                throw new IgniteSQLException("Unsupported DDL operation: " + sql,
+                    IgniteQueryErrorCode.UNSUPPORTED_OPERATION);
+
+            if (fut != null)
+                fut.get();
+        }
+        catch (SchemaOperationException e) {
+            throw convert(e);
+        }
+        catch (IgniteSQLException e) {
+            throw e;
+        }
+        catch (Exception e) {
+            throw new IgniteSQLException(e.getMessage(), e);
+        }
+    }
+
+    /**
      * Execute DDL statement.
      *
      * @param sql SQL.
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/QueryParser.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/QueryParser.java
index 2eec586..0ecb90c 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/QueryParser.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/QueryParser.java
@@ -80,7 +80,8 @@ public class QueryParser {
 
     /** A pattern for commands having internal implementation in Ignite. */
     private static final Pattern INTERNAL_CMD_RE = Pattern.compile(
-        "^(create|drop)\\s+index|^alter\\s+table|^copy|^set|^begin|^commit|^rollback|^(create|alter|drop)\\s+user" +
+        "^(create|drop)\\s+index|^analyze\\s|^refresh\\sstatistics|^drop\\sstatistics|^alter\\s+table|^copy" +
+            "|^set|^begin|^commit|^rollback|^(create|alter|drop)\\s+user" +
             "|^kill\\s+(query|scan|continuous|compute|service|transaction)|show|help|grant|revoke",
         Pattern.CASE_INSENSITIVE);
 
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/SchemaManager.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/SchemaManager.java
index 67ffad5..d43c6c2 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/SchemaManager.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/SchemaManager.java
@@ -31,6 +31,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.function.BiConsumer;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import org.apache.ignite.IgniteCheckedException;
@@ -63,10 +64,6 @@ import org.apache.ignite.internal.processors.query.h2.opt.GridH2RowDescriptor;
 import org.apache.ignite.internal.processors.query.h2.opt.GridH2Table;
 import org.apache.ignite.internal.processors.query.h2.sys.SqlSystemTableEngine;
 import org.apache.ignite.internal.processors.query.h2.sys.view.SqlSystemView;
-import org.apache.ignite.internal.processors.query.h2.sys.view.SqlSystemViewBaselineNodes;
-import org.apache.ignite.internal.processors.query.h2.sys.view.SqlSystemViewCacheGroupsIOStatistics;
-import org.apache.ignite.internal.processors.query.h2.sys.view.SqlSystemViewNodeAttributes;
-import org.apache.ignite.internal.processors.query.h2.sys.view.SqlSystemViewNodeMetrics;
 import org.apache.ignite.internal.processors.query.schema.SchemaChangeListener;
 import org.apache.ignite.internal.processors.query.schema.SchemaIndexCacheVisitor;
 import org.apache.ignite.internal.util.GridConcurrentHashSet;
@@ -80,8 +77,10 @@ import org.apache.ignite.spi.systemview.view.SqlViewColumnView;
 import org.apache.ignite.spi.systemview.view.SqlViewView;
 import org.h2.index.Index;
 import org.h2.table.Column;
+import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
+import static java.util.Objects.requireNonNull;
 import static org.apache.ignite.internal.processors.metric.impl.MetricUtils.metricName;
 
 /**
@@ -151,6 +150,12 @@ public class SchemaManager implements GridQuerySchemaManager {
     /** Logger. */
     private final IgniteLogger log;
 
+    /** Drop column listeners. */
+    private final Set<BiConsumer<GridH2Table, List<String>>> dropColsLsnrs = ConcurrentHashMap.newKeySet();
+
+    /** Drop table listeners. */
+    private final Set<BiConsumer<String, String>> dropTblLsnrs = ConcurrentHashMap.newKeySet();
+
     /**
      * Constructor.
      *
@@ -207,9 +212,6 @@ public class SchemaManager implements GridQuerySchemaManager {
         // Register PUBLIC schema which is always present.
         schemas.put(QueryUtils.DFLT_SCHEMA, new H2Schema(QueryUtils.DFLT_SCHEMA, true));
 
-        // Create system views.
-        createSystemViews();
-
         // Create schemas listed in node's configuration.
         createPredefinedSchemas(schemaNames);
     }
@@ -258,29 +260,6 @@ public class SchemaManager implements GridQuerySchemaManager {
     }
 
     /**
-     * Create system views.
-     */
-    private void createSystemViews() throws IgniteCheckedException {
-        for (SqlSystemView view : systemViews(ctx))
-            createSystemView(QueryUtils.SCHEMA_SYS, view);
-    }
-
-    /**
-     * @param ctx Context.
-     * @return Predefined system views.
-     */
-    private Collection<SqlSystemView> systemViews(GridKernalContext ctx) {
-        Collection<SqlSystemView> views = new ArrayList<>();
-
-        views.add(new SqlSystemViewNodeAttributes(ctx));
-        views.add(new SqlSystemViewBaselineNodes(ctx));
-        views.add(new SqlSystemViewNodeMetrics(ctx));
-        views.add(new SqlSystemViewCacheGroupsIOStatistics(ctx));
-
-        return views;
-    }
-
-    /**
      * Create predefined schemas.
      *
      * @param schemaNames Schema names.
@@ -376,7 +355,7 @@ public class SchemaManager implements GridQuerySchemaManager {
                 try {
                     tbl.table().setRemoveIndexOnDestroy(rmvIdx);
 
-                    dropTable(tbl);
+                    dropTable(tbl, rmvIdx);
                     lsnr.onSqlTypeDropped(schemaName, tbl.type());
                 }
                 catch (Exception e) {
@@ -603,8 +582,9 @@ public class SchemaManager implements GridQuerySchemaManager {
      * Drops table form h2 database and clear all related indexes (h2 text, lucene).
      *
      * @param tbl Table to unregister.
+     * @param destroy {@code true} when table destroyed (cache destroyed) otherwise {@code false}.
      */
-    private void dropTable(H2TableDescriptor tbl) {
+    private void dropTable(H2TableDescriptor tbl, boolean destroy) {
         assert tbl != null;
 
         if (log.isDebugEnabled())
@@ -622,6 +602,9 @@ public class SchemaManager implements GridQuerySchemaManager {
                     log.debug("Dropping database index table with SQL: " + sql);
 
                 stmt.executeUpdate(sql);
+
+                if (destroy)
+                    afterDropTable(tbl.schemaName(), tbl.tableName());
             }
             catch (SQLException e) {
                 throw new IgniteSQLException("Failed to drop database index table [type=" + tbl.type().name() +
@@ -805,6 +788,8 @@ public class SchemaManager implements GridQuerySchemaManager {
         desc.table().dropColumns(cols, ifColExists);
 
         lsnr.onSqlTypeUpdated(schemaName, desc.type(), desc.table().cacheInfo());
+
+        dropColsLsnrs.forEach(l -> l.accept(desc.table(), cols));
     }
 
     /**
@@ -957,7 +942,9 @@ public class SchemaManager implements GridQuerySchemaManager {
 
     /** */
     private static final class CompoundSchemaChangeListener implements SchemaChangeListener {
-        /** */
+        /**
+         *
+         */
         private final List<SchemaChangeListener> lsnrs;
 
         /**
@@ -967,17 +954,23 @@ public class SchemaManager implements GridQuerySchemaManager {
             this.lsnrs = lsnrs;
         }
 
-        /** {@inheritDoc} */
+        /**
+         * {@inheritDoc}
+         */
         @Override public void onSchemaCreated(String schemaName) {
             lsnrs.forEach(lsnr -> lsnr.onSchemaCreated(schemaName));
         }
 
-        /** {@inheritDoc} */
+        /**
+         * {@inheritDoc}
+         */
         @Override public void onSchemaDropped(String schemaName) {
             lsnrs.forEach(lsnr -> lsnr.onSchemaCreated(schemaName));
         }
 
-        /** {@inheritDoc} */
+        /**
+         * {@inheritDoc}
+         */
         @Override public void onSqlTypeCreated(
             String schemaName,
             GridQueryTypeDescriptor typeDesc,
@@ -986,7 +979,9 @@ public class SchemaManager implements GridQuerySchemaManager {
             lsnrs.forEach(lsnr -> lsnr.onSqlTypeCreated(schemaName, typeDesc, cacheInfo));
         }
 
-        /** {@inheritDoc} */
+        /**
+         * {@inheritDoc}
+         */
         @Override public void onSqlTypeUpdated(
             String schemaName,
             GridQueryTypeDescriptor typeDesc,
@@ -995,20 +990,80 @@ public class SchemaManager implements GridQuerySchemaManager {
             lsnrs.forEach(lsnr -> lsnr.onSqlTypeUpdated(schemaName, typeDesc, cacheInfo));
         }
 
-        /** {@inheritDoc} */
+        /**
+         * {@inheritDoc}
+         */
         @Override public void onSqlTypeDropped(String schemaName, GridQueryTypeDescriptor typeDescriptor) {
             lsnrs.forEach(lsnr -> lsnr.onSqlTypeDropped(schemaName, typeDescriptor));
         }
 
-        /** {@inheritDoc} */
+        /**
+         * {@inheritDoc}
+         */
         @Override public void onIndexCreated(String schemaName, String tblName, String idxName,
             GridQueryIndexDescriptor idxDesc, org.apache.ignite.internal.cache.query.index.Index idx) {
             lsnrs.forEach(lsnr -> lsnr.onIndexCreated(schemaName, tblName, idxName, idxDesc, idx));
         }
 
-        /** {@inheritDoc} */
+        /**
+         * {@inheritDoc}
+         */
         @Override public void onIndexDropped(String schemaName, String tblName, String idxName) {
             lsnrs.forEach(lsnr -> lsnr.onIndexDropped(schemaName, tblName, idxName));
         }
     }
+
+    /**
+     * Register listener for drop columns event.
+     *
+     * @param lsnr Drop columns event listener.
+     */
+    public void registerDropColumnsListener(@NotNull BiConsumer<GridH2Table, List<String>> lsnr) {
+        requireNonNull(lsnr, "Drop columns listener should be not-null.");
+
+        dropColsLsnrs.add(lsnr);
+    }
+
+    /**
+     * Unregister listener for drop columns event.
+     *
+     * @param lsnr Drop columns event listener.
+     */
+    public void unregisterDropColumnsListener(@NotNull BiConsumer<GridH2Table, List<String>> lsnr) {
+        requireNonNull(lsnr, "Drop columns listener should be not-null.");
+
+        dropColsLsnrs.remove(lsnr);
+    }
+
+    /**
+     * Register listener for drop table event.
+     *
+     * @param lsnr Drop table event listener.
+     */
+    public void registerDropTableListener(@NotNull BiConsumer<String, String> lsnr) {
+        requireNonNull(lsnr, "Drop table listener should be not-null.");
+
+        dropTblLsnrs.add(lsnr);
+    }
+
+    /**
+     * Unregister listener for drop table event.
+     *
+     * @param lsnr Drop table event listener.
+     */
+    public void unregisterDropTableListener(@NotNull BiConsumer<String, String> lsnr) {
+        requireNonNull(lsnr, "Drop table listener should be not-null.");
+
+        dropTblLsnrs.remove(lsnr);
+    }
+
+    /**
+     * Fire each listener after table drop.
+     *
+     * @param schema Dropped table schema.
+     * @param tblName Dropped table name.
+     */
+    private void afterDropTable(String schema, String tblName) {
+        dropTblLsnrs.forEach(l -> l.accept(schema, tblName));
+    }
 }