Merge remote-tracking branch 'remotes/community/ignite-gg-8.0.2.ea2' into ignite-gg-11810
# Conflicts: # modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java # modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/IgniteWriteAheadLogNoopManager.java # modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulFullSnapshotId.java # modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulSnapshotId.java # modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateNextSnapshotId.java # modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageListMetaResetCountRecord.java # modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/TrackingPageDeltaRecord.java # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/PagesList.java # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIO.java # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/4183186a Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/4183186a Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/4183186a Branch: refs/heads/ignite-gg-11810 Commit: 4183186ab1a92ede58b1b5b59ee0c33e6632d87f Parents: df4f0f0 5c106da Author: sboikov <sboi...@gridgain.com> Authored: Thu Dec 29 14:17:09 2016 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Thu Dec 29 14:17:09 2016 +0300 ---------------------------------------------------------------------- .gitignore | 1 + README.md | 8 + RELEASE_NOTES.txt | 22 + assembly/dependencies-fabric-lgpl.xml | 1 + assembly/dependencies-fabric.xml | 1 + assembly/release-base.xml | 5 + assembly/release-fabric-base.xml | 1 + bin/control.bat | 229 ++ bin/control.sh | 180 + bin/ignite.sh | 9 + config/dotnet/default-dotnet.xml | 45 + examples/pom-standalone.xml | 6 + examples/pom.xml | 2 +- examples/redis/redis-example.php | 82 + examples/redis/redis-example.py | 62 + examples/schema-import/pom.xml | 2 +- .../ignite/examples/ExampleNodeStartup.java | 2 +- .../examples/datagrid/CachePutGetExample.java | 2 +- .../examples/datagrid/CacheQueryDmlExample.java | 163 + .../scalar/examples/ScalarJvmCloudExample.scala | 2 +- .../CacheExamplesMultiNodeSelfTest.java | 7 + .../ignite/examples/CacheExamplesSelfTest.java | 8 + modules/aop/pom.xml | 2 +- modules/apache-license-gen/pom.xml | 2 +- modules/aws/pom.xml | 2 +- modules/benchmarks/pom.xml | 2 +- .../jmh/misc/JmhIncrementBenchmark.java | 95 + modules/camel/pom.xml | 2 +- modules/cassandra/pom.xml | 16 +- modules/cassandra/serializers/README.txt | 7 +- modules/cassandra/serializers/pom.xml | 4 +- modules/cassandra/store/pom.xml | 4 +- .../store/cassandra/CassandraCacheStore.java | 6 + .../store/cassandra/datasource/DataSource.java | 9 + modules/clients/pom.xml | 12 +- .../clients/src/test/config/jdbc-bin-config.xml | 54 + .../jdbc2/JdbcAbstractDmlStatementSelfTest.java | 263 ++ .../JdbcAbstractUpdateStatementSelfTest.java | 37 + ...BinaryMarshallerInsertStatementSelfTest.java | 37 + ...cBinaryMarshallerMergeStatementSelfTest.java | 37 + .../jdbc2/JdbcDeleteStatementSelfTest.java | 49 + .../jdbc2/JdbcInsertStatementSelfTest.java | 122 + .../jdbc2/JdbcMergeStatementSelfTest.java | 91 + .../internal/jdbc2/JdbcNoDefaultCacheTest.java | 40 +- .../internal/jdbc2/JdbcResultSetSelfTest.java | 18 + .../rest/ChangeStateCommandHandlerTest.java | 125 + .../rest/ClientMemcachedProtocolSelfTest.java | 4 +- .../JettyRestProcessorAbstractSelfTest.java | 11 +- .../rest/RestProcessorMultiStartSelfTest.java | 48 +- .../rest/protocols/tcp/MockNioSession.java | 11 + .../tcp/redis/RedisProtocolSelfTest.java | 101 +- .../jdbc/suite/IgniteJdbcDriverTestSuite.java | 5 + modules/cloud/pom.xml | 2 +- modules/codegen/pom.xml | 2 +- .../ignite/codegen/MessageCodeGenerator.java | 2 + modules/core/pom.xml | 2 +- .../src/main/java/org/apache/ignite/Ignite.java | 8 +- .../java/org/apache/ignite/IgniteCache.java | 9 + .../apache/ignite/IgniteCheckedException.java | 12 + .../java/org/apache/ignite/IgniteLogger.java | 6 +- .../java/org/apache/ignite/IgniteServices.java | 16 + .../apache/ignite/IgniteSystemProperties.java | 58 + .../binary/BinaryAbstractIdentityResolver.java | 53 + .../binary/BinaryArrayIdentityResolver.java | 224 ++ .../binary/BinaryFieldIdentityResolver.java | 307 ++ .../ignite/binary/BinaryIdentityResolver.java | 42 + .../ignite/binary/BinaryTypeConfiguration.java | 27 +- .../org/apache/ignite/cache/QueryEntity.java | 27 + .../rendezvous/RendezvousAffinityFunction.java | 80 +- .../ignite/cache/query/SqlFieldsQuery.java | 2 +- .../cache/store/CacheLoadOnlyStoreAdapter.java | 6 +- .../ignite/cache/store/CacheStoreAdapter.java | 6 + .../cache/store/jdbc/CacheJdbcPojoStore.java | 19 +- .../store/jdbc/JdbcTypesDefaultTransformer.java | 112 +- .../configuration/CacheConfiguration.java | 19 +- .../configuration/IgniteConfiguration.java | 50 +- .../apache/ignite/internal/GridComponent.java | 7 +- .../internal/GridEventConsumeHandler.java | 7 +- .../ignite/internal/GridJobContextImpl.java | 4 +- .../ignite/internal/GridKernalContext.java | 17 + .../ignite/internal/GridKernalContextImpl.java | 28 +- .../internal/GridMessageListenHandler.java | 5 +- .../internal/GridPerformanceSuggestions.java | 2 +- .../ignite/internal/GridPluginComponent.java | 4 +- .../org/apache/ignite/internal/GridTopic.java | 6 +- .../ignite/internal/IgniteInternalFuture.java | 11 + .../apache/ignite/internal/IgniteKernal.java | 187 +- .../ignite/internal/IgniteServicesImpl.java | 9 +- .../org/apache/ignite/internal/IgnitionEx.java | 34 +- .../ignite/internal/MarshallerContextImpl.java | 10 +- .../internal/binary/BinaryClassDescriptor.java | 27 +- .../ignite/internal/binary/BinaryContext.java | 80 +- .../ignite/internal/binary/BinaryFieldImpl.java | 10 +- .../internal/binary/BinaryObjectExImpl.java | 90 +- .../internal/binary/BinaryObjectImpl.java | 48 +- .../binary/BinaryObjectOffheapImpl.java | 42 +- .../internal/binary/BinaryPrimitives.java | 30 +- .../binary/BinarySerializedFieldComparator.java | 343 ++ .../ignite/internal/binary/BinaryTypeProxy.java | 15 +- .../ignite/internal/binary/BinaryUtils.java | 16 +- .../internal/binary/BinaryWriterExImpl.java | 47 +- .../internal/binary/GridBinaryMarshaller.java | 2 +- .../binary/builder/BinaryBuilderReader.java | 11 + .../binary/builder/BinaryBuilderSerializer.java | 4 + .../binary/builder/BinaryObjectBuilderImpl.java | 27 +- .../streams/BinaryAbstractInputStream.java | 5 + .../streams/BinaryAbstractOutputStream.java | 5 + .../streams/BinaryByteBufferInputStream.java | 10 + .../binary/streams/BinaryHeapInputStream.java | 9 +- .../binary/streams/BinaryHeapOutputStream.java | 7 +- .../streams/BinaryMemoryAllocatorChunk.java | 3 +- .../streams/BinaryOffheapInputStream.java | 14 +- .../streams/BinaryOffheapOutputStream.java | 8 +- .../internal/binary/streams/BinaryStream.java | 12 +- .../ignite/internal/client/GridClient.java | 9 + .../internal/client/GridClientClusterState.java | 33 + .../client/impl/GridClientClusterStateImpl.java | 75 + .../internal/client/impl/GridClientImpl.java | 11 + .../impl/connection/GridClientConnection.java | 17 + .../GridClientConnectionManagerAdapter.java | 1 + .../connection/GridClientNioTcpConnection.java | 21 + .../router/impl/GridRouterClientImpl.java | 6 + .../internal/commandline/CommandHandler.java | 89 + .../ignite/internal/jdbc2/JdbcConnection.java | 17 + .../internal/jdbc2/JdbcPreparedStatement.java | 71 +- .../ignite/internal/jdbc2/JdbcQueryTask.java | 5 +- .../ignite/internal/jdbc2/JdbcQueryTaskV2.java | 406 ++ .../ignite/internal/jdbc2/JdbcResultSet.java | 72 +- .../internal/jdbc2/JdbcSqlFieldsQuery.java | 49 + .../ignite/internal/jdbc2/JdbcStatement.java | 213 +- .../apache/ignite/internal/jdbc2/JdbcUtils.java | 25 +- .../internal/managers/GridManagerAdapter.java | 2 +- .../checkpoint/GridCheckpointManager.java | 2 +- .../collision/GridCollisionManager.java | 2 +- .../managers/communication/GridIoManager.java | 35 +- .../managers/communication/GridIoMessage.java | 13 + .../communication/GridIoMessageFactory.java | 71 +- .../communication/IgniteIoTestMessage.java | 13 +- .../deployment/GridDeploymentManager.java | 2 +- .../discovery/GridDiscoveryManager.java | 125 +- .../eventstorage/GridEventStorageManager.java | 2 +- .../managers/failover/GridFailoverManager.java | 2 +- .../managers/indexing/GridIndexingManager.java | 2 +- .../loadbalancer/GridLoadBalancerManager.java | 2 +- .../ignite/internal/pagemem/FullPageId.java | 11 +- .../ignite/internal/pagemem/PageIdUtils.java | 8 + .../pagemem/backup/BackupFinishedMessage.java | 136 - .../StartFullBackupAckDiscoveryMessage.java | 128 - .../backup/StartFullBackupDiscoveryMessage.java | 135 - .../pagemem/impl/PageMemoryNoStoreImpl.java | 2 +- .../snapshot/SnapshotFinishedMessage.java | 136 + .../snapshot/SnapshotProgressMessage.java | 135 + .../StartFullSnapshotAckDiscoveryMessage.java | 147 + .../StartFullSnapshotDiscoveryMessage.java | 160 + .../pagemem/store/IgnitePageStoreManager.java | 13 +- .../internal/pagemem/store/PageStore.java | 2 +- .../pagemem/wal/IgniteWriteAheadLogManager.java | 3 +- .../wal/record/MemoryRecoveryRecord.java | 23 +- .../internal/pagemem/wal/record/WALRecord.java | 23 +- .../MetaPageUpdateCandidateAllocatedIndex.java | 61 - .../MetaPageUpdateLastSuccessfulBackupId.java | 58 - ...etaPageUpdateLastSuccessfulFullBackupId.java | 58 - ...aPageUpdateLastSuccessfulFullSnapshotId.java | 58 + .../MetaPageUpdateLastSuccessfulSnapshotId.java | 70 + .../delta/MetaPageUpdateNextBackupId.java | 58 - .../delta/MetaPageUpdateNextSnapshotId.java | 58 + .../MetaPageUpdatePartitionDataRecord.java | 15 +- .../delta/PageListMetaResetCountRecord.java | 46 + .../record/delta/TrackingPageDeltaRecord.java | 28 +- .../processors/GridProcessorAdapter.java | 4 +- .../affinity/GridAffinityProcessor.java | 4 +- .../cache/CacheAffinitySharedManager.java | 9 + .../processors/cache/CacheLockCandidates.java | 42 + .../cache/CacheLockCandidatesList.java | 71 + .../internal/processors/cache/CacheState.java | 33 - .../cache/CacheStoreBalancingWrapper.java | 6 + .../cache/ChangeGlobalStateMessage.java | 120 + .../internal/processors/cache/ClusterState.java | 38 + .../cache/DynamicCacheChangeRequest.java | 23 +- .../processors/cache/GridCacheAdapter.java | 754 ++-- .../processors/cache/GridCacheContext.java | 8 + .../processors/cache/GridCacheEntryEx.java | 7 +- .../cache/GridCacheLoaderWriterStore.java | 6 + .../processors/cache/GridCacheMapEntry.java | 158 +- .../processors/cache/GridCacheMessage.java | 7 + .../processors/cache/GridCacheMvcc.java | 376 +- .../processors/cache/GridCacheMvccCallback.java | 4 +- .../cache/GridCacheMvccCandidate.java | 80 +- .../processors/cache/GridCacheMvccManager.java | 19 +- .../GridCachePartitionExchangeManager.java | 187 +- .../processors/cache/GridCachePreloader.java | 16 +- .../cache/GridCachePreloaderAdapter.java | 14 +- .../processors/cache/GridCacheProcessor.java | 444 ++- .../processors/cache/GridCacheProxyImpl.java | 24 +- .../cache/GridCacheSharedTtlCleanupManager.java | 5 +- .../processors/cache/GridCacheTtlManager.java | 4 + .../processors/cache/GridCacheUtils.java | 62 +- .../GridChangeGlobalStateMessageResponse.java | 177 + .../cache/IgniteCacheOffheapManager.java | 14 + .../cache/IgniteCacheOffheapManagerImpl.java | 134 +- .../processors/cache/IgniteCacheProxy.java | 14 +- .../processors/cache/IgniteInternalCache.java | 8 + .../processors/cache/QueryCursorImpl.java | 31 +- .../binary/CacheObjectBinaryProcessorImpl.java | 9 +- .../IgniteCacheDatabaseSharedManager.java | 54 +- .../cache/database/freelist/PagesList.java | 4 + .../cache/database/tree/io/PageMetaIO.java | 115 +- .../cache/database/tree/io/TrackingPageIO.java | 135 +- .../cache/database/tree/util/PageHandler.java | 5 + .../CacheDataStructuresManager.java | 6 +- .../distributed/GridCacheTxRecoveryFuture.java | 4 +- .../distributed/GridDistributedCacheEntry.java | 303 +- .../distributed/GridDistributedLockRequest.java | 5 + .../GridDistributedUnlockRequest.java | 5 + .../dht/GridClientPartitionTopology.java | 71 +- .../distributed/dht/GridDhtCacheAdapter.java | 3 +- .../distributed/dht/GridDhtCacheEntry.java | 34 +- .../cache/distributed/dht/GridDhtGetFuture.java | 2 +- .../distributed/dht/GridDhtLocalPartition.java | 81 +- .../distributed/dht/GridDhtLockFuture.java | 61 +- .../distributed/dht/GridDhtLockResponse.java | 9 +- .../dht/GridDhtPartitionTopology.java | 22 +- .../dht/GridDhtPartitionTopologyImpl.java | 261 +- .../dht/GridDhtTransactionalCacheAdapter.java | 1 - .../distributed/dht/GridDhtTxFinishFuture.java | 74 +- .../cache/distributed/dht/GridDhtTxLocal.java | 125 +- .../distributed/dht/GridDhtTxLocalAdapter.java | 7 +- .../dht/GridDhtTxOnePhaseCommitAckRequest.java | 2 +- .../distributed/dht/GridDhtTxPrepareFuture.java | 9 +- .../dht/atomic/GridDhtAtomicCache.java | 461 ++- .../GridDhtAtomicSingleUpdateRequest.java | 7 +- .../dht/atomic/GridDhtAtomicUpdateRequest.java | 5 + ...idNearAtomicAbstractSingleUpdateRequest.java | 28 +- .../atomic/GridNearAtomicFullUpdateRequest.java | 69 +- ...GridNearAtomicSingleUpdateInvokeRequest.java | 6 +- .../GridNearAtomicSingleUpdateRequest.java | 7 +- .../dht/colocated/GridDhtColocatedCache.java | 13 - .../colocated/GridDhtColocatedLockFuture.java | 12 +- .../dht/preloader/GridDhtPartitionDemander.java | 277 +- .../dht/preloader/GridDhtPartitionFullMap.java | 18 +- .../dht/preloader/GridDhtPartitionMap2.java | 4 + .../GridDhtPartitionsAbstractMessage.java | 3 +- .../GridDhtPartitionsExchangeFuture.java | 167 +- .../preloader/GridDhtPartitionsFullMessage.java | 83 +- .../GridDhtPartitionsSingleMessage.java | 81 +- .../GridDhtPartitionsSingleRequest.java | 3 +- .../dht/preloader/GridDhtPreloader.java | 20 +- .../distributed/near/GridNearAtomicCache.java | 65 +- .../distributed/near/GridNearCacheEntry.java | 44 +- .../distributed/near/GridNearGetRequest.java | 5 + .../distributed/near/GridNearLockFuture.java | 7 +- ...arOptimisticSerializableTxPrepareFuture.java | 4 +- .../near/GridNearOptimisticTxPrepareFuture.java | 15 +- .../GridNearPessimisticTxPrepareFuture.java | 4 +- .../near/GridNearTransactionalCache.java | 5 +- .../near/GridNearTxFinishFuture.java | 46 +- .../cache/distributed/near/GridNearTxLocal.java | 48 +- .../cache/local/GridLocalCacheEntry.java | 173 +- .../cache/local/GridLocalLockFuture.java | 2 +- .../local/atomic/GridLocalAtomicCache.java | 174 +- .../query/GridCacheDistributedQueryManager.java | 2 +- .../cache/query/GridCacheQueryManager.java | 25 +- .../cache/query/GridCacheQueryRequest.java | 6 +- .../cache/query/GridCacheTwoStepQuery.java | 253 -- .../cache/query/IgniteQueryErrorCode.java | 91 + .../continuous/CacheContinuousQueryHandler.java | 19 +- .../cache/store/CacheStoreManager.java | 4 +- .../store/GridCacheStoreManagerAdapter.java | 34 +- .../cache/store/GridCacheWriteBehindStore.java | 6 +- .../cache/transactions/IgniteTxHandler.java | 17 +- .../transactions/IgniteTxLocalAdapter.java | 38 +- .../cache/transactions/IgniteTxManager.java | 20 +- .../cacheobject/IgniteCacheObjectProcessor.java | 2 +- .../clock/GridClockSyncProcessor.java | 8 +- .../closure/GridClosureProcessor.java | 33 +- .../processors/cluster/ClusterProcessor.java | 2 +- .../cluster/GridClusterStateProcessor.java | 936 +++++ .../cluster/IgniteChangeGlobalStateSupport.java | 40 + .../continuous/GridContinuousHandler.java | 5 +- .../continuous/GridContinuousProcessor.java | 7 +- .../StartRoutineAckDiscoveryMessage.java | 13 +- .../StartRoutineDiscoveryMessage.java | 19 +- .../datastreamer/DataStreamProcessor.java | 24 +- .../datastructures/DataStructuresProcessor.java | 132 +- .../datastructures/GridCacheAtomicLongImpl.java | 14 +- .../GridCacheAtomicReferenceImpl.java | 16 +- .../GridCacheAtomicSequenceImpl.java | 26 +- .../GridCacheAtomicStampedImpl.java | 14 +- .../GridCacheCountDownLatchImpl.java | 14 +- .../datastructures/GridCacheLockImpl.java | 17 +- .../datastructures/GridCacheSemaphoreImpl.java | 14 +- .../processors/hadoop/HadoopClassLoader.java | 11 + .../internal/processors/hadoop/HadoopJobId.java | 79 +- .../processors/hadoop/HadoopJobProperty.java | 64 +- .../hadoop/HadoopMapperAwareTaskOutput.java | 32 + .../processors/hadoop/HadoopTaskContext.java | 8 + .../processors/hadoop/HadoopTaskInfo.java | 43 + .../io/PartiallyOffheapRawComparatorEx.java | 33 + .../hadoop/message/HadoopMessage.java | 27 + .../shuffle/HadoopDirectShuffleMessage.java | 243 ++ .../hadoop/shuffle/HadoopShuffleAck.java | 170 + .../shuffle/HadoopShuffleFinishRequest.java | 172 + .../shuffle/HadoopShuffleFinishResponse.java | 142 + .../hadoop/shuffle/HadoopShuffleMessage.java | 361 ++ .../internal/processors/igfs/IgfsContext.java | 4 +- .../processors/igfs/IgfsDataManager.java | 6 +- .../internal/processors/igfs/IgfsImpl.java | 2 +- .../internal/processors/igfs/IgfsProcessor.java | 4 +- .../processors/job/GridJobProcessor.java | 2 +- .../internal/processors/job/GridJobWorker.java | 76 +- .../jobmetrics/GridJobMetricsProcessor.java | 2 +- .../processors/odbc/OdbcMessageParser.java | 16 + .../processors/odbc/OdbcNioListener.java | 2 +- .../internal/processors/odbc/OdbcProcessor.java | 11 +- .../odbc/OdbcQueryGetParamsMetaRequest.java | 60 + .../odbc/OdbcQueryGetParamsMetaResult.java | 40 + .../internal/processors/odbc/OdbcRequest.java | 3 + .../processors/odbc/OdbcRequestHandler.java | 181 +- .../internal/processors/odbc/OdbcTableMeta.java | 15 +- .../internal/processors/odbc/OdbcUtils.java | 4 +- .../platform/PlatformAbstractTarget.java | 268 +- .../platform/PlatformAsyncTarget.java | 44 + .../platform/PlatformContextImpl.java | 2 +- .../platform/PlatformNoopProcessor.java | 41 +- .../processors/platform/PlatformProcessor.java | 42 +- .../platform/PlatformProcessorImpl.java | 89 +- .../processors/platform/PlatformTarget.java | 103 +- .../platform/PlatformTargetProxy.java | 126 + .../platform/PlatformTargetProxyImpl.java | 222 ++ .../binary/PlatformBinaryProcessor.java | 6 +- .../platform/cache/PlatformCache.java | 15 +- .../cache/PlatformCacheEntryFilterImpl.java | 4 +- .../cache/PlatformCacheEntryProcessorImpl.java | 43 +- .../platform/cache/PlatformCacheIterator.java | 2 +- .../cache/affinity/PlatformAffinity.java | 4 +- .../affinity/PlatformAffinityFunction.java | 59 +- .../PlatformAffinityFunctionTarget.java | 4 +- .../query/PlatformAbstractQueryCursor.java | 4 +- .../query/PlatformContinuousQueryProxy.java | 3 +- .../callback/PlatformCallbackGateway.java | 272 +- .../platform/callback/PlatformCallbackOp.java | 206 + .../callback/PlatformCallbackUtils.java | 544 +-- .../platform/cluster/PlatformClusterGroup.java | 18 +- .../platform/compute/PlatformAbstractJob.java | 2 +- .../platform/compute/PlatformAbstractTask.java | 15 +- .../platform/compute/PlatformClosureJob.java | 12 +- .../platform/compute/PlatformCompute.java | 21 +- .../platform/compute/PlatformFullJob.java | 15 +- .../platform/compute/PlatformFullTask.java | 18 +- .../datastreamer/PlatformDataStreamer.java | 4 +- .../PlatformStreamReceiverImpl.java | 11 +- .../datastructures/PlatformAtomicLong.java | 4 +- .../datastructures/PlatformAtomicReference.java | 8 +- .../datastructures/PlatformAtomicSequence.java | 2 +- .../dotnet/PlatformDotNetCacheStore.java | 17 +- .../platform/events/PlatformEvents.java | 15 +- .../memory/PlatformInputStreamImpl.java | 14 +- .../memory/PlatformOutputStreamImpl.java | 14 +- .../platform/messaging/PlatformMessaging.java | 9 +- .../services/PlatformAbstractService.java | 25 +- .../platform/services/PlatformServices.java | 29 +- .../transactions/PlatformTransactions.java | 8 +- .../platform/utils/PlatformFutureUtils.java | 18 +- .../utils/PlatformListenableTarget.java | 62 + .../platform/utils/PlatformUtils.java | 36 +- .../plugin/IgnitePluginProcessor.java | 2 +- .../processors/port/GridPortProcessor.java | 2 +- .../processors/query/GridQueryIndexing.java | 42 +- .../processors/query/GridQueryProcessor.java | 646 +++- .../processors/query/GridQueryProperty.java | 20 + .../query/GridQueryTypeDescriptor.java | 25 + .../processors/query/IgniteSQLException.java | 89 + .../resource/GridResourceProcessor.java | 2 +- .../processors/rest/GridRestCommand.java | 11 +- .../processors/rest/GridRestProcessor.java | 22 +- .../client/message/GridClientStateRequest.java | 80 + .../cluster/GridChangeStateCommandHandler.java | 89 + .../redis/GridRedisRestCommandHandler.java | 1 + .../redis/key/GridRedisDelCommandHandler.java | 7 +- .../key/GridRedisExistsCommandHandler.java | 7 +- .../server/GridRedisDbSizeCommandHandler.java | 7 +- .../string/GridRedisAppendCommandHandler.java | 7 +- .../string/GridRedisGetCommandHandler.java | 34 +- .../string/GridRedisGetRangeCommandHandler.java | 7 +- .../string/GridRedisGetSetCommandHandler.java | 7 +- .../string/GridRedisIncrDecrCommandHandler.java | 70 +- .../string/GridRedisMGetCommandHandler.java | 7 +- .../string/GridRedisMSetCommandHandler.java | 7 +- .../string/GridRedisSetCommandHandler.java | 31 +- .../string/GridRedisSetRangeCommandHandler.java | 7 +- .../string/GridRedisStrlenCommandHandler.java | 7 +- .../tcp/GridTcpMemcachedNioListener.java | 15 +- .../protocols/tcp/GridTcpRestNioListener.java | 22 +- .../tcp/redis/GridRedisNioListener.java | 4 +- .../request/GridRestChangeStateRequest.java | 57 + .../service/GridServiceProcessor.java | 144 +- .../processors/service/GridServiceProxy.java | 18 +- .../session/GridTaskSessionProcessor.java | 2 +- .../processors/task/GridTaskProcessor.java | 6 +- .../processors/task/GridTaskWorker.java | 7 + .../timeout/GridTimeoutProcessor.java | 2 +- .../ignite/internal/util/GridHandleTable.java | 10 +- .../apache/ignite/internal/util/GridUnsafe.java | 70 +- .../ignite/internal/util/IgniteUtils.java | 121 +- .../internal/util/OffheapReadWriteLock.java | 4 + .../ignite/internal/util/StripedExecutor.java | 667 ++++ .../util/future/GridCompoundFuture.java | 56 +- .../util/future/GridFinishedFuture.java | 24 + .../internal/util/future/GridFutureAdapter.java | 15 +- .../util/future/GridFutureChainListener.java | 30 +- .../internal/util/io/GridUnsafeDataInput.java | 12 +- .../internal/util/io/GridUnsafeDataOutput.java | 12 +- .../internal/util/ipc/IpcToNioAdapter.java | 2 +- .../util/lang/IgniteSingletonIterator.java | 56 + .../util/nio/GridCommunicationClient.java | 4 +- .../nio/GridConnectionBytesVerifyFilter.java | 15 +- .../util/nio/GridNioAsyncNotifyFilter.java | 10 +- .../internal/util/nio/GridNioCodecFilter.java | 17 +- .../ignite/internal/util/nio/GridNioFilter.java | 16 +- .../internal/util/nio/GridNioFilterAdapter.java | 10 +- .../internal/util/nio/GridNioFilterChain.java | 14 +- .../ignite/internal/util/nio/GridNioFuture.java | 4 +- .../util/nio/GridNioRecoveryDescriptor.java | 95 +- .../ignite/internal/util/nio/GridNioServer.java | 1343 +++++-- .../internal/util/nio/GridNioSession.java | 11 + .../internal/util/nio/GridNioSessionImpl.java | 49 +- .../ignite/internal/util/nio/GridNioWorker.java | 48 + .../util/nio/GridSelectorNioSessionImpl.java | 157 +- .../util/nio/GridTcpNioCommunicationClient.java | 49 +- .../internal/util/nio/SessionWriteRequest.java | 85 + .../internal/util/nio/ssl/GridNioSslFilter.java | 10 +- .../util/nio/ssl/GridNioSslHandler.java | 4 +- .../util/offheap/unsafe/GridUnsafeMemory.java | 10 +- .../util/tostring/GridToStringBuilder.java | 2 +- .../internal/visor/VisorMultiNodeTask.java | 2 +- .../internal/visor/VisorTaskArgument.java | 2 +- .../ignite/internal/visor/cache/VisorCache.java | 87 +- .../visor/cache/VisorCachePartition.java | 14 +- .../visor/cache/VisorCachePartitions.java | 10 +- .../visor/cache/VisorCachePartitionsTask.java | 4 +- .../visor/cache/VisorCacheSwapBackupsTask.java | 102 - .../visor/event/VisorGridDiscoveryEvent.java | 18 +- .../visor/event/VisorGridDiscoveryEventV2.java | 80 - .../misc/VisorChangeGridActiveStateTask.java | 65 + .../visor/node/VisorNodeDataCollectorJob.java | 3 +- .../visor/node/VisorNodeDataCollectorTask.java | 2 + .../node/VisorNodeDataCollectorTaskResult.java | 17 + .../internal/visor/query/VisorQueryJob.java | 2 +- .../visor/service/VisorCancelServiceTask.java | 70 + .../visor/service/VisorServiceDescriptor.java | 132 + .../visor/service/VisorServiceTask.java | 75 + .../internal/visor/util/VisorEventMapper.java | 4 +- .../internal/visor/util/VisorTaskUtils.java | 38 +- .../apache/ignite/logger/java/JavaLogger.java | 4 +- .../ignite/marshaller/jdk/JdkMarshaller.java | 4 +- .../optimized/OptimizedMarshaller.java | 8 +- .../optimized/OptimizedObjectOutputStream.java | 25 +- .../org/apache/ignite/mxbean/IgniteMXBean.java | 21 + .../communication/tcp/TcpCommunicationSpi.java | 324 +- .../tcp/TcpCommunicationSpiMBean.java | 40 + .../ignite/spi/discovery/tcp/ClientImpl.java | 2 +- .../ignite/spi/discovery/tcp/ServerImpl.java | 57 +- .../spi/discovery/tcp/TcpDiscoverySpi.java | 22 +- .../tcp/internal/TcpDiscoveryNode.java | 5 +- .../tcp/internal/TcpDiscoveryStatistics.java | 4 + .../org/apache/ignite/stream/StreamAdapter.java | 4 +- .../ignite/thread/IgniteThreadFactory.java | 8 +- .../apache/ignite/util/AttributeNodeFilter.java | 108 + .../org/jsr166/ConcurrentLinkedHashMap.java | 2 +- .../resources/META-INF/classnames.properties | 174 +- .../core/src/main/resources/ignite.properties | 2 +- .../AbstractAffinityFunctionSelfTest.java | 2 +- .../jdbc/JdbcTypesDefaultTransformerTest.java | 283 ++ .../IgniteComputeTopologyExceptionTest.java | 5 +- .../BinaryArrayIdentityResolverSelfTest.java | 300 ++ .../internal/binary/BinaryEnumsSelfTest.java | 18 + .../BinaryFieldIdentityResolverSelfTest.java | 333 ++ .../binary/BinaryFieldsOffheapSelfTest.java | 2 +- .../BinaryFooterOffsetsOffheapSelfTest.java | 2 +- ...ryIdentityResolverConfigurationSelfTest.java | 138 + .../binary/BinaryMarshallerSelfTest.java | 68 +- .../BinaryObjectBuilderAdditionalSelfTest.java | 157 +- ...naryObjectBuilderDefaultMappersSelfTest.java | 2 +- .../BinarySerialiedFieldComparatorSelfTest.java | 568 +++ ...GridManagerLocalMessageListenerSelfTest.java | 8 +- .../managers/GridNoopManagerSelfTest.java | 2 +- ...unicationBalanceMultipleConnectionsTest.java | 28 + .../IgniteCommunicationBalanceTest.java | 339 ++ .../communication/IgniteIoTestMessagesTest.java | 95 + .../IgniteVariousConnectionNumberTest.java | 166 + .../GridDiscoveryManagerAliveCacheSelfTest.java | 2 +- .../pagemem/impl/PageMemoryNoLoadSelfTest.java | 2 +- .../cache/CacheRebalancingSelfTest.java | 75 + .../CacheSerializableTransactionsTest.java | 604 ++- .../cache/CrossCacheTxRandomOperationsTest.java | 30 +- ...idAbstractCacheInterceptorRebalanceTest.java | 4 +- .../cache/GridCacheAbstractFullApiSelfTest.java | 11 +- ...GridCacheConcurrentGetCacheOnClientTest.java | 129 + .../GridCacheMissingCommitVersionSelfTest.java | 6 +- .../cache/GridCacheMvccFlagsTest.java | 8 +- .../cache/GridCacheMvccPartitionedSelfTest.java | 334 +- .../processors/cache/GridCacheMvccSelfTest.java | 212 +- ...CacheOffHeapMultiThreadedUpdateSelfTest.java | 6 +- .../GridCachePartitionedAffinitySpreadTest.java | 7 +- .../processors/cache/GridCacheTestEntryEx.java | 80 +- .../GridCacheTtlManagerEvictionSelfTest.java | 1 + .../IgniteTxStoreExceptionAbstractSelfTest.java | 1 + ...heapCacheMetricsForClusterGroupSelfTest.java | 141 + .../GridCacheBinaryObjectsAbstractSelfTest.java | 260 +- .../database/tree/io/TrackingPageIOTest.java | 4 +- ...achePartitionedAtomicSequenceTxSelfTest.java | 169 + .../CacheLockReleaseNodeLeaveTest.java | 135 + ...eAtomicMessageRecovery10ConnectionsTest.java | 28 + ...cMessageRecoveryNoPairedConnectionsTest.java | 47 + ...acheConnectionRecovery10ConnectionsTest.java | 35 + .../distributed/IgniteCacheCreatePutTest.java | 2 +- .../distributed/dht/GridCacheDhtTestUtils.java | 232 -- .../dht/IgniteCacheMultiTxLockSelfTest.java | 6 +- ...nabledMultiNodeLongTxTimeoutFullApiTest.java | 2 +- ...idCacheNearOnlyMultiNodeFullApiSelfTest.java | 2 +- ...achePartitionedMultiNodeFullApiSelfTest.java | 37 +- ...edNoStripedPoolMultiNodeFullApiSelfTest.java | 35 + .../GridCacheRebalancingSyncSelfTest.java | 2 + ...eCacheExpiryPolicyWithStoreAbstractTest.java | 40 + .../CacheOffHeapAndSwapMetricsSelfTest.java | 617 --- ...LocalCacheOffHeapAndSwapMetricsSelfTest.java | 617 +++ ...ContinuousQueryFailoverAbstractSelfTest.java | 2 +- .../TxDeadlockDetectionNoHangsTest.java | 2 +- .../TxOptimisticDeadlockDetectionTest.java | 29 +- .../closure/GridClosureSerializationTest.java | 177 + ...lockMessageSystemPoolStarvationSelfTest.java | 14 +- .../GridServiceProcessorProxySelfTest.java | 2 +- ...gniteServiceProxyTimeoutInitializedTest.java | 284 ++ .../util/future/GridFutureAdapterSelfTest.java | 122 +- .../nio/impl/GridNioFilterChainSelfTest.java | 18 +- .../loadtests/hashmap/GridHashMapLoadTest.java | 7 +- .../loadtests/nio/GridNioBenchmarkClient.java | 4 +- .../p2p/GridP2PRecursionTaskSelfTest.java | 2 +- ...mmunicationSpiConcurrentConnectSelfTest.java | 37 +- ...cpCommunicationSpiMultithreadedSelfTest.java | 13 +- ...dTcpCommunicationSpiRecoveryAckSelfTest.java | 6 +- ...ationSpiRecoveryNoPairedConnectionsTest.java | 28 + ...GridTcpCommunicationSpiRecoverySelfTest.java | 8 + ...CommunicationRecoveryAckClosureSelfTest.java | 6 +- .../ignite/testframework/GridTestUtils.java | 80 +- .../testframework/junits/GridAbstractTest.java | 2 +- .../junits/GridTestKernalContext.java | 6 +- .../junits/logger/GridTestLog4jLogger.java | 4 +- .../multijvm/IgniteCacheProcessProxy.java | 5 + .../junits/multijvm/IgniteNodeRunner.java | 2 +- .../junits/multijvm/IgniteProcessProxy.java | 2 + .../ignite/testsuites/IgniteBasicTestSuite.java | 5 + .../IgniteBinaryObjectsTestSuite.java | 10 + .../IgniteCacheDataStructuresSelfTestSuite.java | 5 +- .../IgniteCacheFullApiSelfTestSuite.java | 4 + .../IgniteCacheMetricsSelfTestSuite.java | 6 +- .../ignite/testsuites/IgniteCacheTestSuite.java | 17 + .../testsuites/IgniteCacheTestSuite4.java | 3 + .../testsuites/IgniteCacheTestSuite5.java | 4 + .../testsuites/IgniteKernalSelfTestSuite.java | 2 + .../IgniteSpiCommunicationSelfTestSuite.java | 2 + .../util/AttributeNodeFilterSelfTest.java | 184 + modules/docker/1.8.0/Dockerfile | 46 + modules/docker/1.8.0/run.sh | 51 + modules/docker/Dockerfile | 6 +- modules/extdata/p2p/pom.xml | 2 +- .../extdata/uri/modules/uri-dependency/pom.xml | 2 +- modules/extdata/uri/pom.xml | 2 +- modules/flink/pom.xml | 2 +- modules/flume/pom.xml | 2 +- modules/gce/pom.xml | 2 +- modules/geospatial/pom.xml | 2 +- modules/hadoop/pom.xml | 9 +- .../hadoop/io/PartiallyRawComparator.java | 33 + .../org/apache/ignite/hadoop/io/RawMemory.java | 86 + .../hadoop/io/TextPartiallyRawComparator.java | 115 + .../apache/ignite/hadoop/io/package-info.java | 22 + .../IgniteHadoopClientProtocolProvider.java | 70 +- .../processors/hadoop/HadoopMapperUtils.java | 56 + .../processors/hadoop/HadoopProcessor.java | 6 +- .../hadoop/impl/fs/HadoopFileSystemsUtils.java | 11 + .../hadoop/impl/proto/HadoopClientProtocol.java | 55 +- .../hadoop/impl/v2/HadoopV2Context.java | 11 + ...DelegatingPartiallyOffheapRawComparator.java | 54 + .../processors/hadoop/impl/v2/HadoopV2Job.java | 22 +- .../impl/v2/HadoopV2JobResourceManager.java | 25 +- .../hadoop/impl/v2/HadoopV2MapTask.java | 10 + .../hadoop/impl/v2/HadoopV2TaskContext.java | 21 + .../processors/hadoop/io/OffheapRawMemory.java | 131 + .../hadoop/jobtracker/HadoopJobTracker.java | 8 +- .../hadoop/mapreduce/MapReduceClient.java | 147 + .../hadoop/message/HadoopMessage.java | 27 - .../hadoop/shuffle/HadoopShuffle.java | 112 +- .../hadoop/shuffle/HadoopShuffleAck.java | 92 - .../hadoop/shuffle/HadoopShuffleJob.java | 748 +++- .../hadoop/shuffle/HadoopShuffleLocalState.java | 67 + .../hadoop/shuffle/HadoopShuffleMessage.java | 242 -- .../shuffle/HadoopShuffleRemoteState.java | 61 + .../shuffle/collections/HadoopMultimapBase.java | 5 +- .../shuffle/collections/HadoopSkipList.java | 14 +- .../shuffle/direct/HadoopDirectDataInput.java | 166 + .../shuffle/direct/HadoopDirectDataOutput.java | 221 ++ .../direct/HadoopDirectDataOutputContext.java | 100 + .../direct/HadoopDirectDataOutputState.java | 54 + .../shuffle/streams/HadoopDataOutStream.java | 2 +- .../child/HadoopChildProcessRunner.java | 12 +- .../HadoopExternalCommunication.java | 4 +- .../communication/HadoopIpcToNioAdapter.java | 2 +- .../communication/HadoopMarshallerFilter.java | 6 +- .../resources/META-INF/classnames.properties | 114 + .../hadoop/impl/HadoopAbstractSelfTest.java | 13 +- .../impl/HadoopAbstractWordCountTest.java | 6 +- .../hadoop/impl/HadoopFileSystemsTest.java | 9 + .../hadoop/impl/HadoopJobTrackerSelfTest.java | 4 +- .../impl/HadoopMapReduceEmbeddedSelfTest.java | 22 +- .../impl/HadoopTaskExecutionSelfTest.java | 4 +- .../hadoop/impl/HadoopTeraSortTest.java | 383 ++ ...opClientProtocolMultipleServersSelfTest.java | 93 +- .../client/HadoopClientProtocolSelfTest.java | 232 +- .../collections/HadoopAbstractMapTest.java | 6 + .../HadoopConcurrentHashMultimapSelftest.java | 2 +- .../collections/HadoopSkipListSelfTest.java | 16 +- .../HadoopExternalTaskExecutionSelfTest.java | 2 + .../testsuites/IgniteHadoopTestSuite.java | 3 + modules/hibernate/pom.xml | 2 +- modules/indexing/pom.xml | 2 +- .../cache/query/GridCacheTwoStepQuery.java | 253 ++ .../query/h2/DmlStatementsProcessor.java | 1083 ++++++ .../query/h2/GridH2ResultSetIterator.java | 3 +- .../processors/query/h2/IgniteH2Indexing.java | 377 +- .../query/h2/database/H2PkHashIndex.java | 322 ++ .../query/h2/dml/FastUpdateArgument.java | 27 + .../query/h2/dml/FastUpdateArguments.java | 53 + .../query/h2/dml/KeyValueSupplier.java | 30 + .../processors/query/h2/dml/UpdateMode.java | 36 + .../processors/query/h2/dml/UpdatePlan.java | 128 + .../query/h2/dml/UpdatePlanBuilder.java | 486 +++ .../processors/query/h2/dml/package-info.java | 22 + .../query/h2/opt/GridH2RowDescriptor.java | 23 + .../processors/query/h2/opt/GridH2Table.java | 141 +- .../query/h2/opt/GridH2TreeIndex.java | 2 +- .../processors/query/h2/sql/DmlAstUtils.java | 616 +++ .../processors/query/h2/sql/GridSqlArray.java | 8 + .../processors/query/h2/sql/GridSqlConst.java | 6 + .../processors/query/h2/sql/GridSqlDelete.java | 68 + .../query/h2/sql/GridSqlFunction.java | 5 +- .../processors/query/h2/sql/GridSqlInsert.java | 149 + .../processors/query/h2/sql/GridSqlKeyword.java | 46 + .../processors/query/h2/sql/GridSqlMerge.java | 143 + .../processors/query/h2/sql/GridSqlQuery.java | 44 +- .../query/h2/sql/GridSqlQueryParser.java | 323 +- .../query/h2/sql/GridSqlQuerySplitter.java | 6 +- .../processors/query/h2/sql/GridSqlSelect.java | 3 +- .../query/h2/sql/GridSqlStatement.java | 64 + .../processors/query/h2/sql/GridSqlUpdate.java | 105 + .../h2/twostep/GridReduceQueryExecutor.java | 61 +- ...niteCacheAbstractInsertSqlQuerySelfTest.java | 559 +++ .../IgniteCacheAbstractSqlDmlQuerySelfTest.java | 243 ++ .../IgniteCacheDeleteSqlQuerySelfTest.java | 106 + .../IgniteCacheInsertSqlQuerySelfTest.java | 203 + .../cache/IgniteCacheLargeResultSelfTest.java | 15 +- .../cache/IgniteCacheMergeSqlQuerySelfTest.java | 153 + .../IgniteCacheUpdateSqlQuerySelfTest.java | 472 +++ .../IgniteCacheAtomicFieldsQuerySelfTest.java | 21 - ...niteCachePartitionedFieldsQuerySelfTest.java | 25 + .../h2/GridIndexingSpiAbstractSelfTest.java | 37 +- .../query/h2/sql/GridQueryParsingTest.java | 109 +- .../IgniteCacheQuerySelfTestSuite.java | 143 +- .../IgniteCacheQuerySelfTestSuite2.java | 111 +- .../IgniteH2IndexingSpiTestSuite.java | 16 +- modules/jcl/pom.xml | 2 +- modules/jms11/pom.xml | 2 +- modules/jta/pom.xml | 2 +- modules/kafka/pom.xml | 2 +- .../ignite/stream/kafka/KafkaStreamer.java | 50 +- .../kafka/KafkaIgniteStreamerSelfTest.java | 36 +- modules/log4j/pom.xml | 2 +- .../apache/ignite/logger/log4j/Log4JLogger.java | 4 +- modules/log4j2/pom.xml | 2 +- modules/mesos/pom.xml | 2 +- modules/mqtt/pom.xml | 2 +- modules/osgi-karaf/pom.xml | 2 +- modules/osgi-paxlogging/pom.xml | 2 +- modules/osgi/pom.xml | 3 +- modules/platforms/.gitignore | 31 + .../include/ignite/binary/binary_raw_reader.h | 21 + .../ignite/impl/binary/binary_reader_impl.h | 9 +- .../src/impl/binary/binary_reader_impl.cpp | 20 +- .../platforms/cpp/common/include/Makefile.am | 5 +- .../common/include/ignite/common/concurrent.h | 90 +- .../include/ignite/common/reference_impl.h | 286 ++ .../cpp/common/include/ignite/reference.h | 564 +++ .../cpp/common/project/vs/common.vcxproj | 2 + .../common/project/vs/common.vcxproj.filters | 6 + modules/platforms/cpp/configure.ac | 2 +- modules/platforms/cpp/configure.acrel | 2 +- modules/platforms/cpp/core-test/Makefile.am | 7 +- .../core-test/config/cache-query-continuous.xml | 87 + .../cpp/core-test/config/cache-query.xml | 10 + .../cpp/core-test/config/cache-test.xml | 1 + .../platforms/cpp/core-test/config/invalid.xml | 39 + .../cpp/core-test/project/vs/core-test.vcxproj | 13 +- .../project/vs/core-test.vcxproj.filters | 11 +- .../cpp/core-test/src/cache_query_test.cpp | 76 +- .../cpp/core-test/src/continuous_query_test.cpp | 611 +++ .../cpp/core-test/src/handle_registry_test.cpp | 18 +- .../cpp/core-test/src/interop_test.cpp | 17 +- .../cpp/core-test/src/reference_test.cpp | 412 ++ modules/platforms/cpp/core/Makefile.am | 1 + .../cpp/core/include/ignite/cache/cache.h | 104 +- .../cpp/core/include/ignite/cache/cache_entry.h | 40 +- .../ignite/cache/event/cache_entry_event.h | 139 + .../cache/event/cache_entry_event_listener.h | 71 + .../cache/query/continuous/continuous_query.h | 239 ++ .../query/continuous/continuous_query_handle.h | 133 + .../core/include/ignite/impl/cache/cache_impl.h | 116 +- .../continuous/continuous_query_handle_impl.h | 101 + .../query/continuous/continuous_query_impl.h | 351 ++ .../core/include/ignite/impl/handle_registry.h | 62 +- .../include/ignite/impl/ignite_environment.h | 34 +- modules/platforms/cpp/core/namespaces.dox | 74 +- .../platforms/cpp/core/project/vs/core.vcxproj | 7 + .../cpp/core/project/vs/core.vcxproj.filters | 30 + modules/platforms/cpp/core/src/ignition.cpp | 15 +- .../cpp/core/src/impl/cache/cache_impl.cpp | 31 + .../continuous/continuous_query_handle_impl.cpp | 96 + .../cpp/core/src/impl/handle_registry.cpp | 102 +- .../cpp/core/src/impl/ignite_environment.cpp | 146 +- modules/platforms/cpp/examples/Makefile.am | 1 + modules/platforms/cpp/examples/configure.ac | 3 +- .../continuous-query-example/Makefile.am | 58 + .../config/continuous-query-example.xml | 52 + .../project/vs/continuous-query-example.vcxproj | 110 + .../vs/continuous-query-example.vcxproj.filters | 35 + .../src/continuous_query_example.cpp | 142 + .../examples/include/ignite/examples/person.h | 2 +- .../odbc-example/config/example-odbc.xml | 38 +- .../project/vs/odbc-example.vcxproj | 7 +- .../project/vs/odbc-example.vcxproj.filters | 8 + .../examples/odbc-example/src/odbc_example.cpp | 514 ++- .../cpp/examples/project/vs/ignite-examples.sln | 6 + .../putget-example/src/putget_example.cpp | 2 +- .../query-example/src/query_example.cpp | 4 +- .../cpp/jni/include/ignite/jni/exports.h | 3 - .../platforms/cpp/jni/include/ignite/jni/java.h | 94 +- modules/platforms/cpp/jni/project/vs/module.def | 6 +- modules/platforms/cpp/jni/src/exports.cpp | 8 - modules/platforms/cpp/jni/src/java.cpp | 419 +- .../cpp/odbc-test/config/queries-default.xml | 145 + .../odbc-test/config/queries-test-noodbc.xml | 80 +- .../cpp/odbc-test/config/queries-test.xml | 81 +- .../platforms/cpp/odbc-test/include/Makefile.am | 1 + .../cpp/odbc-test/include/complex_type.h | 122 + .../cpp/odbc-test/project/vs/odbc-test.vcxproj | 5 +- .../project/vs/odbc-test.vcxproj.filters | 3 + .../src/application_data_buffer_test.cpp | 2 +- .../cpp/odbc-test/src/queries_test.cpp | 513 ++- .../cpp/odbc-test/src/utility_test.cpp | 27 +- .../platforms/cpp/odbc/include/ignite/odbc.h | 14 +- .../ignite/odbc/app/application_data_buffer.h | 4 +- .../odbc/include/ignite/odbc/app/parameter.h | 2 +- .../cpp/odbc/include/ignite/odbc/common_types.h | 3 + .../cpp/odbc/include/ignite/odbc/message.h | 138 +- .../odbc/include/ignite/odbc/query/data_query.h | 12 +- .../cpp/odbc/include/ignite/odbc/query/query.h | 44 +- .../cpp/odbc/include/ignite/odbc/statement.h | 83 +- .../cpp/odbc/include/ignite/odbc/type_traits.h | 2 +- .../cpp/odbc/include/ignite/odbc/utility.h | 11 +- .../cpp/odbc/install/ignite-odbc-amd64.wxs | 2 +- .../cpp/odbc/install/ignite-odbc-x86.wxs | 2 +- .../odbc/src/app/application_data_buffer.cpp | 57 +- .../platforms/cpp/odbc/src/app/parameter.cpp | 3 +- modules/platforms/cpp/odbc/src/column.cpp | 41 +- modules/platforms/cpp/odbc/src/connection.cpp | 23 +- modules/platforms/cpp/odbc/src/entry_points.cpp | 32 +- modules/platforms/cpp/odbc/src/odbc.cpp | 25 +- .../odbc/src/query/column_metadata_query.cpp | 2 +- .../platforms/cpp/odbc/src/query/data_query.cpp | 6 +- .../cpp/odbc/src/query/foreign_keys_query.cpp | 2 +- .../cpp/odbc/src/query/primary_keys_query.cpp | 2 +- .../odbc/src/query/special_columns_query.cpp | 2 +- .../cpp/odbc/src/query/table_metadata_query.cpp | 2 +- .../cpp/odbc/src/query/type_info_query.cpp | 2 +- modules/platforms/cpp/odbc/src/statement.cpp | 230 +- modules/platforms/cpp/odbc/src/type_traits.cpp | 3 + modules/platforms/cpp/odbc/src/utility.cpp | 24 +- modules/platforms/cpp/project/vs/ignite.slnrel | 3 + .../platforms/cpp/project/vs/ignite_x86.slnrel | 3 + .../Properties/AssemblyInfo.cs | 6 +- .../Apache.Ignite.AspNet.nuspec | 4 +- .../Properties/AssemblyInfo.cs | 6 +- .../Properties/AssemblyInfo.cs | 6 +- .../Properties/AssemblyInfo.cs | 6 +- .../Properties/AssemblyInfo.cs | 6 +- .../Binary/BinaryCompactFooterInteropTest.cs | 31 +- .../Cache/Query/CacheLinqTest.cs | 72 +- .../Query/CacheQueriesCodeConfigurationTest.cs | 17 +- .../Cache/Query/CacheQueriesTest.cs | 8 + .../Examples/Example.cs | 11 +- .../Examples/ExamplesTest.cs | 104 +- .../Apache.Ignite.Core.Tests/ExecutableTest.cs | 64 +- .../Process/IgniteProcess.cs | 21 +- .../Properties/AssemblyInfo.cs | 6 +- .../Apache.Ignite.Core.Tests/ReconnectTest.cs | 23 +- .../Services/ServicesTest.cs | 46 +- .../Apache.Ignite.Core.Tests/TestUtils.cs | 3 +- .../Apache.Ignite.Core.csproj | 2 + .../dotnet/Apache.Ignite.Core/Binary/IBinary.cs | 3 +- .../Apache.Ignite.Core/Cache/Query/QueryBase.cs | 15 +- .../Apache.Ignite.Core/IgniteConfiguration.cs | 1 + .../Impl/Binary/BinaryUtils.cs | 16 + .../Impl/Binary/Io/BinaryStreamBase.cs | 4 +- .../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs | 29 +- .../Apache.Ignite.Core/Impl/Common/Future.cs | 13 +- .../Impl/Common/Listenable.cs | 49 + .../Impl/Compute/ComputeImpl.cs | 4 +- .../Impl/Compute/ComputeTaskHolder.cs | 14 +- .../Apache.Ignite.Core/Impl/PlatformTarget.cs | 2 +- .../Impl/Unmanaged/IgniteJniNativeMethods.cs | 8 - .../Impl/Unmanaged/UnmanagedCallbackHandlers.cs | 79 +- .../Impl/Unmanaged/UnmanagedCallbackOp.cs | 86 + .../Impl/Unmanaged/UnmanagedCallbacks.cs | 1229 +++--- .../Impl/Unmanaged/UnmanagedUtils.cs | 5 - .../Properties/AssemblyInfo.cs | 6 +- .../EntityFrameworkCacheTest.cs | 58 +- .../Properties/AssemblyInfo.cs | 6 +- .../Impl/DbCommandInfo.cs | 21 +- .../Properties/AssemblyInfo.cs | 6 +- .../Impl/CacheQueryExpressionVisitor.cs | 12 +- .../Apache.Ignite.Linq/Impl/ExpressionWalker.cs | 8 + .../Apache.Ignite.Linq/Impl/MethodVisitor.cs | 34 +- .../Properties/AssemblyInfo.cs | 6 +- .../Properties/AssemblyInfo.cs | 6 +- .../Properties/AssemblyInfo.cs | 6 +- modules/platforms/dotnet/Apache.Ignite.sln | 7 + .../Apache.Ignite/Config/ArgsConfigurator.cs | 7 +- .../dotnet/Apache.Ignite/Config/Configurator.cs | 10 + .../Apache.Ignite/Properties/AssemblyInfo.cs | 6 +- modules/platforms/dotnet/DEVNOTES.txt | 12 +- modules/platforms/dotnet/README.md | 150 + modules/platforms/dotnet/build.bat | 19 + modules/platforms/dotnet/build.ps1 | 211 + .../Datagrid/MultiTieredCacheExample.cs | 8 +- .../Misc/ClientReconnectExample.cs | 18 +- .../Properties/AssemblyInfo.cs | 6 +- .../Properties/AssemblyInfo.cs | 6 +- modules/rest-http/pom.xml | 2 +- modules/scalar-2.10/pom.xml | 2 +- modules/scalar/pom.xml | 2 +- modules/schedule/pom.xml | 2 +- .../schedule/IgniteScheduleProcessor.java | 2 +- modules/schema-import-db/pom.xml | 2 +- modules/schema-import/pom.xml | 2 +- modules/slf4j/pom.xml | 2 +- modules/spark-2.10/pom.xml | 2 +- modules/spark/pom.xml | 2 +- modules/spring/pom.xml | 2 +- modules/ssh/pom.xml | 2 +- modules/storm/pom.xml | 2 +- modules/tools/pom.xml | 2 +- .../ignite/tools/classgen/ClassesGenerator.java | 8 +- modules/twitter/pom.xml | 2 +- modules/urideploy/pom.xml | 2 +- .../spi/deployment/uri/UriDeploymentSpi.java | 2 +- modules/visor-console-2.10/pom.xml | 2 +- modules/visor-console/pom.xml | 2 +- .../ignite/visor/commands/VisorConsole.scala | 1 - .../commands/cache/VisorCacheCommand.scala | 37 +- .../commands/cache/VisorCacheSwapCommand.scala | 145 - .../commands/disco/VisorDiscoveryCommand.scala | 2 +- .../commands/events/VisorEventsCommand.scala | 8 +- .../cswap/VisorCacheSwapCommandSpec.scala | 89 - .../testsuites/VisorConsoleSelfTestSuite.scala | 2 - modules/visor-plugins/pom.xml | 2 +- modules/web-console/backend/app/agent.js | 47 +- modules/web-console/backend/app/browser.js | 26 + modules/web-console/backend/app/mongo.js | 30 +- .../backend/config/settings.json.sample | 7 - modules/web-console/backend/index.js | 6 +- modules/web-console/backend/middlewares/host.js | 7 +- modules/web-console/backend/routes/agent.js | 4 +- modules/web-console/backend/routes/demo.js | 17 +- modules/web-console/backend/routes/profile.js | 3 +- modules/web-console/backend/services/agents.js | 2 +- modules/web-console/backend/services/caches.js | 2 + .../web-console/backend/services/notebooks.js | 14 +- .../web-console/backend/services/sessions.js | 6 +- modules/web-console/backend/services/spaces.js | 15 + .../docker/compose/backend/.dockerignore | 2 + .../docker/compose/backend/Dockerfile | 6 +- .../web-console/docker/compose/backend/build.sh | 4 +- .../docker/compose/docker-compose.yml | 5 - .../docker/compose/frontend/DockerfileBuild | 4 +- .../docker/compose/frontend/build.sh | 6 +- .../compose/frontend/nginx/web-console.conf | 9 + .../web-console/docker/standalone/.dockerignore | 5 + .../web-console/docker/standalone/Dockerfile | 10 +- modules/web-console/docker/standalone/build.sh | 4 +- .../docker/standalone/docker-compose.yml | 7 +- .../docker/standalone/nginx/web-console.conf | 9 + modules/web-console/frontend/app/app.js | 5 - .../controllers/reset-password.controller.js | 14 +- .../frontend/app/data/event-groups.json | 169 + .../frontend/app/data/event-types.json | 169 - .../frontend/app/data/pom-dependencies.json | 14 +- .../ui-ace-docker/ui-ace-docker.controller.js | 2 +- .../directives/ui-ace-docker/ui-ace-docker.jade | 2 +- .../ui-ace-pojos/ui-ace-pojos.controller.js | 12 +- .../directives/ui-ace-pojos/ui-ace-pojos.jade | 2 +- .../ui-ace-pom/ui-ace-pom.controller.js | 4 +- .../frontend/app/filters/duration.filter.js | 3 + .../helpers/jade/form/form-field-checkbox.jade | 2 +- .../helpers/jade/form/form-field-datalist.jade | 2 +- .../helpers/jade/form/form-field-dropdown.jade | 5 +- .../helpers/jade/form/form-field-number.jade | 3 +- .../helpers/jade/form/form-field-password.jade | 2 +- .../app/helpers/jade/form/form-field-text.jade | 19 +- .../frontend/app/helpers/jade/mixins.jade | 76 +- .../frontend/app/modules/Demo/Demo.module.js | 6 +- .../configuration/EventGroups.provider.js | 30 - .../modules/configuration/Version.service.js | 6 +- .../configuration/configuration.module.js | 63 +- .../generator/AbstractTransformer.js | 17 + .../modules/configuration/generator/Beans.js | 11 + .../generator/ConfigurationGenerator.js | 2776 +++++++------- .../configuration/generator/Custom.service.js | 23 + .../configuration/generator/Docker.service.js | 4 +- .../generator/JavaTransformer.service.js | 2315 +++++------ .../configuration/generator/Maven.service.js | 234 ++ .../configuration/generator/Pom.service.js | 233 -- .../generator/Properties.service.js | 21 +- .../configuration/generator/Readme.service.js | 2 +- .../generator/SharpTransformer.service.js | 437 ++- .../generator/SpringTransformer.service.js | 489 +-- .../defaults/Cache.platform.service.js | 56 + .../generator/defaults/Cache.service.js | 131 + .../defaults/Cluster.platform.service.js | 43 + .../generator/defaults/Cluster.service.js | 289 ++ .../generator/defaults/Event-groups.service.js | 27 + .../generator/defaults/IGFS.service.js | 64 + .../defaults/cache.platform.provider.js | 60 - .../generator/defaults/cache.provider.js | 129 - .../defaults/cluster.platform.provider.js | 49 - .../generator/defaults/cluster.provider.js | 293 -- .../generator/defaults/igfs.provider.js | 68 - .../configuration/generator/generator-common.js | 625 --- .../configuration/generator/generator-java.js | 3617 ------------------ .../generator/generator-optional.js | 25 - .../configuration/generator/generator-spring.js | 2111 ---------- .../app/modules/form/field/tooltip.directive.js | 2 +- .../app/modules/form/group/tooltip.directive.js | 2 +- .../app/modules/form/panel/field.directive.js | 4 +- .../frontend/app/modules/sql/Notebook.data.js | 11 +- .../app/modules/sql/Notebook.service.js | 2 +- .../app/modules/sql/scan-filter-input.jade | 39 - .../modules/sql/scan-filter-input.service.js | 51 - .../frontend/app/modules/sql/sql.controller.js | 217 +- .../frontend/app/modules/sql/sql.module.js | 2 - .../app/modules/states/configuration.state.js | 2 + .../configuration/caches/client-near-cache.jade | 2 +- .../configuration/caches/concurrency.jade | 2 +- .../states/configuration/caches/general.jade | 2 +- .../states/configuration/caches/memory.jade | 2 +- .../configuration/caches/near-cache-client.jade | 2 +- .../configuration/caches/near-cache-server.jade | 2 +- .../configuration/caches/node-filter.jade | 4 +- .../states/configuration/caches/query.jade | 5 +- .../states/configuration/caches/rebalance.jade | 2 +- .../states/configuration/caches/statistics.jade | 2 +- .../states/configuration/caches/store.jade | 20 +- .../states/configuration/clusters/atomic.jade | 2 +- .../configuration/clusters/attributes.jade | 2 +- .../states/configuration/clusters/binary.jade | 2 +- .../configuration/clusters/cache-key-cfg.jade | 2 +- .../configuration/clusters/checkpoint.jade | 17 +- .../configuration/clusters/checkpoint/fs.jade | 10 +- .../configuration/clusters/checkpoint/jdbc.jade | 47 +- .../configuration/clusters/checkpoint/s3.jade | 244 +- .../configuration/clusters/collision.jade | 12 +- .../clusters/collision/custom.jade | 4 +- .../clusters/collision/fifo-queue.jade | 2 +- .../clusters/collision/job-stealing.jade | 4 +- .../clusters/collision/priority-queue.jade | 2 +- .../configuration/clusters/communication.jade | 2 +- .../configuration/clusters/connector.jade | 2 +- .../configuration/clusters/deployment.jade | 131 +- .../configuration/clusters/discovery.jade | 2 +- .../states/configuration/clusters/events.jade | 6 +- .../states/configuration/clusters/failover.jade | 6 +- .../states/configuration/clusters/general.jade | 2 +- .../clusters/general/discovery/cloud.jade | 2 +- .../clusters/general/discovery/google.jade | 2 +- .../clusters/general/discovery/jdbc.jade | 3 +- .../clusters/general/discovery/multicast.jade | 2 +- .../clusters/general/discovery/s3.jade | 2 +- .../clusters/general/discovery/shared.jade | 2 +- .../clusters/general/discovery/vm.jade | 2 +- .../clusters/general/discovery/zookeeper.jade | 4 +- .../bounded-exponential-backoff.jade | 2 +- .../discovery/zookeeper/retrypolicy/custom.jade | 4 +- .../retrypolicy/exponential-backoff.jade | 2 +- .../zookeeper/retrypolicy/forever.jade | 2 +- .../zookeeper/retrypolicy/n-times.jade | 2 +- .../zookeeper/retrypolicy/one-time.jade | 2 +- .../zookeeper/retrypolicy/until-elapsed.jade | 2 +- .../states/configuration/clusters/igfs.jade | 2 +- .../configuration/clusters/load-balancing.jade | 25 +- .../states/configuration/clusters/logger.jade | 2 +- .../configuration/clusters/logger/custom.jade | 4 +- .../configuration/clusters/logger/log4j.jade | 2 +- .../configuration/clusters/logger/log4j2.jade | 2 +- .../configuration/clusters/marshaller.jade | 2 +- .../states/configuration/clusters/metrics.jade | 2 +- .../states/configuration/clusters/odbc.jade | 2 +- .../states/configuration/clusters/ssl.jade | 4 +- .../states/configuration/clusters/swap.jade | 2 +- .../states/configuration/clusters/thread.jade | 2 +- .../states/configuration/clusters/time.jade | 2 +- .../configuration/clusters/transactions.jade | 2 +- .../states/configuration/domains/general.jade | 2 +- .../states/configuration/domains/query.jade | 16 +- .../states/configuration/domains/store.jade | 12 +- .../modules/states/configuration/igfs/dual.jade | 2 +- .../states/configuration/igfs/fragmentizer.jade | 2 +- .../states/configuration/igfs/general.jade | 2 +- .../modules/states/configuration/igfs/ipc.jade | 2 +- .../modules/states/configuration/igfs/misc.jade | 6 +- .../states/configuration/igfs/secondary.jade | 2 +- .../summary/summary-zipper.service.js | 37 + .../configuration/summary/summary.controller.js | 99 +- .../configuration/summary/summary.worker.js | 123 + .../frontend/app/modules/user/Auth.service.js | 11 +- .../frontend/app/services/JavaTypes.service.js | 13 +- .../frontend/app/services/Messages.service.js | 17 +- .../frontend/controllers/admin-controller.js | 211 +- .../frontend/controllers/caches-controller.js | 22 +- .../frontend/controllers/clusters-controller.js | 52 +- .../frontend/controllers/domains-controller.js | 40 +- .../frontend/controllers/igfs-controller.js | 20 +- .../frontend/controllers/profile-controller.js | 3 +- .../frontend/gulpfile.babel.js/tasks/jade.js | 4 +- .../frontend/gulpfile.babel.js/tasks/test.js | 92 - .../gulpfile.babel.js/webpack/common.js | 22 +- .../webpack/environments/development.js | 17 +- .../webpack/environments/production.js | 3 +- .../webpack/plugins/progress.js | 82 - modules/web-console/frontend/package.json | 180 +- .../frontend/public/images/cache.png | Bin 23700 -> 24791 bytes .../frontend/public/images/domains.png | Bin 23828 -> 22131 bytes .../web-console/frontend/public/images/igfs.png | Bin 14307 -> 14139 bytes .../frontend/public/images/query-chart.png | Bin 16637 -> 17142 bytes .../frontend/public/images/query-metadata.png | Bin 32298 -> 39361 bytes .../frontend/public/images/query-table.png | Bin 29189 -> 28065 bytes .../frontend/public/images/summary.png | Bin 31997 -> 33650 bytes .../stylesheets/_font-awesome-custom.scss | 39 + .../frontend/public/stylesheets/form-field.scss | 37 + .../frontend/public/stylesheets/style.scss | 124 +- .../frontend/test/unit/JavaTypes.test.js | 17 +- .../frontend/test/unit/Version.test.js | 8 +- .../frontend/views/configuration/caches.jade | 22 +- .../frontend/views/configuration/clusters.jade | 50 +- .../views/configuration/domains-import.jade | 9 +- .../frontend/views/configuration/domains.jade | 8 +- .../frontend/views/configuration/igfs.jade | 14 +- .../frontend/views/configuration/summary.jade | 27 +- .../frontend/views/includes/header.jade | 15 +- .../frontend/views/settings/admin.jade | 85 +- .../frontend/views/settings/profile.jade | 2 +- .../frontend/views/sql/notebook-new.jade | 2 +- modules/web-console/frontend/views/sql/sql.jade | 237 +- .../views/templates/agent-download.jade | 2 +- .../frontend/views/templates/alert.jade | 2 +- .../frontend/views/templates/batch-confirm.jade | 2 +- .../frontend/views/templates/clone.jade | 2 +- .../frontend/views/templates/confirm.jade | 2 +- .../frontend/views/templates/select.jade | 2 +- modules/web-console/pom.xml | 2 +- modules/web-console/web-agent/README.txt | 4 +- .../web-agent/bin/ignite-web-agent.bat | 7 +- .../web-agent/bin/ignite-web-agent.sh | 6 +- modules/web-console/web-agent/pom.xml | 2 +- .../console/agent/AgentConfiguration.java | 5 +- .../ignite/console/agent/AgentLauncher.java | 6 +- .../ignite/console/demo/AgentClusterDemo.java | 1 + modules/web/ignite-appserver-test/pom.xml | 2 +- modules/web/ignite-websphere-test/pom.xml | 2 +- modules/web/pom.xml | 2 +- .../config/benchmark-bin-identity.properties | 94 + .../config/benchmark-multicast.properties | 15 + .../config/benchmark-sql-dml.properties | 72 + modules/yardstick/config/ignite-base-config.xml | 71 +- .../config/ignite-bin-multicast-config.xml | 86 + modules/yardstick/pom.xml | 2 +- .../yardstick/IgniteAbstractBenchmark.java | 30 + .../yardstick/IgniteBenchmarkArguments.java | 11 + .../ignite/yardstick/IgniteBenchmarkUtils.java | 42 +- .../apache/ignite/yardstick/PreloadLogger.java | 155 + .../yardstick/cache/CacheEntryEventProbe.java | 2 +- .../cache/IgniteBinaryIdentityBenchmark.java | 108 + .../cache/IgniteBinaryIdentityGetBenchmark.java | 34 + .../cache/IgniteBinaryIdentityPutBenchmark.java | 35 + .../IgniteFieldsBinaryIdentityGetBenchmark.java | 30 + .../IgniteFieldsBinaryIdentityPutBenchmark.java | 30 + .../yardstick/cache/IgniteIoTestBenchmark.java | 73 + .../IgniteLegacyBinaryIdentityGetBenchmark.java | 30 + .../IgniteLegacyBinaryIdentityPutBenchmark.java | 30 + ...IgnitePutIfAbsentIndexedValue1Benchmark.java | 45 + .../IgniteReplaceIndexedValue1Benchmark.java | 79 + .../cache/dml/IgniteSqlDeleteBenchmark.java | 83 + .../dml/IgniteSqlDeleteFilteredBenchmark.java | 88 + .../IgniteSqlInsertIndexedValue1Benchmark.java | 48 + .../IgniteSqlInsertIndexedValue2Benchmark.java | 48 + .../IgniteSqlInsertIndexedValue8Benchmark.java | 48 + .../cache/dml/IgniteSqlMergeAllBenchmark.java | 82 + .../cache/dml/IgniteSqlMergeBenchmark.java | 42 + .../IgniteSqlMergeIndexedValue1Benchmark.java | 43 + .../IgniteSqlMergeIndexedValue2Benchmark.java | 43 + .../IgniteSqlMergeIndexedValue8Benchmark.java | 43 + .../cache/dml/IgniteSqlMergeQueryBenchmark.java | 116 + .../cache/dml/IgniteSqlUpdateBenchmark.java | 82 + .../dml/IgniteSqlUpdateFilteredBenchmark.java | 88 + .../IgniteCacheRandomOperationBenchmark.java | 22 +- .../yardstick/cache/model/SampleValue.java | 2 + .../io/IgniteIoTestAbstractBenchmark.java | 61 + .../io/IgniteIoTestSendAllBenchmark.java | 32 + .../io/IgniteIoTestSendRandomBenchmark.java | 35 + modules/yarn/pom.xml | 2 +- modules/zookeeper/pom.xml | 2 +- pom.xml | 2 +- 1129 files changed, 51015 insertions(+), 23421 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java index 830f781a,4ee5cce..79ac383 --- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java @@@ -566,9 -593,9 +566,9 @@@ public class PageMemoryNoStoreImpl impl pageIdx &= idxMask; - long off = pageIdx * sysPageSize; - long offset = ((long)pageIdx) * sysPageSize; ++ long off = ((long)pageIdx) * sysPageSize; - return pagesBase + offset; + return pagesBase + off; } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulFullSnapshotId.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulFullSnapshotId.java index 0000000,5633354..db213de mode 000000,100644..100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulFullSnapshotId.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulFullSnapshotId.java @@@ -1,0 -1,59 +1,58 @@@ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + package org.apache.ignite.internal.pagemem.wal.record.delta; + -import java.nio.ByteBuffer; + import org.apache.ignite.IgniteCheckedException; + import org.apache.ignite.internal.processors.cache.database.tree.io.PageMetaIO; + + /** + * + */ + public class MetaPageUpdateLastSuccessfulFullSnapshotId extends PageDeltaRecord { + /** */ + private final long lastSuccessfulFullSnapshotId; + + /** + * @param pageId Meta page ID. + */ + public MetaPageUpdateLastSuccessfulFullSnapshotId(int cacheId, long pageId, long lastSuccessfulFullSnapshotId) { + super(cacheId, pageId); + + this.lastSuccessfulFullSnapshotId = lastSuccessfulFullSnapshotId; + } + + /** {@inheritDoc} */ - @Override public void applyDelta(ByteBuffer buf) throws IgniteCheckedException { - PageMetaIO io = PageMetaIO.VERSIONS.forPage(buf); ++ @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException { ++ PageMetaIO io = PageMetaIO.VERSIONS.forPage(pageAddr); + - io.setLastSuccessfulFullSnapshotId(buf, lastSuccessfulFullSnapshotId); ++ io.setLastSuccessfulFullSnapshotId(pageAddr, lastSuccessfulFullSnapshotId); + } + + /** {@inheritDoc} */ + @Override public RecordType type() { + return RecordType.META_PAGE_UPDATE_LAST_SUCCESSFUL_FULL_SNAPSHOT_ID; + } + + /** + * @return Root ID. + */ + public long lastSuccessfulFullSnapshotId() { + return lastSuccessfulFullSnapshotId; + } + } + http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulSnapshotId.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulSnapshotId.java index 0000000,20e136b..ce2453e mode 000000,100644..100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulSnapshotId.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulSnapshotId.java @@@ -1,0 -1,70 +1,70 @@@ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + package org.apache.ignite.internal.pagemem.wal.record.delta; + + import java.nio.ByteBuffer; + import org.apache.ignite.IgniteCheckedException; + import org.apache.ignite.internal.processors.cache.database.tree.io.PageMetaIO; + + /** + * + */ + public class MetaPageUpdateLastSuccessfulSnapshotId extends PageDeltaRecord { + /** */ + private final long lastSuccessfulSnapshotId; + /** Last successful snapshot tag. */ + private final long lastSuccessfulSnapshotTag; + + /** + * @param pageId Meta page ID. + * @param snapshotTag + */ + public MetaPageUpdateLastSuccessfulSnapshotId(int cacheId, long pageId, long lastSuccessfulSnapshotId, long snapshotTag) { + super(cacheId, pageId); + + this.lastSuccessfulSnapshotId = lastSuccessfulSnapshotId; + this.lastSuccessfulSnapshotTag = snapshotTag; + } + + /** {@inheritDoc} */ - @Override public void applyDelta(ByteBuffer buf) throws IgniteCheckedException { - PageMetaIO io = PageMetaIO.VERSIONS.forPage(buf); ++ @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException { ++ PageMetaIO io = PageMetaIO.VERSIONS.forPage(pageAddr); + - io.setLastSuccessfulSnapshotId(buf, lastSuccessfulSnapshotId); ++ io.setLastSuccessfulSnapshotId(pageAddr, lastSuccessfulSnapshotId); + } + + /** {@inheritDoc} */ + @Override public RecordType type() { + return RecordType.META_PAGE_UPDATE_LAST_SUCCESSFUL_SNAPSHOT_ID; + } + + /** + * @return lastSuccessfulSnapshotId + */ + public long lastSuccessfulSnapshotId() { + return lastSuccessfulSnapshotId; + } + + /** + * @return lastSuccessfulSnapshotTag + */ + public long lastSuccessfulSnapshotTag() { + return lastSuccessfulSnapshotTag; + } + } + http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateNextSnapshotId.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateNextSnapshotId.java index 0000000,0a92aef..aafda11 mode 000000,100644..100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateNextSnapshotId.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateNextSnapshotId.java @@@ -1,0 -1,59 +1,58 @@@ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + package org.apache.ignite.internal.pagemem.wal.record.delta; + -import java.nio.ByteBuffer; + import org.apache.ignite.IgniteCheckedException; + import org.apache.ignite.internal.processors.cache.database.tree.io.PageMetaIO; + + /** + * + */ + public class MetaPageUpdateNextSnapshotId extends PageDeltaRecord { + /** */ + private final long nextSnapshotId; + + /** + * @param pageId Meta page ID. + */ + public MetaPageUpdateNextSnapshotId(int cacheId, long pageId, long nextSnapshotId) { + super(cacheId, pageId); + + this.nextSnapshotId = nextSnapshotId; + } + + /** {@inheritDoc} */ - @Override public void applyDelta(ByteBuffer buf) throws IgniteCheckedException { - PageMetaIO io = PageMetaIO.VERSIONS.forPage(buf); ++ @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException { ++ PageMetaIO io = PageMetaIO.VERSIONS.forPage(pageAddr); + - io.setNextSnapshotTag(buf, nextSnapshotId); ++ io.setNextSnapshotTag(pageAddr, nextSnapshotId); + } + + /** {@inheritDoc} */ + @Override public RecordType type() { + return RecordType.META_PAGE_UPDATE_NEXT_SNAPSHOT_ID; + } + + /** + * @return Root ID. + */ + public long nextSnapshotId() { + return nextSnapshotId; + } + } + http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdatePartitionDataRecord.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdatePartitionDataRecord.java index 39d038b,ae6210a..ecc2c16 --- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdatePartitionDataRecord.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdatePartitionDataRecord.java @@@ -78,14 -85,21 +84,21 @@@ public class MetaPageUpdatePartitionDat } /** {@inheritDoc} */ - @Override public void applyDelta(ByteBuffer buf) throws IgniteCheckedException { - PagePartitionMetaIO io = PagePartitionMetaIO.VERSIONS.forPage(buf); + @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException { + PagePartitionMetaIO io = PagePartitionMetaIO.VERSIONS.forPage(pageAddr); - io.setUpdateCounter(buf, updateCntr); - io.setGlobalRemoveId(buf, globalRmvId); - io.setSize(buf, partSize); + io.setUpdateCounter(pageAddr, updateCntr); + io.setGlobalRemoveId(pageAddr, globalRmvId); + io.setSize(pageAddr, partSize); } + /** + * + */ + public int allocatedIndexCandidate() { + return allocatedIdxCandidate; + } + /** {@inheritDoc} */ @Override public RecordType type() { return RecordType.PARTITION_META_PAGE_UPDATE_COUNTERS; http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageListMetaResetCountRecord.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageListMetaResetCountRecord.java index 0000000,23ebcee..2618328 mode 000000,100644..100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageListMetaResetCountRecord.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageListMetaResetCountRecord.java @@@ -1,0 -1,47 +1,46 @@@ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + package org.apache.ignite.internal.pagemem.wal.record.delta; + -import java.nio.ByteBuffer; + import org.apache.ignite.IgniteCheckedException; + import org.apache.ignite.internal.processors.cache.database.freelist.io.PagesListMetaIO; + + /** + * Delta record for page-list meta count reset + */ + public class PageListMetaResetCountRecord extends PageDeltaRecord { + /** + * @param cacheId Cache ID. + * @param pageId Page ID. + */ + public PageListMetaResetCountRecord(int cacheId, long pageId) { + super(cacheId, pageId); + } + + /** {@inheritDoc} */ - @Override public void applyDelta(ByteBuffer buf) throws IgniteCheckedException { - PagesListMetaIO io = PagesListMetaIO.VERSIONS.forPage(buf); ++ @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException { ++ PagesListMetaIO io = PagesListMetaIO.VERSIONS.forPage(pageAddr); + - io.resetCount(buf); ++ io.resetCount(pageAddr); + } + + /** {@inheritDoc} */ + @Override public RecordType type() { + return RecordType.PAGE_LIST_META_RESET_COUNT_RECORD; + } + } http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/TrackingPageDeltaRecord.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/TrackingPageDeltaRecord.java index bc5082e,9d00d77..7daac81 --- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/TrackingPageDeltaRecord.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/TrackingPageDeltaRecord.java @@@ -70,8 -70,8 +70,8 @@@ public class TrackingPageDeltaRecord ex } /** {@inheritDoc} */ - @Override public void applyDelta(ByteBuffer buf) throws IgniteCheckedException { - TrackingPageIO.VERSIONS.forPage(buf).markChanged(buf, pageIdToMark, nextSnapshotId, lastSuccessfulSnapshotId, buf.capacity()); + @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException { - TrackingPageIO.VERSIONS.forPage(pageAddr).markChanged(pageAddr, pageIdToMark, nextBackupId, lastSuccessfulBackupId, pageSize); ++ TrackingPageIO.VERSIONS.forPage(pageAddr).markChanged(pageAddr, pageIdToMark, nextSnapshotId, lastSuccessfulSnapshotId, buf.capacity()); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java index 85b9de5,4f299dd..bdf2ea1 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java @@@ -72,9 -72,10 +72,9 @@@ import org.apache.ignite.internal.binar import org.apache.ignite.internal.binary.BinaryMarshaller; import org.apache.ignite.internal.binary.GridBinaryMarshaller; import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage; - import org.apache.ignite.internal.pagemem.backup.StartFullBackupAckDiscoveryMessage; + import org.apache.ignite.internal.pagemem.snapshot.StartFullSnapshotAckDiscoveryMessage; import org.apache.ignite.internal.pagemem.store.IgnitePageStoreManager; import org.apache.ignite.internal.pagemem.wal.IgniteWriteAheadLogManager; -import org.apache.ignite.internal.pagemem.wal.IgniteWriteAheadLogNoopManager; import org.apache.ignite.internal.processors.GridProcessorAdapter; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl; http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/PagesList.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/PagesList.java index f33818a,4da44bc..e44838d --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/PagesList.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/PagesList.java @@@ -257,17 -258,20 +258,20 @@@ public abstract class PagesList extend while (nextPageId != 0L) { try (Page page = page(nextPageId)) { - ByteBuffer buf = writeLock(page); + long pageAddr = writeLock(page); try { - PagesListMetaIO io = PagesListMetaIO.VERSIONS.forPage(buf); + PagesListMetaIO io = PagesListMetaIO.VERSIONS.forPage(pageAddr); - io.resetCount(buf); + io.resetCount(pageAddr); + if (PageHandler.isWalDeltaRecordNeeded(wal, page)) + wal.log(new PageListMetaResetCountRecord(cacheId, nextPageId)); + - nextPageId = io.getNextMetaPageId(buf); + nextPageId = io.getNextMetaPageId(pageAddr); } finally { - writeUnlock(page, buf, true); + writeUnlock(page, pageAddr, true); } } }