You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2021/08/31 11:33:32 UTC

[ignite-3] branch ignite-15212 updated (0a5c47b -> 21cfef4)

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

amashenkov pushed a change to branch ignite-15212
in repository https://gitbox.apache.org/repos/asf/ignite-3.git.


    from 0a5c47b  Split session to sync/async/reactive.
     new b8639fa  minor
     add f1cffa2  IGNITE-15202 Muted ITNodeTest.readCommittedUserLog.
     add ce83394  IGNITE-15148 Implemented top level node stop logic. Fixes #230
     add bf51a6c  IGNITE-15210 Fixed access modifiers of setUp/tearDown (@BeforeEach, @AfterEach). Fixes #249
     add e1d490b  IGNITE-15213 Fix distributed configuration restart (#250)
     add 5e37640  IGNITE-15162 Thin 3.0: Add buffer pooling (#252)
     add dbe4035  IGNITE-15218 Add async methods to IgniteTables (#253)
     add 5353c4d  IGNITE-15215 Unmuted DynamicTableCreationTest. - Fixes #251.
     add 7a09d67  IGNITE-14841 Use shared distruptor pool for multiple raft group nodes. Fixes #207
     add fe2334b  IGNITE-15237 Thin 3.0: Fix ClientHandlerIntegrationTest flakiness (#255)
     add d3dc66f  IGNITE-15166 Implemented "rename" API for named lists configuration. (#244)
     add e30ee0d  IGNITE-15262 Removed duplicated TestConfigurationStorage classes. (#261)
     add ab4a585  IGNITE-15224 Thin 3.0: Implement Table API operations (#263)
     add 68d80ef  IGNITE-14790 Persistent partition storage based on RocksDB. (#254)
     add 356c766  IGNITE-15264 Fixed wrong applied revision handling in DistributedConfigurationStorage (#262)
     add 93afd72  IGNITE-15275 Fix handshake operation (#265)
     add 3556078  IGNITE-15174 Fix javadocs in Network module (#270)
     add e7fa690  IGNITE-15193 Fixed broken notifications in configuration framework. (#259)
     add 7b8d9fa  IGNITE-13668 Number native type support (#243)
     add b1551e5  IGNITE-15286 Fixed imports order & checkstyle/codestyle rules added. (#271)
     add 4bd3d27  IGNITE-14956 Implemented and checked scenarios for startup configuration. Fixes #256
     add e1507d1  IGNITE-15211 Improve logging formatting (#266)
     add 0507f4a  IGNITE-15196 Fail invoke futures on network stop (#269)
     add 8195c26  IGNITE-14579 Start REST API module. Fixes #264
     add 9d04a4b  IGNITE-15219 Fixed hanging tests by enriching TableEventParameters with non-null table reference. Fixes #260
     add 85678b7  Revert "IGNITE-15219 Fixed hanging tests by enriching TableEventParameters with non-null table reference. Fixes #260"
     add cd6d863  IGNITE-15025 Add Maven check scripts to VCS (#247)
     add 8ee8bb1  IGNITE-15269 Get rid of com.google.gson for configuration (#267)
     add b187176  IGNITE-15303 Maven Sanity Check is broken in main branch (#277)
     add cb77daa  IGNITE-15182 Fix PMD plugin configuration (#241)
     add 9840566  IGNITE-15304 Validate POM files for duplicate dependencies (#279)
     add 737cf67  IGNITE-15296 Generated node classes throw NPE now if null passed. (#274)
     add 78a4e11  IGNITE-15309 Fix nodes hanging on stop (#280)
     add ff694ff  IGNITE-15310 fix bug in JavaLoggerFormatter (#281)
     add 2d05b82  IGNITE-15297 Removed spin-wait loop in ConfigurationChanger (#275)
     add 3e18a6c  IGNITE-15305 Fixed flaky ITDistributedConfigurationStorageTest#testRestartWithPds. (#276)
     add e584604  IGNITE-15272 Async raft group service startup (#272)
     add b82c1cb  IGNITE-15285 Properly splitting ConfigurationManager instances (node and cluster) (#273)
     add 6a9740a  IGNITE-15298 Muted ITMetaStorageServicePersistenceTest.testSnapshot
     add da4d47f  IGNITE-15312 Muted ITNodeTest.testPreVote
     add 4a7f0a8  IGNITE-14016 - RPM package for Ignite 3 (#29)
     add afe2cce  IGNITE-15236 Thin 3.0: Start client-handler module (#283)
     add 2ac66e7  IGNITE-15331 Remove slf4j-simple (#289)
     add e64a30a  IGNITE-15335 Introduce thread utils for Ignite 3.0 (#292)
     add 0983c2a  IGNITE-14943 Fixed race in ThreadId.setError method - Fixes #287.
     add 5e1a00c  IGNITE-15164 Improve thin client configuration (#298)
     add bcc267e  IGNITE-14735 Fix CheckStyle report not being generated in case of violation (#131)
     add 3da7311  IGNITE-15278 Node start/stop refactoring. Fixes #293
     add ca85b47  IGNITE-15366 Create CONTRIBUTING.md (#299)
     add e73d124  IGNITE-15298 RAFT snapshots implementation for persistent partitions storage - Fixes #285.
     add 436462f  IGNITE-13669: Support temporal types. (#216)
     add 42a5d78  IGNITE-15313 shutdown Executors correctly in JRaft codebase. Fixes #288
     add e7d7ea6  IGNITE-15253 Tuple API improvement (#282)
     add fbf55e2  IGNITE-15163 Support BitSet, Number, Decimal and Temporal types (#296)
     new 21cfef4  Merge branch 'main' into ignite-15212

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:
 CONTRIBUTING.md                                    |  70 +++
 DEVNOTES.md                                        |  12 +
 check-rules/checkstyle-disabled-modules.xml        |   2 -
 check-rules/checkstyle-rules.xml                   |  19 +
 .../CheckDependencyAndPluginVersionsNotInParent.sh |  30 ++
 .../CheckDuplicateDependencies.sh                  |  30 ++
 .../CheckModulesInRootPomAreSorted.sh              |  25 +
 .../CheckPropertiesNotInParent.sh                  |  25 +
 .../CheckUnusedDependenciesAndPluginsInParent.sh   |  44 ++
 .../maven-check-scripts/CheckUnusedProperties.sh   |  34 ++
 check-rules/maven-check-scripts/run.sh             |  43 ++
 config/java.util.logging.properties                |  57 +++
 deliveries/rpm/.gitignore                          |   2 +
 deliveries/rpm/Dockerfile                          |  42 ++
 deliveries/rpm/README.md                           |  48 ++
 deliveries/rpm/apache-ignite.spec                  | 236 +++++++++
 deliveries/rpm/build.sh                            |  38 ++
 .../example/table/KeyValueBinaryViewExample.java   |  10 +-
 .../apache/ignite/example/table/TableExample.java  |   7 +-
 idea/ignite_codeStyle.xml                          | 119 +++++
 modules/affinity/pom.xml                           |   7 +
 .../ignite/internal/affinity/AffinityManager.java  |  11 +-
 .../internal/affinity/AffinityManagerTest.java     |  59 ++-
 .../affinity/TestConfigurationStorage.java         |  74 ---
 .../main/java/org/apache/ignite/app/Ignite.java    |   7 +
 .../main/java/org/apache/ignite/app/Ignition.java  |  29 +-
 .../org/apache/ignite/app/IgnitionManager.java     |  92 +++-
 .../ClientConnectorConfigurationSchema.java        |   7 +-
 .../schemas/rest/RestConfigurationSchema.java      |   2 +-
 .../org/apache/ignite/query/sql/SqlSession.java    |  15 +-
 .../java/org/apache/ignite/schema/ColumnType.java  | 314 +++++++++++-
 .../apache/ignite/table/KeyValueBinaryView.java    |   7 -
 .../main/java/org/apache/ignite/table/Table.java   |   7 -
 .../main/java/org/apache/ignite/table/Tuple.java   | 160 +++++-
 .../java/org/apache/ignite/table/TupleImpl.java    | 317 ++++++++++++
 .../apache/ignite/table/manager/IgniteTables.java  |  56 +-
 .../ignite/internal/baseline/BaselineManager.java  |  13 +-
 modules/calcite/pom.xml                            |   6 +
 .../query/calcite/SqlQueryProcessor.java           |  34 +-
 .../query/calcite/exec/QueryTaskExecutorImpl.java  |   3 +-
 .../rule/FilterSpoolMergeToHashIndexSpoolRule.java |   4 +-
 .../calcite/exec/rel/AbstractExecutionTest.java    |   7 +-
 modules/cli/ignite.sh                              |   2 +-
 modules/cli/pom.xml                                |  12 +
 .../org/apache/ignite/cli/ConfigCommandTest.java   | 179 +++++++
 .../cli/builtins/config/ConfigurationClient.java   |  21 +-
 .../ignite/cli/builtins/module/ModuleRegistry.java |   8 +-
 .../apache/ignite/cli/spec/ConfigCommandSpec.java  |  31 +-
 .../ignite/cli/spec/InitIgniteCommandSpec.java     |   2 +-
 .../apache/ignite/cli/IgniteCliInterfaceTest.java  |  41 +-
 .../cli/builtins/init/InitIgniteCommandTest.java   |   4 +-
 .../cli/builtins/module/ModuleMangerTest.java      |   4 +-
 .../org/apache/ignite/cli/ui/ProgressBarTest.java  |   4 +-
 .../apache/ignite/client/proto/ClientDataType.java |  15 +
 .../ignite/client/proto/ClientMessageCommon.java}  |  24 +-
 .../ignite/client/proto/ClientMessageDecoder.java  |  98 +---
 .../ignite/client/proto/ClientMessageEncoder.java  |  47 --
 .../ignite/client/proto/ClientMessagePacker.java   | 496 ++++++++++++++++--
 .../ignite/client/proto/ClientMessageUnpacker.java | 505 +++++++++++++++++-
 .../ignite/client/proto/ClientMsgPackType.java     |   6 +
 .../org/apache/ignite/client/proto/ClientOp.java   |  60 +++
 .../client/proto/ClientMessageDecoderTest.java     |  68 +--
 .../client/proto/ClientMessageEncoderTest.java     |  53 --
 .../proto/ClientMessagePackerUnpackerTest.java     | 232 ++++++++-
 modules/client-handler/pom.xml                     |   9 +-
 .../ignite/client/handler/ClientHandlerModule.java |  94 ++--
 .../handler/ClientInboundMessageHandler.java       | 486 ++++++------------
 .../requests/table/ClientSchemasGetRequest.java    |  74 +++
 .../handler/requests/table/ClientTableCommon.java  | 474 +++++++++++++++++
 .../requests/table/ClientTableDropRequest.java}    |  26 +-
 .../requests/table/ClientTableGetRequest.java}     |  52 +-
 .../requests/table/ClientTablesGetRequest.java}    |  63 +--
 .../table/ClientTupleDeleteAllExactRequest.java    |  51 ++
 .../table/ClientTupleDeleteAllRequest.java         |  51 ++
 .../table/ClientTupleDeleteExactRequest.java}      |  48 +-
 .../requests/table/ClientTupleDeleteRequest.java}  |  48 +-
 .../requests/table/ClientTupleGetAllRequest.java   |  51 ++
 .../table/ClientTupleGetAndDeleteRequest.java      |  51 ++
 .../table/ClientTupleGetAndReplaceRequest.java     |  51 ++
 .../ClientTupleGetAndReplaceSchemalessRequest.java |  51 ++
 .../table/ClientTupleGetAndUpsertRequest.java      |  51 ++
 .../ClientTupleGetAndUpsertSchemalessRequest.java  |  51 ++
 .../requests/table/ClientTupleGetRequest.java      |  51 ++
 .../table/ClientTupleInsertAllRequest.java         |  51 ++
 .../ClientTupleInsertAllSchemalessRequest.java     |  51 ++
 .../requests/table/ClientTupleInsertRequest.java}  |  48 +-
 .../table/ClientTupleInsertSchemalessRequest.java} |  48 +-
 .../table/ClientTupleReplaceExactRequest.java      |  54 ++
 .../ClientTupleReplaceExactSchemalessRequest.java  |  52 ++
 .../requests/table/ClientTupleReplaceRequest.java} |  48 +-
 .../ClientTupleReplaceSchemalessRequest.java}      |  48 +-
 .../table/ClientTupleUpsertAllRequest.java}        |  46 +-
 .../ClientTupleUpsertAllSchemalessRequest.java}    |  46 +-
 .../requests/table/ClientTupleUpsertRequest.java}  |  46 +-
 .../table/ClientTupleUpsertSchemalessRequest.java} |  46 +-
 .../handler/requests/table/package-info.java}      |  13 +-
 .../handler/ClientHandlerIntegrationTest.java      |  61 ++-
 .../client/handler/TestConfigurationStorage.java   |  75 ---
 modules/client/pom.xml                             |   7 +
 .../org/apache/ignite/client/IgniteClient.java     | 168 ++++--
 .../ignite/client/IgniteClientConfiguration.java   |  46 +-
 .../client/ClientChannelConfiguration.java         |  72 +--
 .../client/IgniteClientConfigurationImpl.java      |  97 ++++
 .../internal/client/PayloadInputChannel.java       |   7 +-
 .../internal/client/PayloadOutputChannel.java      |   9 +-
 .../ignite/internal/client/ReliableChannel.java    |  31 +-
 .../ignite/internal/client/TcpClientChannel.java   |  84 ++-
 .../ignite/internal/client/TcpIgniteClient.java    |  57 ++-
 .../internal/client/io/ClientConnection.java       |  12 +-
 .../client/io/ClientConnectionMultiplexer.java     |   7 +-
 .../internal/client/io/ClientMessageHandler.java   |   4 +-
 .../client/io/netty/NettyClientConnection.java     |  12 +-
 .../io/netty/NettyClientConnectionMultiplexer.java |  14 +-
 .../client/io/netty/NettyClientMessageHandler.java |   7 +-
 .../ignite/internal/client/table/ClientTable.java  | 341 ++++++++++---
 .../ignite/internal/client/table/ClientTables.java |  37 +-
 .../{ClientTupleBuilder.java => ClientTuple.java}  |  81 ++-
 .../apache/ignite/client/AbstractClientTest.java   |  89 ++--
 .../org/apache/ignite/client/ClientTableTest.java  | 310 ++++++++++-
 ...tTupleBuilderTest.java => ClientTupleTest.java} |  59 ++-
 .../apache/ignite/client/ConfigurationTest.java    | 125 +++++
 .../org/apache/ignite/client/ConnectionTest.java   |   8 +-
 .../java/org/apache/ignite/client/CustomTuple.java | 223 ++++++++
 .../org/apache/ignite/client/ReconnectTest.java    | 108 ++++
 .../ignite/client/TestConfigurationStorage.java    |  75 ---
 .../org/apache/ignite/client/fakes/FakeIgnite.java |   5 +
 .../ignite/client/fakes/FakeIgniteTables.java      |  70 ++-
 .../ignite/client/fakes/FakeInternalTable.java     | 121 ++++-
 .../ignite/client/fakes/FakeSchemaRegistry.java    |  97 ++++
 modules/configuration-annotation-processor/pom.xml |   7 +
 .../configuration/ConfigurationChangerTest.java    | 146 +++---
 .../configuration/TestConfigurationChanger.java    |  33 +-
 .../configuration/hocon/HoconConverterTest.java    |  16 +-
 .../configuration/json/JsonConverterTest.java      | 541 --------------------
 .../notifications/ConfigurationListenerTest.java   | 466 +++++++++++++++--
 .../internal/configuration/sample/UsageTest.java   |  23 +-
 .../configuration/tree/NamedListNodeTest.java      | 312 ++++++++++++
 .../configuration/tree/NamedListOrderTest.java     | 239 ---------
 .../tree/TraversableTreeNodeTest.java              |   6 +
 .../configuration/util/ConfigurationUtilTest.java  | 175 ++++---
 .../validation/ValidationUtilTest.java             |   2 +-
 .../ignite/configuration/ConfigurationTree.java    |  12 +-
 .../ignite/configuration/ConfigurationValue.java   |   4 +-
 .../configuration/NamedConfigurationTree.java      |   2 +-
 .../ignite/configuration/NamedListChange.java      |  22 +-
 .../org/apache/ignite/configuration/RootKey.java   |  18 +-
 .../notifications/ConfigurationListener.java       |   4 +-
 .../ConfigurationNamedListListener.java            |  24 +-
 modules/configuration/pom.xml                      |  22 +-
 .../configuration/ConfigurationChanger.java        | 353 +++++--------
 .../configuration/ConfigurationManager.java        |  59 +--
 .../configuration/ConfigurationRegistry.java       | 117 +++--
 .../configuration/DynamicConfiguration.java        |  40 +-
 .../internal/configuration/DynamicProperty.java    |   6 +-
 .../configuration/NamedListConfiguration.java      |  26 +-
 .../asm/ConfigurationAsmGenerator.java             |  17 +-
 .../json/JsonConfigurationVisitor.java             | 127 -----
 .../internal/configuration/json/JsonConverter.java |  43 --
 .../json/JsonObjectConfigurationSource.java        | 105 ----
 .../json/JsonPrimitiveConfigurationSource.java     | 202 --------
 .../storage/ConfigurationStorage.java              |   7 -
 .../storage/ConfigurationStorageListener.java      |   6 +-
 .../internal/configuration/tree/NamedListNode.java | 230 +++++++--
 .../configuration/util/ConfigurationFlattener.java |  25 +-
 .../ConfigurationNotificationEventImpl.java        |   6 +-
 .../util/ConfigurationNotificationsUtil.java       | 171 +++++--
 .../configuration/util/ConfigurationUtil.java      | 292 ++++-------
 .../storage/TestConfigurationStorage.java          |  20 +-
 .../ignite/internal/manager/IgniteComponent.java   |  46 ++
 .../internal/thread}/NamedThreadFactory.java       |  59 ++-
 .../thread}/StripedThreadPoolExecutor.java         |  15 +-
 .../apache/ignite/internal/util/IgniteUtils.java   |  43 ++
 .../apache/ignite/lang/JavaLoggerFormatter.java    | 146 ++++++
 .../apache/ignite/lang/NodeStoppingException.java  |  75 +++
 .../internal/testframework/IgniteAbstractTest.java |  47 ++
 .../internal/testframework/IgniteTestUtils.java    |  75 ++-
 .../tostring/IgniteToStringBuilderSelfTest.java    |   6 +-
 modules/metastorage-client/pom.xml                 |   7 +
 .../ITMetaStorageServicePersistenceTest.java       | 384 ++------------
 .../client/ITMetaStorageServiceTest.java           |  55 +-
 .../internal/metastorage/client/CursorImpl.java    |   7 +
 .../metastorage/client/MetaStorageService.java     |   2 +-
 .../metastorage/client/MetaStorageServiceImpl.java |   3 +-
 .../metastorage/common/command/OperationInfo.java  |   3 +-
 modules/metastorage-server/pom.xml                 |   4 +-
 .../internal/metastorage/server/Condition.java     |   3 +-
 .../server/persistence/RocksDBKeyValueStorage.java |  55 +-
 .../server/persistence/RocksStorageUtils.java      |  86 ----
 .../server/persistence/WatchCursor.java            |   5 +-
 .../internal/metastorage/MetaStorageManager.java   |  66 +--
 .../metastorage/watch/WatchAggregator.java         |   4 +-
 .../internal/metastorage/WatchAggregatorTest.java  |   6 +-
 .../processor/TransferableObjectProcessor.java     |   2 +-
 .../messages/MessageBuilderGenerator.java          |   2 +-
 .../messages/MessageFactoryGenerator.java          |   2 +-
 .../serialization/BaseMethodNameResolver.java      |   4 +-
 .../MessageCollectionItemTypeConverter.java        |   4 +-
 .../serialization/MessageSerializerGenerator.java  |   4 +-
 modules/network-api/pom.xml                        |   5 +
 .../ignite/network/AbstractClusterService.java     |   2 +-
 .../ignite/network/AbstractMessagingService.java   |  19 +-
 .../ignite/network/AbstractTopologyService.java    |   8 +-
 .../ignite/network/ClusterLocalConfiguration.java  |  34 +-
 .../org/apache/ignite/network/ClusterNode.java     |  10 +-
 .../org/apache/ignite/network/ClusterService.java  |  32 +-
 .../ignite/network/ClusterServiceFactory.java      |  11 +-
 .../org/apache/ignite/network/NetworkAddress.java  |   7 +
 .../network/NetworkConfigurationException.java     |   2 +
 .../ignite/network/NetworkMessageHandler.java      |  10 +-
 .../org/apache/ignite/network/TopologyService.java |   7 +-
 .../ignite/network/annotations/Transferable.java   |   4 +-
 .../ignite/network/annotations/package-info.java}  |  13 +-
 .../org/apache/ignite/network/package-info.java}   |  13 +-
 .../network/serialization/MessageDeserializer.java |  12 +
 .../serialization/MessageMappingException.java     |   2 +
 .../serialization/MessageSerializationFactory.java |   2 +
 .../network/serialization/MessageSerializer.java   |   2 +
 .../network/serialization/MessageWriter.java       |   4 +-
 .../network/serialization/package-info.java}       |  13 +-
 modules/network/pom.xml                            |  14 +
 .../network/netty/ConnectionManagerTest.java       |  22 +
 .../network/recovery/RecoveryHandshakeTest.java    |  74 ++-
 .../network/scalecube/ITNodeRestartsTest.java      |  44 +-
 .../scalecube/ITScaleCubeNetworkMessagingTest.java | 111 +++-
 .../TestScaleCubeClusterServiceFactory.java        |  21 +-
 .../ignite/network/scalecube/package-info.java}    |  13 +-
 .../ignite/utils/ClusterServiceTestUtils.java      | 103 ++++
 .../internal/network/NetworkMessageTypes.java      |   4 +-
 .../network/direct/DirectMessageReader.java        |   4 +-
 .../network/direct/DirectMessageWriter.java        |   4 +-
 .../internal/network/message/ScaleCubeMessage.java |   2 +-
 .../internal/network/netty/ConnectionManager.java  |  44 +-
 .../internal/network/netty/HandshakeHandler.java   |   4 +-
 .../internal/network/netty/InboundDecoder.java     |   2 +-
 .../internal/network/netty/MessageHandler.java     |   9 +-
 .../ignite/internal/network/netty/NettyClient.java |   2 +-
 .../ignite/internal/network/netty/NettySender.java |   2 +-
 .../ignite/internal/network/netty/NettyServer.java |  18 +-
 .../ignite/internal/network/netty/NettyUtils.java  |   4 +-
 .../internal/network/netty/OutboundEncoder.java    |   2 +-
 .../network/MessageSerializationRegistryImpl.java  |   4 +-
 .../apache/ignite/network/StaticNodeFinder.java    |   5 +-
 .../org/apache/ignite/network/package-info.java}   |  13 +-
 .../scalecube/DelegatingTransportFactory.java      |   4 +-
 .../scalecube/ScaleCubeClusterServiceFactory.java  |  93 ++--
 .../ScaleCubeDirectMarshallerTransport.java        |  12 +-
 .../scalecube/ScaleCubeMessagingService.java       |  25 +-
 .../scalecube/ScaleCubeTopologyService.java        |   3 +
 .../ignite/network/scalecube/package-info.java}    |  13 +-
 .../internal/network/netty/NettyClientTest.java    |   4 +-
 .../internal/network/netty/NettyServerTest.java    |   8 +-
 .../src/test/resources/simplelogger.properties     |  52 --
 .../raft/client/service/RaftGroupListener.java     |   2 +-
 .../client/service/impl/RaftGroupServiceImpl.java  |  54 +-
 .../raft/client/service/RaftGroupServiceTest.java  |  26 +-
 modules/raft/pom.xml                               |  24 +-
 .../service/ITAbstractListenerSnapshotTest.java    | 392 ++++++++++++++
 .../ignite/raft/jraft/core/ITCliServiceTest.java   |  25 +-
 .../apache/ignite/raft/jraft/core/ITNodeTest.java  | 110 +++-
 .../apache/ignite/raft/server/CounterListener.java |  10 +-
 .../raft/server/ITJRaftCounterServerTest.java      | 128 +++--
 .../raft/server/ITSimpleCounterServerTest.java     |  44 +-
 .../ignite/raft/server/RaftServerAbstractTest.java |  24 +-
 .../java/org/apache/ignite/internal/raft/Loza.java |  26 +-
 .../ignite/internal/raft/server/RaftServer.java    |  10 +-
 .../internal/raft/server/impl/JRaftServerImpl.java | 127 ++++-
 .../org/apache/ignite/raft/jraft/JRaftUtils.java   |  73 ++-
 .../ignite/raft/jraft/core/FSMCallerImpl.java      |  69 +--
 .../apache/ignite/raft/jraft/core/NodeImpl.java    |  75 ++-
 .../raft/jraft/core/ReadOnlyServiceImpl.java       |  61 ++-
 .../ignite/raft/jraft/core/TimerManager.java       |   2 +-
 .../{util => disruptor}/DisruptorBuilder.java      |  11 +-
 .../ignite/raft/jraft/disruptor/GroupAware.java}   |  15 +-
 .../raft/jraft/disruptor/StripedDisruptor.java     | 281 ++++++++++
 .../ignite/raft/jraft/option/FSMCallerOptions.java |  26 +-
 .../raft/jraft/option/LogManagerOptions.java       |  31 +-
 .../ignite/raft/jraft/option/NodeOptions.java      |  24 +
 .../raft/jraft/option/ReadOnlyServiceOptions.java  |  21 +
 .../ignite/raft/jraft/option/RpcOptions.java       |  51 +-
 .../raft/jraft/rpc/impl/IgniteRpcServer.java       |  11 +-
 .../rpc/impl/client/GetLeaderRequestProcessor.java |   7 +-
 .../raft/jraft/storage/impl/LogManagerImpl.java    |  67 ++-
 .../raft/jraft/storage/impl/RocksDBLogStorage.java |   6 +-
 .../raft/jraft/util/LogExceptionHandler.java       |  64 ---
 .../ignite/raft/jraft/util/RepeatedTimer.java      |   1 +
 .../apache/ignite/raft/jraft/util/ThreadId.java    |  27 +-
 .../org/apache/ignite/raft/jraft/util/Utils.java   |   4 +-
 .../DefaultFixedThreadsExecutorGroupFactory.java   |   2 +-
 .../concurrent/DefaultSingleThreadExecutor.java    |   2 +-
 .../jraft/util/timer/DefaultRaftTimerFactory.java  |   2 +-
 .../ignite/raft/jraft/util/timer/DefaultTimer.java |   2 +-
 .../internal/raft/server/impl/RaftServerImpl.java  |  44 +-
 .../jraft/closure/SynchronizedClosureTest.java     |  40 +-
 .../ignite/raft/jraft/core/BallotBoxTest.java      |   7 +-
 .../ignite/raft/jraft/core/FSMCallerTest.java      |  21 +-
 .../ignite/raft/jraft/core/IteratorImplTest.java   |  13 +-
 .../raft/jraft/core/ReadOnlyServiceTest.java       |  31 +-
 .../ignite/raft/jraft/core/ReplicatorTest.java     |   7 +-
 .../apache/ignite/raft/jraft/core/TestCluster.java | 112 +++-
 .../jraft/entity/codec/LogEntryCodecPerfTest.java  |   9 +-
 .../raft/jraft/rpc/AbstractClientServiceTest.java  |  12 +-
 .../ignite/raft/jraft/rpc/IgniteRpcTest.java       |  60 ++-
 .../ignite/raft/jraft/rpc/TestIgniteRpcServer.java |  27 +-
 .../ignite/raft/jraft/rpc/impl/FutureTest.java     |  75 +--
 .../core/AppendEntriesRequestProcessorTest.java    |   3 +-
 .../impl/core/BaseNodeRequestProcessorTest.java    |  19 +-
 .../raft/jraft/storage/SnapshotExecutorTest.java   |  16 +-
 .../raft/jraft/storage/impl/LogManagerTest.java    |  21 +-
 .../storage/snapshot/remote/CopySessionTest.java   |  54 +-
 .../raft/jraft/util/ByteBufferCollectorTest.java   |   7 +-
 .../ignite/raft/jraft/util/CountDownEventTest.java |  14 +-
 .../jraft/util/RecyclableByteBufferListTest.java   |   7 +-
 .../ignite/raft/jraft/util/RecyclersTest.java      |  21 +-
 .../ignite/raft/jraft/util/ThreadIdTest.java       |  70 +--
 .../apache/ignite/raft/jraft/util/UtilsTest.java   |  16 +-
 .../LongHeldDetectingReadWriteLockTest.java        | 146 ++++--
 .../concurrent/MpscSingleThreadExecutorTest.java   |   2 +-
 .../concurrent/SingleThreadExecutorBenchmark.java  |   4 +-
 modules/rest/pom.xml                               |  14 +
 .../java/org/apache/ignite/rest/ErrorResult.java   |   6 +-
 .../java/org/apache/ignite/rest/RestModule.java    | 254 +++++----
 .../ignite/rest/netty/RestApiHttpRequest.java      |   2 +-
 .../ignite/rest/netty/RestApiHttpResponse.java     |   2 +-
 .../presentation/ConfigurationPresentation.java    |  21 +-
 .../rest/presentation/hocon/HoconPresentation.java |  86 ++++
 .../rest/presentation/json/JsonPresentation.java   |  68 ---
 .../java/org/apache/ignite/rest/routes/Route.java  |   8 +-
 .../java/org/apache/ignite/rest/routes/Router.java |   6 +-
 .../ignite/rest/netty/RestApiHttpResponseTest.java |  54 ++
 .../ConfigurationPresentationTest.java             | 195 +++++++
 .../{storage-rocksdb => rocksdb-common}/pom.xml    |  31 +-
 .../ignite/internal/rocksdb}/ColumnFamily.java     |  55 +-
 .../ignite/internal/rocksdb/RocksBiConsumer.java}  |  18 +-
 .../ignite/internal/rocksdb/RocksBiPredicate.java} |  22 +-
 .../apache/ignite/internal/rocksdb/RocksUtils.java | 119 +++++
 modules/runner/README.md                           |  41 +-
 modules/runner/pom.xml                             |  33 +-
 .../runner/app/AbstractSchemaChangeTest.java       |   3 +-
 .../runner/app/DynamicTableCreationTest.java       |  44 +-
 .../runner/app/ITIgniteNodeRestartTest.java        | 195 +++++++
 .../runner/app/ITThinClientConnectionTest.java     | 134 +++++
 .../ignite/internal/runner/app/IgnitionTest.java   |   9 +-
 .../runner/app/LiveSchemaChangeKVViewTest.java     |  45 +-
 .../runner/app/LiveSchemaChangeTableTest.java      |  57 +--
 .../runner/app/SchemaChangeKVViewTest.java         | 124 ++---
 .../runner/app/SchemaChangeTableViewTest.java      | 105 ++--
 .../internal/runner/app/TableCreationTest.java     |  20 +-
 .../ITDistributedConfigurationStorageTest.java     | 191 +++++++
 .../org/apache/ignite/internal/app/IgniteImpl.java | 446 +++++++++++++++-
 .../apache/ignite/internal/app/IgnitionImpl.java   | 186 ++-----
 .../storage/DistributedConfigurationStorage.java   | 198 +++----
 .../storage/LocalConfigurationStorage.java         |  41 +-
 .../src/main/resources/simplelogger.properties     |  19 -
 modules/schema/pom.xml                             |  14 +
 .../apache/ignite/internal/schema/BinaryRow.java   |   5 +
 .../ignite/internal/schema/ByteBufferRow.java      |   5 +
 ...mericNativeType.java => DecimalNativeType.java} |  17 +-
 .../ignite/internal/schema/NativeTypeSpec.java     |  74 ++-
 .../apache/ignite/internal/schema/NativeTypes.java | 119 ++++-
 ...umericNativeType.java => NumberNativeType.java} |  65 ++-
 .../apache/ignite/internal/schema/SchemaAware.java |   6 +-
 .../ignite/internal/schema/SchemaDescriptor.java   |  11 +-
 .../ignite/internal/schema/SchemaManager.java      |  11 +-
 .../ignite/internal/schema/TemporalNativeType.java |  98 ++++
 .../SchemaConfigurationConverter.java              |  64 ++-
 .../configuration/SchemaDescriptorConverter.java   |  59 ++-
 .../schema/marshaller/AbstractSerializer.java      |   2 +-
 .../internal/schema/marshaller/BinaryMode.java     |   8 +-
 .../internal/schema/marshaller/MarshallerUtil.java |  13 +
 .../marshaller/asm/AsmSerializerGenerator.java     |  14 +-
 .../marshaller/asm/ColumnAccessCodeGenerator.java  |   6 +
 .../asm/IdentityMarshallerCodeGenerator.java       |   2 +-
 .../asm/ObjectMarshallerCodeGenerator.java         |  12 +-
 .../marshaller/reflection/FieldAccessor.java       |  30 +-
 .../marshaller/reflection/JavaSerializer.java      |   4 +-
 .../schema/marshaller/reflection/Marshaller.java   |   4 +-
 .../schema/registry/SchemaRegistryImpl.java        |   2 +-
 .../schema/registry/UpgradingRowAdapter.java       | 195 +++----
 .../org/apache/ignite/internal/schema/row/Row.java | 177 ++++++-
 .../ignite/internal/schema/row/RowAssembler.java   | 263 +++++++++-
 .../internal/schema/row/TemporalTypesHelper.java   | 296 +++++++++++
 .../apache/ignite/internal/schema/ColumnTest.java  |  11 +-
 .../apache/ignite/internal/schema/ColumnsTest.java |   6 +-
 .../ignite/internal/schema/NativeTypeTest.java     | 131 ++++-
 .../schema/RowAssemblerAdvancedSchemaTest.java     |   4 +-
 .../schema/RowAssemblerSimpleSchemaTest.java       |   4 +-
 .../org/apache/ignite/internal/schema/RowTest.java | 148 +++++-
 .../ignite/internal/schema/TemporalTypesTest.java  |  84 +++
 .../apache/ignite/internal/schema/TestUtils.java   |  88 ++--
 .../schema/builder/HashIndexBuilderTest.java       |   3 +-
 .../SchemaConfigurationConverterTest.java          |  24 +-
 .../SchemaDescriptorConverterTest.java             |  14 +-
 .../configuration/TestConfigurationStorage.java    |  64 ---
 .../schema/marshaller/JavaSerializerTest.java      |  53 +-
 .../marshaller/reflection/FieldAccessorTest.java   |  41 +-
 modules/sql/src/test/java/SqlTest.java             |   5 +-
 modules/sql/src/test/java/TestRow.java             |  52 +-
 .../apache/ignite/internal/storage/DataRow.java    |   5 +
 .../ignite/internal/storage/InvokeClosure.java     |  27 +-
 .../apache/ignite/internal/storage/SearchRow.java  |   6 +-
 .../apache/ignite/internal/storage/Storage.java    |  82 ++-
 .../storage/basic/ConcurrentHashMapStorage.java    | 124 +++--
 ...eClosure.java => DeleteExactInvokeClosure.java} |  50 +-
 ...Closure.java => GetAndRemoveInvokeClosure.java} |  46 +-
 .../storage/basic/GetAndReplaceInvokeClosure.java  |  86 ++++
 ...InvokeClosure.java => InsertInvokeClosure.java} |  36 +-
 ...Closure.java => ReplaceExactInvokeClosure.java} |  44 +-
 .../internal/storage/basic/SimpleDataRow.java      |  25 +-
 .../storage/basic/SimpleReadInvokeClosure.java     |   7 +-
 .../storage/basic/SimpleRemoveInvokeClosure.java   |   5 +-
 .../storage/basic/SimpleWriteInvokeClosure.java    |   5 +-
 .../internal/storage/AbstractStorageTest.java      | 567 +++++++++++++++++++--
 modules/storage-rocksdb/pom.xml                    |   5 +-
 .../internal/storage/rocksdb/RocksDbStorage.java   | 331 ++++++++++--
 modules/table/pom.xml                              |  31 ++
 .../ignite/distributed/ITDistributedTableTest.java | 178 +++----
 .../ignite/distributed/ITTablePersistenceTest.java | 156 ++++++
 .../schema/marshaller/TupleMarshaller.java         |  19 +-
 .../internal/table/AbstractRowTupleAdapter.java    | 343 +++++++++++++
 .../ignite/internal/table/KVBinaryViewImpl.java    |  76 +--
 .../apache/ignite/internal/table/KVViewImpl.java   |   4 +-
 .../internal/table/LiveSchemaTupleBuilderImpl.java | 145 ------
 .../internal/table/MutableRowTupleAdapter.java     | 237 +++++++++
 .../ignite/internal/table/RecordViewImpl.java      |   4 +-
 .../ignite/internal/table/RowChunkAdapter.java     | 244 ---------
 .../apache/ignite/internal/table/TableImpl.java    |  36 +-
 .../org/apache/ignite/internal/table/TableRow.java | 155 +++---
 .../ignite/internal/table/TupleBuilderImpl.java    | 271 ----------
 .../ignite/internal/table/TupleMarshallerImpl.java | 365 ++++++++++---
 .../internal/table/distributed/TableManager.java   | 252 ++++++---
 .../table/distributed/command/ReplaceCommand.java  |   2 +
 .../table/distributed/raft/PartitionListener.java  | 294 +++++------
 .../TupleMarshallerFixlenOnlyBenchmark.java        |  10 +-
 .../TupleMarshallerVarlenOnlyBenchmark.java        |  10 +-
 .../org/apache/ignite/internal/table/Example.java  |   8 +-
 ...nsTest.java => KVBinaryViewOperationsTest.java} |  99 ++--
 .../internal/table/MutableRowTupleAdapterTest.java | 416 +++++++++++++++
 .../internal/table/StrictSchemaOperationsTest.java |  64 ++-
 .../table/TableBinaryViewOperationsTest.java       | 146 +++---
 .../ignite/internal/table/TableManagerTest.java    | 170 +++---
 .../internal/table/TestConfigurationStorage.java   |  74 ---
 .../internal/table/TupleBuilderImplTest.java       | 133 -----
 .../org/apache/ignite/internal/table/TxTest.java   |  34 +-
 .../raft/PartitionCommandListenerTest.java         |  31 +-
 .../internal/table/impl/TestTupleBuilder.java      |  54 +-
 .../table/type/NumericTypesSerializerTest.java     | 318 ++++++++++++
 .../org/apache/ignite/table/TupleImplTest.java     | 181 +++++++
 .../ignite/internal/tx/impl/HeapLockManager.java   |   2 +-
 .../internal/tx/AbstractLockManagerTest.java       |  26 +-
 .../PersistencePropertiesVaultServiceTest.java     |  28 +-
 .../apache/ignite/internal/vault/VaultManager.java |  25 +-
 .../apache/ignite/internal/vault/VaultService.java |   3 +-
 .../vault/inmemory/InMemoryVaultService.java       |  20 +-
 .../vault/persistence/PersistentVaultService.java  |  35 +-
 .../ignite/internal/vault/VaultManagerTest.java    |   2 +-
 .../ignite/internal/vault/VaultServiceTest.java    |   6 +-
 parent/pom.xml                                     |  88 +++-
 pom.xml                                            |   1 +
 458 files changed, 20572 insertions(+), 8712 deletions(-)
 create mode 100644 CONTRIBUTING.md
 create mode 100644 check-rules/maven-check-scripts/CheckDependencyAndPluginVersionsNotInParent.sh
 create mode 100644 check-rules/maven-check-scripts/CheckDuplicateDependencies.sh
 create mode 100644 check-rules/maven-check-scripts/CheckModulesInRootPomAreSorted.sh
 create mode 100644 check-rules/maven-check-scripts/CheckPropertiesNotInParent.sh
 create mode 100644 check-rules/maven-check-scripts/CheckUnusedDependenciesAndPluginsInParent.sh
 create mode 100644 check-rules/maven-check-scripts/CheckUnusedProperties.sh
 create mode 100644 check-rules/maven-check-scripts/run.sh
 create mode 100644 config/java.util.logging.properties
 create mode 100644 deliveries/rpm/.gitignore
 create mode 100644 deliveries/rpm/Dockerfile
 create mode 100644 deliveries/rpm/README.md
 create mode 100644 deliveries/rpm/apache-ignite.spec
 create mode 100644 deliveries/rpm/build.sh
 create mode 100644 idea/ignite_codeStyle.xml
 delete mode 100644 modules/affinity/src/test/java/org/apache/ignite/internal/affinity/TestConfigurationStorage.java
 create mode 100644 modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java
 create mode 100644 modules/cli/src/integrationTest/java/org/apache/ignite/cli/ConfigCommandTest.java
 rename modules/{api/src/main/java/org/apache/ignite/table/TupleBuilder.java => client-common/src/main/java/org/apache/ignite/client/proto/ClientMessageCommon.java} (67%)
 delete mode 100644 modules/client-common/src/main/java/org/apache/ignite/client/proto/ClientMessageEncoder.java
 delete mode 100644 modules/client-common/src/test/java/org/apache/ignite/client/proto/ClientMessageEncoderTest.java
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientSchemasGetRequest.java
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTableCommon.java
 copy modules/{configuration-api/src/main/java/org/apache/ignite/configuration/notifications/ConfigurationListener.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTableDropRequest.java} (61%)
 copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTableGetRequest.java} (51%)
 copy modules/{client/src/main/java/org/apache/ignite/internal/client/PayloadOutputChannel.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTablesGetRequest.java} (51%)
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleDeleteAllExactRequest.java
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleDeleteAllRequest.java
 copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleDeleteExactRequest.java} (50%)
 copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleDeleteRequest.java} (51%)
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetAllRequest.java
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetAndDeleteRequest.java
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetAndReplaceRequest.java
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetAndReplaceSchemalessRequest.java
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetAndUpsertRequest.java
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetAndUpsertSchemalessRequest.java
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetRequest.java
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleInsertAllRequest.java
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleInsertAllSchemalessRequest.java
 copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleInsertRequest.java} (51%)
 copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleInsertSchemalessRequest.java} (50%)
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleReplaceExactRequest.java
 create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleReplaceExactSchemalessRequest.java
 copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleReplaceRequest.java} (50%)
 copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleReplaceSchemalessRequest.java} (50%)
 copy modules/{client/src/main/java/org/apache/ignite/internal/client/PayloadInputChannel.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleUpsertAllRequest.java} (55%)
 copy modules/{client/src/main/java/org/apache/ignite/internal/client/PayloadInputChannel.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleUpsertAllSchemalessRequest.java} (54%)
 copy modules/{client/src/main/java/org/apache/ignite/internal/client/PayloadInputChannel.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleUpsertRequest.java} (56%)
 copy modules/{client/src/main/java/org/apache/ignite/internal/client/PayloadInputChannel.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleUpsertSchemalessRequest.java} (54%)
 copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/package-info.java} (78%)
 delete mode 100644 modules/client-handler/src/test/java/org/apache/ignite/client/handler/TestConfigurationStorage.java
 create mode 100644 modules/client/src/main/java/org/apache/ignite/internal/client/IgniteClientConfigurationImpl.java
 rename modules/client/src/main/java/org/apache/ignite/internal/client/table/{ClientTupleBuilder.java => ClientTuple.java} (78%)
 rename modules/client/src/test/java/org/apache/ignite/client/{ClientTupleBuilderTest.java => ClientTupleTest.java} (75%)
 create mode 100644 modules/client/src/test/java/org/apache/ignite/client/ConfigurationTest.java
 create mode 100644 modules/client/src/test/java/org/apache/ignite/client/CustomTuple.java
 create mode 100644 modules/client/src/test/java/org/apache/ignite/client/ReconnectTest.java
 delete mode 100644 modules/client/src/test/java/org/apache/ignite/client/TestConfigurationStorage.java
 create mode 100644 modules/client/src/test/java/org/apache/ignite/client/fakes/FakeSchemaRegistry.java
 delete mode 100644 modules/configuration-annotation-processor/src/test/java/org/apache/ignite/internal/configuration/json/JsonConverterTest.java
 create mode 100644 modules/configuration-annotation-processor/src/test/java/org/apache/ignite/internal/configuration/tree/NamedListNodeTest.java
 delete mode 100644 modules/configuration-annotation-processor/src/test/java/org/apache/ignite/internal/configuration/tree/NamedListOrderTest.java
 delete mode 100644 modules/configuration/src/main/java/org/apache/ignite/internal/configuration/json/JsonConfigurationVisitor.java
 delete mode 100644 modules/configuration/src/main/java/org/apache/ignite/internal/configuration/json/JsonConverter.java
 delete mode 100644 modules/configuration/src/main/java/org/apache/ignite/internal/configuration/json/JsonObjectConfigurationSource.java
 delete mode 100644 modules/configuration/src/main/java/org/apache/ignite/internal/configuration/json/JsonPrimitiveConfigurationSource.java
 rename modules/configuration/src/main/java/org/apache/ignite/internal/configuration/{notifications => util}/ConfigurationNotificationEventImpl.java (84%)
 rename modules/{configuration-annotation-processor => configuration}/src/test/java/org/apache/ignite/internal/configuration/storage/TestConfigurationStorage.java (89%)
 create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/manager/IgniteComponent.java
 rename modules/{raft/src/main/java/org/apache/ignite/raft/jraft/util => core/src/main/java/org/apache/ignite/internal/thread}/NamedThreadFactory.java (53%)
 rename modules/{calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util => core/src/main/java/org/apache/ignite/internal/thread}/StripedThreadPoolExecutor.java (92%)
 create mode 100644 modules/core/src/main/java/org/apache/ignite/lang/JavaLoggerFormatter.java
 create mode 100644 modules/core/src/main/java/org/apache/ignite/lang/NodeStoppingException.java
 copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => network-api/src/main/java/org/apache/ignite/network/annotations/package-info.java} (78%)
 copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => network-api/src/main/java/org/apache/ignite/network/package-info.java} (78%)
 copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => network-api/src/main/java/org/apache/ignite/network/serialization/package-info.java} (78%)
 copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => network/src/integrationTest/java/org/apache/ignite/network/scalecube/package-info.java} (78%)
 create mode 100644 modules/network/src/integrationTest/java/org/apache/ignite/utils/ClusterServiceTestUtils.java
 copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => network/src/main/java/org/apache/ignite/network/package-info.java} (78%)
 copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => network/src/main/java/org/apache/ignite/network/scalecube/package-info.java} (78%)
 delete mode 100644 modules/network/src/test/resources/simplelogger.properties
 create mode 100644 modules/raft/src/integrationTest/java/org/apache/ignite/raft/client/service/ITAbstractListenerSnapshotTest.java
 rename modules/raft/src/main/java/org/apache/ignite/raft/jraft/{util => disruptor}/DisruptorBuilder.java (91%)
 rename modules/{table/src/main/java/org/apache/ignite/internal/table/ColumnNotFoundException.java => raft/src/main/java/org/apache/ignite/raft/jraft/disruptor/GroupAware.java} (69%)
 create mode 100644 modules/raft/src/main/java/org/apache/ignite/raft/jraft/disruptor/StripedDisruptor.java
 delete mode 100644 modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/LogExceptionHandler.java
 create mode 100644 modules/rest/src/main/java/org/apache/ignite/rest/presentation/hocon/HoconPresentation.java
 delete mode 100644 modules/rest/src/main/java/org/apache/ignite/rest/presentation/json/JsonPresentation.java
 create mode 100644 modules/rest/src/test/java/org/apache/ignite/rest/netty/RestApiHttpResponseTest.java
 create mode 100644 modules/rest/src/test/java/org/apache/ignite/rest/presentation/ConfigurationPresentationTest.java
 copy modules/{storage-rocksdb => rocksdb-common}/pom.xml (66%)
 rename modules/{metastorage-server/src/main/java/org/apache/ignite/internal/metastorage/server/persistence => rocksdb-common/src/main/java/org/apache/ignite/internal/rocksdb}/ColumnFamily.java (73%)
 copy modules/{configuration/src/main/java/org/apache/ignite/internal/configuration/storage/ConfigurationStorageListener.java => rocksdb-common/src/main/java/org/apache/ignite/internal/rocksdb/RocksBiConsumer.java} (66%)
 copy modules/{configuration-api/src/main/java/org/apache/ignite/configuration/notifications/ConfigurationListener.java => rocksdb-common/src/main/java/org/apache/ignite/internal/rocksdb/RocksBiPredicate.java} (61%)
 create mode 100644 modules/rocksdb-common/src/main/java/org/apache/ignite/internal/rocksdb/RocksUtils.java
 create mode 100644 modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITIgniteNodeRestartTest.java
 create mode 100644 modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITThinClientConnectionTest.java
 create mode 100644 modules/runner/src/integrationTest/java/org/apache/ignite/internal/storage/ITDistributedConfigurationStorageTest.java
 delete mode 100644 modules/runner/src/main/resources/simplelogger.properties
 copy modules/schema/src/main/java/org/apache/ignite/internal/schema/{NumericNativeType.java => DecimalNativeType.java} (80%)
 rename modules/schema/src/main/java/org/apache/ignite/internal/schema/{NumericNativeType.java => NumberNativeType.java} (60%)
 create mode 100644 modules/schema/src/main/java/org/apache/ignite/internal/schema/TemporalNativeType.java
 create mode 100644 modules/schema/src/main/java/org/apache/ignite/internal/schema/row/TemporalTypesHelper.java
 create mode 100644 modules/schema/src/test/java/org/apache/ignite/internal/schema/TemporalTypesTest.java
 delete mode 100644 modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/TestConfigurationStorage.java
 copy modules/storage-api/src/main/java/org/apache/ignite/internal/storage/basic/{SimpleReadInvokeClosure.java => DeleteExactInvokeClosure.java} (55%)
 copy modules/storage-api/src/main/java/org/apache/ignite/internal/storage/basic/{SimpleReadInvokeClosure.java => GetAndRemoveInvokeClosure.java} (56%)
 create mode 100644 modules/storage-api/src/main/java/org/apache/ignite/internal/storage/basic/GetAndReplaceInvokeClosure.java
 copy modules/storage-api/src/main/java/org/apache/ignite/internal/storage/basic/{SimpleWriteInvokeClosure.java => InsertInvokeClosure.java} (61%)
 copy modules/storage-api/src/main/java/org/apache/ignite/internal/storage/basic/{SimpleWriteInvokeClosure.java => ReplaceExactInvokeClosure.java} (51%)
 create mode 100644 modules/table/src/integrationTest/java/org/apache/ignite/distributed/ITTablePersistenceTest.java
 create mode 100644 modules/table/src/main/java/org/apache/ignite/internal/table/AbstractRowTupleAdapter.java
 delete mode 100644 modules/table/src/main/java/org/apache/ignite/internal/table/LiveSchemaTupleBuilderImpl.java
 create mode 100644 modules/table/src/main/java/org/apache/ignite/internal/table/MutableRowTupleAdapter.java
 delete mode 100644 modules/table/src/main/java/org/apache/ignite/internal/table/RowChunkAdapter.java
 delete mode 100644 modules/table/src/main/java/org/apache/ignite/internal/table/TupleBuilderImpl.java
 rename modules/table/src/test/java/org/apache/ignite/internal/table/{KVViewOperationsTest.java => KVBinaryViewOperationsTest.java} (74%)
 create mode 100644 modules/table/src/test/java/org/apache/ignite/internal/table/MutableRowTupleAdapterTest.java
 delete mode 100644 modules/table/src/test/java/org/apache/ignite/internal/table/TestConfigurationStorage.java
 delete mode 100644 modules/table/src/test/java/org/apache/ignite/internal/table/TupleBuilderImplTest.java
 create mode 100644 modules/table/src/test/java/org/apache/ignite/internal/table/type/NumericTypesSerializerTest.java
 create mode 100644 modules/table/src/test/java/org/apache/ignite/table/TupleImplTest.java

