Merge branches 'ignite-394' and 'sprint-2' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-394
Conflicts: modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerCacheUpdaters.java modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerFuture.java modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerImpl.java modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerProcessor.java modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerUpdateJob.java modules/core/src/main/java/org/apache/ignite/internal/processors/dr/IgniteDrDataStreamerCacheUpdater.java modules/core/src/test/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerImplSelfTest.java Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/00fd3c3c Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/00fd3c3c Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/00fd3c3c Branch: refs/heads/sprint-2 Commit: 00fd3c3c5804a960b64ba2464a3fc0cc733caee8 Parents: 1941625 efed98d Author: Yakov Zhdanov <yzhda...@gridgain.com> Authored: Wed Mar 11 17:19:34 2015 +0300 Committer: Yakov Zhdanov <yzhda...@gridgain.com> Committed: Wed Mar 11 17:19:34 2015 +0300 ---------------------------------------------------------------------- DEVNOTES.txt | 7 + examples/pom-standalone.xml | 2 +- license/header-customisation.xml | 51 - license/header.txt | 14 - .../apache/ignite/gridify/AbstractAopTest.java | 4 +- .../spi/checkpoint/s3/S3CheckpointData.java | 62 +- .../spi/checkpoint/s3/S3CheckpointSpi.java | 8 +- .../checkpoint/s3/S3CheckpointSpiSelfTest.java | 2 +- .../s3/S3CheckpointSpiStartStopSelfTest.java | 2 +- .../ClientAbstractMultiNodeSelfTest.java | 12 +- .../rest/protocols/tcp/MockNioSession.java | 7 +- modules/clients/src/test/keystore/generate.sh | 26 +- .../ignite/codegen/MessageCodeGenerator.java | 6 +- modules/core/pom.xml | 56 +- .../org/apache/ignite/IgniteTransactions.java | 2 +- .../apache/ignite/cache/CacheInterceptor.java | 34 +- .../ignite/cache/CacheInterceptorAdapter.java | 12 +- .../org/apache/ignite/cache/CacheManager.java | 1 - .../cache/CachePartialUpdateException.java | 3 + .../java/org/apache/ignite/cache/GridCache.java | 2 - .../apache/ignite/cache/IgniteImmutable.java | 45 + .../CacheRendezvousAffinityFunction.java | 13 +- .../eviction/fifo/CacheFifoEvictionPolicy.java | 3 - .../eviction/lru/CacheLruEvictionPolicy.java | 1 - .../ignite/compute/ComputeJobContext.java | 1 - .../configuration/CacheConfiguration.java | 62 +- .../configuration/HadoopConfiguration.java | 17 +- .../configuration/IgniteConfiguration.java | 10 +- .../org/apache/ignite/events/EventType.java | 2 - .../IgfsConcurrentModificationException.java | 29 +- .../ignite/igfs/IgfsCorruptedFileException.java | 16 +- .../igfs/IgfsDirectoryNotEmptyException.java | 20 +- .../org/apache/ignite/igfs/IgfsException.java | 16 +- .../org/apache/ignite/igfs/IgfsInputStream.java | 2 - .../igfs/IgfsInvalidHdfsVersionException.java | 23 +- .../ignite/igfs/IgfsInvalidPathException.java | 16 +- .../ignite/igfs/IgfsOutOfSpaceException.java | 16 +- .../igfs/IgfsParentNotDirectoryException.java | 20 +- .../igfs/IgfsPathAlreadyExistsException.java | 19 +- .../igfs/IgfsPathIsDirectoryException.java | 56 + .../igfs/IgfsPathIsNotDirectoryException.java | 56 + .../ignite/igfs/IgfsPathNotFoundException.java | 22 +- .../ignite/internal/AsyncSupportAdapter.java | 1 - .../ignite/internal/ClusterMetricsSnapshot.java | 1 - .../internal/ComputeTaskInternalFuture.java | 3 + .../internal/GridEventConsumeHandler.java | 13 +- .../ignite/internal/GridKernalContext.java | 24 +- .../ignite/internal/GridKernalContextImpl.java | 62 +- .../internal/GridMessageListenHandler.java | 11 +- .../org/apache/ignite/internal/GridTopic.java | 89 +- .../ignite/internal/GridUpdateNotifier.java | 15 - .../internal/IgniteCodeGeneratingFail.java | 29 + .../apache/ignite/internal/IgniteKernal.java | 11 +- .../ignite/internal/IgniteTransactionsEx.java | 16 - .../org/apache/ignite/internal/IgnitionEx.java | 74 +- .../internal/MarshallerContextAdapter.java | 130 ++ .../ignite/internal/MarshallerContextImpl.java | 81 + .../balancer/GridClientBalancerAdapter.java | 2 +- .../client/impl/GridClientComputeImpl.java | 2 +- .../client/impl/GridClientFutureAdapter.java | 3 + .../GridClientConnectionManagerAdapter.java | 2 +- .../GridClientOptimizedMarshaller.java | 42 +- .../impl/GridRouterCommandLineStartup.java | 2 +- .../internal/direct/DirectByteBufferStream.java | 62 +- .../internal/direct/DirectMessageWriter.java | 7 + .../direct/DirectMessageWriterState.java | 3 + .../internal/igfs/common/IgfsMarshaller.java | 1 - .../internal/managers/GridManagerAdapter.java | 35 +- .../managers/communication/GridIoManager.java | 102 +- .../communication/GridIoMessageFactory.java | 89 +- .../managers/communication/GridIoPolicy.java | 5 +- .../loadbalancer/GridLoadBalancerManager.java | 3 - .../affinity/GridAffinityAssignmentCache.java | 20 +- .../affinity/GridAffinityMessage.java | 13 +- .../affinity/GridAffinityProcessor.java | 35 +- .../cache/CacheEntryInfoCollection.java | 111 ++ .../processors/cache/CacheEntryPredicate.java | 45 + .../cache/CacheEntryPredicateAdapter.java | 88 + .../cache/CacheEntryPredicateContainsValue.java | 132 ++ .../cache/CacheEntryPredicateHasValue.java | 31 + .../cache/CacheEntryPredicateNoValue.java | 31 + .../cache/CacheEntrySerializablePredicate.java | 152 ++ .../processors/cache/CacheEvictionEntry.java | 182 ++ .../cache/CacheInvokeDirectResult.java | 213 +++ .../processors/cache/CacheInvokeEntry.java | 79 +- .../processors/cache/CacheInvokeResult.java | 12 +- .../processors/cache/CacheLazyEntry.java | 133 ++ .../internal/processors/cache/CacheObject.java | 73 + .../processors/cache/CacheObjectAdapter.java | 118 ++ .../cache/CacheObjectByteArrayImpl.java | 156 ++ .../processors/cache/CacheObjectContext.java | 130 ++ .../processors/cache/CacheObjectImpl.java | 120 ++ .../processors/cache/CacheProjection.java | 140 +- .../cache/CacheStoreBalancingWrapper.java | 2 + .../processors/cache/EvictableEntryImpl.java | 33 +- .../processors/cache/GridCacheAdapter.java | 1518 +++++++--------- .../cache/GridCacheAffinityManager.java | 20 +- .../processors/cache/GridCacheAtomicFuture.java | 4 +- .../processors/cache/GridCacheAttributes.java | 15 +- .../cache/GridCacheBatchSwapEntry.java | 27 +- .../cache/GridCacheClearAllRunnable.java | 28 +- .../cache/GridCacheConcurrentMap.java | 355 ++-- .../processors/cache/GridCacheContext.java | 482 +++--- .../GridCacheDefaultAffinityKeyMapper.java | 47 +- .../cache/GridCacheDeploymentManager.java | 124 +- .../processors/cache/GridCacheEntryEx.java | 201 +-- .../processors/cache/GridCacheEntryInfo.java | 337 ++-- .../GridCacheEntryInfoCollectSwapListener.java | 56 +- .../processors/cache/GridCacheEventManager.java | 121 +- .../cache/GridCacheEvictionManager.java | 234 +-- .../cache/GridCacheEvictionRequest.java | 46 +- .../cache/GridCacheEvictionResponse.java | 27 +- .../cache/GridCacheExplicitLockSpan.java | 40 +- .../cache/GridCacheFilterFailedException.java | 8 +- .../processors/cache/GridCacheIoManager.java | 48 +- .../processors/cache/GridCacheKeySet.java | 4 +- .../cache/GridCacheManagerAdapter.java | 2 +- .../processors/cache/GridCacheMapEntry.java | 1524 ++++++++--------- .../cache/GridCacheMapEntryFactory.java | 12 +- .../processors/cache/GridCacheMessage.java | 235 ++- .../cache/GridCacheMultiTxFuture.java | 9 +- .../processors/cache/GridCacheMvcc.java | 214 +-- .../processors/cache/GridCacheMvccCallback.java | 12 +- .../cache/GridCacheMvccCandidate.java | 50 +- .../processors/cache/GridCacheMvccFuture.java | 4 +- .../processors/cache/GridCacheMvccManager.java | 201 +-- .../cache/GridCacheOffheapSwapEntry.java | 20 +- .../GridCachePartitionExchangeManager.java | 104 +- .../processors/cache/GridCachePreloader.java | 10 +- .../cache/GridCachePreloaderAdapter.java | 12 +- .../processors/cache/GridCacheProcessor.java | 59 +- .../processors/cache/GridCacheProjectionEx.java | 59 +- .../cache/GridCacheProjectionImpl.java | 606 ++----- .../processors/cache/GridCacheProxyImpl.java | 203 +-- .../processors/cache/GridCacheReturn.java | 317 +++- .../cache/GridCacheSharedContext.java | 42 +- .../processors/cache/GridCacheStoreManager.java | 210 +-- .../processors/cache/GridCacheSwapEntry.java | 16 +- .../cache/GridCacheSwapEntryImpl.java | 60 +- .../processors/cache/GridCacheSwapListener.java | 5 +- .../processors/cache/GridCacheSwapManager.java | 733 +++++--- .../processors/cache/GridCacheTtlManager.java | 26 +- .../cache/GridCacheUpdateAtomicResult.java | 27 +- .../cache/GridCacheUpdateTxResult.java | 8 +- .../processors/cache/GridCacheUtils.java | 218 ++- .../processors/cache/GridCacheValueBytes.java | 194 --- .../cache/GridCacheValueCollection.java | 4 +- .../cache/IgniteCacheExpiryPolicy.java | 8 +- .../IgniteCacheOsSerializationManager.java | 48 - .../processors/cache/IgniteCacheProxy.java | 4 +- .../processors/cache/KeyCacheObject.java | 33 + .../processors/cache/KeyCacheObjectImpl.java | 132 ++ .../cache/affinity/GridCacheAffinityImpl.java | 10 +- .../CacheDataStructuresManager.java | 14 +- .../distributed/GridCacheCommittedTxInfo.java | 10 +- ...ridCacheOptimisticCheckPreparedTxFuture.java | 23 +- ...idCacheOptimisticCheckPreparedTxRequest.java | 4 +- ...dCacheOptimisticCheckPreparedTxResponse.java | 2 +- .../distributed/GridCacheTtlUpdateRequest.java | 75 +- .../distributed/GridDistributedBaseMessage.java | 28 +- .../GridDistributedCacheAdapter.java | 52 +- .../distributed/GridDistributedCacheEntry.java | 154 +- .../distributed/GridDistributedLockRequest.java | 73 +- .../GridDistributedLockResponse.java | 93 +- .../GridDistributedTxFinishRequest.java | 83 +- .../GridDistributedTxFinishResponse.java | 2 +- .../distributed/GridDistributedTxMapping.java | 38 +- .../GridDistributedTxPrepareRequest.java | 273 ++- .../GridDistributedTxPrepareResponse.java | 14 +- .../GridDistributedTxRemoteAdapter.java | 162 +- .../GridDistributedUnlockRequest.java | 52 +- .../IgniteExternalizableExpiryPolicy.java | 12 +- .../dht/GridClientPartitionTopology.java | 24 +- .../dht/GridDhtAffinityAssignmentRequest.java | 2 +- .../dht/GridDhtAffinityAssignmentResponse.java | 6 +- .../dht/GridDhtAssignmentFetchFuture.java | 17 +- .../cache/distributed/dht/GridDhtCache.java | 2 +- .../distributed/dht/GridDhtCacheAdapter.java | 184 +- .../distributed/dht/GridDhtCacheEntry.java | 120 +- .../distributed/dht/GridDhtEmbeddedFuture.java | 3 + .../cache/distributed/dht/GridDhtGetFuture.java | 96 +- .../distributed/dht/GridDhtLocalPartition.java | 52 +- .../distributed/dht/GridDhtLockFuture.java | 104 +- .../distributed/dht/GridDhtLockRequest.java | 69 +- .../distributed/dht/GridDhtLockResponse.java | 77 +- .../dht/GridDhtPartitionTopology.java | 20 +- .../dht/GridDhtPartitionTopologyImpl.java | 48 +- .../dht/GridDhtTransactionalCacheAdapter.java | 274 ++- .../distributed/dht/GridDhtTxFinishFuture.java | 40 +- .../distributed/dht/GridDhtTxFinishRequest.java | 48 +- .../dht/GridDhtTxFinishResponse.java | 2 +- .../cache/distributed/dht/GridDhtTxLocal.java | 67 +- .../distributed/dht/GridDhtTxLocalAdapter.java | 187 +- .../cache/distributed/dht/GridDhtTxMapping.java | 4 +- .../distributed/dht/GridDhtTxPrepareFuture.java | 265 ++- .../dht/GridDhtTxPrepareRequest.java | 152 +- .../dht/GridDhtTxPrepareResponse.java | 84 +- .../cache/distributed/dht/GridDhtTxRemote.java | 53 +- .../distributed/dht/GridDhtUnlockRequest.java | 46 +- .../distributed/dht/GridNoStorageCacheMap.java | 28 +- .../dht/GridPartitionedGetFuture.java | 128 +- .../dht/atomic/GridDhtAtomicCache.java | 687 ++++---- .../dht/atomic/GridDhtAtomicCacheEntry.java | 13 +- .../GridDhtAtomicDeferredUpdateResponse.java | 2 +- .../dht/atomic/GridDhtAtomicUpdateFuture.java | 74 +- .../dht/atomic/GridDhtAtomicUpdateRequest.java | 222 +-- .../dht/atomic/GridDhtAtomicUpdateResponse.java | 66 +- .../dht/atomic/GridNearAtomicUpdateFuture.java | 170 +- .../dht/atomic/GridNearAtomicUpdateRequest.java | 238 +-- .../atomic/GridNearAtomicUpdateResponse.java | 142 +- .../dht/colocated/GridDhtColocatedCache.java | 179 +- .../colocated/GridDhtColocatedCacheEntry.java | 13 +- .../colocated/GridDhtColocatedLockFuture.java | 141 +- .../colocated/GridDhtDetachedCacheEntry.java | 30 +- .../dht/preloader/GridDhtForceKeysFuture.java | 54 +- .../dht/preloader/GridDhtForceKeysRequest.java | 43 +- .../dht/preloader/GridDhtForceKeysResponse.java | 63 +- .../GridDhtPartitionDemandMessage.java | 8 +- .../preloader/GridDhtPartitionDemandPool.java | 103 +- .../GridDhtPartitionSupplyMessage.java | 93 +- .../preloader/GridDhtPartitionSupplyPool.java | 81 +- .../GridDhtPartitionsAbstractMessage.java | 2 +- .../GridDhtPartitionsExchangeFuture.java | 80 +- .../preloader/GridDhtPartitionsFullMessage.java | 6 +- .../GridDhtPartitionsSingleMessage.java | 6 +- .../GridDhtPartitionsSingleRequest.java | 2 +- .../dht/preloader/GridDhtPreloader.java | 62 +- .../preloader/GridDhtPreloaderAssignments.java | 8 +- .../distributed/near/CacheVersionedValue.java | 169 ++ .../distributed/near/GridNearAtomicCache.java | 149 +- .../distributed/near/GridNearCacheAdapter.java | 176 +- .../distributed/near/GridNearCacheEntry.java | 143 +- .../distributed/near/GridNearGetFuture.java | 134 +- .../distributed/near/GridNearGetRequest.java | 106 +- .../distributed/near/GridNearGetResponse.java | 37 +- .../distributed/near/GridNearLockFuture.java | 165 +- .../distributed/near/GridNearLockMapping.java | 23 +- .../distributed/near/GridNearLockRequest.java | 50 +- .../distributed/near/GridNearLockResponse.java | 12 +- .../near/GridNearTransactionalCache.java | 139 +- .../near/GridNearTxFinishFuture.java | 39 +- .../near/GridNearTxFinishRequest.java | 34 +- .../near/GridNearTxFinishResponse.java | 6 +- .../cache/distributed/near/GridNearTxLocal.java | 212 +-- .../near/GridNearTxPrepareFuture.java | 163 +- .../near/GridNearTxPrepareRequest.java | 58 +- .../near/GridNearTxPrepareResponse.java | 177 +- .../distributed/near/GridNearTxRemote.java | 66 +- .../distributed/near/GridNearUnlockRequest.java | 2 +- .../cache/dr/GridCacheDrExpirationInfo.java | 23 +- .../processors/cache/dr/GridCacheDrInfo.java | 28 +- .../processors/cache/dr/GridCacheDrManager.java | 10 +- .../cache/dr/os/GridOsCacheDrManager.java | 10 +- .../extras/GridCacheAttributesEntryExtras.java | 24 +- .../GridCacheAttributesMvccEntryExtras.java | 30 +- ...dCacheAttributesMvccObsoleteEntryExtras.java | 30 +- ...cheAttributesMvccObsoleteTtlEntryExtras.java | 30 +- .../GridCacheAttributesMvccTtlEntryExtras.java | 30 +- .../GridCacheAttributesObsoleteEntryExtras.java | 26 +- ...idCacheAttributesObsoleteTtlEntryExtras.java | 26 +- .../GridCacheAttributesTtlEntryExtras.java | 26 +- .../cache/extras/GridCacheEntryExtras.java | 16 +- .../extras/GridCacheEntryExtrasAdapter.java | 8 +- .../cache/extras/GridCacheMvccEntryExtras.java | 24 +- .../GridCacheMvccObsoleteEntryExtras.java | 26 +- .../GridCacheMvccObsoleteTtlEntryExtras.java | 26 +- .../extras/GridCacheMvccTtlEntryExtras.java | 26 +- .../extras/GridCacheObsoleteEntryExtras.java | 18 +- .../extras/GridCacheObsoleteTtlEntryExtras.java | 20 +- .../cache/extras/GridCacheTtlEntryExtras.java | 18 +- .../cache/jta/CacheJtaManagerAdapter.java | 2 +- .../cache/jta/CacheNoopJtaManager.java | 2 +- .../processors/cache/local/GridLocalCache.java | 55 +- .../cache/local/GridLocalCacheEntry.java | 85 +- .../cache/local/GridLocalLockCallback.java | 9 +- .../cache/local/GridLocalLockFuture.java | 40 +- .../processors/cache/local/GridLocalTx.java | 206 --- .../cache/local/GridLocalTxFuture.java | 302 ---- .../local/atomic/GridLocalAtomicCache.java | 342 ++-- .../GridCacheDistributedFieldsQueryFuture.java | 3 + .../query/GridCacheDistributedQueryFuture.java | 5 +- .../query/GridCacheDistributedQueryManager.java | 38 +- .../query/GridCacheLocalFieldsQueryFuture.java | 3 + .../cache/query/GridCacheLocalQueryFuture.java | 9 +- .../cache/query/GridCacheQueriesImpl.java | 17 - .../cache/query/GridCacheQueryAdapter.java | 16 - .../cache/query/GridCacheQueryInfo.java | 14 - .../cache/query/GridCacheQueryManager.java | 130 +- .../cache/query/GridCacheQueryRequest.java | 66 +- .../cache/query/GridCacheQueryResponse.java | 6 +- .../continuous/CacheContinuousQueryEntry.java | 273 +-- .../continuous/CacheContinuousQueryEvent.java | 41 +- .../continuous/CacheContinuousQueryHandler.java | 77 +- .../continuous/CacheContinuousQueryManager.java | 158 +- .../jdbc/GridCacheQueryJdbcMetadataTask.java | 12 +- .../query/jdbc/GridCacheQueryJdbcTask.java | 12 +- .../IgniteCacheSerializationManager.java | 51 - .../cache/transactions/IgniteInternalTx.java | 56 +- .../transactions/IgniteTransactionsImpl.java | 36 +- .../cache/transactions/IgniteTxAdapter.java | 158 +- .../cache/transactions/IgniteTxEntry.java | 700 +++----- .../cache/transactions/IgniteTxHandler.java | 242 +-- .../cache/transactions/IgniteTxKey.java | 99 +- .../transactions/IgniteTxLocalAdapter.java | 859 +++++----- .../cache/transactions/IgniteTxLocalEx.java | 56 +- .../cache/transactions/IgniteTxManager.java | 372 ++-- .../cache/transactions/IgniteTxMap.java | 40 +- .../cache/transactions/IgniteTxRemoteEx.java | 4 +- .../transactions/TransactionProxyImpl.java | 14 +- .../cache/transactions/TxEntryValueHolder.java | 237 +++ .../version/GridCacheRawVersionedEntry.java | 245 ++- .../cache/version/GridCacheVersion.java | 12 +- .../cache/version/GridCacheVersionEx.java | 66 +- .../cache/version/GridCacheVersionManager.java | 2 +- .../cacheobject/IgniteCacheObjectProcessor.java | 160 ++ .../IgniteCacheObjectProcessorImpl.java | 347 ++++ .../processors/cacheobject/package.html | 24 + .../processors/clock/GridClockMessage.java | 1 - .../clock/GridClockSyncProcessor.java | 2 +- .../closure/GridClosureProcessor.java | 128 +- .../continuous/GridContinuousHandler.java | 9 +- .../continuous/GridContinuousMessage.java | 43 +- .../continuous/GridContinuousProcessor.java | 54 +- .../datastream/GridDataLoadRequest.java | 33 +- .../datastream/IgniteDataLoaderEntry.java | 170 ++ .../IgniteDataStreamerCacheUpdaters.java | 13 +- .../datastream/IgniteDataStreamerFuture.java | 3 + .../datastream/IgniteDataStreamerImpl.java | 342 ++-- .../datastream/IgniteDataStreamerProcessor.java | 22 +- .../datastream/IgniteDataStreamerUpdateJob.java | 48 +- .../datastructures/DataStructuresProcessor.java | 43 +- .../datastructures/GridCacheSetImpl.java | 4 +- .../dr/IgniteDrDataStreamerCacheUpdater.java | 28 +- .../processors/igfs/IgfsDataManager.java | 3 + .../internal/processors/igfs/IgfsFileImpl.java | 7 + .../internal/processors/igfs/IgfsFileInfo.java | 3 +- .../internal/processors/igfs/IgfsImpl.java | 583 +++---- .../processors/igfs/IgfsMetaManager.java | 25 +- .../internal/processors/igfs/IgfsServer.java | 3 +- .../internal/processors/igfs/IgfsUtils.java | 86 + .../offheap/GridOffHeapProcessor.java | 9 +- .../portable/GridPortableProcessor.java | 142 -- .../portable/os/GridOsPortableProcessor.java | 120 -- .../processors/portable/os/package.html | 24 - .../processors/query/GridQueryProcessor.java | 24 +- .../resource/GridResourceProcessor.java | 2 +- .../resource/GridResourceServiceInjector.java | 2 +- .../processors/rest/GridRestResponse.java | 1 - .../message/GridClientAbstractMessage.java | 1 - .../message/GridClientHandshakeRequest.java | 1 - .../handlers/cache/GridCacheCommandHandler.java | 46 +- .../handlers/task/GridTaskCommandHandler.java | 3 +- .../protocols/tcp/GridMemcachedMessage.java | 1 - .../protocols/tcp/GridTcpRestNioListener.java | 3 - .../rest/protocols/tcp/GridTcpRestParser.java | 6 +- .../rest/protocols/tcp/GridTcpRestProtocol.java | 9 - .../rest/request/GridRestRequest.java | 17 - .../rest/request/GridRestTaskRequest.java | 17 - .../service/GridServiceDeploymentFuture.java | 3 + .../processors/service/GridServiceProxy.java | 2 +- .../streamer/GridStreamerExecutionBatch.java | 12 +- .../GridStreamerStageExecutionFuture.java | 3 + .../processors/task/GridTaskProcessor.java | 31 +- .../org/apache/ignite/internal/util/F0.java | 147 ++ .../ignite/internal/util/IgniteUtils.java | 55 +- .../util/future/GridCompoundFuture.java | 3 + .../util/future/GridCompoundIdentityFuture.java | 3 + .../util/future/GridEmbeddedFuture.java | 3 + .../internal/util/future/GridFutureAdapter.java | 9 + .../internal/util/lang/GridAbsClosure.java | 2 - .../ignite/internal/util/lang/GridFunc.java | 52 - .../ignite/internal/util/lang/GridMapEntry.java | 2 +- .../util/lang/GridMetadataAwareAdapter.java | 71 +- .../nio/GridConnectionBytesVerifyFilter.java | 1 - .../util/nio/GridNioEmbeddedFuture.java | 3 + .../internal/util/nio/GridNioFutureImpl.java | 3 + .../ignite/internal/util/nio/GridNioServer.java | 3 + .../util/nio/GridTcpCommunicationClient.java | 1 - .../util/offheap/unsafe/GridUnsafeMemory.java | 26 +- .../internal/util/worker/GridWorkerFuture.java | 3 + .../visor/cache/VisorCacheClearTask.java | 6 + .../visor/cache/VisorCacheCompactTask.java | 29 +- .../visor/cache/VisorCacheConfiguration.java | 11 - .../visor/node/VisorIgfsConfiguration.java | 2 +- .../lang/IgniteFutureCancelledException.java | 3 + .../lang/IgniteFutureTimeoutException.java | 3 + .../ignite/lang/IgniteProductVersion.java | 1 - .../java/org/apache/ignite/lang/IgniteUuid.java | 13 +- .../ignite/marshaller/AbstractMarshaller.java | 8 + .../apache/ignite/marshaller/Marshaller.java | 7 + .../ignite/marshaller/MarshallerContext.java | 42 + .../optimized/OptimizedClassDescriptor.java | 463 ++--- .../optimized/OptimizedClassResolver.java | 477 ------ .../optimized/OptimizedMarshallable.java | 65 - .../optimized/OptimizedMarshaller.java | 148 +- .../optimized/OptimizedMarshallerIdMapper.java | 33 + .../optimized/OptimizedMarshallerUtils.java | 298 ++-- .../optimized/OptimizedObjectInputStream.java | 152 +- .../optimized/OptimizedObjectOutputStream.java | 99 +- .../optimized-classnames.previous.properties | 15 - .../optimized/optimized-classnames.properties | 116 -- .../extensions/communication/MessageWriter.java | 11 + .../security/GridSecurityCredentials.java | 1 - .../org/apache/ignite/spi/IgniteSpiAdapter.java | 18 - .../org/apache/ignite/spi/IgniteSpiContext.java | 43 - .../communication/tcp/TcpCommunicationSpi.java | 3 + .../tcp/internal/TcpDiscoveryNode.java | 1 - .../TcpDiscoveryMulticastIpFinder.java | 1 - .../messages/TcpDiscoveryAuthFailedMessage.java | 1 - .../messages/TcpDiscoveryHeartbeatMessage.java | 1 - .../apache/ignite/transactions/Transaction.java | 6 +- .../META-INF/classnames-jdk.properties | 371 ++++ .../resources/META-INF/classnames.properties | 1619 ++++++++++++++++++ .../src/test/config/io-manager-benchmark.xml | 12 - modules/core/src/test/config/jobs-load-base.xml | 11 - .../core/src/test/config/load/dsi-load-base.xml | 16 - .../IgniteExternalizableAbstractTest.java | 9 +- ...eJdbcStoreAbstractMultithreadedSelfTest.java | 11 +- .../ignite/internal/GridAffinitySelfTest.java | 3 +- .../GridCommunicationSendMessageSelfTest.java | 2 +- .../cache/GridCacheAbstractFullApiSelfTest.java | 62 +- .../cache/GridCacheAbstractMetricsSelfTest.java | 8 +- .../cache/GridCacheAffinityRoutingSelfTest.java | 6 - .../GridCacheConcurrentTxMultiNodeTest.java | 8 +- .../cache/GridCacheDeploymentSelfTest.java | 5 +- .../cache/GridCacheEntryMemorySizeSelfTest.java | 12 +- .../cache/GridCacheEntryVersionSelfTest.java | 4 +- .../GridCacheExAbstractFullApiSelfTest.java | 2 +- .../GridCacheFinishPartitionsSelfTest.java | 7 +- .../GridCacheInterceptorAbstractSelfTest.java | 186 +- .../processors/cache/GridCacheLeakTest.java | 2 +- .../cache/GridCacheLifecycleAwareSelfTest.java | 10 +- .../cache/GridCacheMemoryModeSelfTest.java | 8 +- .../cache/GridCacheMvccFlagsTest.java | 8 +- .../cache/GridCacheMvccPartitionedSelfTest.java | 128 +- .../processors/cache/GridCacheMvccSelfTest.java | 232 +-- .../cache/GridCacheObjectToStringSelfTest.java | 2 +- .../cache/GridCacheOffHeapSelfTest.java | 6 +- .../GridCacheOnCopyFlagAbstractSelfTest.java | 688 ++++++++ .../GridCacheOnCopyFlagAtomicSelfTest.java | 38 + .../cache/GridCacheOnCopyFlagLocalSelfTest.java | 38 + .../GridCacheOnCopyFlagReplicatedSelfTest.java | 38 + ...ridCacheOnCopyFlagTxPartitionedSelfTest.java | 38 + .../cache/GridCachePutAllFailoverSelfTest.java | 1 - .../GridCacheReturnValueTransferSelfTest.java | 1 + .../cache/GridCacheStoreValueBytesSelfTest.java | 24 +- .../cache/GridCacheSwapPreloadSelfTest.java | 6 +- .../processors/cache/GridCacheTestEntryEx.java | 276 +-- .../cache/GridCacheTtlManagerLoadTest.java | 2 +- .../GridCacheValueBytesPreloadingSelfTest.java | 2 +- .../cache/GridCacheVersionMultinodeTest.java | 2 +- .../cache/GridCacheVersionSelfTest.java | 3 + ...IgniteCacheAtomicCopyOnReadDisabledTest.java | 32 + .../IgniteCacheContainsKeyAbstractSelfTest.java | 4 +- ...niteCacheCopyOnReadDisabledAbstractTest.java | 123 ++ .../IgniteCacheInterceptorSelfTestSuite.java | 5 + .../IgniteCacheTxCopyOnReadDisabledTest.java | 32 + .../cache/IgnitePutAllLargeBatchSelfTest.java | 6 +- ...tAllUpdateNonPreloadedPartitionSelfTest.java | 6 +- .../IgniteTxConcurrentGetAbstractTest.java | 4 +- .../cache/IgniteTxMultiNodeAbstractTest.java | 4 +- ...actQueueFailoverDataConsistencySelfTest.java | 2 +- .../GridCacheQueueCleanupSelfTest.java | 2 +- .../GridCacheSetAbstractSelfTest.java | 4 +- .../GridCacheSetFailoverAbstractSelfTest.java | 4 +- .../IgnitePartitionedSetNoBackupsSelfTest.java | 2 +- .../GridCacheAbstractJobExecutionTest.java | 2 +- .../distributed/GridCacheEventAbstractTest.java | 12 +- ...chePartitionedReloadAllAbstractSelfTest.java | 61 +- .../IgniteCacheSystemTransactionsSelfTest.java | 188 ++ .../dht/GridCacheAtomicNearCacheSelfTest.java | 12 +- .../dht/GridCacheColocatedDebugTest.java | 6 +- .../dht/GridCacheDhtEntrySelfTest.java | 12 +- ...GridCacheDhtEvictionNearReadersSelfTest.java | 12 +- .../dht/GridCacheDhtEvictionSelfTest.java | 20 +- .../dht/GridCacheDhtInternalEntrySelfTest.java | 4 +- .../dht/GridCacheDhtPreloadDelayedSelfTest.java | 4 +- .../GridCacheDhtPreloadDisabledSelfTest.java | 4 +- .../dht/GridCacheDhtPreloadSelfTest.java | 8 +- .../GridCacheDhtPreloadStartStopSelfTest.java | 4 +- .../distributed/dht/GridCacheDhtTestUtils.java | 25 +- ...ridCachePartitionedUnloadEventsSelfTest.java | 6 +- ...eAtomicInvalidPartitionHandlingSelfTest.java | 7 +- .../atomic/GridCacheAtomicPreloadSelfTest.java | 2 +- ...yOnReadDisabledMultiNodeFullApiSelfTest.java | 36 + .../near/GridCacheNearMultiNodeSelfTest.java | 12 +- .../near/GridCacheNearOneNodeSelfTest.java | 2 +- ...idCacheNearOnlyMultiNodeFullApiSelfTest.java | 14 +- .../near/GridCacheNearReadersSelfTest.java | 21 +- ...yOnReadDisabledMultiNodeFullApiSelfTest.java | 37 + ...achePartitionedMultiNodeCounterSelfTest.java | 18 +- ...achePartitionedMultiNodeFullApiSelfTest.java | 15 +- .../GridCachePartitionedTxSalvageSelfTest.java | 2 +- .../GridCacheReplicatedFullApiSelfTest.java | 1 + .../GridCacheReplicatedPreloadSelfTest.java | 4 +- .../cache/eviction/GridCacheMockEntry.java | 5 +- .../IgniteCacheExpiryPolicyAbstractTest.java | 4 +- ...eCacheExpiryPolicyWithStoreAbstractTest.java | 2 +- .../query/GridCacheSwapScanQuerySelfTest.java | 1 + ...dCacheAbstractReduceFieldsQuerySelfTest.java | 21 +- .../continuous/GridEventConsumeSelfTest.java | 3 +- .../IgniteDataStreamerImplSelfTest.java | 9 +- .../IgniteDataStreamerPerformanceTest.java | 2 - .../IgniteDataStreamerProcessorSelfTest.java | 52 +- .../processors/igfs/IgfsAbstractSelfTest.java | 31 +- .../igfs/IgfsDataManagerSelfTest.java | 6 +- .../processors/igfs/IgfsFileInfoSelfTest.java | 2 + .../processors/igfs/IgfsSizeSelfTest.java | 17 - .../streamer/GridStreamerEvictionSelfTest.java | 1 - .../streamer/GridStreamerFailoverSelfTest.java | 2 +- .../internal/util/nio/GridNioSelfTest.java | 18 +- .../nio/impl/GridNioFilterChainSelfTest.java | 7 +- .../lang/GridMetadataAwareAdapterSelfTest.java | 80 +- .../loadtests/hashmap/GridCacheTestContext.java | 29 +- .../loadtests/hashmap/GridHashMapLoadTest.java | 10 +- .../marshaller/GridMarshallerAbstractTest.java | 15 +- .../GridMarshallerPerformanceTest.java | 2 - .../marshaller/MarshallerContextTestImpl.java | 43 + .../jdk/GridJdkMarshallerSelfTest.java | 2 +- .../OptimizedMarshallerEnumSelfTest.java | 4 +- .../optimized/OptimizedMarshallerSelfTest.java | 186 +- .../optimized/OptimizedMarshallerTest.java | 102 +- .../OptimizedObjectStreamSelfTest.java | 43 +- .../ignite/messaging/GridMessagingSelfTest.java | 3 + .../communication/GridCacheMessageSelfTest.java | 546 ++++++ .../discovery/AbstractDiscoverySelfTest.java | 1 - .../GridCacheStoreValueBytesNode.java | 2 - .../testframework/GridSpiTestContext.java | 18 - .../ignite/testframework/GridTestUtils.java | 6 +- .../testframework/junits/GridAbstractTest.java | 6 +- .../junits/GridTestKernalContext.java | 14 +- .../junits/IgniteTestResources.java | 46 +- .../junits/common/GridCommonAbstractTest.java | 2 +- .../IgniteCacheFullApiSelfTestSuite.java | 2 + .../ignite/testsuites/IgniteCacheTestSuite.java | 10 +- .../ignite/testsuites/IgniteIgfsTestSuite.java | 2 + .../testsuites/IgniteKernalSelfTestSuite.java | 2 + .../fs/IgniteHadoopIgfsSecondaryFileSystem.java | 5 +- .../hadoop/fs/v1/IgniteHadoopFileSystem.java | 16 +- .../hadoop/fs/v2/IgniteHadoopFileSystem.java | 8 +- .../IgniteHadoopClientProtocolProvider.java | 7 +- .../processors/hadoop/HadoopProcessor.java | 4 +- .../internal/processors/hadoop/HadoopSetup.java | 2 +- .../hadoop/igfs/HadoopIgfsFuture.java | 3 + .../hadoop/proto/HadoopClientProtocol.java | 3 - .../external/HadoopExternalTaskExecutor.java | 3 + .../child/HadoopExternalProcessStarter.java | 4 +- .../HadoopClientProtocolEmbeddedSelfTest.java | 3 +- .../hadoop/HadoopClientProtocolSelfTest.java | 2 +- .../processors/hadoop/HadoopGroupingTest.java | 3 +- .../hadoop/HadoopJobTrackerSelfTest.java | 4 +- .../hadoop/HadoopMapReduceEmbeddedSelfTest.java | 3 +- .../hadoop/HadoopSortingExternalTest.java | 13 +- .../processors/hadoop/HadoopSortingTest.java | 3 +- .../hadoop/HadoopTaskExecutionSelfTest.java | 6 +- .../HadoopExternalTaskExecutionSelfTest.java | 13 +- .../HadoopExternalCommunicationSelfTest.java | 4 +- .../testsuites/IgniteHadoopTestSuite.java | 6 +- .../processors/query/h2/IgniteH2Indexing.java | 8 +- .../GridCacheAbstractFieldsQuerySelfTest.java | 34 - .../cache/GridCacheAbstractQuerySelfTest.java | 46 +- .../cache/GridCacheCrossCacheQuerySelfTest.java | 17 - .../cache/GridCacheOffHeapAndSwapSelfTest.java | 10 +- .../cache/GridCacheQueryLoadSelfTest.java | 54 +- .../processors/cache/GridCacheSwapSelfTest.java | 7 +- .../processors/cache/jta/CacheJtaManager.java | 6 +- modules/scalar/pom.xml | 8 + .../scalar/testsuites/ScalarSelfTestSuite.scala | 6 + .../cache/spring/SpringDynamicCacheManager.java | 36 +- .../GridSpringBeanSerializationSelfTest.java | 2 + .../ignite/spring/GridSpringCacheTestKey.java | 4 +- ...gniteProjectionStartStopRestartSelfTest.java | 42 +- .../ignite/tools/classgen/ClassesGenerator.java | 214 +++ .../optimized/OptimizedClassNamesGenerator.java | 325 ---- .../commands/cache/VisorCacheCommand.scala | 1 - .../commands/tasks/VisorTasksCommandSpec.scala | 5 +- .../IgniteWebSessionSelfTestSuite.java | 6 + modules/yardstick/config/ignite-base-config.xml | 17 - .../yardstick/config/ignite-store-config.xml | 18 - pom.xml | 38 +- 580 files changed, 21876 insertions(+), 16898 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/00fd3c3c/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/00fd3c3c/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/00fd3c3c/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/00fd3c3c/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/00fd3c3c/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 87bb9f1,a966a86..eec6f80 --- 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 @@@ -3883,10 -3732,10 +3732,10 @@@ public abstract class GridCacheAdapter< final ExpiryPolicy plc = plc0 != null ? plc0 : ctx.expiry(); if (ctx.store().isLocalStore()) { - IgniteDataStreamerImpl<K, V> ldr = ctx.kernalContext().<K, V>dataStream().dataStreamer(ctx.namex(), false); - IgniteDataLoaderImpl ldr = ctx.kernalContext().<K, V>dataLoad().dataLoader(ctx.namex()); ++ IgniteDataStreamerImpl<K, V> ldr = ctx.kernalContext().<K, V>dataStream().dataLoader(ctx.namex()); try { - ldr.updater(new GridDrDataLoadCacheUpdater()); + ldr.updater(new IgniteDrDataStreamerCacheUpdater<K, V>()); LocalStoreLoadClosure c = new LocalStoreLoadClosure(p, ldr, plc); @@@ -4049,7 -3883,8 +3883,7 @@@ * @throws IgniteCheckedException If failed. */ private void localLoadAndUpdate(final Collection<? extends K> keys) throws IgniteCheckedException { - try (final IgniteDataStreamer<K, V> ldr = ctx.kernalContext().<K, V>dataStream().dataStreamer(ctx.namex(), false)) { - try (final IgniteDataLoaderImpl<KeyCacheObject, CacheObject> ldr = - ctx.kernalContext().<KeyCacheObject, CacheObject>dataLoad().dataLoader(ctx.namex())) { ++ try (final IgniteDataLoader<K, V> ldr = ctx.kernalContext().<K, V>dataLoad().dataLoader(ctx.namex(), false)) { ldr.allowOverwrite(true); ldr.skipStore(true); @@@ -4091,11 -3923,13 +3922,13 @@@ final ExpiryPolicy plc0 = plc != null ? plc : ctx.expiry(); + Collection<KeyCacheObject> keys0 = ctx.cacheKeysView(keys); + if (ctx.store().isLocalStore()) { - IgniteDataStreamerImpl<K, V> ldr = ctx.kernalContext().<K, V>dataStream().dataStreamer(ctx.namex(), false); - IgniteDataLoaderImpl ldr = ctx.kernalContext().<K, V>dataLoad().dataLoader(ctx.namex()); ++ IgniteDataLoaderImpl<K, V> ldr = ctx.kernalContext().<K, V>dataLoad().dataLoader(ctx.namex(), false); try { - ldr.updater(new IgniteDrDataStreamerCacheUpdater<K, V>()); - ldr.updater(new GridDrDataLoadCacheUpdater()); ++ ldr.updater(new GridDrDataLoadCacheUpdater<K, V>()); LocalStoreLoadClosure c = new LocalStoreLoadClosure(null, ldr, plc0); @@@ -6137,10 -5879,10 +5878,10 @@@ final IgniteBiPredicate<K, V> p; /** */ - final Collection<Map.Entry<K, V>> col; + final Collection<GridCacheRawVersionedEntry> col; /** */ - final IgniteDataLoaderImpl<K, V> ldr; + final IgniteDataStreamerImpl<K, V> ldr; /** */ final ExpiryPolicy plc; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/00fd3c3c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java index 658aed8,22d3278..099bb24 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java @@@ -276,16 -283,17 +283,17 @@@ public abstract class GridDistributedCa else dht = (GridDhtCacheAdapter<K, V>)cacheAdapter; - try (IgniteDataStreamer<K, V> dataLdr = ignite.dataStreamer(cacheName)) { - try (IgniteDataLoaderImpl<KeyCacheObject, Object> dataLdr = - (IgniteDataLoaderImpl)ignite.dataLoader(cacheName)) { - ((IgniteDataLoaderImpl)dataLdr).maxRemapCount(0); ++ try (IgniteDataStreamerImpl<KeyCacheObject, Object> dataLdr = ++ (IgniteDataStreamerImpl)ignite.dataStreamer(cacheName)) { + ((IgniteDataStreamerImpl)dataLdr).maxRemapCount(0); - dataLdr.updater(IgniteDataStreamerCacheUpdaters.<K, V>batched()); - dataLdr.updater(GridDataLoadCacheUpdaters.<KeyCacheObject, Object>batched()); ++ dataLdr.updater(IgniteDataStreamerCacheUpdaters.<KeyCacheObject, Object>batched()); - for (GridDhtLocalPartition<K, V> locPart : dht.topology().currentLocalPartitions()) { + for (GridDhtLocalPartition locPart : dht.topology().currentLocalPartitions()) { if (!locPart.isEmpty() && locPart.primary(topVer)) { - for (GridDhtCacheEntry<K, V> o : locPart.entries()) { + for (GridDhtCacheEntry o : locPart.entries()) { if (!o.obsoleteOrDeleted()) - dataLdr.removeData(o.key()); + dataLdr.removeDataInternal(o.key()); } } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/00fd3c3c/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/GridDataLoadRequest.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/GridDataLoadRequest.java index d77b52e,0000000..8c66812 mode 100644,000000..100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/GridDataLoadRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/GridDataLoadRequest.java @@@ -1,450 -1,0 +1,451 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.datastream; + +import org.apache.ignite.configuration.*; +import org.apache.ignite.internal.*; +import org.apache.ignite.internal.util.tostring.*; +import org.apache.ignite.internal.util.typedef.internal.*; +import org.apache.ignite.lang.*; +import org.apache.ignite.plugin.extensions.communication.*; +import org.jetbrains.annotations.*; + +import java.nio.*; +import java.util.*; + +/** + * + */ +public class GridDataLoadRequest implements Message { + /** */ + private static final long serialVersionUID = 0L; + + /** */ + private long reqId; + + /** */ + private byte[] resTopicBytes; + + /** Cache name. */ + private String cacheName; + + /** */ + private byte[] updaterBytes; + - /** Entries to put. */ - private byte[] colBytes; ++ /** Entries to update. */ ++ @GridDirectCollection(IgniteDataLoaderEntry.class) ++ private Collection<IgniteDataLoaderEntry> entries; + + /** {@code True} to ignore deployment ownership. */ + private boolean ignoreDepOwnership; + + /** */ + private boolean skipStore; + + /** */ + private DeploymentMode depMode; + + /** */ + private String sampleClsName; + + /** */ + private String userVer; + + /** Node class loader participants. */ + @GridToStringInclude + @GridDirectMap(keyType = UUID.class, valueType = IgniteUuid.class) + private Map<UUID, IgniteUuid> ldrParticipants; + + /** */ + private IgniteUuid clsLdrId; + + /** */ + private boolean forceLocDep; + + /** + * {@code Externalizable} support. + */ + public GridDataLoadRequest() { + // No-op. + } + + /** + * @param reqId Request ID. + * @param resTopicBytes Response topic. + * @param cacheName Cache name. + * @param updaterBytes Cache updater. - * @param colBytes Collection bytes. ++ * @param entries Entries to put. + * @param ignoreDepOwnership Ignore ownership. + * @param skipStore Skip store flag. + * @param depMode Deployment mode. + * @param sampleClsName Sample class name. + * @param userVer User version. + * @param ldrParticipants Loader participants. + * @param clsLdrId Class loader ID. + * @param forceLocDep Force local deployment. + */ + public GridDataLoadRequest(long reqId, + byte[] resTopicBytes, + @Nullable String cacheName, + byte[] updaterBytes, - byte[] colBytes, ++ Collection<IgniteDataLoaderEntry> entries, + boolean ignoreDepOwnership, + boolean skipStore, + DeploymentMode depMode, + String sampleClsName, + String userVer, + Map<UUID, IgniteUuid> ldrParticipants, + IgniteUuid clsLdrId, + boolean forceLocDep) { + this.reqId = reqId; + this.resTopicBytes = resTopicBytes; + this.cacheName = cacheName; + this.updaterBytes = updaterBytes; - this.colBytes = colBytes; ++ this.entries = entries; + this.ignoreDepOwnership = ignoreDepOwnership; + this.skipStore = skipStore; + this.depMode = depMode; + this.sampleClsName = sampleClsName; + this.userVer = userVer; + this.ldrParticipants = ldrParticipants; + this.clsLdrId = clsLdrId; + this.forceLocDep = forceLocDep; + } + + /** + * @return Request ID. + */ + public long requestId() { + return reqId; + } + + /** + * @return Response topic. + */ + public byte[] responseTopicBytes() { + return resTopicBytes; + } + + /** + * @return Cache name. + */ + public String cacheName() { + return cacheName; + } + + /** + * @return Updater. + */ + public byte[] updaterBytes() { + return updaterBytes; + } + + /** - * @return Collection bytes. ++ * @return Entries to update. + */ - public byte[] collectionBytes() { - return colBytes; ++ public Collection<IgniteDataLoaderEntry> entries() { ++ return entries; + } + + /** + * @return {@code True} to ignore ownership. + */ + public boolean ignoreDeploymentOwnership() { + return ignoreDepOwnership; + } + + /** + * @return Skip store flag. + */ + public boolean skipStore() { + return skipStore; + } + + /** + * @return Deployment mode. + */ + public DeploymentMode deploymentMode() { + return depMode; + } + + /** + * @return Sample class name. + */ + public String sampleClassName() { + return sampleClsName; + } + + /** + * @return User version. + */ + public String userVersion() { + return userVer; + } + + /** + * @return Participants. + */ + public Map<UUID, IgniteUuid> participants() { + return ldrParticipants; + } + + /** + * @return Class loader ID. + */ + public IgniteUuid classLoaderId() { + return clsLdrId; + } + + /** + * @return {@code True} to force local deployment. + */ + public boolean forceLocalDeployment() { + return forceLocDep; + } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(GridDataLoadRequest.class, this); + } + + /** {@inheritDoc} */ + @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { + writer.setBuffer(buf); + + if (!writer.isHeaderWritten()) { + if (!writer.writeHeader(directType(), fieldsCount())) + return false; + + writer.onHeaderWritten(); + } + + switch (writer.state()) { + case 0: + if (!writer.writeString("cacheName", cacheName)) + return false; + + writer.incrementState(); + + case 1: + if (!writer.writeIgniteUuid("clsLdrId", clsLdrId)) + return false; + + writer.incrementState(); + + case 2: - if (!writer.writeByteArray("colBytes", colBytes)) ++ if (!writer.writeByte("depMode", depMode != null ? (byte)depMode.ordinal() : -1)) + return false; + + writer.incrementState(); + + case 3: - if (!writer.writeByte("depMode", depMode != null ? (byte)depMode.ordinal() : -1)) ++ if (!writer.writeCollection("entries", entries, MessageCollectionItemType.MSG)) + return false; + + writer.incrementState(); + + case 4: + if (!writer.writeBoolean("forceLocDep", forceLocDep)) + return false; + + writer.incrementState(); + + case 5: + if (!writer.writeBoolean("ignoreDepOwnership", ignoreDepOwnership)) + return false; + + writer.incrementState(); + + case 6: + if (!writer.writeMap("ldrParticipants", ldrParticipants, MessageCollectionItemType.UUID, MessageCollectionItemType.IGNITE_UUID)) + return false; + + writer.incrementState(); + + case 7: + if (!writer.writeLong("reqId", reqId)) + return false; + + writer.incrementState(); + + case 8: + if (!writer.writeByteArray("resTopicBytes", resTopicBytes)) + return false; + + writer.incrementState(); + + case 9: + if (!writer.writeString("sampleClsName", sampleClsName)) + return false; + + writer.incrementState(); + + case 10: + if (!writer.writeBoolean("skipStore", skipStore)) + return false; + + writer.incrementState(); + + case 11: + if (!writer.writeByteArray("updaterBytes", updaterBytes)) + return false; + + writer.incrementState(); + + case 12: + if (!writer.writeString("userVer", userVer)) + return false; + + writer.incrementState(); + + } + + return true; + } + + /** {@inheritDoc} */ + @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) { + reader.setBuffer(buf); + + if (!reader.beforeMessageRead()) + return false; + + switch (reader.state()) { + case 0: + cacheName = reader.readString("cacheName"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 1: + clsLdrId = reader.readIgniteUuid("clsLdrId"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 2: - colBytes = reader.readByteArray("colBytes"); ++ byte depModeOrd; ++ ++ depModeOrd = reader.readByte("depMode"); + + if (!reader.isLastRead()) + return false; + ++ depMode = DeploymentMode.fromOrdinal(depModeOrd); ++ + reader.incrementState(); + + case 3: - byte depModeOrd; - - depModeOrd = reader.readByte("depMode"); ++ entries = reader.readCollection("entries", MessageCollectionItemType.MSG); + + if (!reader.isLastRead()) + return false; + - depMode = DeploymentMode.fromOrdinal(depModeOrd); - + reader.incrementState(); + + case 4: + forceLocDep = reader.readBoolean("forceLocDep"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 5: + ignoreDepOwnership = reader.readBoolean("ignoreDepOwnership"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 6: + ldrParticipants = reader.readMap("ldrParticipants", MessageCollectionItemType.UUID, MessageCollectionItemType.IGNITE_UUID, false); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 7: + reqId = reader.readLong("reqId"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 8: + resTopicBytes = reader.readByteArray("resTopicBytes"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 9: + sampleClsName = reader.readString("sampleClsName"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 10: + skipStore = reader.readBoolean("skipStore"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 11: + updaterBytes = reader.readByteArray("updaterBytes"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + case 12: + userVer = reader.readString("userVer"); + + if (!reader.isLastRead()) + return false; + + reader.incrementState(); + + } + + return true; + } + + /** {@inheritDoc} */ + @Override public byte directType() { + return 62; + } + + /** {@inheritDoc} */ + @Override public byte fieldsCount() { + return 13; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/00fd3c3c/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataLoaderEntry.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataLoaderEntry.java index 0000000,0000000..94f908b new file mode 100644 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataLoaderEntry.java @@@ -1,0 -1,0 +1,170 @@@ ++/* ++ * Licensed to the Apache Software Foundation (ASF) under one or more ++ * contributor license agreements. See the NOTICE file distributed with ++ * this work for additional information regarding copyright ownership. ++ * The ASF licenses this file to You under the Apache License, Version 2.0 ++ * (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ * See the License for the specific language governing permissions and ++ * limitations under the License. ++ */ ++ ++package org.apache.ignite.internal.processors.datastream; ++ ++import org.apache.ignite.internal.processors.cache.*; ++import org.apache.ignite.internal.util.tostring.*; ++import org.apache.ignite.internal.util.typedef.internal.*; ++import org.apache.ignite.plugin.extensions.communication.*; ++ ++import java.nio.*; ++import java.util.*; ++ ++/** ++ * ++ */ ++public class IgniteDataLoaderEntry implements Map.Entry<KeyCacheObject, CacheObject>, Message { ++ /** */ ++ private static final long serialVersionUID = 0L; ++ ++ /** */ ++ @GridToStringInclude ++ protected KeyCacheObject key; ++ ++ /** */ ++ @GridToStringInclude ++ protected CacheObject val; ++ ++ /** ++ * ++ */ ++ public IgniteDataLoaderEntry() { ++ // No-op. ++ } ++ ++ /** ++ * @param key Key. ++ * @param val Value. ++ */ ++ public IgniteDataLoaderEntry(KeyCacheObject key, CacheObject val) { ++ this.key = key; ++ this.val = val; ++ } ++ ++ /** {@inheritDoc} */ ++ @Override public KeyCacheObject getKey() { ++ return key; ++ } ++ ++ /** {@inheritDoc} */ ++ @Override public CacheObject getValue() { ++ return val; ++ } ++ ++ /** {@inheritDoc} */ ++ @Override public CacheObject setValue(CacheObject val) { ++ CacheObject old = this.val; ++ ++ this.val = val; ++ ++ return old; ++ } ++ ++ /** ++ * @param ctx Cache context. ++ * @return Map entry unwrapping internal key and value. ++ */ ++ public <K, V> Map.Entry<K, V> toEntry(final GridCacheContext ctx) { ++ return new Map.Entry<K, V>() { ++ @Override public K getKey() { ++ return key.value(ctx.cacheObjectContext(), false); ++ } ++ ++ @Override public V setValue(V val) { ++ throw new UnsupportedOperationException(); ++ } ++ ++ @Override public V getValue() { ++ return val != null ? val.<V>value(ctx.cacheObjectContext(), false) : null; ++ } ++ }; ++ } ++ ++ /** {@inheritDoc} */ ++ @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { ++ writer.setBuffer(buf); ++ ++ if (!writer.isHeaderWritten()) { ++ if (!writer.writeHeader(directType(), fieldsCount())) ++ return false; ++ ++ writer.onHeaderWritten(); ++ } ++ ++ switch (writer.state()) { ++ case 0: ++ if (!writer.writeMessage("key", key)) ++ return false; ++ ++ writer.incrementState(); ++ ++ case 1: ++ if (!writer.writeMessage("val", val)) ++ return false; ++ ++ writer.incrementState(); ++ ++ } ++ ++ return true; ++ } ++ ++ /** {@inheritDoc} */ ++ @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) { ++ reader.setBuffer(buf); ++ ++ if (!reader.beforeMessageRead()) ++ return false; ++ ++ switch (reader.state()) { ++ case 0: ++ key = reader.readMessage("key"); ++ ++ if (!reader.isLastRead()) ++ return false; ++ ++ reader.incrementState(); ++ ++ case 1: ++ val = reader.readMessage("val"); ++ ++ if (!reader.isLastRead()) ++ return false; ++ ++ reader.incrementState(); ++ ++ } ++ ++ return true; ++ } ++ ++ /** {@inheritDoc} */ ++ @Override public byte directType() { ++ return 95; ++ } ++ ++ /** {@inheritDoc} */ ++ @Override public byte fieldsCount() { ++ return 2; ++ } ++ ++ /** {@inheritDoc} */ ++ @Override public String toString() { ++ return S.toString(IgniteDataLoaderEntry.class, this); ++ } ++} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/00fd3c3c/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerCacheUpdaters.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerCacheUpdaters.java index 629c7b1,0000000..af3f358 mode 100644,000000..100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerCacheUpdaters.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerCacheUpdaters.java @@@ -1,199 -1,0 +1,206 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.datastream; + +import org.apache.ignite.*; +import org.apache.ignite.internal.processors.cache.*; +import org.apache.ignite.internal.util.typedef.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +/** + * Bundled factory for cache updaters. + */ +public class IgniteDataStreamerCacheUpdaters { + /** */ + private static final IgniteDataStreamer.Updater INDIVIDUAL = new Individual(); + + /** */ + private static final IgniteDataStreamer.Updater BATCHED = new Batched(); + + /** */ + private static final IgniteDataStreamer.Updater BATCHED_SORTED = new BatchedSorted(); + + /** + * Updates cache using independent {@link org.apache.ignite.cache.GridCache#put(Object, Object, org.apache.ignite.lang.IgnitePredicate[])} and + * {@link org.apache.ignite.cache.GridCache#remove(Object, org.apache.ignite.lang.IgnitePredicate[])} operations. Thus it is safe from deadlocks but performance + * is not the best. + * + * @return Single updater. + */ + public static <K, V> IgniteDataStreamer.Updater<K, V> individual() { + return INDIVIDUAL; + } + + /** + * Updates cache using batched methods {@link org.apache.ignite.cache.GridCache#putAll(Map, org.apache.ignite.lang.IgnitePredicate[])} and + * {@link org.apache.ignite.cache.GridCache#removeAll(Collection, org.apache.ignite.lang.IgnitePredicate[])}. Can cause deadlocks if the same keys are getting + * updated concurrently. Performance is generally better than in {@link #individual()}. + * + * @return Batched updater. + */ + public static <K, V> IgniteDataStreamer.Updater<K, V> batched() { + return BATCHED; + } + + /** + * Updates cache using batched methods {@link org.apache.ignite.cache.GridCache#putAll(Map, org.apache.ignite.lang.IgnitePredicate[])} and + * {@link org.apache.ignite.cache.GridCache#removeAll(Collection, org.apache.ignite.lang.IgnitePredicate[])}. Keys are sorted in natural order and if all updates + * use the same rule deadlock can not happen. Performance is generally better than in {@link #individual()}. + * + * @return Batched sorted updater. + */ + public static <K extends Comparable<?>, V> IgniteDataStreamer.Updater<K, V> batchedSorted() { + return BATCHED_SORTED; + } + + /** + * Updates cache. + * + * @param cache Cache. + * @param rmvCol Keys to remove. + * @param putMap Entries to put. + * @throws IgniteException If failed. + */ + protected static <K, V> void updateAll(IgniteCache<K, V> cache, @Nullable Set<K> rmvCol, + Map<K, V> putMap) { + assert rmvCol != null || putMap != null; + + // Here we assume that there are no key duplicates, so the following calls are valid. + if (rmvCol != null) + ((IgniteCacheProxy<K, V>)cache).removeAll(rmvCol); + + if (putMap != null) + cache.putAll(putMap); + } + + /** + * Simple cache updater implementation. Updates keys one by one thus is not dead lock prone. + */ - private static class Individual<K, V> implements IgniteDataStreamer.Updater<K, V> { ++ private static class Individual<K, V> implements IgniteDataStreamer.Updater<K, V>, InternalUpdater { + /** */ + private static final long serialVersionUID = 0L; + + /** {@inheritDoc} */ + @Override public void update(IgniteCache<K, V> cache, Collection<Map.Entry<K, V>> entries) { + assert cache != null; + assert !F.isEmpty(entries); + + for (Map.Entry<K, V> entry : entries) { + K key = entry.getKey(); + + assert key != null; + + V val = entry.getValue(); + + if (val == null) + cache.remove(key); + else + cache.put(key, val); + } + } + } + + /** + * Batched updater. Updates cache using batch operations thus is dead lock prone. + */ - private static class Batched<K, V> implements IgniteDataStreamer.Updater<K, V> { ++ private static class Batched<K, V> implements IgniteDataStreamer.Updater<K, V>, InternalUpdater { + /** */ + private static final long serialVersionUID = 0L; + + /** {@inheritDoc} */ + @Override public void update(IgniteCache<K, V> cache, Collection<Map.Entry<K, V>> entries) { + assert cache != null; + assert !F.isEmpty(entries); + + Map<K, V> putAll = null; + Set<K> rmvAll = null; + + for (Map.Entry<K, V> entry : entries) { + K key = entry.getKey(); + + assert key != null; + + V val = entry.getValue(); + + if (val == null) { + if (rmvAll == null) + rmvAll = new HashSet<>(); + + rmvAll.add(key); + } + else { + if (putAll == null) + putAll = new HashMap<>(); + + putAll.put(key, val); + } + } + + updateAll(cache, rmvAll, putAll); + } + } + + /** + * Batched updater. Updates cache using batch operations thus is dead lock prone. + */ - private static class BatchedSorted<K, V> implements IgniteDataStreamer.Updater<K, V> { ++ private static class BatchedSorted<K, V> implements IgniteDataStreamer.Updater<K, V>, InternalUpdater { + /** */ + private static final long serialVersionUID = 0L; + + /** {@inheritDoc} */ + @Override public void update(IgniteCache<K, V> cache, Collection<Map.Entry<K, V>> entries) { + assert cache != null; + assert !F.isEmpty(entries); + + Map<K, V> putAll = null; + Set<K> rmvAll = null; + + for (Map.Entry<K, V> entry : entries) { + K key = entry.getKey(); + + assert key instanceof Comparable; + + V val = entry.getValue(); + + if (val == null) { + if (rmvAll == null) + rmvAll = new TreeSet<>(); + + rmvAll.add(key); + } + else { + if (putAll == null) + putAll = new TreeMap<>(); + + putAll.put(key, val); + } + } + + updateAll(cache, rmvAll, putAll); + } + } ++ ++ /** ++ * Marker interface for updaters which do not need to unwrap cache objects. ++ */ ++ public static interface InternalUpdater { ++ // No-op. ++ } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/00fd3c3c/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerFuture.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerFuture.java index 91fbdf0,0000000..8ed4271 mode 100644,000000..100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerFuture.java @@@ -1,66 -1,0 +1,69 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.datastream; + +import org.apache.ignite.*; +import org.apache.ignite.internal.*; +import org.apache.ignite.internal.util.future.*; +import org.apache.ignite.internal.util.tostring.*; +import org.apache.ignite.internal.util.typedef.internal.*; + +/** + * Data streamer future. + */ +class IgniteDataStreamerFuture extends GridFutureAdapter<Object> { ++ /** */ ++ private static final long serialVersionUID = 0L; ++ + /** Data loader. */ + @GridToStringExclude + private IgniteDataStreamerImpl dataLdr; + + /** + * Default constructor for {@link java.io.Externalizable} support. + */ + public IgniteDataStreamerFuture() { + // No-op. + } + + /** + * @param ctx Context. + * @param dataLdr Data streamer. + */ + IgniteDataStreamerFuture(GridKernalContext ctx, IgniteDataStreamerImpl dataLdr) { + assert dataLdr != null; + + this.dataLdr = dataLdr; + } + + /** {@inheritDoc} */ + @Override public boolean cancel() throws IgniteCheckedException { + if (onCancelled()) { + dataLdr.closeEx(true); + + return true; + } + + return false; + } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(IgniteDataStreamerFuture.class, this, super.toString()); + } +}