Megre 2.0
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/1748e226 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/1748e226 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/1748e226 Branch: refs/heads/ignite-3477-merge2.0 Commit: 1748e226d4322b90c7a50d52e53e2e16119c8086 Parents: db548dc 85b08c5 Author: sboikov <sboi...@gridgain.com> Authored: Wed Feb 15 13:42:00 2017 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Wed Feb 15 13:42:00 2017 +0300 ---------------------------------------------------------------------- .gitignore | 2 +- DEVNOTES.txt | 3 + NOTICE | 2 +- assembly/LICENSE_FABRIC | 35 +- assembly/LICENSE_HADOOP | 17 +- assembly/NOTICE_FABRIC | 2 +- assembly/NOTICE_HADOOP | 2 +- assembly/dependencies-fabric-lgpl.xml | 1 + assembly/dependencies-fabric.xml | 1 + examples/schema-import/bin/h2-server.bat | 2 +- examples/schema-import/bin/h2-server.sh | 4 +- .../schema-import/bin/schema-import.properties | 2 +- .../src/main/resources/META-INF/licenses.txt.vm | 7 +- .../tcp/ipfinder/s3/TcpDiscoveryS3IpFinder.java | 37 +- .../TcpDiscoveryS3IpFinderAbstractSelfTest.java | 84 +++ ...3IpFinderAwsCredentialsProviderSelfTest.java | 46 ++ ...scoveryS3IpFinderAwsCredentialsSelfTest.java | 45 ++ .../s3/TcpDiscoveryS3IpFinderSelfTest.java | 79 --- .../ignite/testsuites/IgniteS3TestSuite.java | 26 +- .../stream/camel/IgniteCamelStreamerTest.java | 4 +- .../cassandra/persistence/PojoKeyField.java | 2 +- .../ClientAbstractMultiNodeSelfTest.java | 8 +- ...BinaryMarshallerInsertStatementSelfTest.java | 2 - ...cBinaryMarshallerMergeStatementSelfTest.java | 2 - .../internal/jdbc2/JdbcMetadataSelfTest.java | 2 +- .../ignite/jdbc/JdbcMetadataSelfTest.java | 4 +- .../jdbc/suite/IgniteJdbcDriverTestSuite.java | 3 +- .../ignite/codegen/MessageCodeGenerator.java | 2 +- modules/core/src/main/java/META-INF/NOTICE | 2 +- .../apache/ignite/IgniteSystemProperties.java | 14 + .../apache/ignite/binary/BinaryRawReader.java | 13 + .../apache/ignite/binary/BinaryRawWriter.java | 13 + .../org/apache/ignite/binary/BinaryReader.java | 15 + .../org/apache/ignite/binary/BinaryWriter.java | 15 + .../org/apache/ignite/cache/QueryEntity.java | 22 +- .../org/apache/ignite/cache/query/SqlQuery.java | 25 + .../store/jdbc/CacheAbstractJdbcStore.java | 11 +- .../store/jdbc/CacheJdbcBlobStoreFactory.java | 2 +- .../store/jdbc/JdbcTypesDefaultTransformer.java | 19 + .../cache/store/jdbc/JdbcTypesTransformer.java | 17 + .../configuration/CacheConfiguration.java | 20 +- .../configuration/IgniteConfiguration.java | 87 +-- .../apache/ignite/internal/GridComponent.java | 48 +- .../internal/GridEventConsumeHandler.java | 5 + .../ignite/internal/GridKernalContext.java | 23 +- .../ignite/internal/GridKernalContextImpl.java | 47 +- .../internal/GridMessageListenHandler.java | 5 + .../internal/GridPerformanceSuggestions.java | 92 --- .../ignite/internal/GridPluginComponent.java | 21 +- .../org/apache/ignite/internal/GridTopic.java | 3 + .../ignite/internal/IgniteComputeImpl.java | 2 + .../apache/ignite/internal/IgniteKernal.java | 40 +- .../ignite/internal/IgniteVersionUtils.java | 2 +- .../org/apache/ignite/internal/IgnitionEx.java | 69 +- .../ignite/internal/MappingStoreTask.java | 59 ++ .../internal/MarshallerContextAdapter.java | 211 ------ .../ignite/internal/MarshallerContextImpl.java | 690 +++++++++++++------ .../internal/MarshallerMappingFileStore.java | 174 +++++ .../ignite/internal/MarshallerPlatformIds.java | 30 + .../internal/binary/BinaryClassDescriptor.java | 13 + .../ignite/internal/binary/BinaryContext.java | 11 +- .../internal/binary/BinaryEnumObjectImpl.java | 4 +- .../internal/binary/BinaryFieldAccessor.java | 23 + .../internal/binary/BinaryMarshaller.java | 1 - .../binary/BinaryMetadataCollector.java | 11 + .../internal/binary/BinaryObjectImpl.java | 9 + .../binary/BinaryObjectOffheapImpl.java | 9 + .../internal/binary/BinaryReaderExImpl.java | 58 ++ .../binary/BinarySerializedFieldComparator.java | 3 + .../ignite/internal/binary/BinaryUtils.java | 130 +++- .../ignite/internal/binary/BinaryWriteMode.java | 6 + .../internal/binary/BinaryWriterExImpl.java | 80 ++- .../internal/binary/GridBinaryMarshaller.java | 6 + .../binary/builder/BinaryBuilderReader.java | 37 + .../GridClientOptimizedMarshaller.java | 16 +- .../impl/GridRouterCommandLineStartup.java | 4 +- .../cluster/ClusterNodeLocalMapImpl.java | 1 - .../internal/igfs/common/IgfsMarshaller.java | 4 +- .../internal/jdbc2/JdbcSqlFieldsQuery.java | 1 - .../ignite/internal/jdbc2/JdbcStatement.java | 2 - .../internal/managers/GridManagerAdapter.java | 19 +- .../managers/communication/GridIoManager.java | 6 +- .../communication/GridIoMessageFactory.java | 12 + .../managers/communication/GridIoPolicy.java | 10 +- .../discovery/GridDiscoveryManager.java | 85 ++- .../internal/mxbean/IgniteStandardMXBean.java | 12 +- .../processors/GridProcessorAdapter.java | 21 +- .../cache/CacheEvictableEntryImpl.java | 4 +- .../processors/cache/CacheMetricsImpl.java | 6 +- .../internal/processors/cache/CacheType.java | 8 +- .../processors/cache/EntryGetResult.java | 65 ++ .../processors/cache/GridCacheAdapter.java | 195 +++--- .../cache/GridCacheAffinityManager.java | 60 +- .../processors/cache/GridCacheAtomicFuture.java | 3 +- .../processors/cache/GridCacheContext.java | 21 +- .../cache/GridCacheDeploymentManager.java | 4 +- .../processors/cache/GridCacheEntryEx.java | 40 +- .../cache/GridCacheEvictionManager.java | 6 +- .../processors/cache/GridCacheMapEntry.java | 130 +++- .../GridCachePartitionExchangeManager.java | 2 +- .../processors/cache/GridCacheProcessor.java | 372 ++++++---- .../processors/cache/GridCacheTtlManager.java | 3 +- .../processors/cache/GridCacheUtils.java | 36 +- .../processors/cache/IgniteCacheProxy.java | 3 + .../processors/cache/QueryCursorImpl.java | 6 +- .../processors/cache/ReaderArguments.java | 74 ++ .../cache/affinity/GridCacheAffinityImpl.java | 16 +- .../binary/CacheObjectBinaryProcessorImpl.java | 2 +- .../CacheDataStructuresManager.java | 2 +- .../GridDistributedCacheAdapter.java | 16 +- .../distributed/GridDistributedCacheEntry.java | 3 - .../GridDistributedLockResponse.java | 1 - .../dht/GridClientPartitionTopology.java | 1 - .../dht/GridDhtAssignmentFetchFuture.java | 3 +- .../distributed/dht/GridDhtCacheAdapter.java | 33 +- .../distributed/dht/GridDhtCacheEntry.java | 2 +- .../cache/distributed/dht/GridDhtGetFuture.java | 87 +-- .../distributed/dht/GridDhtGetSingleFuture.java | 79 +-- .../distributed/dht/GridDhtLocalPartition.java | 125 +++- .../distributed/dht/GridDhtLockFuture.java | 35 +- .../dht/GridDhtPartitionTopologyImpl.java | 6 +- .../dht/GridDhtTransactionalCacheAdapter.java | 21 +- .../distributed/dht/GridDhtTxFinishFuture.java | 8 +- .../cache/distributed/dht/GridDhtTxLocal.java | 1 - .../distributed/dht/GridDhtTxLocalAdapter.java | 10 +- .../distributed/dht/GridDhtTxPrepareFuture.java | 13 +- .../cache/distributed/dht/GridDhtTxRemote.java | 2 +- .../distributed/dht/GridDhtUnlockRequest.java | 3 +- .../dht/GridPartitionedGetFuture.java | 13 +- .../dht/GridPartitionedSingleGetFuture.java | 14 +- .../GridDhtAtomicAbstractUpdateFuture.java | 2 +- .../dht/atomic/GridDhtAtomicCache.java | 34 +- .../atomic/GridNearAtomicFullUpdateRequest.java | 1 - .../GridNearAtomicSingleUpdateFuture.java | 2 +- .../dht/atomic/GridNearAtomicUpdateFuture.java | 4 +- .../dht/colocated/GridDhtColocatedCache.java | 26 +- .../colocated/GridDhtColocatedLockFuture.java | 64 +- .../dht/preloader/GridDhtForceKeysFuture.java | 8 +- .../dht/preloader/GridDhtPartitionDemander.java | 16 +- .../dht/preloader/GridDhtPartitionMap2.java | 3 +- .../dht/preloader/GridDhtPartitionSupplier.java | 2 +- .../GridDhtPartitionsExchangeFuture.java | 51 +- .../dht/preloader/GridDhtPreloader.java | 4 +- .../distributed/near/GridNearAtomicCache.java | 3 +- .../distributed/near/GridNearCacheEntry.java | 6 +- .../distributed/near/GridNearGetFuture.java | 31 +- .../distributed/near/GridNearGetRequest.java | 29 +- .../distributed/near/GridNearLockFuture.java | 9 +- .../distributed/near/GridNearLockRequest.java | 81 ++- ...arOptimisticSerializableTxPrepareFuture.java | 4 +- .../near/GridNearOptimisticTxPrepareFuture.java | 13 +- ...ridNearOptimisticTxPrepareFutureAdapter.java | 13 + .../GridNearPessimisticTxPrepareFuture.java | 2 +- .../near/GridNearSingleGetRequest.java | 57 +- .../near/GridNearTransactionalCache.java | 8 +- .../near/GridNearTxFinishFuture.java | 15 +- .../cache/distributed/near/GridNearTxLocal.java | 17 +- .../processors/cache/local/GridLocalCache.java | 1 + .../local/atomic/GridLocalAtomicCache.java | 12 +- .../processors/cache/query/CacheQuery.java | 1 - .../cache/query/GridCacheQueryAdapter.java | 8 + .../cache/query/GridCacheQueryManager.java | 105 ++- .../cache/query/GridCacheSqlQuery.java | 1 - .../continuous/CacheContinuousQueryHandler.java | 101 ++- .../continuous/CacheContinuousQueryManager.java | 2 +- .../cache/transactions/IgniteTxAdapter.java | 4 +- .../cache/transactions/IgniteTxEntry.java | 2 +- .../cache/transactions/IgniteTxHandler.java | 16 +- .../transactions/IgniteTxLocalAdapter.java | 101 ++- .../cache/transactions/IgniteTxLocalEx.java | 3 + .../cache/transactions/IgniteTxManager.java | 3 +- .../cache/transactions/TxDeadlockDetection.java | 2 +- .../cache/transactions/TxEntryValueHolder.java | 6 +- .../IgniteCacheObjectProcessorImpl.java | 2 +- .../processors/clock/GridClockServer.java | 4 +- .../processors/cluster/ClusterProcessor.java | 53 +- .../cluster/GridClusterStateProcessor.java | 22 +- .../continuous/GridContinuousHandler.java | 5 + .../continuous/GridContinuousProcessor.java | 147 ++-- .../datastreamer/DataStreamProcessor.java | 2 +- .../datastreamer/DataStreamerImpl.java | 6 +- .../datastructures/GridCacheSetImpl.java | 2 +- .../datastructures/GridSetQueryPredicate.java | 2 +- .../processors/hadoop/HadoopClasspathUtils.java | 4 +- .../processors/hadoop/HadoopDefaultJobInfo.java | 5 +- .../processors/hadoop/HadoopTaskContext.java | 10 + .../internal/processors/igfs/IgfsFileImpl.java | 5 +- .../internal/processors/igfs/IgfsProcessor.java | 2 +- .../internal/processors/igfs/IgfsUtils.java | 105 +++ .../igfs/client/IgfsClientSizeCallable.java | 1 - .../processors/job/GridJobProcessor.java | 2 +- .../internal/processors/job/GridJobWorker.java | 4 + .../marshaller/ClientRequestFuture.java | 183 +++++ .../GridMarshallerMappingProcessor.java | 363 ++++++++++ .../processors/marshaller/MappedName.java | 63 ++ .../marshaller/MappingAcceptedMessage.java | 71 ++ .../marshaller/MappingExchangeResult.java | 96 +++ .../marshaller/MappingProposedMessage.java | 137 ++++ .../marshaller/MappingUpdatedListener.java | 29 + .../marshaller/MarshallerMappingItem.java | 99 +++ .../marshaller/MarshallerMappingTransport.java | 212 ++++++ .../MissingMappingRequestMessage.java | 146 ++++ .../MissingMappingResponseMessage.java | 169 +++++ .../internal/processors/odbc/IgniteTypes.java | 69 ++ .../processors/odbc/OdbcRequestHandler.java | 2 + .../internal/processors/odbc/OdbcTypes.java | 131 ++++ .../internal/processors/odbc/OdbcUtils.java | 85 +++ .../processors/odbc/escape/OdbcEscapeUtils.java | 52 +- .../platform/PlatformAbstractBootstrap.java | 3 +- .../platform/PlatformConfigurationEx.java | 3 +- .../platform/PlatformNoopProcessor.java | 5 + .../platform/PlatformPluginExtension.java | 39 ++ .../processors/platform/PlatformProcessor.java | 7 + .../platform/PlatformProcessorImpl.java | 71 +- .../platform/cache/PlatformCache.java | 23 +- .../cache/PlatformCacheEntryProcessorImpl.java | 6 +- .../callback/PlatformCallbackGateway.java | 96 +++ .../platform/callback/PlatformCallbackOp.java | 18 + .../plugin/PlatformPluginProcessor.java | 46 ++ .../cache/PlatformCachePluginConfiguration.java | 58 ++ .../cache/PlatformCachePluginProvider.java | 123 ++++ .../transactions/PlatformTransactions.java | 9 + .../utils/PlatformConfigurationUtils.java | 51 +- .../platform/utils/PlatformUtils.java | 58 +- .../processors/plugin/CachePluginManager.java | 20 +- .../plugin/IgnitePluginProcessor.java | 84 ++- .../internal/processors/pool/PoolProcessor.java | 10 +- .../processors/query/GridQueryIndexing.java | 4 +- .../processors/query/GridQueryProcessor.java | 182 ++--- .../processors/query/GridQueryProperty.java | 21 +- .../query/GridQueryTypeDescriptor.java | 7 + .../resource/GridResourceProcessor.java | 1 + .../handlers/cache/GridCacheCommandHandler.java | 2 - .../string/GridRedisSetCommandHandler.java | 2 +- .../service/GridServiceProcessor.java | 11 +- .../processors/task/GridTaskWorker.java | 2 +- .../suggestions/GridPerformanceSuggestions.java | 105 +++ .../JvmConfigurationSuggestions.java | 104 +++ .../suggestions/OsConfigurationSuggestions.java | 127 ++++ .../internal/suggestions/package-info.java | 21 + .../internal/util/GridStripedSpinBusyLock.java | 2 +- .../ignite/internal/util/HostAndPortRange.java | 2 +- .../ignite/internal/util/IgniteUtils.java | 85 +-- .../ignite/internal/util/StripedExecutor.java | 2 +- .../ignite/lang/IgniteProductVersion.java | 2 +- .../ignite/marshaller/MarshallerContext.java | 23 +- .../ignite/marshaller/jdk/JdkMarshaller.java | 1 - .../optimized/OptimizedClassDescriptor.java | 2 +- .../optimized/OptimizedMarshallerUtils.java | 16 +- .../ignite/plugin/CachePluginContext.java | 5 + .../apache/ignite/plugin/PluginProvider.java | 11 +- .../communication/tcp/TcpCommunicationSpi.java | 18 +- .../tcp/TcpCommunicationSpiMBean.java | 1 - .../ignite/spi/discovery/DiscoveryDataBag.java | 299 ++++++++ .../spi/discovery/DiscoverySpiDataExchange.java | 15 +- .../ignite/spi/discovery/tcp/ClientImpl.java | 120 +++- .../ignite/spi/discovery/tcp/ServerImpl.java | 167 ++--- .../spi/discovery/tcp/TcpDiscoverySpi.java | 70 +- .../tcp/internal/DiscoveryDataPacket.java | 345 ++++++++++ .../tcp/internal/TcpDiscoveryStatistics.java | 8 +- .../messages/TcpDiscoveryAbstractMessage.java | 21 + .../TcpDiscoveryJoinRequestMessage.java | 18 +- .../TcpDiscoveryNodeAddFinishedMessage.java | 10 +- .../messages/TcpDiscoveryNodeAddedMessage.java | 78 +-- modules/core/src/test/config/log4j-test.xml | 6 + .../org.apache.ignite.plugin.PluginProvider | 1 + .../CacheJdbcPojoStoreAbstractSelfTest.java | 21 +- ...eJdbcStoreAbstractMultithreadedSelfTest.java | 17 +- .../ignite/cache/store/jdbc/model/Gender.java | 41 ++ .../ignite/cache/store/jdbc/model/Person.java | 31 +- .../internal/ClusterGroupHostsSelfTest.java | 6 +- .../ComputeJobCancelWithServiceSelfTest.java | 2 +- .../ignite/internal/GridAffinitySelfTest.java | 2 +- .../internal/GridContinuousTaskSelfTest.java | 83 ++- .../GridEventStorageCheckAllEventsSelfTest.java | 2 +- .../IgniteClientReconnectApiExceptionTest.java | 6 +- ...niteClientReconnectFailoverAbstractTest.java | 4 +- .../MarshallerContextLockingSelfTest.java | 67 +- .../binary/BinaryMarshallerSelfTest.java | 109 ++- ...GridBinaryMarshallerCtxDisabledSelfTest.java | 42 +- .../GridDiscoveryManagerAliveCacheSelfTest.java | 3 +- .../GridDiscoveryManagerAttributesSelfTest.java | 4 +- .../cache/CacheAffinityCallSelfTest.java | 8 +- .../cache/CacheConcurrentReadThroughTest.java | 184 +++++ .../cache/CacheDeferredDeleteQueueTest.java | 134 ++++ .../cache/CacheGetEntryAbstractTest.java | 2 +- .../CacheSerializableTransactionsTest.java | 6 +- .../CacheStartupInDeploymentModesTest.java | 7 +- .../cache/CacheStopAndDestroySelfTest.java | 6 +- .../cache/GridCacheAbstractFullApiSelfTest.java | 6 +- .../cache/GridCacheEntryMemorySizeSelfTest.java | 8 +- .../cache/GridCacheMvccPartitionedSelfTest.java | 48 +- .../processors/cache/GridCacheMvccSelfTest.java | 208 +++--- .../processors/cache/GridCacheStopSelfTest.java | 4 +- .../processors/cache/GridCacheTestEntryEx.java | 32 +- .../cache/GridCacheUtilsSelfTest.java | 2 +- ...ProjectionForCachesOnDaemonNodeSelfTest.java | 8 +- .../IgniteCacheConfigVariationsFullApiTest.java | 8 +- .../cache/IgniteCachePeekModesAbstractTest.java | 4 +- .../cache/IgniteCacheStoreCollectionTest.java | 1 - .../cache/IgniteInternalCacheTypesTest.java | 11 - ...iteMarshallerCacheClassNameConflictTest.java | 277 ++++++++ ...lerCacheClientRequestsMappingOnMissTest.java | 341 +++++++++ .../cache/IgniteSystemCacheOnClientTest.java | 23 +- ...gniteTopologyValidatorAbstractCacheTest.java | 6 +- .../processors/cache/IgniteTxAbstractTest.java | 3 +- .../cache/IgniteTxConfigCacheSelfTest.java | 2 +- .../IgniteTxExceptionAbstractSelfTest.java | 3 +- .../IgniteTxMultiThreadedAbstractTest.java | 4 +- .../CacheKeepBinaryWithInterceptorTest.java | 1 - .../GridBinaryCacheEntryMemorySizeSelfTest.java | 21 +- ...yAtomicEntryProcessorDeploymentSelfTest.java | 4 +- ...IgniteCacheAbstractExecutionContextTest.java | 2 - ...eAbstractDataStructuresFailoverSelfTest.java | 16 +- ...actQueueFailoverDataConsistencySelfTest.java | 2 +- ...CacheAtomicReferenceApiSelfAbstractTest.java | 60 +- ...idCacheAtomicStampedApiSelfAbstractTest.java | 59 ++ .../GridCacheQueueApiSelfAbstractTest.java | 58 ++ .../GridCacheSetAbstractSelfTest.java | 53 ++ .../IgniteAtomicLongApiAbstractSelfTest.java | 27 + .../IgniteCountDownLatchAbstractSelfTest.java | 43 ++ .../IgniteLockAbstractSelfTest.java | 78 ++- .../IgniteSemaphoreAbstractSelfTest.java | 52 +- .../CacheGetFutureHangsSelfTest.java | 6 +- .../CacheLateAffinityAssignmentTest.java | 2 +- ...ridCachePartitionNotLoadedEventSelfTest.java | 4 +- ...niteCacheClientNodeChangingTopologyTest.java | 20 +- .../IgniteCacheSystemTransactionsSelfTest.java | 18 +- ...teSynchronizationModesMultithreadedTest.java | 8 +- .../IgniteCacheCrossCacheTxFailoverTest.java | 6 +- ...ePrimaryNodeFailureRecoveryAbstractTest.java | 4 +- ...gniteCachePutRetryTransactionalSelfTest.java | 4 +- ...eAtomicInvalidPartitionHandlingSelfTest.java | 11 +- ...idCacheNearOnlyMultiNodeFullApiSelfTest.java | 4 +- ...achePartitionedMultiNodeFullApiSelfTest.java | 8 +- .../near/GridNearCacheStoreUpdateTest.java | 466 +++++++++++++ .../GridNearOffheapCacheStoreUpdateTest.java | 35 + .../GridCacheReplicatedNodeRestartSelfTest.java | 3 +- .../GridCacheReplicatedPreloadSelfTest.java | 1 - .../IgniteCacheExpiryPolicyAbstractTest.java | 2 +- ...eCacheExpiryPolicyWithStoreAbstractTest.java | 100 ++- .../IgniteCacheTxExpiryPolicyWithStoreTest.java | 21 + .../IgniteCacheQueryCacheDestroySelfTest.java | 142 ++++ .../cache/query/IndexingSpiQuerySelfTest.java | 69 +- .../IndexingSpiQueryWithH2IndexingSelfTest.java | 36 + ...ContinuousQueryFailoverAbstractSelfTest.java | 6 +- .../ClientReconnectContinuousQueryTest.java | 201 ++++++ ...ridCacheContinuousQueryAbstractSelfTest.java | 2 +- ...dCacheContinuousQueryNodesFilteringTest.java | 2 +- ...IgniteCacheContinuousQueryReconnectTest.java | 12 +- .../TxDeadlockDetectionNoHangsTest.java | 2 +- .../transactions/TxDeadlockDetectionTest.java | 2 +- .../TxOptimisticDeadlockDetectionTest.java | 2 +- .../TxPessimisticDeadlockDetectionTest.java | 2 +- ...ComputeJobExecutionErrorToLogManualTest.java | 4 +- .../datastreamer/DataStreamerImplSelfTest.java | 8 +- .../datastreamer/DataStreamerTimeoutTest.java | 6 +- .../processors/igfs/IgfsAbstractSelfTest.java | 32 +- .../processors/igfs/IgfsFileInfoSelfTest.java | 4 +- .../igfs/IgfsMetaManagerSelfTest.java | 3 +- .../igfs/IgfsModeResolverSelfTest.java | 10 +- .../processors/igfs/IgfsTaskSelfTest.java | 87 +-- .../igfs/benchmark/IgfsBenchmark.java | 4 +- .../odbc/OdbcEscapeSequenceSelfTest.java | 131 ++++ .../cache/GridCacheCommandHandlerSelfTest.java | 1 - ...rviceDeploymentExceptionPropagationTest.java | 2 +- .../GridServiceProcessorStopSelfTest.java | 2 +- .../service/IgniteServiceReassignmentTest.java | 2 +- .../internal/util/IgniteUtilsSelfTest.java | 71 +- .../unsafe/GridOffheapSnapTreeSelfTest.java | 7 +- .../lang/GridMetadataAwareAdapterSelfTest.java | 4 +- .../marshaller/MarshallerContextSelfTest.java | 150 +++- .../marshaller/MarshallerContextTestImpl.java | 33 +- .../OptimizedMarshallerEnumSelfTest.java | 25 +- .../p2p/GridP2PSameClassLoaderSelfTest.java | 14 +- .../platform/PlatformComputeEchoTask.java | 12 + .../platform/PlatformEventsWriteEventTask.java | 9 - .../ignite/platform/PlatformExceptionTask.java | 78 +++ .../platform/plugin/PlatformTestPlugin.java | 27 + .../plugin/PlatformTestPluginExtension.java | 51 ++ .../plugin/PlatformTestPluginProvider.java | 97 +++ .../plugin/PlatformTestPluginTarget.java | 90 +++ .../tcp/TcpCommunicationSpiDropNodesTest.java | 322 +++++++++ .../TcpCommunicationSpiFaultyClientTest.java | 265 +++++++ .../local/GridLocalDeploymentSpiSelfTest.java | 6 +- .../discovery/AbstractDiscoverySelfTest.java | 7 +- ...lientDiscoverySpiFailureTimeoutSelfTest.java | 4 +- .../spi/discovery/tcp/TcpDiscoverySelfTest.java | 111 ++- .../TcpDiscoverySpiFailureTimeoutSelfTest.java | 14 +- .../tcp/TcpDiscoverySpiStartStopSelfTest.java | 11 +- .../startup/GridRandomCommandLineLoader.java | 2 +- .../testframework/GridSpiTestContext.java | 5 +- .../ignite/testframework/GridTestNode.java | 1 + .../ignite/testframework/IgniteTestSuite.java | 2 +- .../testframework/junits/GridAbstractTest.java | 15 +- .../junits/spi/GridSpiAbstractTest.java | 9 +- .../testsuites/IgniteBinaryBasicTestSuite.java | 5 + .../IgniteCacheDataStructuresSelfTestSuite.java | 2 - .../ignite/testsuites/IgniteCacheTestSuite.java | 2 + .../testsuites/IgniteCacheTestSuite2.java | 7 + ...essagingConfigVariationFullApiTestSuite.java | 4 +- .../IgniteSpiCommunicationSelfTestSuite.java | 5 + .../IgniteSpiDiscoverySelfTestSuite.java | 2 +- .../ignite/thread/IgniteThreadPoolSizeTest.java | 8 - .../ignite/util/mbeans/GridMBeanSelfTest.java | 10 +- .../CacheNoValueClassOnServerTestClient.java | 3 +- .../CacheConfigurationP2PTestClient.java | 3 +- .../gce/TcpDiscoveryGoogleStorageIpFinder.java | 4 +- .../io/BytesWritablePartiallyRawComparator.java | 51 ++ .../hadoop/io/TextPartiallyRawComparator.java | 68 +- .../hadoop/igfs/HadoopIgfsEndpoint.java | 4 +- .../processors/hadoop/impl/HadoopUtils.java | 66 ++ .../HadoopBasicFileSystemFactoryDelegate.java | 2 +- .../hadoop/impl/igfs/HadoopIgfsInProc.java | 40 +- .../hadoop/impl/v1/HadoopV1MapTask.java | 89 ++- .../hadoop/impl/v1/HadoopV1ReduceTask.java | 69 +- .../hadoop/impl/v2/HadoopV2Context.java | 12 +- .../hadoop/impl/v2/HadoopV2MapTask.java | 18 +- .../hadoop/impl/v2/HadoopV2ReduceTask.java | 14 + .../hadoop/impl/v2/HadoopV2TaskContext.java | 12 +- .../hadoop/shuffle/HadoopShuffleJob.java | 7 - .../shuffle/direct/HadoopDirectDataInput.java | 2 +- .../taskexecutor/HadoopExecutorService.java | 6 +- .../hadoop/taskexecutor/HadoopRunnableTask.java | 12 +- .../child/HadoopChildProcessRunner.java | 10 +- .../impl/HadoopAbstractMapReduceTest.java | 2 + .../hadoop/impl/HadoopErrorSimulator.java | 12 +- .../impl/HadoopMapReduceEmbeddedSelfTest.java | 6 +- .../HadoopIgfs20FileSystemAbstractSelfTest.java | 3 +- .../IgniteHadoopFileSystemClientSelfTest.java | 6 +- .../query/h2/DmlStatementsProcessor.java | 69 +- .../query/h2/GridH2ResultSetIterator.java | 3 +- .../processors/query/h2/IgniteH2Indexing.java | 44 +- .../query/h2/dml/UpdatePlanBuilder.java | 105 ++- .../query/h2/opt/GridH2IndexBase.java | 23 +- .../processors/query/h2/sql/DmlAstUtils.java | 2 +- .../query/h2/twostep/GridMapQueryExecutor.java | 8 +- .../h2/twostep/GridReduceQueryExecutor.java | 9 +- .../query/h2/twostep/msg/GridH2Geometry.java | 2 +- .../cache/BinarySerializationQuerySelfTest.java | 2 - .../CacheRandomOperationsMultithreadedTest.java | 4 +- ...CacheScanPartitionQueryFallbackSelfTest.java | 2 +- .../ClientReconnectAfterClusterRestartTest.java | 4 +- .../GridCacheQueryIndexDisabledSelfTest.java | 20 +- ...niteCacheAbstractInsertSqlQuerySelfTest.java | 4 + .../cache/IgniteCacheAbstractQuerySelfTest.java | 271 +++++++- .../IgniteCacheAbstractSqlDmlQuerySelfTest.java | 2 +- .../IgniteCacheInsertSqlQuerySelfTest.java | 22 + ...eLockPartitionOnAffinityRunAbstractTest.java | 1 - ...PartitionOnAffinityRunAtomicCacheOpTest.java | 11 +- ...niteCacheLockPartitionOnAffinityRunTest.java | 50 +- ...titionOnAffinityRunWithCollisionSpiTest.java | 10 +- .../cache/IgniteCacheMergeSqlQuerySelfTest.java | 25 +- .../cache/IgniteCacheOffheapEvictQueryTest.java | 4 +- ...niteCacheP2pUnmarshallingQueryErrorTest.java | 4 +- .../IgniteCacheUpdateSqlQuerySelfTest.java | 63 +- .../cache/QueryEntityCaseMismatchTest.java | 107 +++ ...niteCacheDistributedQueryCancelSelfTest.java | 4 +- .../IgniteCachePartitionedQuerySelfTest.java | 85 +++ .../IgniteCacheQueryNodeRestartSelfTest2.java | 4 +- .../IgniteSqlEntryCacheModeAgnosticTest.java | 140 ++++ .../query/IgniteSqlQueryDedicatedPoolTest.java | 110 +++ .../query/IgniteSqlSchemaIndexingTest.java | 17 +- .../query/IgniteSqlSplitterSelfTest.java | 4 +- .../h2/GridIndexingSpiAbstractSelfTest.java | 38 +- .../query/h2/sql/GridQueryParsingTest.java | 4 - .../IgniteCacheQuerySelfTestSuite.java | 8 + .../IgniteCacheQuerySelfTestSuite3.java | 2 + .../apache/ignite/stream/jms11/JmsStreamer.java | 4 +- .../ignite/stream/kafka/KafkaStreamer.java | 6 +- .../ignite/stream/kafka/TestKafkaBroker.java | 2 +- .../connect/IgniteSourceConnectorTest.java | 2 +- .../stream/mqtt/IgniteMqttStreamerTest.java | 4 +- .../BundleDelegatingClassLoader.java | 4 +- .../classloaders/ContainerSweepClassLoader.java | 4 +- modules/platforms/cpp/binary/Makefile.am | 3 + .../platforms/cpp/binary/include/Makefile.am | 6 + .../cpp/binary/include/ignite/binary/binary.h | 15 +- .../binary/binary_array_identity_resolver.h | 64 ++ .../ignite/binary/binary_identity_resolver.h | 61 ++ .../include/ignite/binary/binary_object.h | 92 +++ .../binary/include/ignite/binary/binary_type.h | 24 +- .../include/ignite/impl/binary/binary_common.h | 6 + .../ignite/impl/binary/binary_object_header.h | 257 +++++++ .../ignite/impl/binary/binary_object_impl.h | 162 +++++ .../ignite/impl/binary/binary_reader_impl.h | 29 +- .../include/ignite/impl/binary/binary_schema.h | 2 +- .../ignite/impl/binary/binary_type_impl.h | 149 ++++ .../ignite/impl/binary/binary_type_snapshot.h | 18 +- .../ignite/impl/binary/binary_type_updater.h | 2 +- .../include/ignite/impl/binary/binary_utils.h | 236 ++----- .../ignite/impl/binary/binary_writer_impl.h | 11 +- .../ignite/impl/interop/interop_output_stream.h | 10 +- .../cpp/binary/project/vs/binary.vcxproj | 9 + .../binary/project/vs/binary.vcxproj.filters | 27 + .../binary/binary_array_identity_resolver.cpp | 42 ++ .../cpp/binary/src/binary/binary_type.cpp | 4 +- .../src/impl/binary/binary_object_header.cpp | 63 ++ .../src/impl/binary/binary_object_impl.cpp | 107 +++ .../src/impl/binary/binary_type_manager.cpp | 14 +- .../cpp/binary/src/impl/binary/binary_utils.cpp | 169 +++-- .../src/impl/binary/binary_writer_impl.cpp | 4 +- .../src/impl/interop/interop_output_stream.cpp | 5 + modules/platforms/cpp/common/Makefile.am | 6 +- .../platforms/cpp/common/include/Makefile.am | 1 + .../common/include/ignite/common/concurrent.h | 29 +- .../include/ignite/common/platform_utils.h | 79 +++ .../cpp/common/include/ignite/common/utils.h | 249 +++++-- .../cpp/common/include/ignite/ignite_error.h | 2 +- .../include/ignite/common/dynamic_load_os.h | 131 ++++ .../os/linux/src/common/dynamic_load_os.cpp | 90 +++ .../os/linux/src/common/platform_utils.cpp | 75 ++ .../cpp/common/os/linux/src/common/utils.cpp | 136 ---- .../win/include/ignite/common/dynamic_load_os.h | 133 ++++ .../os/win/src/common/dynamic_load_os.cpp | 115 ++++ .../common/os/win/src/common/platform_utils.cpp | 80 +++ .../cpp/common/os/win/src/common/utils.cpp | 142 ---- .../cpp/common/project/vs/common.vcxproj | 6 +- .../common/project/vs/common.vcxproj.filters | 18 +- .../platforms/cpp/common/src/common/utils.cpp | 154 +++++ .../platforms/cpp/common/src/ignite_error.cpp | 68 +- modules/platforms/cpp/core-test/Makefile.am | 10 +- .../cpp/core-test/config/cache-identity.xml | 121 ++++ .../cpp/core-test/config/cache-query.xml | 10 - .../core-test/include/ignite/binary_test_defs.h | 131 +++- .../cpp/core-test/include/ignite/complex_type.h | 135 ++++ .../cpp/core-test/include/ignite/test_type.h | 186 +++++ .../cpp/core-test/include/ignite/test_utils.h | 63 ++ .../cpp/core-test/project/vs/core-test.vcxproj | 9 + .../project/vs/core-test.vcxproj.filters | 35 +- .../src/binary_identity_resolver_test.cpp | 522 ++++++++++++++ .../cpp/core-test/src/binary_object_test.cpp | 282 ++++++++ .../src/binary_reader_writer_raw_test.cpp | 23 +- .../cpp/core-test/src/binary_session_test.cpp | 4 +- .../cpp/core-test/src/cache_invoke_test.cpp | 553 +++++++++++++++ .../cpp/core-test/src/cache_query_test.cpp | 149 ++-- .../platforms/cpp/core-test/src/cache_test.cpp | 48 +- .../cpp/core-test/src/cluster_test.cpp | 98 +++ .../cpp/core-test/src/continuous_query_test.cpp | 31 +- .../cpp/core-test/src/ignition_test.cpp | 19 +- .../cpp/core-test/src/interop_memory_test.cpp | 3 +- .../cpp/core-test/src/interop_test.cpp | 42 +- .../platforms/cpp/core-test/src/test_utils.cpp | 79 +++ .../cpp/core-test/src/transactions_test.cpp | 23 +- modules/platforms/cpp/core/Makefile.am | 1 + modules/platforms/cpp/core/include/Makefile.am | 8 + .../cpp/core/include/ignite/cache/cache.h | 217 ++++-- .../ignite/cache/cache_entry_processor.h | 111 +++ .../include/ignite/cache/mutable_cache_entry.h | 176 +++++ .../include/ignite/cache/query/query_cursor.h | 2 +- .../platforms/cpp/core/include/ignite/ignite.h | 18 + .../cpp/core/include/ignite/ignite_binding.h | 119 ++++ .../include/ignite/ignite_binding_context.h | 88 +++ .../core/include/ignite/ignite_configuration.h | 2 - .../impl/binary/binary_type_updater_impl.h | 2 +- .../impl/cache/cache_entry_processor_holder.h | 282 ++++++++ .../core/include/ignite/impl/cache/cache_impl.h | 71 +- .../ignite/impl/cluster/cluster_group_impl.h | 77 +++ .../include/ignite/impl/ignite_binding_impl.h | 121 ++++ .../include/ignite/impl/ignite_environment.h | 61 +- .../cpp/core/include/ignite/impl/ignite_impl.h | 50 +- .../ignite/impl/interop/interop_target.h | 37 +- .../core/include/ignite/impl/module_manager.h | 131 ++++ .../cpp/core/include/ignite/impl/operations.h | 62 +- .../platforms/cpp/core/project/vs/core.vcxproj | 9 + .../cpp/core/project/vs/core.vcxproj.filters | 30 + modules/platforms/cpp/core/src/ignite.cpp | 12 +- modules/platforms/cpp/core/src/ignition.cpp | 343 +++++---- .../impl/binary/binary_type_updater_impl.cpp | 2 +- .../cpp/core/src/impl/cache/cache_impl.cpp | 66 +- .../continuous/continuous_query_handle_impl.cpp | 2 +- .../core/src/impl/cache/query/query_impl.cpp | 8 +- .../src/impl/cluster/cluster_group_impl.cpp | 64 ++ .../cpp/core/src/impl/ignite_environment.cpp | 92 ++- .../platforms/cpp/core/src/impl/ignite_impl.cpp | 36 +- .../core/src/impl/interop/interop_target.cpp | 49 +- .../src/impl/transactions/transactions_impl.cpp | 14 +- .../cpp/jni/include/ignite/jni/exports.h | 1 + .../platforms/cpp/jni/include/ignite/jni/java.h | 4 +- .../cpp/jni/include/ignite/jni/utils.h | 69 +- .../platforms/cpp/jni/os/linux/src/utils.cpp | 221 +++--- modules/platforms/cpp/jni/os/win/src/utils.cpp | 227 +++--- modules/platforms/cpp/jni/project/vs/module.def | 1 + modules/platforms/cpp/jni/src/exports.cpp | 4 + modules/platforms/cpp/jni/src/java.cpp | 66 +- modules/platforms/cpp/odbc-test/Makefile.am | 1 + .../odbc-test/include/sql_test_suite_fixture.h | 13 + .../cpp/odbc-test/include/test_utils.h | 51 +- .../cpp/odbc-test/project/vs/odbc-test.vcxproj | 1 + .../project/vs/odbc-test.vcxproj.filters | 3 + .../cpp/odbc-test/src/api_robustness_test.cpp | 37 +- .../src/application_data_buffer_test.cpp | 24 +- .../cpp/odbc-test/src/queries_test.cpp | 71 +- .../src/sql_aggregate_functions_test.cpp | 5 +- .../src/sql_date_time_functions_test.cpp | 26 +- .../src/sql_esc_convert_function_test.cpp | 160 +++++ .../src/sql_numeric_functions_test.cpp | 1 + .../cpp/odbc-test/src/sql_outer_join_test.cpp | 1 + .../odbc-test/src/sql_string_functions_test.cpp | 1 + .../odbc-test/src/sql_test_suite_fixture.cpp | 88 ++- .../cpp/odbc-test/src/sql_types_test.cpp | 131 +++- .../platforms/cpp/odbc-test/src/test_utils.cpp | 60 +- .../odbc/src/app/application_data_buffer.cpp | 66 +- .../platforms/cpp/odbc/src/app/parameter.cpp | 4 +- .../cpp/odbc/src/config/connection_info.cpp | 260 ++++++- modules/platforms/cpp/odbc/src/utility.cpp | 17 +- .../Properties/AssemblyInfo.cs | 2 +- .../Apache.Ignite.AspNet.nuspec | 2 +- .../Properties/AssemblyInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 2 +- .../Apache.Ignite.Core.Tests.csproj | 9 + .../Binary/BinaryBuilderSelfTest.cs | 20 +- .../Binary/BinaryStructureTest.cs | 122 ++++ .../Cache/CacheAbstractTest.cs | 21 + .../Cache/CacheAbstractTransactionalTest.cs | 339 +++++++++ .../Cache/CacheConfigurationTest.cs | 13 +- .../Cache/Query/CacheLinqTest.cs | 96 +++ .../Cache/Store/CacheParallelLoadStoreTest.cs | 9 +- .../Cache/Store/CacheStoreSessionTest.cs | 22 +- .../Cache/Store/CacheStoreTest.cs | 363 ++++++---- .../Cache/Store/CacheTestStore.cs | 14 + .../Cache/Store/NamedNodeCacheStoreTest.cs | 34 + .../Compute/ComputeApiTest.cs | 66 +- .../Apache.Ignite.Core.Tests/ExceptionsTest.cs | 66 ++ .../IgniteConfigurationSerializerTest.cs | 25 +- .../IgniteConfigurationTest.cs | 13 +- .../Plugin/Cache/CachePlugin.cs | 127 ++++ .../Plugin/Cache/CachePluginConfiguration.cs | 40 ++ .../Plugin/Cache/CachePluginTest.cs | 215 ++++++ .../Plugin/PluginTest.cs | 254 +++++++ .../Plugin/TestIgnitePlugin.cs | 39 ++ .../Plugin/TestIgnitePluginConfiguration.cs | 33 + .../Plugin/TestIgnitePluginProvider.cs | 132 ++++ .../Properties/AssemblyInfo.cs | 2 +- .../Apache.Ignite.Core.Schema.nuspec | 2 +- .../Apache.Ignite.Core.csproj | 20 + .../Apache.Ignite.Core.nuspec | 2 +- .../Cache/Configuration/CacheConfiguration.cs | 34 + .../Cache/Configuration/QueryEntity.cs | 2 +- .../dotnet/Apache.Ignite.Core/Cache/ICache.cs | 4 +- .../Apache.Ignite.Core/Common/JavaException.cs | 62 +- .../Communication/Tcp/TcpCommunicationSpi.cs | 2 +- .../Discovery/Tcp/TcpDiscoverySpi.cs | 2 +- .../dotnet/Apache.Ignite.Core/IIgnite.cs | 10 + .../Apache.Ignite.Core/IgniteConfiguration.cs | 26 +- .../IgniteConfigurationSection.xsd | 42 ++ .../Impl/Binary/BinaryObjectBuilder.cs | 2 +- .../Impl/Binary/BinaryReader.cs | 137 ++-- .../Impl/Binary/BinarySystemHandlers.cs | 14 +- .../Impl/Binary/BinaryUtils.cs | 44 +- .../Impl/Binary/BinaryWriter.cs | 6 +- .../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs | 104 ++- .../Common/IgniteConfigurationXmlSerializer.cs | 3 + .../Apache.Ignite.Core/Impl/ExceptionUtils.cs | 10 +- .../dotnet/Apache.Ignite.Core/Impl/Ignite.cs | 26 +- .../Apache.Ignite.Core/Impl/IgniteProxy.cs | 6 + .../Apache.Ignite.Core/Impl/PlatformTarget.cs | 70 +- .../Impl/Plugin/Cache/CachePluginContext.cs | 82 +++ .../Impl/Plugin/Cache/CachePluginProcessor.cs | 77 +++ .../Plugin/Cache/CachePluginProviderProxy.cs | 75 ++ .../Plugin/Cache/ICachePluginProviderProxy.cs | 52 ++ .../Impl/Plugin/IPluginProviderProxy.cs | 74 ++ .../Impl/Plugin/PluginContext.cs | 72 ++ .../Impl/Plugin/PluginProcessor.cs | 235 +++++++ .../Impl/Plugin/PluginProviderProxy.cs | 90 +++ .../Transactions/CacheTransactionManager.cs | 161 +++++ .../Impl/Transactions/Transaction.cs | 8 + .../Impl/Transactions/TransactionImpl.cs | 13 + .../Impl/Transactions/TransactionsImpl.cs | 10 + .../Impl/Unmanaged/IgniteJniNativeMethods.cs | 3 + .../Impl/Unmanaged/UnmanagedCallbackOp.cs | 8 +- .../Impl/Unmanaged/UnmanagedCallbacks.cs | 88 ++- .../Impl/Unmanaged/UnmanagedUtils.cs | 7 + .../Interop/IPlatformTarget.cs | 91 +++ .../Cache/CachePluginProviderTypeAttribute.cs | 52 ++ .../Plugin/Cache/ICachePluginConfiguration.cs | 50 ++ .../Plugin/Cache/ICachePluginContext.cs | 47 ++ .../Plugin/Cache/ICachePluginProvider.cs | 52 ++ .../Plugin/IPluginConfiguration.cs | 48 ++ .../Apache.Ignite.Core/Plugin/IPluginContext.cs | 52 ++ .../Plugin/IPluginProvider.cs | 69 ++ .../Plugin/PluginNotFoundException.cs | 65 ++ .../Plugin/PluginProviderTypeAttribute.cs | 52 ++ .../Properties/AssemblyInfo.cs | 2 +- .../Apache.Ignite.EntityFramework.nuspec | 2 +- .../Apache.Ignite.Linq.nuspec | 2 +- .../Impl/CacheQueryExpressionVisitor.cs | 127 +++- .../Impl/CacheQueryModelVisitor.cs | 3 + .../Properties/AssemblyInfo.cs | 2 +- .../Apache.Ignite.Log4Net.nuspec | 2 +- .../Properties/AssemblyInfo.cs | 2 +- .../Apache.Ignite.NLog.nuspec | 2 +- .../Properties/AssemblyInfo.cs | 2 +- .../Apache.Ignite/Properties/AssemblyInfo.cs | 2 +- .../Apache.Ignite.Examples.csproj | 2 + .../Datagrid/QueryDmlExample.cs | 162 +++++ .../Datagrid/TransactionExample.cs | 75 +- .../Properties/AssemblyInfo.cs | 2 +- modules/scalar-2.10/pom.xml | 2 +- modules/scalar/pom.xml | 2 +- .../spark/JavaStandaloneIgniteRDDSelfTest.java | 3 +- .../util/spring/IgniteSpringHelperImpl.java | 8 +- .../src/test/config/jdbc-pojo-store-builtin.xml | 8 + .../src/test/config/jdbc-pojo-store-obj.xml | 8 + .../ignite/internal/GridFactorySelfTest.java | 2 +- .../internal/IgniteDynamicCacheConfigTest.java | 4 +- .../GridSpringTransactionManagerSelfTest.java | 2 +- .../ignite/tools/classgen/ClassesGenerator.java | 2 +- .../twitter/IgniteTwitterStreamerTest.java | 4 +- .../GridUriDeploymentFileProcessorSelfTest.java | 3 +- .../scala/org/apache/ignite/visor/visor.scala | 115 ++-- .../commands/mem/VisorMemoryCommandSpec.scala | 33 + modules/web-console/backend/app/agent.js | 56 +- modules/web-console/backend/app/browser.js | 26 + modules/web-console/backend/app/mongo.js | 49 +- modules/web-console/backend/app/routes.js | 5 +- .../web-console/backend/routes/activities.js | 52 ++ modules/web-console/backend/routes/admin.js | 2 +- modules/web-console/backend/routes/agent.js | 10 +- modules/web-console/backend/routes/public.js | 1 - .../web-console/backend/services/activities.js | 136 ++++ modules/web-console/backend/services/users.js | 13 +- modules/web-console/frontend/app/app.config.js | 9 + modules/web-console/frontend/app/app.js | 29 +- .../activities-user-dialog.controller.js | 60 ++ .../activities-user-dialog.jade | 36 + .../components/activities-user-dialog/index.js | 36 + .../form-field-datepicker.jade | 55 ++ .../form-field-datepicker.scss | 20 + .../list-of-registered-users/index.js | 28 + .../list-of-registered-users.categories.js | 30 + .../list-of-registered-users.column-defs.js | 80 +++ .../list-of-registered-users.controller.js | 207 ++++++ .../list-of-registered-users.jade | 54 ++ .../ui-grid-header/ui-grid-header.jade | 27 + .../ui-grid-header/ui-grid-header.scss | 84 +++ .../ui-grid-settings/ui-grid-settings.jade | 33 + .../ui-grid-settings/ui-grid-settings.scss | 70 ++ .../app/core/activities/Activities.data.js | 39 ++ .../frontend/app/core/admin/Admin.data.js | 77 +++ modules/web-console/frontend/app/core/index.js | 25 + modules/web-console/frontend/app/data/i18n.js | 38 + .../ui-grid-settings/ui-grid-settings.jade | 33 - .../ui-grid-settings/ui-grid-settings.scss | 38 - .../app/filters/uiGridSubcategories.filter.js | 24 + .../frontend/app/modules/Demo/Demo.module.js | 166 ----- .../app/modules/branding/branding.provider.js | 2 +- .../generator/ConfigurationGenerator.js | 9 +- .../frontend/app/modules/demo/Demo.module.js | 172 +++++ .../frontend/app/modules/sql/sql.controller.js | 14 +- .../frontend/app/modules/sql/sql.module.js | 2 +- .../frontend/app/modules/states/admin.state.js | 2 +- .../configuration/summary/summary.controller.js | 6 +- .../app/modules/user/AclRoute.provider.js | 31 +- .../frontend/app/modules/user/Auth.service.js | 2 +- .../frontend/app/modules/user/permissions.js | 2 +- .../frontend/app/modules/user/user.module.js | 6 +- modules/web-console/frontend/app/vendor.js | 1 + .../frontend/controllers/admin-controller.js | 234 ------- .../frontend/controllers/domains-controller.js | 12 +- modules/web-console/frontend/package.json | 3 +- .../stylesheets/_font-awesome-custom.scss | 28 + .../frontend/public/stylesheets/style.scss | 39 +- .../frontend/public/stylesheets/variables.scss | 1 + .../frontend/views/settings/admin.jade | 32 +- modules/web-console/frontend/views/sql/sql.jade | 4 +- .../views/templates/agent-download.jade | 2 +- modules/web-console/web-agent/README.txt | 2 +- .../ignite/console/agent/AgentLauncher.java | 259 ++++--- .../apache/ignite/console/agent/AgentUtils.java | 80 +++ .../console/agent/handlers/AbstractHandler.java | 110 --- .../agent/handlers/AbstractListener.java | 104 +++ .../console/agent/handlers/DatabaseHandler.java | 298 -------- .../agent/handlers/DatabaseListener.java | 316 +++++++++ .../console/agent/handlers/RestHandler.java | 276 -------- .../console/agent/handlers/RestListener.java | 280 ++++++++ .../ignite/console/demo/AgentClusterDemo.java | 472 +------------ .../ignite/console/demo/AgentDemoUtils.java | 79 +++ .../demo/service/DemoCachesLoadService.java | 456 ++++++++++++ .../service/DemoRandomCacheLoadService.java | 120 ++++ .../service/DemoServiceClusterSingleton.java | 41 ++ .../demo/service/DemoServiceKeyAffinity.java | 41 ++ .../service/DemoServiceMultipleInstances.java | 41 ++ .../demo/service/DemoServiceNodeSingleton.java | 41 ++ .../ignite/cache/websession/WebSessionV2.java | 2 +- .../internal/websession/WebSessionSelfTest.java | 6 +- modules/yardstick/DEVNOTES-standalone.txt | 15 + modules/yardstick/DEVNOTES.txt | 20 + modules/yardstick/README.txt | 117 +++- .../config/benchmark-sample.properties | 62 ++ modules/yardstick/pom-standalone.xml | 209 ++++++ modules/yardstick/pom.xml | 14 +- .../cache/IgnitePutRemoveBenchmark.java | 42 ++ .../cache/IgnitePutRemoveTxBenchmark.java | 30 + .../cache/IgnitePutValue8Benchmark.java | 42 ++ .../apache/ignite/yarn/ApplicationMaster.java | 4 +- .../org/apache/ignite/yarn/IgniteProvider.java | 4 +- .../tcp/ipfinder/zk/ZookeeperIpFinderTest.java | 2 +- parent/pom.xml | 2 +- pom.xml | 96 ++- 802 files changed, 30200 insertions(+), 7567 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcMetadataSelfTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/clients/src/test/java/org/apache/ignite/jdbc/JdbcMetadataSelfTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java index b229729,3f8b89f..ee665de --- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java +++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java @@@ -279,13 -282,9 +282,16 @@@ public final class IgniteSystemProperti /** Maximum size for atomic cache queue delete history (default is 200 000 entries per partition). */ public static final String IGNITE_ATOMIC_CACHE_DELETE_HISTORY_SIZE = "IGNITE_ATOMIC_CACHE_DELETE_HISTORY_SIZE"; + /** Ttl of removed cache entries (ms). */ + public static final String IGNITE_CACHE_REMOVED_ENTRIES_TTL = "IGNITE_CACHE_REMOVED_ENTRIES_TTL"; + + /** Maximum amount of concurrent updates per system thread in atomic caches in case of PRIMARY_SYNC or FULL_ASYNC + * write synchronization mode. If this limit is exceeded then update will be performed with FULL_SYNC + * synchronization mode. If value is {@code 0} then limit is unbounded. + */ + public static final String IGNITE_ATOMIC_CACHE_MAX_CONCURRENT_DHT_UPDATES = + "IGNITE_ATOMIC_CACHE_MAX_CONCURRENT_DHT_UPDATES"; + /** * Comma separated list of addresses in format "10.100.22.100:45000,10.100.22.101:45000". * Makes sense only for {@link org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder}. http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java index 7bbe9e2,560d7f6..c91daae --- a/modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java @@@ -49,7 -49,7 +52,10 @@@ public interface GridComponent CLUSTER_PROC, /** */ - DISCOVERY_PROC ++ DISCOVERY_PROC, ++ ++ /** */ + MARSHALLER_PROC } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java index 3c5b158,937a6f9..074496c --- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java @@@ -49,7 -49,9 +49,8 @@@ import org.apache.ignite.internal.proce import org.apache.ignite.internal.processors.igfs.IgfsProcessorAdapter; import org.apache.ignite.internal.processors.job.GridJobProcessor; import org.apache.ignite.internal.processors.jobmetrics.GridJobMetricsProcessor; + import org.apache.ignite.internal.processors.marshaller.GridMarshallerMappingProcessor; import org.apache.ignite.internal.processors.odbc.OdbcProcessor; -import org.apache.ignite.internal.processors.offheap.GridOffHeapProcessor; import org.apache.ignite.internal.processors.platform.PlatformProcessor; import org.apache.ignite.internal.processors.plugin.IgnitePluginProcessor; import org.apache.ignite.internal.processors.pool.PoolProcessor; http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java index fae9d9a,d80d53c..29b6ff9 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java @@@ -65,9 -65,12 +65,11 @@@ import org.apache.ignite.internal.proce import org.apache.ignite.internal.processors.igfs.IgfsProcessorAdapter; import org.apache.ignite.internal.processors.job.GridJobProcessor; import org.apache.ignite.internal.processors.jobmetrics.GridJobMetricsProcessor; + import org.apache.ignite.internal.processors.marshaller.GridMarshallerMappingProcessor; import org.apache.ignite.internal.processors.nodevalidation.DiscoveryNodeValidationProcessor; import org.apache.ignite.internal.processors.odbc.OdbcProcessor; -import org.apache.ignite.internal.processors.offheap.GridOffHeapProcessor; import org.apache.ignite.internal.processors.platform.PlatformProcessor; + import org.apache.ignite.internal.processors.platform.plugin.PlatformPluginProcessor; import org.apache.ignite.internal.processors.plugin.IgnitePluginProcessor; import org.apache.ignite.internal.processors.pool.PoolProcessor; import org.apache.ignite.internal.processors.port.GridPortProcessor; http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/GridMessageListenHandler.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/GridPluginComponent.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java index c71ab2c,750c316..ec17bb9 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java @@@ -122,8 -122,10 +123,9 @@@ import org.apache.ignite.internal.proce import org.apache.ignite.internal.processors.nodevalidation.DiscoveryNodeValidationProcessor; import org.apache.ignite.internal.processors.nodevalidation.OsDiscoveryNodeValidationProcessor; import org.apache.ignite.internal.processors.odbc.OdbcProcessor; -import org.apache.ignite.internal.processors.offheap.GridOffHeapProcessor; import org.apache.ignite.internal.processors.platform.PlatformNoopProcessor; import org.apache.ignite.internal.processors.platform.PlatformProcessor; + import org.apache.ignite.internal.processors.platform.plugin.PlatformPluginProcessor; import org.apache.ignite.internal.processors.plugin.IgnitePluginProcessor; import org.apache.ignite.internal.processors.pool.PoolProcessor; import org.apache.ignite.internal.processors.port.GridPortProcessor; @@@ -881,44 -896,40 +892,49 @@@ public class IgniteKernal implements Ig // Start processors before discovery manager, so they will // be able to start receiving messages once discovery completes. - startProcessor(createComponent(DiscoveryNodeValidationProcessor.class, ctx)); - startProcessor(new GridClockSyncProcessor(ctx)); - startProcessor(new GridAffinityProcessor(ctx)); - startProcessor(createComponent(GridSegmentationProcessor.class, ctx)); - startProcessor(createComponent(IgniteCacheObjectProcessor.class, ctx)); - startProcessor(new GridCacheProcessor(ctx)); - startProcessor(new GridQueryProcessor(ctx)); - startProcessor(new OdbcProcessor(ctx)); - startProcessor(new GridServiceProcessor(ctx)); - startProcessor(new GridTaskSessionProcessor(ctx)); - startProcessor(new GridJobProcessor(ctx)); - startProcessor(new GridTaskProcessor(ctx)); - startProcessor((GridProcessor)SCHEDULE.createOptional(ctx)); - startProcessor(new GridRestProcessor(ctx)); - startProcessor(new DataStreamProcessor(ctx)); - startProcessor((GridProcessor)IGFS.create(ctx, F.isEmpty(cfg.getFileSystemConfiguration()))); - startProcessor(new GridContinuousProcessor(ctx)); - startProcessor(createHadoopComponent()); - startProcessor(new DataStructuresProcessor(ctx)); - startProcessor(createComponent(PlatformProcessor.class, ctx)); - startProcessor(new GridMarshallerMappingProcessor(ctx)); + try { + startProcessor(createComponent(DiscoveryNodeValidationProcessor.class, ctx)); + startProcessor(new GridClockSyncProcessor(ctx)); + startProcessor(new GridAffinityProcessor(ctx)); + startProcessor(createComponent(GridSegmentationProcessor.class, ctx)); + startProcessor(createComponent(IgniteCacheObjectProcessor.class, ctx)); + startProcessor(new GridCacheProcessor(ctx)); + startProcessor(new GridClusterStateProcessor(ctx)); + startProcessor(new GridQueryProcessor(ctx)); + startProcessor(new OdbcProcessor(ctx)); + startProcessor(new GridServiceProcessor(ctx)); + startProcessor(new GridTaskSessionProcessor(ctx)); + startProcessor(new GridJobProcessor(ctx)); + startProcessor(new GridTaskProcessor(ctx)); + startProcessor((GridProcessor)SCHEDULE.createOptional(ctx)); + startProcessor(new GridRestProcessor(ctx)); + startProcessor(new DataStreamProcessor(ctx)); + startProcessor((GridProcessor)IGFS.create(ctx, F.isEmpty(cfg.getFileSystemConfiguration()))); + startProcessor(new GridContinuousProcessor(ctx)); + startProcessor(createHadoopComponent()); + startProcessor(new DataStructuresProcessor(ctx)); + startProcessor(createComponent(PlatformProcessor.class, ctx)); ++ startProcessor(new GridMarshallerMappingProcessor(ctx)); + + // Start plugins. + for (PluginProvider provider : ctx.plugins().allProviders()) { + ctx.add(new GridPluginComponent(provider)); + + provider.start(ctx.plugins().pluginContextForProvider(provider)); + } - // Start plugins. - for (PluginProvider provider : ctx.plugins().allProviders()) { - ctx.add(new GridPluginComponent(provider)); ++ // Start platform plugins. ++ if (ctx.config().getPlatformConfiguration() != null) ++ startProcessor(new PlatformPluginProcessor(ctx)); + - provider.start(ctx.plugins().pluginContextForProvider(provider)); + fillNodeAttributes(clusterProc.updateNotifierEnabled()); } + catch (Throwable e) { + // Stop discovery spi to close tcp socket. + ctx.discovery().stop(true); - // Start platform plugins. - if (ctx.config().getPlatformConfiguration() != null) - startProcessor(new PlatformPluginProcessor(ctx)); - - fillNodeAttributes(clusterProc.updateNotifierEnabled()); + throw e; + } gw.writeLock(); @@@ -938,15 -949,17 +954,21 @@@ // Suggest configuration optimizations. suggestOptimizations(cfg); + // Suggest JVM optimizations. + ctx.performance().addAll(JvmConfigurationSuggestions.getSuggestions()); + + // Suggest Operation System optimizations. + ctx.performance().addAll(OsConfigurationSuggestions.getSuggestions()); + // Notify discovery manager the first to make sure that topology is discovered. - ctx.discovery().onKernalStart(); + ctx.discovery().onKernalStart(activeOnStart); // Notify IO manager the second so further components can send and receive messages. - ctx.io().onKernalStart(); + ctx.io().onKernalStart(activeOnStart); + + // Start plugins. + for (PluginProvider provider : ctx.plugins().allProviders()) + provider.onIgniteStart(); // Callbacks. for (GridComponent comp : ctx) { @@@ -1983,11 -1988,9 +2004,9 @@@ List<GridComponent> comps = ctx.components(); - ctx.marshallerContext().onKernalStop(); - // Callback component in reverse order while kernal is still functional // if called in the same thread, at least. - for (ListIterator<GridComponent> it = comps.listIterator(comps.size()); it.hasPrevious();) { + for (ListIterator<GridComponent> it = comps.listIterator(comps.size()); it.hasPrevious(); ) { GridComponent comp = it.previous(); try { http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEvictableEntryImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java index 60d42ea,753cca1..1613af7 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java @@@ -215,9 -222,9 +215,9 @@@ public class CacheMetricsImpl implement /** {@inheritDoc} */ @Override public long getOffHeapPrimaryEntriesCount() { try { - return cctx.swap().offheapEntriesCount(true, false, cctx.affinity().affinityTopologyVersion()); + return cctx.offheap().entriesCount(true, false, cctx.affinity().affinityTopologyVersion()); } - catch (IgniteCheckedException e) { + catch (IgniteCheckedException ignored) { return 0; } } @@@ -225,9 -232,9 +225,9 @@@ /** {@inheritDoc} */ @Override public long getOffHeapBackupEntriesCount() { try { - return cctx.swap().offheapEntriesCount(false, true, cctx.affinity().affinityTopologyVersion()); + return cctx.offheap().entriesCount(false, true, cctx.affinity().affinityTopologyVersion()); } - catch (IgniteCheckedException e) { + catch (IgniteCheckedException ignored) { return 0; } } http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java index 1937a5f,4507c53..d094366 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java @@@ -506,9 -501,8 +506,8 @@@ public abstract class GridCacheAdapter< @Override public final GridCacheProxyImpl<K, V> withExpiryPolicy(ExpiryPolicy plc) { assert !CU.isUtilityCache(ctx.name()); assert !CU.isAtomicsCache(ctx.name()); - assert !CU.isMarshallerCache(ctx.name()); - CacheOperationContext opCtx = new CacheOperationContext(false, null, false, plc, false, null); + CacheOperationContext opCtx = new CacheOperationContext(false, null, false, plc, false, null, false); return new GridCacheProxyImpl<>(ctx, this, opCtx); } @@@ -650,10 -646,10 +651,9 @@@ /*subj id*/null, /*task name*/null, /*deserialize binary*/false, - /*skip values*/ + /*skip values*/true, /*can remap*/true, - true, - false); - false - ); ++ /*needVer*/false); } /** {@inheritDoc} */ @@@ -679,11 -673,10 +679,10 @@@ /*subj id*/null, /*task name*/null, /*deserialize binary*/false, + opCtx != null && opCtx.recovery(), - /*skip values*/ + /*skip values*/true, /*can remap*/true, - true, - false).chain(new CX1<IgniteInternalFuture<Map<K, V>>, Boolean>() { - false - ).chain(new CX1<IgniteInternalFuture<Map<K, V>>, Boolean>() { ++ /*need ver*/false).chain(new CX1<IgniteInternalFuture<Map<K, V>>, Boolean>() { @Override public Boolean applyx(IgniteInternalFuture<Map<K, V>> fut) throws IgniteCheckedException { Map<K, V> kvMap = fut.get(); @@@ -768,108 -764,92 +767,108 @@@ PeekModes modes = parsePeekModes(peekModes, false); - try { - KeyCacheObject cacheKey = ctx.toCacheKeyObject(key); + KeyCacheObject cacheKey = ctx.toCacheKeyObject(key); + + CacheObject cacheVal = null; + + if (!ctx.isLocal()) { + AffinityTopologyVersion topVer = ctx.affinity().affinityTopologyVersion(); - CacheObject cacheVal = null; + int part = ctx.affinity().partition(cacheKey); - if (!ctx.isLocal()) { - AffinityTopologyVersion topVer = ctx.affinity().affinityTopologyVersion(); + boolean nearKey; - int part = ctx.affinity().partition(cacheKey); + if (!(modes.near && modes.primary && modes.backup)) { - boolean keyPrimary = ctx.affinity().primary(ctx.localNode(), part, topVer); ++ boolean keyPrimary = ctx.affinity().primaryByPartition(ctx.localNode(), part, topVer); - boolean nearKey; + if (keyPrimary) { + if (!modes.primary) + return null; - if (!(modes.near && modes.primary && modes.backup)) { - boolean keyPrimary = ctx.affinity().primaryByPartition(ctx.localNode(), part, topVer); + nearKey = false; + } + else { - boolean keyBackup = ctx.affinity().belongs(ctx.localNode(), part, topVer); ++ boolean keyBackup = ctx.affinity().partitionBelongs(ctx.localNode(), part, topVer); - if (keyPrimary) { - if (!modes.primary) + if (keyBackup) { + if (!modes.backup) return null; nearKey = false; } else { - boolean keyBackup = ctx.affinity().partitionBelongs(ctx.localNode(), part, topVer); - - if (keyBackup) { - if (!modes.backup) - return null; - - nearKey = false; - } - else { - if (!modes.near) - return null; + if (!modes.near) + return null; - nearKey = true; + nearKey = true; - // Swap and offheap are disabled for near cache. - modes.offheap = false; - modes.swap = false; - } - } - } - else { - nearKey = !ctx.affinity().partitionBelongs(ctx.localNode(), part, topVer); - - if (nearKey) { // Swap and offheap are disabled for near cache. modes.offheap = false; - modes.swap = false; } } + } + else { - nearKey = !ctx.affinity().belongs(ctx.localNode(), part, topVer); ++ nearKey = !ctx.affinity().partitionBelongs(ctx.localNode(), part, topVer); - if (nearKey && !ctx.isNear()) - return null; + if (nearKey) { + // Swap and offheap are disabled for near cache. + modes.offheap = false; + } + } - if (modes.heap) { - GridCacheEntryEx e = nearKey ? peekEx(cacheKey) : - (ctx.isNear() ? ctx.near().dht().peekEx(cacheKey) : peekEx(cacheKey)); + if (nearKey && !ctx.isNear()) + return null; - if (e != null) { - cacheVal = e.peek(modes.heap, modes.offheap, modes.swap, topVer, plc); + GridCacheEntryEx e; + GridCacheContext ctx0; - modes.offheap = false; - modes.swap = false; - } + while (true) { + if (nearKey) { + ctx0 = context(); + e = peekEx(key); + } + else { + ctx0 = ctx.isNear() ? ctx.near().dht().context() : ctx; + e = modes.offheap ? ctx0.cache().entryEx(key) : ctx0.cache().peekEx(key); } - if (modes.offheap || modes.swap) { - GridCacheSwapManager swapMgr = ctx.isNear() ? ctx.near().dht().context().swap() : ctx.swap(); + if (e != null) { + try { + cacheVal = e.peek(modes.heap, modes.offheap, topVer, plc); + } + catch (GridCacheEntryRemovedException ignore) { + if (log.isDebugEnabled()) + log.debug("Got removed entry during 'peek': " + key); - cacheVal = swapMgr.readValue(cacheKey, modes.offheap, modes.swap); + continue; + } + finally { + ctx0.evicts().touch(e, null); + } } + + break; } - else - cacheVal = localCachePeek0(cacheKey, modes.heap, modes.offheap, modes.swap, plc); + } + else { + while (true) { + try { + cacheVal = localCachePeek0(cacheKey, modes.heap, modes.offheap, plc); - Object val = ctx.unwrapBinaryIfNeeded(cacheVal, ctx.keepBinary(), false); + break; + } + catch (GridCacheEntryRemovedException ignore) { + if (log.isDebugEnabled()) + log.debug("Got removed entry during 'peek': " + key); - return (V)val; + // continue + } + } } - catch (GridCacheEntryRemovedException ignore) { - if (log.isDebugEnabled()) - log.debug("Got removed entry during 'peek': " + key); - return null; - } + Object val = ctx.unwrapBinaryIfNeeded(cacheVal, ctx.keepBinary(), false); + + return (V)val; } /** @@@ -1338,11 -1307,10 +1337,10 @@@ /*subject id*/null, taskName, /*deserialize cache objects*/true, + opCtx != null && opCtx.recovery(), - /*skip values*/ - /*can remap*/false, - true, + /*skip values*/false, + /*can remap*/true, - false - ).get().get(key); + false).get().get(key); } /** {@inheritDoc} */ @@@ -1357,11 -1323,11 +1355,11 @@@ /*skip tx*/false, null, taskName, -- true, - false, ++ /*deserialize cache objects*/true, + opCtx != null && opCtx.recovery(), - /*can remap*/false, - true, - false).chain(new CX1<IgniteInternalFuture<Map<K, V>>, V>() { ++ /*skip values*/false, + /*can remap*/true, - false - ).chain(new CX1<IgniteInternalFuture<Map<K, V>>, V>() { ++ /*need ver*/false).chain(new CX1<IgniteInternalFuture<Map<K, V>>, V>() { @Override public V applyx(IgniteInternalFuture<Map<K, V>> e) throws IgniteCheckedException { return e.get().get(key); } @@@ -1381,11 -1345,10 +1379,10 @@@ /*subject id*/null, taskName, /*deserialize cache objects*/true, + opCtx != null && opCtx.recovery(), - /*skip values*/ + /*skip values*/false, /*can remap*/false, - false, - false).get().get(key); - false - ).get().get(key); ++ /*need ver*/false).get().get(key); } /** {@inheritDoc} */ @@@ -1404,11 -1365,10 +1401,11 @@@ /*skip tx*/true, null, taskName, - !ctx.keepBinary(), + !(opCtx != null && opCtx.isKeepBinary()), + opCtx != null && opCtx.recovery(), - /*skip values*/ - /*can remap*/false, - true, false); + /*skip values*/false, + /*can remap*/true, + false); } /** {@inheritDoc} */ @@@ -1957,23 -1888,14 +1960,23 @@@ } if (tx == null || tx.implicit()) { - Map<KeyCacheObject, GridCacheVersion> misses = null; - try { - final AffinityTopologyVersion topVer = tx == null ? - (canRemap ? - ctx.affinity().affinityTopologyVersion() : ctx.shared().exchange().readyAffinityVersion()) : - tx.topologyVersion(); ++ Map<KeyCacheObject, EntryGetResult> misses = null; + + final AffinityTopologyVersion topVer = tx == null ? + (canRemap ? + ctx.affinity().affinityTopologyVersion() : ctx.shared().exchange().readyAffinityVersion()) : + tx.topologyVersion(); + try { int keysSize = keys.size(); + GridDhtTopologyFuture topFut = ctx.shared().exchange().lastFinishedFuture(); + + Throwable ex = topFut != null ? topFut.validateCache(ctx, recovery, /*read*/true, null, keys) : null; + + if (ex != null) + return new GridFinishedFuture<>(ex); + final Map<K1, V1> map = keysSize == 1 ? (Map<K1, V1>)new IgniteBiTuple<>() : U.<K1, V1>newHashMap(keysSize); @@@ -1992,33 -1918,55 +1995,52 @@@ } try { - T2<CacheObject, GridCacheVersion> res = entry.innerGetVersioned( - null, - null, - /*update-metrics*/!skipVals, - /*event*/!skipVals, - subjId, - null, - taskName, - expiry, - !deserializeBinary); - - if (res == null) { - if (storeEnabled) { - GridCacheVersion ver = entry.version(); + EntryGetResult res; + + boolean evt = !skipVals; + boolean updateMetrics = !skipVals; + + if (storeEnabled) { - res = entry.innerGetAndReserveForLoad(ctx.isSwapOrOffheapEnabled(), - updateMetrics, ++ res = entry.innerGetAndReserveForLoad(updateMetrics, + evt, + subjId, + taskName, + expiry, + !deserializeBinary, + readerArgs); + assert res != null; + + if (res.value() == null) { if (misses == null) misses = new HashMap<>(); - misses.put(key, ver); + misses.put(key, res); + + res = null; } - else - ctx.evicts().touch(entry, topVer); } else { + res = entry.innerGetVersioned( + null, + null, - ctx.isSwapOrOffheapEnabled(), - /*unmarshal*/true, + updateMetrics, + evt, + subjId, + null, + taskName, + expiry, + !deserializeBinary, + readerArgs); + + if (res == null) + ctx.evicts().touch(entry, topVer); + } + + if (res != null) { ctx.addResult(map, key, - res.get1(), + res.value(), skipVals, keepCacheObjects, deserializeBinary, http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAffinityManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java index 26e4ed3,f26288f..5dffe6e --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java @@@ -305,9 -324,11 +306,9 @@@ public interface GridCacheEntryEx * @throws IgniteCheckedException If loading value failed. * @throws GridCacheEntryRemovedException If entry was removed. */ - @Nullable public T2<CacheObject, GridCacheVersion> innerGetVersioned( + public EntryGetResult innerGetVersioned( @Nullable GridCacheVersion ver, IgniteInternalTx tx, - boolean readSwap, - boolean unmarshal, boolean updateMetrics, boolean evt, UUID subjId, @@@ -318,6 -340,34 +320,32 @@@ throws IgniteCheckedException, GridCacheEntryRemovedException; /** - * @param readSwap Flag indicating whether to check swap memory. + * @param updateMetrics If {@code true} then metrics should be updated. + * @param evt Flag to signal event notification. + * @param subjId Subject ID initiated this read. + * @param taskName Task name. + * @param expiryPlc Expiry policy. + * @param keepBinary Keep binary flag. + * @param readerArgs Reader will be added if not null. + * @throws IgniteCheckedException If loading value failed. + * @throws GridCacheEntryRemovedException If entry was removed. + * @return Cached value, entry version and flag indicating if entry was reserved. + */ - public EntryGetResult innerGetAndReserveForLoad(boolean readSwap, - boolean updateMetrics, ++ public EntryGetResult innerGetAndReserveForLoad(boolean updateMetrics, + boolean evt, + UUID subjId, + String taskName, + @Nullable IgniteCacheExpiryPolicy expiryPlc, + boolean keepBinary, + @Nullable ReaderArguments readerArgs) throws IgniteCheckedException, GridCacheEntryRemovedException; + + /** + * @param ver Expected entry version. + * @throws IgniteCheckedException If failed. + */ + public void clearReserveForLoad(GridCacheVersion ver) throws IgniteCheckedException; + + /** * Reloads entry from underlying storage. * * @return Reloaded value. http://git-wip-us.apache.org/repos/asf/ignite/blob/1748e226/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionManager.java ----------------------------------------------------------------------