[ignite-3] 02/02: Merge branch 'main' into ignite-15212

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

amashenkov pushed a commit to branch ignite-15212
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit 21cfef486a72fbbfc47923b411be2be8fe27a519
Merge: b8639fa fbf55e2
Author: Andrew Mashenkov <an...@gmail.com>
AuthorDate: Tue Aug 31 13:14:49 2021 +0300

    Merge branch 'main' into ignite-15212
    
    # Conflicts:
    #	modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java

 CONTRIBUTING.md                                    |  70 +++
 DEVNOTES.md                                        |  12 +
 check-rules/checkstyle-disabled-modules.xml        |   2 -
 check-rules/checkstyle-rules.xml                   |  19 +
 .../CheckDependencyAndPluginVersionsNotInParent.sh |  30 ++
 .../CheckDuplicateDependencies.sh                  |  30 ++
 .../CheckModulesInRootPomAreSorted.sh              |  25 +
 .../CheckPropertiesNotInParent.sh                  |  25 +
 .../CheckUnusedDependenciesAndPluginsInParent.sh   |  44 ++
 .../maven-check-scripts/CheckUnusedProperties.sh   |  34 ++
 check-rules/maven-check-scripts/run.sh             |  43 ++
 config/java.util.logging.properties                |  57 +++
 deliveries/rpm/.gitignore                          |   2 +
 deliveries/rpm/Dockerfile                          |  42 ++
 deliveries/rpm/README.md                           |  48 ++
 deliveries/rpm/apache-ignite.spec                  | 236 +++++++++
 deliveries/rpm/build.sh                            |  38 ++
 .../example/table/KeyValueBinaryViewExample.java   |  10 +-
 .../apache/ignite/example/table/TableExample.java  |   7 +-
 idea/ignite_codeStyle.xml                          | 119 +++++
 modules/affinity/pom.xml                           |   7 +
 .../ignite/internal/affinity/AffinityManager.java  |  11 +-
 .../internal/affinity/AffinityManagerTest.java     |  59 ++-
 .../affinity/TestConfigurationStorage.java         |  74 ---
 .../main/java/org/apache/ignite/app/Ignite.java    |   7 +
 .../main/java/org/apache/ignite/app/Ignition.java  |  29 +-
 .../org/apache/ignite/app/IgnitionManager.java     |  92 +++-
 .../ClientConnectorConfigurationSchema.java        |   7 +-
 .../schemas/rest/RestConfigurationSchema.java      |   2 +-
 .../java/org/apache/ignite/schema/ColumnType.java  | 314 +++++++++++-
 .../apache/ignite/table/KeyValueBinaryView.java    |   7 -
 .../main/java/org/apache/ignite/table/Table.java   |   7 -
 .../main/java/org/apache/ignite/table/Tuple.java   | 160 +++++-
 .../java/org/apache/ignite/table/TupleImpl.java    | 317 ++++++++++++
 .../apache/ignite/table/manager/IgniteTables.java  |  56 +-
 .../ignite/internal/baseline/BaselineManager.java  |  13 +-
 modules/calcite/pom.xml                            |   6 +
 .../query/calcite/SqlQueryProcessor.java           |  34 +-
 .../query/calcite/exec/QueryTaskExecutorImpl.java  |   3 +-
 .../rule/FilterSpoolMergeToHashIndexSpoolRule.java |   4 +-
 .../calcite/exec/rel/AbstractExecutionTest.java    |   7 +-
 modules/cli/ignite.sh                              |   2 +-
 modules/cli/pom.xml                                |  12 +
 .../org/apache/ignite/cli/ConfigCommandTest.java   | 179 +++++++
 .../cli/builtins/config/ConfigurationClient.java   |  21 +-
 .../ignite/cli/builtins/module/ModuleRegistry.java |   8 +-
 .../apache/ignite/cli/spec/ConfigCommandSpec.java  |  31 +-
 .../ignite/cli/spec/InitIgniteCommandSpec.java     |   2 +-
 .../apache/ignite/cli/IgniteCliInterfaceTest.java  |  41 +-
 .../cli/builtins/init/InitIgniteCommandTest.java   |   4 +-
 .../cli/builtins/module/ModuleMangerTest.java      |   4 +-
 .../org/apache/ignite/cli/ui/ProgressBarTest.java  |   4 +-
 .../apache/ignite/client/proto/ClientDataType.java |  15 +
 .../ignite/client/proto/ClientMessageCommon.java}  |  24 +-
 .../ignite/client/proto/ClientMessageDecoder.java  |  98 +---
 .../ignite/client/proto/ClientMessageEncoder.java  |  47 --
 .../ignite/client/proto/ClientMessagePacker.java   | 496 ++++++++++++++++--
 .../ignite/client/proto/ClientMessageUnpacker.java | 505 +++++++++++++++++-
 .../ignite/client/proto/ClientMsgPackType.java     |   6 +
 .../org/apache/ignite/client/proto/ClientOp.java   |  60 +++
 .../client/proto/ClientMessageDecoderTest.java     |  68 +--
 .../client/proto/ClientMessageEncoderTest.java     |  53 --
 .../proto/ClientMessagePackerUnpackerTest.java     | 232 ++++++++-
 modules/client-handler/pom.xml                     |   9 +-
 .../ignite/client/handler/ClientHandlerModule.java |  94 ++--
 .../handler/ClientInboundMessageHandler.java       | 486 ++++++------------
 .../requests/table/ClientSchemasGetRequest.java    |  74 +++
 .../handler/requests/table/ClientTableCommon.java  | 474 +++++++++++++++++
 .../requests/table/ClientTableDropRequest.java}    |  26 +-
 .../requests/table/ClientTableGetRequest.java}     |  52 +-
 .../requests/table/ClientTablesGetRequest.java}    |  63 +--
 .../table/ClientTupleDeleteAllExactRequest.java    |  51 ++
 .../table/ClientTupleDeleteAllRequest.java         |  51 ++
 .../table/ClientTupleDeleteExactRequest.java}      |  48 +-
 .../requests/table/ClientTupleDeleteRequest.java}  |  48 +-
 .../requests/table/ClientTupleGetAllRequest.java   |  51 ++
 .../table/ClientTupleGetAndDeleteRequest.java      |  51 ++
 .../table/ClientTupleGetAndReplaceRequest.java     |  51 ++
 .../ClientTupleGetAndReplaceSchemalessRequest.java |  51 ++
 .../table/ClientTupleGetAndUpsertRequest.java      |  51 ++
 .../ClientTupleGetAndUpsertSchemalessRequest.java  |  51 ++
 .../requests/table/ClientTupleGetRequest.java      |  51 ++
 .../table/ClientTupleInsertAllRequest.java         |  51 ++
 .../ClientTupleInsertAllSchemalessRequest.java     |  51 ++
 .../requests/table/ClientTupleInsertRequest.java}  |  48 +-
 .../table/ClientTupleInsertSchemalessRequest.java} |  48 +-
 .../table/ClientTupleReplaceExactRequest.java      |  54 ++
 .../ClientTupleReplaceExactSchemalessRequest.java  |  52 ++
 .../requests/table/ClientTupleReplaceRequest.java} |  48 +-
 .../ClientTupleReplaceSchemalessRequest.java}      |  48 +-
 .../table/ClientTupleUpsertAllRequest.java}        |  46 +-
 .../ClientTupleUpsertAllSchemalessRequest.java}    |  46 +-
 .../requests/table/ClientTupleUpsertRequest.java}  |  46 +-
 .../table/ClientTupleUpsertSchemalessRequest.java} |  46 +-
 .../handler/requests/table/package-info.java}      |  13 +-
 .../handler/ClientHandlerIntegrationTest.java      |  61 ++-
 .../client/handler/TestConfigurationStorage.java   |  75 ---
 modules/client/pom.xml                             |   7 +
 .../org/apache/ignite/client/IgniteClient.java     | 168 ++++--
 .../ignite/client/IgniteClientConfiguration.java   |  46 +-
 .../client/ClientChannelConfiguration.java         |  72 +--
 .../client/IgniteClientConfigurationImpl.java      |  97 ++++
 .../internal/client/PayloadInputChannel.java       |   7 +-
 .../internal/client/PayloadOutputChannel.java      |   9 +-
 .../ignite/internal/client/ReliableChannel.java    |  31 +-
 .../ignite/internal/client/TcpClientChannel.java   |  84 ++-
 .../ignite/internal/client/TcpIgniteClient.java    |  57 ++-
 .../internal/client/io/ClientConnection.java       |  12 +-
 .../client/io/ClientConnectionMultiplexer.java     |   7 +-
 .../internal/client/io/ClientMessageHandler.java   |   4 +-
 .../client/io/netty/NettyClientConnection.java     |  12 +-
 .../io/netty/NettyClientConnectionMultiplexer.java |  14 +-
 .../client/io/netty/NettyClientMessageHandler.java |   7 +-
 .../ignite/internal/client/table/ClientTable.java  | 341 ++++++++++---
 .../ignite/internal/client/table/ClientTables.java |  37 +-
 .../{ClientTupleBuilder.java => ClientTuple.java}  |  81 ++-
 .../apache/ignite/client/AbstractClientTest.java   |  89 ++--
 .../org/apache/ignite/client/ClientTableTest.java  | 310 ++++++++++-
 ...tTupleBuilderTest.java => ClientTupleTest.java} |  59 ++-
 .../apache/ignite/client/ConfigurationTest.java    | 125 +++++
 .../org/apache/ignite/client/ConnectionTest.java   |   8 +-
 .../java/org/apache/ignite/client/CustomTuple.java | 223 ++++++++
 .../org/apache/ignite/client/ReconnectTest.java    | 108 ++++
 .../ignite/client/TestConfigurationStorage.java    |  75 ---
 .../org/apache/ignite/client/fakes/FakeIgnite.java |   5 +
 .../ignite/client/fakes/FakeIgniteTables.java      |  70 ++-
 .../ignite/client/fakes/FakeInternalTable.java     | 121 ++++-
 .../ignite/client/fakes/FakeSchemaRegistry.java    |  97 ++++
 modules/configuration-annotation-processor/pom.xml |   7 +
 .../configuration/ConfigurationChangerTest.java    | 146 +++---
 .../configuration/TestConfigurationChanger.java    |  33 +-
 .../configuration/hocon/HoconConverterTest.java    |  16 +-
 .../configuration/json/JsonConverterTest.java      | 541 --------------------
 .../notifications/ConfigurationListenerTest.java   | 466 +++++++++++++++--
 .../internal/configuration/sample/UsageTest.java   |  23 +-
 .../configuration/tree/NamedListNodeTest.java      | 312 ++++++++++++
 .../configuration/tree/NamedListOrderTest.java     | 239 ---------
 .../tree/TraversableTreeNodeTest.java              |   6 +
 .../configuration/util/ConfigurationUtilTest.java  | 175 ++++---
 .../validation/ValidationUtilTest.java             |   2 +-
 .../ignite/configuration/ConfigurationTree.java    |  12 +-
 .../ignite/configuration/ConfigurationValue.java   |   4 +-
 .../configuration/NamedConfigurationTree.java      |   2 +-
 .../ignite/configuration/NamedListChange.java      |  22 +-
 .../org/apache/ignite/configuration/RootKey.java   |  18 +-
 .../notifications/ConfigurationListener.java       |   4 +-
 .../ConfigurationNamedListListener.java            |  24 +-
 modules/configuration/pom.xml                      |  22 +-
 .../configuration/ConfigurationChanger.java        | 353 +++++--------
 .../configuration/ConfigurationManager.java        |  59 +--
 .../configuration/ConfigurationRegistry.java       | 117 +++--
 .../configuration/DynamicConfiguration.java        |  40 +-
 .../internal/configuration/DynamicProperty.java    |   6 +-
 .../configuration/NamedListConfiguration.java      |  26 +-
 .../asm/ConfigurationAsmGenerator.java             |  17 +-
 .../json/JsonConfigurationVisitor.java             | 127 -----
 .../internal/configuration/json/JsonConverter.java |  43 --
 .../json/JsonObjectConfigurationSource.java        | 105 ----
 .../json/JsonPrimitiveConfigurationSource.java     | 202 --------
 .../storage/ConfigurationStorage.java              |   7 -
 .../storage/ConfigurationStorageListener.java      |   6 +-
 .../internal/configuration/tree/NamedListNode.java | 230 +++++++--
 .../configuration/util/ConfigurationFlattener.java |  25 +-
 .../ConfigurationNotificationEventImpl.java        |   6 +-
 .../util/ConfigurationNotificationsUtil.java       | 171 +++++--
 .../configuration/util/ConfigurationUtil.java      | 292 ++++-------
 .../storage/TestConfigurationStorage.java          |  20 +-
 .../ignite/internal/manager/IgniteComponent.java   |  46 ++
 .../internal/thread}/NamedThreadFactory.java       |  59 ++-
 .../thread}/StripedThreadPoolExecutor.java         |  15 +-
 .../apache/ignite/internal/util/IgniteUtils.java   |  43 ++
 .../apache/ignite/lang/JavaLoggerFormatter.java    | 146 ++++++
 .../apache/ignite/lang/NodeStoppingException.java  |  75 +++
 .../internal/testframework/IgniteAbstractTest.java |  47 ++
 .../internal/testframework/IgniteTestUtils.java    |  75 ++-
 .../tostring/IgniteToStringBuilderSelfTest.java    |   6 +-
 modules/metastorage-client/pom.xml                 |   7 +
 .../ITMetaStorageServicePersistenceTest.java       | 384 ++------------
 .../client/ITMetaStorageServiceTest.java           |  55 +-
 .../internal/metastorage/client/CursorImpl.java    |   7 +
 .../metastorage/client/MetaStorageService.java     |   2 +-
 .../metastorage/client/MetaStorageServiceImpl.java |   3 +-
 .../metastorage/common/command/OperationInfo.java  |   3 +-
 modules/metastorage-server/pom.xml                 |   4 +-
 .../internal/metastorage/server/Condition.java     |   3 +-
 .../server/persistence/RocksDBKeyValueStorage.java |  55 +-
 .../server/persistence/RocksStorageUtils.java      |  86 ----
 .../server/persistence/WatchCursor.java            |   5 +-
 .../internal/metastorage/MetaStorageManager.java   |  66 +--
 .../metastorage/watch/WatchAggregator.java         |   4 +-
 .../internal/metastorage/WatchAggregatorTest.java  |   6 +-
 .../processor/TransferableObjectProcessor.java     |   2 +-
 .../messages/MessageBuilderGenerator.java          |   2 +-
 .../messages/MessageFactoryGenerator.java          |   2 +-
 .../serialization/BaseMethodNameResolver.java      |   4 +-
 .../MessageCollectionItemTypeConverter.java        |   4 +-
 .../serialization/MessageSerializerGenerator.java  |   4 +-
 modules/network-api/pom.xml                        |   5 +
 .../ignite/network/AbstractClusterService.java     |   2 +-
 .../ignite/network/AbstractMessagingService.java   |  19 +-
 .../ignite/network/AbstractTopologyService.java    |   8 +-
 .../ignite/network/ClusterLocalConfiguration.java  |  34 +-
 .../org/apache/ignite/network/ClusterNode.java     |  10 +-
 .../org/apache/ignite/network/ClusterService.java  |  32 +-
 .../ignite/network/ClusterServiceFactory.java      |  11 +-
 .../org/apache/ignite/network/NetworkAddress.java  |   7 +
 .../network/NetworkConfigurationException.java     |   2 +
 .../ignite/network/NetworkMessageHandler.java      |  10 +-
 .../org/apache/ignite/network/TopologyService.java |   7 +-
 .../ignite/network/annotations/Transferable.java   |   4 +-
 .../ignite/network/annotations/package-info.java}  |  13 +-
 .../org/apache/ignite/network/package-info.java}   |  13 +-
 .../network/serialization/MessageDeserializer.java |  12 +
 .../serialization/MessageMappingException.java     |   2 +
 .../serialization/MessageSerializationFactory.java |   2 +
 .../network/serialization/MessageSerializer.java   |   2 +
 .../network/serialization/MessageWriter.java       |   4 +-
 .../network/serialization/package-info.java}       |  13 +-
 modules/network/pom.xml                            |  14 +
 .../network/netty/ConnectionManagerTest.java       |  22 +
 .../network/recovery/RecoveryHandshakeTest.java    |  74 ++-
 .../network/scalecube/ITNodeRestartsTest.java      |  44 +-
 .../scalecube/ITScaleCubeNetworkMessagingTest.java | 111 +++-
 .../TestScaleCubeClusterServiceFactory.java        |  21 +-
 .../ignite/network/scalecube/package-info.java}    |  13 +-
 .../ignite/utils/ClusterServiceTestUtils.java      | 103 ++++
 .../internal/network/NetworkMessageTypes.java      |   4 +-
 .../network/direct/DirectMessageReader.java        |   4 +-
 .../network/direct/DirectMessageWriter.java        |   4 +-
 .../internal/network/message/ScaleCubeMessage.java |   2 +-
 .../internal/network/netty/ConnectionManager.java  |  44 +-
 .../internal/network/netty/HandshakeHandler.java   |   4 +-
 .../internal/network/netty/InboundDecoder.java     |   2 +-
 .../internal/network/netty/MessageHandler.java     |   9 +-
 .../ignite/internal/network/netty/NettyClient.java |   2 +-
 .../ignite/internal/network/netty/NettySender.java |   2 +-
 .../ignite/internal/network/netty/NettyServer.java |  18 +-
 .../ignite/internal/network/netty/NettyUtils.java  |   4 +-
 .../internal/network/netty/OutboundEncoder.java    |   2 +-
 .../network/MessageSerializationRegistryImpl.java  |   4 +-
 .../apache/ignite/network/StaticNodeFinder.java    |   5 +-
 .../org/apache/ignite/network/package-info.java}   |  13 +-
 .../scalecube/DelegatingTransportFactory.java      |   4 +-
 .../scalecube/ScaleCubeClusterServiceFactory.java  |  93 ++--
 .../ScaleCubeDirectMarshallerTransport.java        |  12 +-
 .../scalecube/ScaleCubeMessagingService.java       |  25 +-
 .../scalecube/ScaleCubeTopologyService.java        |   3 +
 .../ignite/network/scalecube/package-info.java}    |  13 +-
 .../internal/network/netty/NettyClientTest.java    |   4 +-
 .../internal/network/netty/NettyServerTest.java    |   8 +-
 .../src/test/resources/simplelogger.properties     |  52 --
 .../raft/client/service/RaftGroupListener.java     |   2 +-
 .../client/service/impl/RaftGroupServiceImpl.java  |  54 +-
 .../raft/client/service/RaftGroupServiceTest.java  |  26 +-
 modules/raft/pom.xml                               |  24 +-
 .../service/ITAbstractListenerSnapshotTest.java    | 392 ++++++++++++++
 .../ignite/raft/jraft/core/ITCliServiceTest.java   |  25 +-
 .../apache/ignite/raft/jraft/core/ITNodeTest.java  | 110 +++-
 .../apache/ignite/raft/server/CounterListener.java |  10 +-
 .../raft/server/ITJRaftCounterServerTest.java      | 128 +++--
 .../raft/server/ITSimpleCounterServerTest.java     |  44 +-
 .../ignite/raft/server/RaftServerAbstractTest.java |  24 +-
 .../java/org/apache/ignite/internal/raft/Loza.java |  26 +-
 .../ignite/internal/raft/server/RaftServer.java    |  10 +-
 .../internal/raft/server/impl/JRaftServerImpl.java | 127 ++++-
 .../org/apache/ignite/raft/jraft/JRaftUtils.java   |  73 ++-
 .../ignite/raft/jraft/core/FSMCallerImpl.java      |  69 +--
 .../apache/ignite/raft/jraft/core/NodeImpl.java    |  75 ++-
 .../raft/jraft/core/ReadOnlyServiceImpl.java       |  61 ++-
 .../ignite/raft/jraft/core/TimerManager.java       |   2 +-
 .../{util => disruptor}/DisruptorBuilder.java      |  11 +-
 .../ignite/raft/jraft/disruptor/GroupAware.java}   |  15 +-
 .../raft/jraft/disruptor/StripedDisruptor.java     | 281 ++++++++++
 .../ignite/raft/jraft/option/FSMCallerOptions.java |  26 +-
 .../raft/jraft/option/LogManagerOptions.java       |  31 +-
 .../ignite/raft/jraft/option/NodeOptions.java      |  24 +
 .../raft/jraft/option/ReadOnlyServiceOptions.java  |  21 +
 .../ignite/raft/jraft/option/RpcOptions.java       |  51 +-
 .../raft/jraft/rpc/impl/IgniteRpcServer.java       |  11 +-
 .../rpc/impl/client/GetLeaderRequestProcessor.java |   7 +-
 .../raft/jraft/storage/impl/LogManagerImpl.java    |  67 ++-
 .../raft/jraft/storage/impl/RocksDBLogStorage.java |   6 +-
 .../raft/jraft/util/LogExceptionHandler.java       |  64 ---
 .../ignite/raft/jraft/util/RepeatedTimer.java      |   1 +
 .../apache/ignite/raft/jraft/util/ThreadId.java    |  27 +-
 .../org/apache/ignite/raft/jraft/util/Utils.java   |   4 +-
 .../DefaultFixedThreadsExecutorGroupFactory.java   |   2 +-
 .../concurrent/DefaultSingleThreadExecutor.java    |   2 +-
 .../jraft/util/timer/DefaultRaftTimerFactory.java  |   2 +-
 .../ignite/raft/jraft/util/timer/DefaultTimer.java |   2 +-
 .../internal/raft/server/impl/RaftServerImpl.java  |  44 +-
 .../jraft/closure/SynchronizedClosureTest.java     |  40 +-
 .../ignite/raft/jraft/core/BallotBoxTest.java      |   7 +-
 .../ignite/raft/jraft/core/FSMCallerTest.java      |  21 +-
 .../ignite/raft/jraft/core/IteratorImplTest.java   |  13 +-
 .../raft/jraft/core/ReadOnlyServiceTest.java       |  31 +-
 .../ignite/raft/jraft/core/ReplicatorTest.java     |   7 +-
 .../apache/ignite/raft/jraft/core/TestCluster.java | 112 +++-
 .../jraft/entity/codec/LogEntryCodecPerfTest.java  |   9 +-
 .../raft/jraft/rpc/AbstractClientServiceTest.java  |  12 +-
 .../ignite/raft/jraft/rpc/IgniteRpcTest.java       |  60 ++-
 .../ignite/raft/jraft/rpc/TestIgniteRpcServer.java |  27 +-
 .../ignite/raft/jraft/rpc/impl/FutureTest.java     |  75 +--
 .../core/AppendEntriesRequestProcessorTest.java    |   3 +-
 .../impl/core/BaseNodeRequestProcessorTest.java    |  19 +-
 .../raft/jraft/storage/SnapshotExecutorTest.java   |  16 +-
 .../raft/jraft/storage/impl/LogManagerTest.java    |  21 +-
 .../storage/snapshot/remote/CopySessionTest.java   |  54 +-
 .../raft/jraft/util/ByteBufferCollectorTest.java   |   7 +-
 .../ignite/raft/jraft/util/CountDownEventTest.java |  14 +-
 .../jraft/util/RecyclableByteBufferListTest.java   |   7 +-
 .../ignite/raft/jraft/util/RecyclersTest.java      |  21 +-
 .../ignite/raft/jraft/util/ThreadIdTest.java       |  70 +--
 .../apache/ignite/raft/jraft/util/UtilsTest.java   |  16 +-
 .../LongHeldDetectingReadWriteLockTest.java        | 146 ++++--
 .../concurrent/MpscSingleThreadExecutorTest.java   |   2 +-
 .../concurrent/SingleThreadExecutorBenchmark.java  |   4 +-
 modules/rest/pom.xml                               |  14 +
 .../java/org/apache/ignite/rest/ErrorResult.java   |   6 +-
 .../java/org/apache/ignite/rest/RestModule.java    | 254 +++++----
 .../ignite/rest/netty/RestApiHttpRequest.java      |   2 +-
 .../ignite/rest/netty/RestApiHttpResponse.java     |   2 +-
 .../presentation/ConfigurationPresentation.java    |  21 +-
 .../rest/presentation/hocon/HoconPresentation.java |  86 ++++
 .../rest/presentation/json/JsonPresentation.java   |  68 ---
 .../java/org/apache/ignite/rest/routes/Route.java  |   8 +-
 .../java/org/apache/ignite/rest/routes/Router.java |   6 +-
 .../ignite/rest/netty/RestApiHttpResponseTest.java |  54 ++
 .../ConfigurationPresentationTest.java             | 195 +++++++
 .../{storage-rocksdb => rocksdb-common}/pom.xml    |  31 +-
 .../ignite/internal/rocksdb}/ColumnFamily.java     |  55 +-
 .../ignite/internal/rocksdb/RocksBiConsumer.java}  |  18 +-
 .../ignite/internal/rocksdb/RocksBiPredicate.java} |  22 +-
 .../apache/ignite/internal/rocksdb/RocksUtils.java | 119 +++++
 modules/runner/README.md                           |  41 +-
 modules/runner/pom.xml                             |  33 +-
 .../runner/app/AbstractSchemaChangeTest.java       |   3 +-
 .../runner/app/DynamicTableCreationTest.java       |  44 +-
 .../runner/app/ITIgniteNodeRestartTest.java        | 195 +++++++
 .../runner/app/ITThinClientConnectionTest.java     | 134 +++++
 .../ignite/internal/runner/app/IgnitionTest.java   |   9 +-
 .../runner/app/LiveSchemaChangeKVViewTest.java     |  45 +-
 .../runner/app/LiveSchemaChangeTableTest.java      |  57 +--
 .../runner/app/SchemaChangeKVViewTest.java         | 124 ++---
 .../runner/app/SchemaChangeTableViewTest.java      | 105 ++--
 .../internal/runner/app/TableCreationTest.java     |  20 +-
 .../ITDistributedConfigurationStorageTest.java     | 191 +++++++
 .../org/apache/ignite/internal/app/IgniteImpl.java | 446 +++++++++++++++-
 .../apache/ignite/internal/app/IgnitionImpl.java   | 186 ++-----
 .../storage/DistributedConfigurationStorage.java   | 198 +++----
 .../storage/LocalConfigurationStorage.java         |  41 +-
 .../src/main/resources/simplelogger.properties     |  19 -
 modules/schema/pom.xml                             |  14 +
 .../apache/ignite/internal/schema/BinaryRow.java   |   5 +
 .../ignite/internal/schema/ByteBufferRow.java      |   5 +
 ...mericNativeType.java => DecimalNativeType.java} |  17 +-
 .../ignite/internal/schema/NativeTypeSpec.java     |  74 ++-
 .../apache/ignite/internal/schema/NativeTypes.java | 119 ++++-
 ...umericNativeType.java => NumberNativeType.java} |  65 ++-
 .../apache/ignite/internal/schema/SchemaAware.java |   6 +-
 .../ignite/internal/schema/SchemaDescriptor.java   |  11 +-
 .../ignite/internal/schema/SchemaManager.java      |  11 +-
 .../ignite/internal/schema/TemporalNativeType.java |  98 ++++
 .../SchemaConfigurationConverter.java              |  64 ++-
 .../configuration/SchemaDescriptorConverter.java   |  59 ++-
 .../schema/marshaller/AbstractSerializer.java      |   2 +-
 .../internal/schema/marshaller/BinaryMode.java     |   8 +-
 .../internal/schema/marshaller/MarshallerUtil.java |  13 +
 .../marshaller/asm/AsmSerializerGenerator.java     |  14 +-
 .../marshaller/asm/ColumnAccessCodeGenerator.java  |   6 +
 .../asm/IdentityMarshallerCodeGenerator.java       |   2 +-
 .../asm/ObjectMarshallerCodeGenerator.java         |  12 +-
 .../marshaller/reflection/FieldAccessor.java       |  30 +-
 .../marshaller/reflection/JavaSerializer.java      |   4 +-
 .../schema/marshaller/reflection/Marshaller.java   |   4 +-
 .../schema/registry/SchemaRegistryImpl.java        |   2 +-
 .../schema/registry/UpgradingRowAdapter.java       | 195 +++----
 .../org/apache/ignite/internal/schema/row/Row.java | 177 ++++++-
 .../ignite/internal/schema/row/RowAssembler.java   | 263 +++++++++-
 .../internal/schema/row/TemporalTypesHelper.java   | 296 +++++++++++
 .../apache/ignite/internal/schema/ColumnTest.java  |  11 +-
 .../apache/ignite/internal/schema/ColumnsTest.java |   6 +-
 .../ignite/internal/schema/NativeTypeTest.java     | 131 ++++-
 .../schema/RowAssemblerAdvancedSchemaTest.java     |   4 +-
 .../schema/RowAssemblerSimpleSchemaTest.java       |   4 +-
 .../org/apache/ignite/internal/schema/RowTest.java | 148 +++++-
 .../ignite/internal/schema/TemporalTypesTest.java  |  84 +++
 .../apache/ignite/internal/schema/TestUtils.java   |  88 ++--
 .../schema/builder/HashIndexBuilderTest.java       |   3 +-
 .../SchemaConfigurationConverterTest.java          |  24 +-
 .../SchemaDescriptorConverterTest.java             |  14 +-
 .../configuration/TestConfigurationStorage.java    |  64 ---
 .../schema/marshaller/JavaSerializerTest.java      |  53 +-
 .../marshaller/reflection/FieldAccessorTest.java   |  41 +-
 modules/sql/src/test/java/SqlTest.java             |   1 -
 modules/sql/src/test/java/TestRow.java             |  52 +-
 .../apache/ignite/internal/storage/DataRow.java    |   5 +
 .../ignite/internal/storage/InvokeClosure.java     |  27 +-
 .../apache/ignite/internal/storage/SearchRow.java  |   6 +-
 .../apache/ignite/internal/storage/Storage.java    |  82 ++-
 .../storage/basic/ConcurrentHashMapStorage.java    | 124 +++--
 ...eClosure.java => DeleteExactInvokeClosure.java} |  50 +-
 ...Closure.java => GetAndRemoveInvokeClosure.java} |  46 +-
 .../storage/basic/GetAndReplaceInvokeClosure.java  |  86 ++++
 ...InvokeClosure.java => InsertInvokeClosure.java} |  36 +-
 ...Closure.java => ReplaceExactInvokeClosure.java} |  44 +-
 .../internal/storage/basic/SimpleDataRow.java      |  25 +-
 .../storage/basic/SimpleReadInvokeClosure.java     |   7 +-
 .../storage/basic/SimpleRemoveInvokeClosure.java   |   5 +-
 .../storage/basic/SimpleWriteInvokeClosure.java    |   5 +-
 .../internal/storage/AbstractStorageTest.java      | 567 +++++++++++++++++++--
 modules/storage-rocksdb/pom.xml                    |   5 +-
 .../internal/storage/rocksdb/RocksDbStorage.java   | 331 ++++++++++--
 modules/table/pom.xml                              |  31 ++
 .../ignite/distributed/ITDistributedTableTest.java | 178 +++----
 .../ignite/distributed/ITTablePersistenceTest.java | 156 ++++++
 .../schema/marshaller/TupleMarshaller.java         |  19 +-
 .../internal/table/AbstractRowTupleAdapter.java    | 343 +++++++++++++
 .../ignite/internal/table/KVBinaryViewImpl.java    |  76 +--
 .../apache/ignite/internal/table/KVViewImpl.java   |   4 +-
 .../internal/table/LiveSchemaTupleBuilderImpl.java | 145 ------
 .../internal/table/MutableRowTupleAdapter.java     | 237 +++++++++
 .../ignite/internal/table/RecordViewImpl.java      |   4 +-
 .../ignite/internal/table/RowChunkAdapter.java     | 244 ---------
 .../apache/ignite/internal/table/TableImpl.java    |  36 +-
 .../org/apache/ignite/internal/table/TableRow.java | 155 +++---
 .../ignite/internal/table/TupleBuilderImpl.java    | 271 ----------
 .../ignite/internal/table/TupleMarshallerImpl.java | 365 ++++++++++---
 .../internal/table/distributed/TableManager.java   | 252 ++++++---
 .../table/distributed/command/ReplaceCommand.java  |   2 +
 .../table/distributed/raft/PartitionListener.java  | 294 +++++------
 .../TupleMarshallerFixlenOnlyBenchmark.java        |  10 +-
 .../TupleMarshallerVarlenOnlyBenchmark.java        |  10 +-
 .../org/apache/ignite/internal/table/Example.java  |   8 +-
 ...nsTest.java => KVBinaryViewOperationsTest.java} |  99 ++--
 .../internal/table/MutableRowTupleAdapterTest.java | 416 +++++++++++++++
 .../internal/table/StrictSchemaOperationsTest.java |  64 ++-
 .../table/TableBinaryViewOperationsTest.java       | 146 +++---
 .../ignite/internal/table/TableManagerTest.java    | 170 +++---
 .../internal/table/TestConfigurationStorage.java   |  74 ---
 .../internal/table/TupleBuilderImplTest.java       | 133 -----
 .../org/apache/ignite/internal/table/TxTest.java   |  34 +-
 .../raft/PartitionCommandListenerTest.java         |  31 +-
 .../internal/table/impl/TestTupleBuilder.java      |  54 +-
 .../table/type/NumericTypesSerializerTest.java     | 318 ++++++++++++
 .../org/apache/ignite/table/TupleImplTest.java     | 181 +++++++
 .../ignite/internal/tx/impl/HeapLockManager.java   |   2 +-
 .../internal/tx/AbstractLockManagerTest.java       |  26 +-
 .../PersistencePropertiesVaultServiceTest.java     |  28 +-
 .../apache/ignite/internal/vault/VaultManager.java |  25 +-
 .../apache/ignite/internal/vault/VaultService.java |   3 +-
 .../vault/inmemory/InMemoryVaultService.java       |  20 +-
 .../vault/persistence/PersistentVaultService.java  |  35 +-
 .../ignite/internal/vault/VaultManagerTest.java    |   2 +-
 .../ignite/internal/vault/VaultServiceTest.java    |   6 +-
 parent/pom.xml                                     |  88 +++-
 pom.xml                                            |   1 +
 457 files changed, 20556 insertions(+), 8709 deletions(-)

