Merge branch ignite-sprint-4 into ignite-80
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/235cec33 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/235cec33 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/235cec33 Branch: refs/heads/ignite-80 Commit: 235cec335f5a2410fa3767c834fa1e6644a098ec Parents: 9e32ae0 0a28058 Author: Alexey Goncharuk <agoncha...@gridgain.com> Authored: Thu Apr 23 16:27:49 2015 -0700 Committer: Alexey Goncharuk <agoncha...@gridgain.com> Committed: Thu Apr 23 16:27:49 2015 -0700 ---------------------------------------------------------------------- .../aop/aspectj/GridifyAspectJAspect.java | 2 +- .../aspectj/GridifySetToSetAspectJAspect.java | 2 +- .../aspectj/GridifySetToValueAspectJAspect.java | 2 +- .../aop/spring/GridifySetToSetSpringAspect.java | 2 +- .../spring/GridifySetToValueSpringAspect.java | 2 +- .../gridify/aop/spring/GridifySpringAspect.java | 2 +- .../apache/ignite/cache/CachingProvider.java | 3 + .../configuration/CacheConfiguration.java | 20 + .../ignite/configuration/TopologyValidator.java | 35 ++ .../ignite/events/CacheQueryExecutedEvent.java | 3 +- .../ignite/events/CacheQueryReadEvent.java | 3 +- .../apache/ignite/internal/IgniteKernal.java | 15 +- .../org/apache/ignite/internal/IgnitionEx.java | 6 + .../deployment/GridDeploymentClassLoader.java | 2 +- .../discovery/GridDiscoveryManager.java | 3 + .../eventstorage/GridEventStorageManager.java | 6 + .../cache/CacheStoreBalancingWrapper.java | 6 + .../processors/cache/GridCacheAdapter.java | 9 +- .../processors/cache/GridCacheEntryEx.java | 4 + .../processors/cache/GridCacheIoManager.java | 6 + .../processors/cache/GridCacheMapEntry.java | 20 +- .../GridCachePartitionExchangeManager.java | 5 +- .../processors/cache/GridCacheUtils.java | 6 +- .../processors/cache/IgniteCacheProxy.java | 15 +- .../GridDistributedCacheAdapter.java | 20 +- .../distributed/GridDistributedLockRequest.java | 99 +++- .../GridDistributedTxRemoteAdapter.java | 3 + .../distributed/dht/GridDhtCacheAdapter.java | 4 +- .../cache/distributed/dht/GridDhtGetFuture.java | 9 +- .../distributed/dht/GridDhtLockFuture.java | 20 +- .../distributed/dht/GridDhtLockRequest.java | 7 +- .../distributed/dht/GridDhtTopologyFuture.java | 8 + .../dht/GridDhtTransactionalCacheAdapter.java | 21 +- .../cache/distributed/dht/GridDhtTxLocal.java | 3 + .../distributed/dht/GridDhtTxLocalAdapter.java | 26 +- .../distributed/dht/GridDhtTxPrepareFuture.java | 6 +- .../cache/distributed/dht/GridDhtTxRemote.java | 7 +- .../dht/atomic/GridDhtAtomicCache.java | 41 +- .../dht/atomic/GridNearAtomicUpdateFuture.java | 27 +- .../dht/atomic/GridNearAtomicUpdateRequest.java | 33 +- .../dht/colocated/GridDhtColocatedCache.java | 36 +- .../colocated/GridDhtColocatedLockFuture.java | 38 +- .../GridDhtPartitionsExchangeFuture.java | 20 + .../distributed/near/GridNearAtomicCache.java | 5 +- .../distributed/near/GridNearCacheAdapter.java | 10 +- .../distributed/near/GridNearCacheEntry.java | 3 +- .../distributed/near/GridNearLockFuture.java | 37 +- .../distributed/near/GridNearLockRequest.java | 7 +- .../near/GridNearTransactionalCache.java | 25 +- .../near/GridNearTxFinishFuture.java | 3 + .../cache/distributed/near/GridNearTxLocal.java | 7 +- .../near/GridNearTxPrepareFuture.java | 20 + .../distributed/near/GridNearTxRemote.java | 7 +- .../local/atomic/GridLocalAtomicCache.java | 59 ++- .../query/GridCacheDistributedQueryManager.java | 3 + .../cache/query/GridCacheLocalQueryFuture.java | 3 + .../query/GridCacheQueryFutureAdapter.java | 3 + .../cache/query/GridCacheQueryManager.java | 9 + .../jdbc/GridCacheQueryJdbcMetadataTask.java | 3 + .../cache/transactions/IgniteTxAdapter.java | 7 +- .../cache/transactions/IgniteTxEntry.java | 74 ++- .../cache/transactions/IgniteTxHandler.java | 27 +- .../transactions/IgniteTxLocalAdapter.java | 106 ++-- .../cache/transactions/IgniteTxLocalEx.java | 4 +- .../closure/GridClosureProcessor.java | 16 +- .../processors/igfs/IgfsFileWorkerBatch.java | 3 + .../internal/processors/igfs/IgfsThread.java | 8 +- .../internal/processors/job/GridJobWorker.java | 9 + .../processors/query/GridQueryIndexing.java | 4 +- .../processors/query/GridQueryProcessor.java | 5 +- .../processors/rest/GridRestProcessor.java | 3 + .../service/GridServiceProcessor.java | 9 + .../processors/task/GridTaskWorker.java | 12 + .../timeout/GridTimeoutProcessor.java | 3 + .../ignite/internal/util/IgniteUtils.java | 2 +- .../util/ipc/loopback/IpcServerTcpEndpoint.java | 2 +- .../shmem/IpcSharedMemoryServerEndpoint.java | 2 +- .../ignite/internal/util/lang/GridFunc.java | 12 +- .../ignite/internal/util/nio/GridNioServer.java | 6 + .../apache/ignite/internal/util/typedef/X.java | 2 +- .../ignite/internal/util/worker/GridWorker.java | 3 + .../visor/misc/VisorResolveHostNameTask.java | 2 +- .../visor/node/VisorNodeDataCollectorJob.java | 9 + .../ignite/messaging/MessagingListenActor.java | 3 + .../org/apache/ignite/spi/IgniteSpiThread.java | 3 + .../spi/discovery/tcp/TcpDiscoverySpi.java | 3 + .../startup/cmdline/CommandLineStartup.java | 5 +- .../startup/cmdline/CommandLineTransformer.java | 3 + .../cache/GridCacheAbstractFullApiSelfTest.java | 518 ++++++++++++++++++- .../processors/cache/GridCacheTestEntryEx.java | 2 + .../cache/IgniteExcangeFutureHistoryTest.java | 74 +++ ...gniteTopologyValidatorAbstractCacheTest.java | 183 +++++++ ...iteTopologyValidatorAbstractTxCacheTest.java | 125 +++++ ...ValidatorNearPartitionedAtomicCacheTest.java | 30 ++ ...logyValidatorNearPartitionedTxCacheTest.java | 30 ++ ...logyValidatorPartitionedAtomicCacheTest.java | 49 ++ ...TopologyValidatorPartitionedTxCacheTest.java | 30 ++ ...ologyValidatorReplicatedAtomicCacheTest.java | 49 ++ ...eTopologyValidatorReplicatedTxCacheTest.java | 30 ++ .../GridCacheLocalIsolatedNodesSelfTest.java | 102 ++++ .../testframework/junits/GridAbstractTest.java | 2 +- .../ignite/testsuites/IgniteCacheTestSuite.java | 6 + .../IgniteTopologyValidatorTestSuit.java | 43 ++ .../processors/hadoop/HadoopDefaultJobInfo.java | 3 + .../processors/hadoop/igfs/HadoopIgfsIpcIo.java | 3 + .../hadoop/jobtracker/HadoopJobTracker.java | 5 +- .../hadoop/taskexecutor/HadoopRunnableTask.java | 3 + .../external/HadoopExternalTaskExecutor.java | 3 + .../processors/hadoop/v2/HadoopV2Job.java | 11 +- .../hadoop/v2/HadoopV2TaskContext.java | 9 + .../processors/query/h2/IgniteH2Indexing.java | 6 +- .../query/h2/twostep/GridMapQueryExecutor.java | 37 +- .../h2/twostep/GridReduceQueryExecutor.java | 34 +- .../h2/GridIndexingSpiAbstractSelfTest.java | 2 +- .../http/jetty/GridJettyRestHandler.java | 3 + .../ignite/schema/ui/SchemaImportApp.java | 8 +- .../ignite/internal/GridFactorySelfTest.java | 3 +- .../uri/GridUriDeploymentClassLoader.java | 4 +- 118 files changed, 2300 insertions(+), 265 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java index f10f241,b8668e6..a3c0f6c --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java @@@ -230,7 -288,10 +230,10 @@@ public class GridCacheIoManager extend "you should have all required classes in CLASSPATH on all nodes in topology) " + "[senderId=" + nodeId + ", err=" + X.cause(e, ClassNotFoundException.class).getMessage() + ']'); else - U.error(log, "Failed to process message [senderId=" + nodeId + ']', e); + U.error(log, "Failed to process message [senderId=" + nodeId + ", msg=" + cacheMsg + ']', e); + + if (e instanceof Error) + throw (Error)e; } finally { if (depEnabled) http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocal.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java index dc45c36,57d7224..bc29ebc --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java @@@ -137,9 -136,9 +137,12 @@@ public class GridNearAtomicUpdateFutur /** Task name hash. */ private final int taskNameHash; + /** Topology locked flag. Set if atomic update is performed inside a TX or explicit lock. */ + private boolean topLocked; + + /** Skip store flag. */ + private final boolean skipStore; + /** * @param cctx Cache context. * @param cache Cache instance. @@@ -435,12 -421,24 +441,21 @@@ GridDhtTopologyFuture fut = cctx.topologyVersionFuture(); - if (fut.isDone()) + if (fut.isDone()) { + if (!fut.isCacheTopologyValid(cctx)) { + onDone(new IgniteCheckedException("Failed to perform cache operation (cache topology is not valid): " + + cctx.name())); + + return; + } + topVer = fut.topologyVersion(); - - if (futVer == null) - // Assign future version in topology read lock before first exception may be thrown. - futVer = cctx.versions().next(topVer); + } else { if (waitTopFut) { fut.listen(new CI1<IgniteInternalFuture<AffinityTopologyVersion>>() { -- @Override public void apply(IgniteInternalFuture<AffinityTopologyVersion> t) { ++ @Override ++ public void apply(IgniteInternalFuture<AffinityTopologyVersion> t) { mapOnTopology(keys, remap, oldNodeId, waitTopFut); } }); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/235cec33/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java ----------------------------------------------------------------------