diff --cc modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
index db88368,9c2755f..fa49bf1
--- a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
+++ b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
@@@ -17,12 -17,54 +17,55 @@@
  
  package org.apache.ignite.internal.app;
  
+ import java.io.IOException;
+ import java.nio.file.Files;
+ import java.nio.file.Path;
+ import java.nio.file.Paths;
+ import java.util.ArrayList;
+ import java.util.Arrays;
+ import java.util.List;
+ import java.util.ListIterator;
+ import java.util.Map;
+ import java.util.concurrent.atomic.AtomicBoolean;
+ import java.util.concurrent.atomic.AtomicReference;
  import org.apache.ignite.app.Ignite;
- import org.apache.ignite.internal.vault.VaultManager;
+ import org.apache.ignite.app.IgnitionManager;
+ import org.apache.ignite.client.handler.ClientHandlerModule;
+ import org.apache.ignite.configuration.schemas.clientconnector.ClientConnectorConfiguration;
+ import org.apache.ignite.configuration.schemas.network.NetworkConfiguration;
+ import org.apache.ignite.configuration.schemas.rest.RestConfiguration;
+ import org.apache.ignite.configuration.schemas.runner.ClusterConfiguration;
+ import org.apache.ignite.configuration.schemas.runner.NodeConfiguration;
+ import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
+ import org.apache.ignite.internal.affinity.AffinityManager;
+ import org.apache.ignite.internal.baseline.BaselineManager;
+ import org.apache.ignite.internal.configuration.ConfigurationManager;
+ import org.apache.ignite.internal.configuration.ConfigurationRegistry;
+ import org.apache.ignite.internal.manager.IgniteComponent;
+ import org.apache.ignite.internal.metastorage.MetaStorageManager;
  import org.apache.ignite.internal.processors.query.calcite.SqlQueryProcessor;
+ import org.apache.ignite.internal.raft.Loza;
+ import org.apache.ignite.internal.schema.SchemaManager;
+ import org.apache.ignite.internal.storage.DistributedConfigurationStorage;
+ import org.apache.ignite.internal.storage.LocalConfigurationStorage;
+ import org.apache.ignite.internal.table.distributed.TableManager;
+ import org.apache.ignite.internal.vault.VaultManager;
+ import org.apache.ignite.internal.vault.persistence.PersistentVaultService;
+ import org.apache.ignite.lang.IgniteException;
+ import org.apache.ignite.lang.IgniteInternalException;
+ import org.apache.ignite.lang.IgniteLogger;
+ import org.apache.ignite.lang.NodeStoppingException;
+ import org.apache.ignite.network.ClusterLocalConfiguration;
+ import org.apache.ignite.network.ClusterService;
+ import org.apache.ignite.network.MessageSerializationRegistryImpl;
+ import org.apache.ignite.network.StaticNodeFinder;
+ import org.apache.ignite.network.scalecube.ScaleCubeClusterServiceFactory;
+ import org.apache.ignite.rest.RestModule;
 +import org.apache.ignite.query.sql.IgniteSql;
  import org.apache.ignite.table.manager.IgniteTables;
  import org.apache.ignite.tx.IgniteTransactions;
+ import org.jetbrains.annotations.NotNull;
+ import org.jetbrains.annotations.Nullable;
  
  /**
   * Ignite internal implementation.
@@@ -52,10 -327,9 +328,10 @@@ public class IgniteImpl implements Igni
  
      /** {@inheritDoc} */
      @Override public IgniteTables tables() {
-         return distributedTableManager;
+         return distributedTblMgr;
      }
  
 +    // TODO: To be replaced with IgniteImpl#sql().
      public SqlQueryProcessor queryEngine() {
          return qryEngine;
      }
@@@ -66,12 -340,145 +342,150 @@@
      }
  
      /** {@inheritDoc} */
 +    @Override public IgniteSql sql() {
 +        return null;
 +    }
 +
 +    /** {@inheritDoc} */
-     @Override public void close() throws Exception {
-         vaultManager.close();
+     @Override public void close() {
+         IgnitionManager.stop(name);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public String name() {
+         return name;
+     }
+ 
+     /**
+      * @return Node configuration.
+      */
+     public ConfigurationRegistry nodeConfiguration() {
+         return nodeCfgMgr.configurationRegistry();
+     }
+ 
+     /**
+      * @return Cluster configuration.
+      */
+     public ConfigurationRegistry clusterConfiguration() {
+         return clusterCfgMgr.configurationRegistry();
+     }
+ 
+     /**
+      * @return Client handler module.
+      */
+     public ClientHandlerModule clientHandlerModule() {
+         return clientHandlerModule;
+     }
+ 
+     /**
+      * Checks node status. If it's {@link Status#STOPPING} then prevents further starting and throws NodeStoppingException that will
+      * lead to stopping already started components later on, otherwise starts component and add it to started components
+      * list.
+      *
+      * @param nodeName Node name.
+      * @param startedComponents List of already started components for given node.
+      * @param component Ignite component to start.
+      * @param <T> Ignite component type.
+      * @throws NodeStoppingException If node stopping intention was detected.
+      */
+     private <T extends IgniteComponent> void doStartComponent(
+         @NotNull String nodeName,
+         @NotNull List<IgniteComponent> startedComponents,
+         @NotNull T component
+     ) throws NodeStoppingException {
+         if (status.get() == Status.STOPPING)
+             throw new NodeStoppingException("Node=[" + nodeName + "] was stopped.");
+         else {
+             startedComponents.add(component);
+ 
+             component.start();
+         }
+     }
+ 
+     /**
+      * Calls {@link IgniteComponent#beforeNodeStop()} and then {@link IgniteComponent#stop()} for all components in
+      * start-reverse-order. Cleanups node started components map and node status map.
+      *
+      * @param startedComponents List of already started components for given node.
+      */
+     private void doStopNode(@NotNull List<IgniteComponent> startedComponents) {
+         ListIterator<IgniteComponent> beforeStopIter =
+             startedComponents.listIterator(startedComponents.size() - 1);
+ 
+         while (beforeStopIter.hasPrevious()) {
+             IgniteComponent componentToExecBeforeNodeStop = beforeStopIter.previous();
+ 
+             try {
+                 componentToExecBeforeNodeStop.beforeNodeStop();
+             }
+             catch (Exception e) {
+                 LOG.error("Unable to execute before node stop on the component=[" +
+                     componentToExecBeforeNodeStop + "] within node=[" + name + ']', e);
+             }
+         }
+ 
+         ListIterator<IgniteComponent> stopIter =
+             startedComponents.listIterator(startedComponents.size() - 1);
+ 
+         while (stopIter.hasPrevious()) {
+             IgniteComponent componentToStop = stopIter.previous();
+ 
+             try {
+                 componentToStop.stop();
+             }
+             catch (Exception e) {
+                 LOG.error("Unable to stop component=[" + componentToStop + "] within node=[" + name + ']', e);
+             }
+         }
+     }
+ 
+     /**
+      * Starts the Vault component.
+      */
+     private static VaultManager createVault(Path workDir) {
+         Path vaultPath = workDir.resolve(VAULT_DB_PATH);
+ 
+         try {
+             Files.createDirectories(vaultPath);
+         }
+         catch (IOException e) {
+             throw new IgniteInternalException(e);
+         }
+ 
+         return new VaultManager(new PersistentVaultService(vaultPath));
+     }
+ 
+     /**
+      * Returns a path to the partitions store directory. Creates a directory if it doesn't exist.
+      *
+      * @param workDir Ignite work directory.
+      * @return Partitions store path.
+      */
+     @NotNull
+     private static Path getPartitionsStorePath(Path workDir) {
+         Path partitionsStore = workDir.resolve(PARTITIONS_STORE_PATH);
+ 
+         try {
+             Files.createDirectories(partitionsStore);
+         }
+         catch (IOException e) {
+             throw new IgniteInternalException("Failed to create directory for partitions storage: " + e.getMessage(), e);
+         }
+ 
+         return partitionsStore;
+     }
+ 
+     /**
+      * Node state.
+      */
+     private enum Status {
+         /** */
+         STARTING,
+ 
+         /** */
+         STARTED,
+ 
+         /** */
+         STOPPING
      }
  }
diff --cc modules/sql/src/test/java/SqlTest.java
index be4958c,0000000..e6f0156
mode 100644,000000..100644
--- a/modules/sql/src/test/java/SqlTest.java
+++ b/modules/sql/src/test/java/SqlTest.java
@@@ -1,242 -1,0 +1,241 @@@
 +/*
 + * 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.
 + */
 +
 +import java.math.BigDecimal;
 +import java.util.List;
 +import java.util.concurrent.CompletableFuture;
 +import java.util.concurrent.Flow;
 +import java.util.function.Consumer;
 +import org.apache.ignite.query.sql.IgniteSql;
 +import org.apache.ignite.query.sql.SqlResultSet;
 +import org.apache.ignite.query.sql.SqlResultSetMeta;
 +import org.apache.ignite.query.sql.SqlRow;
 +import org.apache.ignite.query.sql.SqlSession;
 +import org.apache.ignite.query.sql.reactive.ReactiveSqlResultSet;
 +import org.apache.ignite.schema.ColumnType;
 +import org.apache.ignite.tx.IgniteTransactions;
 +import org.apache.ignite.tx.Transaction;
 +import org.junit.jupiter.api.BeforeEach;
 +import org.junit.jupiter.api.Disabled;
 +import org.junit.jupiter.api.Test;
 +import org.junit.jupiter.api.extension.ExtendWith;
 +import org.mockito.Mock;
 +import org.mockito.Mockito;
 +import org.mockito.junit.jupiter.MockitoExtension;
 +import org.mockito.junit.jupiter.MockitoSettings;
 +import org.mockito.quality.Strictness;
 +
 +import static org.junit.jupiter.api.Assertions.assertEquals;
 +import static org.junit.jupiter.api.Assertions.assertFalse;
 +import static org.junit.jupiter.api.Assertions.assertTrue;
 +
- @Disabled // TODO: create a ticket to fix this.
 +@ExtendWith(MockitoExtension.class)
 +@MockitoSettings(strictness = Strictness.LENIENT)
 +public class SqlTest {
 +    @Mock
 +    IgniteSql queryMgr;
 +
 +    @Mock
 +    private IgniteTransactions igniteTx;
 +
 +    @Mock
 +    private Transaction tx;
 +
 +    @BeforeEach
 +    void setUp() {
 +        initMock();
 +    }
 +
 +    @Test
 +    public void testSynchronousSql() {
 +        igniteTx.runInTransaction(tx -> {
 +            SqlSession sess = queryMgr.session();
 +
 +//            sess.setParameter("forceJoinOrder", true);
 +//            sess.setParameter("useIndexHint", "idx1"); TODO: Where to move query hints?
 +
 +            SqlResultSet rs = sess.executeQuery("SELECT id, val FROM table WHERE id < {} AND val LIKE {};", tx, 10, "str%");
 +
 +            for (SqlRow r : rs) {
 +                assertTrue(10 > r.longValue("id"));
 +                assertTrue((r.stringValue("val")).startsWith("str"));
 +            }
 +
 +            tx.commit();
 +        });
 +
 +        Mockito.verify(tx).commit();
 +    }
 +
 +    @Test
 +    public void testAsyncSql() {
 +        igniteTx.beginAsync().thenCompose(tx -> {
 +            SqlSession sess = queryMgr.session();
 +
 +            return sess.executeQueryAsync("SELECT id, val FROM table WHERE id == {};", tx, 10)
 +                .thenCompose(rs -> {
 +                    String str = rs.iterator().next().stringValue("val");
 +
 +                    return sess.executeQueryAsync("SELECT val FROM table where val LIKE {};", tx, str);
 +                })
 +                .thenApply(ignore -> tx);
 +        }).thenAccept(Transaction::commitAsync);
 +
 +        Mockito.verify(tx).commitAsync();
 +    }
 +
 +    @Test
 +    public void testReactiveSql() {
 +        SqlRowSubscriber subscriber = new SqlRowSubscriber(row -> {
 +            assertTrue(10 > row.longValue("id"));
 +            assertTrue(row.stringValue("val").startsWith("str"));
 +        });
 +
 +        igniteTx.beginAsync().thenApply(tx -> queryMgr.session())
 +            .thenCompose(session -> {
 +                session.executeQueryReactive("SELECT id, val FROM table WHERE id < {} AND val LIKE {};", tx, 10, "str%")
 +                    .subscribe(subscriber);
 +
 +                return subscriber.exceptionally(th -> {
 +                    return tx.rollbackAsync();
 +                }).thenApply(ignore -> tx.commitAsync());
 +            });
 +
 +        Mockito.verify(tx).commitAsync();
 +    }
 +
 +    @Disabled
 +    @Test
 +    public void testMetadata() {
 +        SqlResultSet rs = queryMgr.session().executeQuery("SELECT id, val FROM table WHERE id < {} AND val LIKE {}; ", null, 10, "str%");
 +
 +        SqlRow row = rs.iterator().next();
 +
 +        SqlResultSetMeta meta = rs.metadata();
 +
 +        assertEquals(rs.metadata().columnsCount(), row.columnCount());
 +
 +        assertEquals(0, meta.indexOf("id"));
 +        assertEquals(1, meta.indexOf("val"));
 +
 +        assertEquals("id", meta.column(0).name());
 +        assertEquals("val", meta.column(1).name());
 +
 +        assertEquals(ColumnType.INT64, meta.column(0).columnType());
 +        assertEquals(ColumnType.string(), meta.column(1).columnType());
 +
 +        assertFalse(meta.column(0).nullable());
 +        assertTrue(meta.column(1).nullable());
 +    }
 +
 +    private void initMock() {
 +        SqlSession session = Mockito.mock(SqlSession.class);
 +
 +        Mockito.when(queryMgr.session()).thenReturn(session);
 +
 +        Mockito.when(session.executeQuery(Mockito.eq("SELECT id, val FROM table WHERE id < {} AND val LIKE {};"), Mockito.any(), Mockito.any())).
 +            thenAnswer(ans -> Mockito.when(Mockito.mock(SqlResultSet.class).iterator())
 +                .thenReturn(List.of(
 +                    new TestRow().set("id", 1L).set("val", "string 1").build(),
 +                    new TestRow().set("id", 2L).set("val", "string 2").build(),
 +                    new TestRow().set("id", 5L).set("val", "string 3").build()
 +                ).iterator()).getMock());
 +
 +        Mockito.when(session.executeQueryAsync(Mockito.eq("SELECT id, val FROM table WHERE id == {};"), Mockito.any(), Mockito.any()))
 +            .thenAnswer(ans -> {
 +                Object mock = Mockito.when(Mockito.mock(SqlResultSet.class).iterator())
 +                    .thenReturn(List.of(new TestRow().set("id", 1L).set("val", "string 1").build()).iterator())
 +                    .getMock();
 +
 +                return CompletableFuture.completedFuture(mock);
 +            });
 +
 +        Mockito.when(session.executeQueryAsync(Mockito.eq("SELECT val FROM table where val LIKE {};"), Mockito.any(), Mockito.any()))
 +            .thenAnswer(ans -> {
 +                Object mock = Mockito.when(Mockito.mock(SqlResultSet.class).iterator())
 +                    .thenReturn(List.of(new TestRow().set("id", 10L).set("val", "string 10").build()).iterator())
 +                    .getMock();
 +
 +                return CompletableFuture.completedFuture(mock);
 +            });
 +
 +        Mockito.when(session.executeQueryReactive(Mockito.startsWith("SELECT id, val FROM table WHERE id < {} AND val LIKE {};"), Mockito.any(), Mockito.any()))
 +            .thenAnswer(invocation -> {
 +                ReactiveSqlResultSet mock = Mockito.mock(ReactiveSqlResultSet.class);
 +
 +                Mockito.doAnswer(ans -> {
 +                    Flow.Subscriber subscrber = ans.getArgument(0);
 +
 +                    subscrber.onSubscribe(Mockito.mock(Flow.Subscription.class));
 +
 +                    List.of(
 +                        new TestRow().set("id", 1L).set("val", "string 1").build(),
 +                        new TestRow().set("id", 2L).set("val", "string 2").build(),
 +                        new TestRow().set("id", 5L).set("val", "string 3").build()
 +                    ).forEach(i -> subscrber.onNext(i));
 +
 +                    subscrber.onComplete();
 +
 +                    return ans;
 +                }).when(mock).subscribe(Mockito.any(Flow.Subscriber.class));
 +
 +                return mock;
 +            });
 +
 +        Mockito.doAnswer(invocation -> {
 +            Consumer<Transaction> argument = invocation.getArgument(0);
 +
 +            argument.accept(tx);
 +
 +            return null;
 +        }).when(igniteTx).runInTransaction(Mockito.any());
 +
 +        Mockito.when(igniteTx.beginAsync()).thenReturn(CompletableFuture.completedFuture(tx));
 +    }
 +
 +    /**
 +     * Dummy subsctiber for test purposes.
 +     */
 +    static class SqlRowSubscriber extends CompletableFuture implements Flow.Subscriber<SqlRow> {
 +        private Consumer<SqlRow> rowConsumer;
 +
 +        SqlRowSubscriber(Consumer<SqlRow> rowConsumer) {
 +            this.rowConsumer = rowConsumer;
 +        }
 +
 +        @Override public void onSubscribe(Flow.Subscription subscription) {
 +            whenCompleteAsync((res, th) -> {
 +                if (th != null)
 +                    subscription.cancel();
 +            });
 +
 +            subscription.request(Long.MAX_VALUE); // Unbounded.
 +        }
 +
 +        @Override public void onNext(SqlRow row) {
 +            rowConsumer.accept(row);
 +        }
 +
 +        @Override public void onError(Throwable throwable) {
 +            completeExceptionally(throwable);
 +        }
 +
 +        @Override public void onComplete() {
 +            complete(null);
 +        }
 +    }
 +}
diff --cc modules/sql/src/test/java/TestRow.java
index 2105be9,0000000..306510e
mode 100644,000000..100644
--- a/modules/sql/src/test/java/TestRow.java
+++ b/modules/sql/src/test/java/TestRow.java
@@@ -1,181 -1,0 +1,223 @@@
 +/*
 + * 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.
 + */
 +
++import java.time.Instant;
++import java.time.LocalDate;
++import java.time.LocalDateTime;
++import java.time.LocalTime;
 +import java.util.BitSet;
 +import java.util.HashMap;
 +import java.util.Iterator;
 +import java.util.Map;
 +import java.util.UUID;
 +import org.apache.ignite.binary.BinaryObject;
 +import org.apache.ignite.binary.BinaryObjects;
 +import org.apache.ignite.query.sql.SqlRow;
 +import org.jetbrains.annotations.NotNull;
 +
 +/**
 + * Dummy table storage implementation.
 + */
 +public class TestRow implements SqlRow {
 +    /** Columns values. */
 +    private final Map<String, Object> map = new HashMap<>();
 +
-     public TestRow set(String columnName, Object value) {
++    /** {@inheritDoc} */
++    @Override public TestRow set(String columnName, Object value) {
 +        map.put(columnName, value);
 +
 +        return this;
 +    }
 +
 +    public SqlRow build() {
 +        return this;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public <T> T valueOrDefault(String columnName, T def) {
 +        return (T)map.getOrDefault(columnName, def);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public <T> T value(String columnName) {
 +        return (T)map.get(columnName);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public <T> T value(int columnIndex) {
 +        throw new UnsupportedOperationException();
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public int columnCount() {
 +        return map.size();
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public String columnName(int columnIndex) {
 +        throw new UnsupportedOperationException();
 +    }
 +
 +    /** {@inheritDoc} */
-     @Override public Integer columnIndex(String columnName) {
++    @Override public int columnIndex(String columnName) {
 +        throw new UnsupportedOperationException();
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public BinaryObject binaryObjectValue(String columnName) {
-         byte[] data = value(columnName);
- 
-         return BinaryObjects.wrap(data);
++        throw new UnsupportedOperationException();
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public BinaryObject binaryObjectValue(int columnIndex) {
 +        return null;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public byte byteValue(String columnName) {
 +        return value(columnName);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public byte byteValue(int columnIndex) {
 +        return 0;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public short shortValue(String columnName) {
 +        return value(columnName);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public short shortValue(int columnIndex) {
 +        return 0;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public int intValue(String columnName) {
 +        return value(columnName);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public int intValue(int columnIndex) {
 +        return 0;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public long longValue(String columnName) {
 +        return value(columnName);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public long longValue(int columnIndex) {
 +        return 0;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public float floatValue(String columnName) {
 +        return value(columnName);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public float floatValue(int columnIndex) {
 +        return 0;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public double doubleValue(String columnName) {
 +        return value(columnName);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public double doubleValue(int columnIndex) {
 +        return 0;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public String stringValue(String columnName) {
 +        return value(columnName);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public String stringValue(int columnIndex) {
 +        return null;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public UUID uuidValue(String columnName) {
 +        return value(columnName);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public UUID uuidValue(int columnIndex) {
 +        return null;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public BitSet bitmaskValue(String columnName) {
 +        return value(columnName);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public BitSet bitmaskValue(int columnIndex) {
 +        return null;
 +    }
 +
++    @Override public LocalDate dateValue(String columnName) {
++        return null;
++    }
++
++    /** {@inheritDoc} */
++    @Override public LocalDate dateValue(int columnIndex) {
++        return null;
++    }
++
++    /** {@inheritDoc} */
++    @Override public LocalTime timeValue(String columnName) {
++        return null;
++    }
++
++    /** {@inheritDoc} */
++    @Override public LocalTime timeValue(int columnIndex) {
++        return null;
++    }
++
++    /** {@inheritDoc} */
++    @Override public LocalDateTime datetimeValue(String columnName) {
++        return null;
++    }
++
++    /** {@inheritDoc} */
++    @Override public LocalDateTime datetimeValue(int columnIndex) {
++        return null;
++    }
++
++    /** {@inheritDoc} */
++    @Override public Instant timestampValue(String columnName) {
++        return null;
++    }
++
++    /** {@inheritDoc} */
++    @Override public Instant timestampValue(int columnIndex) {
++        return null;
++    }
++
 +    /** {@inheritDoc} */
 +    @NotNull @Override public Iterator<Object> iterator() {
 +        throw new UnsupportedOperationException();
 +    }
 +}
diff --cc pom.xml
index c2b073a,aa83c61..54093e5
--- a/pom.xml
+++ b/pom.xml
@@@ -59,9 -59,9 +59,10 @@@
          <module>modules/raft</module>
          <module>modules/raft-client</module>
          <module>modules/rest</module>
+         <module>modules/rocksdb-common</module>
          <module>modules/runner</module>
          <module>modules/schema</module>
 +        <module>modules/sql</module>
          <module>modules/storage-api</module>
          <module>modules/storage-rocksdb</module>
          <module>modules/table</module>

[ignite-3] 01/02: minor

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

amashenkov pushed a commit to branch ignite-15212
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit b8639facabd825a0767924ff10c6b40fd14f5162
Author: Andrew Mashenkov <an...@gmail.com>
AuthorDate: Tue Aug 3 22:31:11 2021 +0300

    minor
---
 .../main/java/org/apache/ignite/query/sql/SqlSession.java | 15 ++++++++++++---
 modules/sql/src/test/java/SqlTest.java                    |  4 ++++
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/modules/api/src/main/java/org/apache/ignite/query/sql/SqlSession.java b/modules/api/src/main/java/org/apache/ignite/query/sql/SqlSession.java
index 229b0e6..8f10010 100644
--- a/modules/api/src/main/java/org/apache/ignite/query/sql/SqlSession.java
+++ b/modules/api/src/main/java/org/apache/ignite/query/sql/SqlSession.java
@@ -25,11 +25,11 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 /**
- * SQL session.
+ * SQL Session provides methods for query execution.
  */
 public interface SqlSession extends AsyncSqlSession, ReactiveSqlSession {
     /**
-     * Executes SQL query synchronously.
+     * Executes SQL query.
      *
      * @param sql SQL query template.
      * @param tx Transaction (optional).
@@ -40,7 +40,7 @@ public interface SqlSession extends AsyncSqlSession, ReactiveSqlSession {
     SqlResultSet executeQuery(@NotNull String sql, @Nullable Transaction tx, Object... args);
 
     /**
-     * Executes a non-query statement.
+     * Executes DML query.
      *
      * @param sql SQL statement template.
      * @param tx Transaction (optional).
@@ -52,6 +52,15 @@ public interface SqlSession extends AsyncSqlSession, ReactiveSqlSession {
     //TODO: in contrary, execute() method may return inserted rows IDs that looks useful if AutoIncrement ID column is used.
 
     /**
+     * Executes DDL query.
+     *
+     * @param sql SQL statement template.
+     * @param tx Transaction (optional).
+     * @param args Agruments for template (optional).
+     */
+    void execute(@NotNull String sql, @Nullable Transaction tx, Object... args);
+
+    /**
      * Creates prepared statement.
      *
      * @param sql SQL query template.
diff --git a/modules/sql/src/test/java/SqlTest.java b/modules/sql/src/test/java/SqlTest.java
index bd693fc..be4958c 100644
--- a/modules/sql/src/test/java/SqlTest.java
+++ b/modules/sql/src/test/java/SqlTest.java
@@ -15,6 +15,7 @@
  * limitations under the License.
  */
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Flow;
@@ -65,6 +66,9 @@ public class SqlTest {
         igniteTx.runInTransaction(tx -> {
             SqlSession sess = queryMgr.session();
 
+//            sess.setParameter("forceJoinOrder", true);
+//            sess.setParameter("useIndexHint", "idx1"); TODO: Where to move query hints?
+
             SqlResultSet rs = sess.executeQuery("SELECT id, val FROM table WHERE id < {} AND val LIKE {};", tx, 10, "str%");
 
             for (SqlRow r : rs) {