IGNITE-389 - Merge branch ignite-sprint-5 into ignite-389
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f8910f6b Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f8910f6b Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f8910f6b Branch: refs/heads/ignite-1009-v4 Commit: f8910f6bcfe415b33558055a63445e20cacf7981 Parents: c527a04 541b1e0 Author: Alexey Goncharuk <agoncha...@gridgain.com> Authored: Mon Jun 1 15:04:05 2015 -0700 Committer: Alexey Goncharuk <agoncha...@gridgain.com> Committed: Mon Jun 1 15:04:05 2015 -0700 ---------------------------------------------------------------------- dev-tools/gradle/wrapper/gradle-wrapper.jar | Bin 51017 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 18 +- dev-tools/gradlew | 163 +- dev-tools/slurp.sh | 2 +- dev-tools/src/main/groovy/jiraslurp.groovy | 100 +- examples/pom.xml | 2 +- modules/aop/pom.xml | 2 +- modules/aws/pom.xml | 2 +- modules/clients/pom.xml | 2 +- modules/cloud/pom.xml | 2 +- modules/codegen/pom.xml | 2 +- modules/core/pom.xml | 2 +- .../src/main/java/org/apache/ignite/Ignite.java | 8 +- .../java/org/apache/ignite/IgniteServices.java | 5 +- .../main/java/org/apache/ignite/Ignition.java | 18 +- .../org/apache/ignite/cache/CacheMetrics.java | 187 +- .../org/apache/ignite/cluster/ClusterNode.java | 24 +- .../configuration/CacheConfiguration.java | 27 +- .../configuration/IgniteConfiguration.java | 10 +- .../org/apache/ignite/igfs/IgfsUserContext.java | 119 + .../igfs/secondary/IgfsSecondaryFileSystem.java | 7 + .../ignite/internal/ClusterMetricsSnapshot.java | 14 + .../internal/GridEventConsumeHandler.java | 100 +- .../ignite/internal/GridKernalContext.java | 5 + .../ignite/internal/GridKernalContextImpl.java | 5 + .../apache/ignite/internal/IgniteKernal.java | 27 +- .../org/apache/ignite/internal/IgnitionEx.java | 22 +- .../ignite/internal/MarshallerContextImpl.java | 2 +- .../internal/events/DiscoveryCustomEvent.java | 18 +- .../internal/igfs/common/IgfsMarshaller.java | 35 +- .../igfs/common/IgfsPathControlRequest.java | 22 + .../internal/managers/GridManagerAdapter.java | 59 +- .../managers/discovery/CustomEventListener.java | 31 + .../discovery/CustomMessageWrapper.java | 63 + .../discovery/DiscoveryCustomMessage.java | 48 + .../discovery/GridDiscoveryManager.java | 214 +- .../affinity/GridAffinityAssignmentCache.java | 32 + .../processors/cache/CacheMetricsImpl.java | 367 +- .../cache/CacheMetricsMXBeanImpl.java | 100 + .../processors/cache/CacheMetricsSnapshot.java | 380 +- .../cache/DynamicCacheChangeBatch.java | 20 +- .../cache/DynamicCacheDescriptor.java | 2 + .../processors/cache/GridCacheAdapter.java | 29 +- .../cache/GridCacheAffinityManager.java | 14 + .../cache/GridCacheConcurrentMap.java | 21 +- .../processors/cache/GridCacheContext.java | 6 +- .../processors/cache/GridCacheEntryEx.java | 6 + .../processors/cache/GridCacheGateway.java | 2 +- .../processors/cache/GridCacheIoManager.java | 8 +- .../processors/cache/GridCacheMapEntry.java | 5 + .../processors/cache/GridCacheMvccManager.java | 32 +- .../GridCachePartitionExchangeManager.java | 71 +- .../processors/cache/GridCachePreloader.java | 6 +- .../cache/GridCachePreloaderAdapter.java | 11 +- .../processors/cache/GridCacheProcessor.java | 74 +- .../processors/cache/GridCacheProxyImpl.java | 12 + .../cache/GridCacheSharedContext.java | 1 + .../processors/cache/GridCacheSwapManager.java | 118 +- .../processors/cache/GridCacheUtils.java | 234 +- .../processors/cache/IgniteInternalCache.java | 5 + .../cache/affinity/GridCacheAffinityImpl.java | 10 +- .../CacheDataStructuresManager.java | 2 +- .../distributed/GridDistributedCacheEntry.java | 7 - .../distributed/GridDistributedTxMapping.java | 17 + .../dht/GridClientPartitionTopology.java | 8 +- .../dht/GridDhtAssignmentFetchFuture.java | 4 +- .../distributed/dht/GridDhtCacheAdapter.java | 27 +- .../distributed/dht/GridDhtCacheEntry.java | 6 +- .../distributed/dht/GridDhtLockFuture.java | 10 +- .../dht/GridDhtPartitionTopologyImpl.java | 22 +- .../dht/GridDhtTransactionalCacheAdapter.java | 224 +- .../distributed/dht/GridDhtTxLocalAdapter.java | 8 +- .../distributed/dht/GridDhtTxPrepareFuture.java | 3 +- .../dht/atomic/GridDhtAtomicCache.java | 18 +- .../dht/atomic/GridDhtAtomicUpdateFuture.java | 10 +- .../dht/atomic/GridNearAtomicUpdateFuture.java | 78 +- .../dht/atomic/GridNearAtomicUpdateRequest.java | 112 +- .../dht/colocated/GridDhtColocatedCache.java | 12 +- .../colocated/GridDhtColocatedLockFuture.java | 213 +- .../dht/preloader/GridDhtForceKeysFuture.java | 4 +- .../preloader/GridDhtPartitionDemandPool.java | 26 +- .../dht/preloader/GridDhtPartitionMap.java | 2 +- .../preloader/GridDhtPartitionSupplyPool.java | 29 +- .../GridDhtPartitionsExchangeFuture.java | 313 +- .../preloader/GridDhtPartitionsFullMessage.java | 4 +- .../GridDhtPartitionsSingleMessage.java | 33 +- .../dht/preloader/GridDhtPreloader.java | 28 +- .../preloader/GridDhtPreloaderAssignments.java | 3 +- .../distributed/near/GridNearAtomicCache.java | 5 + .../distributed/near/GridNearCacheAdapter.java | 2 +- .../distributed/near/GridNearGetFuture.java | 2 +- .../distributed/near/GridNearLockFuture.java | 271 +- .../distributed/near/GridNearLockRequest.java | 68 +- .../distributed/near/GridNearLockResponse.java | 48 +- .../near/GridNearOptimisticTxPrepareFuture.java | 83 +- .../GridNearPessimisticTxPrepareFuture.java | 5 +- .../near/GridNearTransactionalCache.java | 4 +- .../cache/distributed/near/GridNearTxLocal.java | 43 +- .../near/GridNearTxPrepareRequest.java | 72 +- .../near/GridNearTxPrepareResponse.java | 70 +- .../processors/cache/local/GridLocalCache.java | 6 +- .../local/atomic/GridLocalAtomicCache.java | 6 +- .../cache/query/GridCacheQueryAdapter.java | 7 +- .../cache/query/GridCacheQueryErrorFuture.java | 2 + .../cache/query/GridCacheQueryManager.java | 2 +- .../continuous/CacheContinuousQueryManager.java | 28 +- .../cache/transactions/IgniteInternalTx.java | 5 + .../cache/transactions/IgniteTxAdapter.java | 15 +- .../cache/transactions/IgniteTxHandler.java | 148 +- .../cacheobject/IgniteCacheObjectProcessor.java | 5 +- .../IgniteCacheObjectProcessorImpl.java | 2 +- .../continuous/AbstractContinuousMessage.java | 54 + .../continuous/GridContinuousMessageType.java | 12 - .../continuous/GridContinuousProcessor.java | 836 +-- .../processors/continuous/StartRequestData.java | 267 + .../StartRoutineAckDiscoveryMessage.java | 63 + .../StartRoutineDiscoveryMessage.java | 85 + .../StopRoutineAckDiscoveryMessage.java | 49 + .../continuous/StopRoutineDiscoveryMessage.java | 49 + .../datastreamer/DataStreamerImpl.java | 2 + .../internal/processors/hadoop/HadoopJob.java | 2 +- .../ignite/internal/processors/igfs/IgfsEx.java | 8 +- .../internal/processors/igfs/IgfsImpl.java | 8 +- .../processors/igfs/IgfsIpcHandler.java | 184 +- .../igfs/IgfsSecondaryFileSystemImpl.java | 9 +- .../internal/processors/igfs/IgfsServer.java | 4 +- .../internal/processors/igfs/IgfsUtils.java | 16 + .../service/GridServiceProcessor.java | 121 +- .../ignite/internal/util/GridJavaProcess.java | 30 +- .../internal/util/future/GridFutureAdapter.java | 4 +- .../shmem/IpcSharedMemoryServerEndpoint.java | 2 +- .../ignite/mxbean/CacheMetricsMXBean.java | 80 + .../apache/ignite/plugin/PluginProvider.java | 26 +- .../org/apache/ignite/services/Service.java | 5 +- .../org/apache/ignite/spi/IgniteSpiAdapter.java | 37 +- .../org/apache/ignite/spi/IgniteSpiContext.java | 47 - .../communication/tcp/TcpCommunicationSpi.java | 2 +- .../ignite/spi/discovery/DiscoverySpi.java | 20 +- .../discovery/DiscoverySpiCustomMessage.java | 40 + .../spi/discovery/DiscoverySpiListener.java | 5 +- .../ignite/spi/discovery/tcp/ClientImpl.java | 1478 +++++ .../ignite/spi/discovery/tcp/ServerImpl.java | 4766 ++++++++++++++ .../discovery/tcp/TcpClientDiscoverySpi.java | 1264 ---- .../tcp/TcpClientDiscoverySpiMBean.java | 164 - .../spi/discovery/tcp/TcpDiscoveryImpl.java | 170 + .../spi/discovery/tcp/TcpDiscoverySpi.java | 5799 ++++-------------- .../discovery/tcp/TcpDiscoverySpiAdapter.java | 1160 ---- .../spi/discovery/tcp/TcpDiscoverySpiMBean.java | 9 + .../tcp/internal/TcpDiscoveryNode.java | 7 +- .../tcp/internal/TcpDiscoveryNodesRing.java | 2 +- .../TcpDiscoveryMulticastIpFinder.java | 10 +- .../messages/TcpDiscoveryAbstractMessage.java | 24 +- .../TcpDiscoveryClientHeartbeatMessage.java | 67 + .../messages/TcpDiscoveryClientPingRequest.java | 56 + .../TcpDiscoveryClientPingResponse.java | 67 + .../TcpDiscoveryCustomEventMessage.java | 41 +- .../messages/TcpDiscoveryHeartbeatMessage.java | 28 +- .../TcpDiscoveryNodeAddFinishedMessage.java | 43 + .../messages/TcpDiscoveryNodeAddedMessage.java | 2 +- .../tcp/messages/TcpDiscoveryPingRequest.java | 6 + .../tcp/messages/TcpDiscoveryPingResponse.java | 15 +- .../spi/swapspace/file/FileSwapSpaceSpi.java | 8 +- .../core/src/main/resources/ignite.properties | 2 +- .../affinity/IgniteClientNodeAffinityTest.java | 182 + .../ignite/internal/GridAffinitySelfTest.java | 1 + .../internal/GridDiscoveryEventSelfTest.java | 7 +- ...ridFailFastNodeFailureDetectionSelfTest.java | 7 +- .../internal/GridProjectionAbstractTest.java | 16 + .../GridProjectionForCachesSelfTest.java | 11 +- .../internal/GridReleaseTypeSelfTest.java | 77 +- .../apache/ignite/internal/GridSelfTest.java | 4 +- .../GridDiscoveryManagerAliveCacheSelfTest.java | 62 +- .../GridDiscoveryManagerAttributesSelfTest.java | 122 +- .../discovery/GridDiscoveryManagerSelfTest.java | 46 +- .../GridAffinityProcessorAbstractSelfTest.java | 1 + .../cache/CacheRemoveAllSelfTest.java | 2 +- .../GridCacheAbstractFailoverSelfTest.java | 2 +- .../cache/GridCacheAbstractFullApiSelfTest.java | 3 + .../GridCacheAbstractRemoveFailureTest.java | 23 + .../cache/GridCacheAbstractSelfTest.java | 2 +- .../GridCacheAtomicMessageCountSelfTest.java | 1 + ...GridCacheMixedPartitionExchangeSelfTest.java | 2 +- .../cache/GridCachePutAllFailoverSelfTest.java | 1 + .../GridCacheReturnValueTransferSelfTest.java | 3 + ...acheTcpClientDiscoveryMultiThreadedTest.java | 190 + .../processors/cache/GridCacheTestEntryEx.java | 4 + .../GridCacheVariableTopologySelfTest.java | 12 +- .../IgniteCacheAbstractStopBusySelfTest.java | 6 +- .../cache/IgniteCacheAbstractTest.java | 2 +- .../IgniteCacheConfigurationTemplateTest.java | 2 +- .../cache/IgniteCacheNearLockValueSelfTest.java | 3 + .../IgniteCacheP2pUnmarshallingErrorTest.java | 29 +- ...gniteCacheP2pUnmarshallingNearErrorTest.java | 13 +- .../IgniteCachePartitionMapUpdateTest.java | 226 + .../cache/IgniteDynamicCacheStartSelfTest.java | 20 +- .../IgniteDynamicClientCacheStartSelfTest.java | 283 + .../cache/IgniteSystemCacheOnClientTest.java | 97 + .../GridCacheQueueApiSelfAbstractTest.java | 4 +- .../IgniteClientDataStructuresAbstractTest.java | 283 + .../IgniteClientDataStructuresTest.java | 28 + ...IgniteClientDiscoveryDataStructuresTest.java | 28 + .../GridCacheClientModesAbstractSelfTest.java | 94 +- ...ientModesTcpClientDiscoveryAbstractTest.java | 168 + .../distributed/GridCacheMixedModeSelfTest.java | 3 + ...niteCacheClientNodeChangingTopologyTest.java | 1803 ++++++ .../IgniteCacheClientNodeConcurrentStart.java | 105 + ...teCacheClientNodePartitionsExchangeTest.java | 632 ++ .../dht/GridCacheClientOnlySelfTest.java | 60 +- .../GridCacheDhtClientRemoveFailureTest.java | 28 + .../dht/IgniteCacheMultiTxLockSelfTest.java | 47 +- ...cClientInvalidPartitionHandlingSelfTest.java | 29 + .../GridCacheAtomicClientRemoveFailureTest.java | 28 + ...eAtomicInvalidPartitionHandlingSelfTest.java | 23 +- ...unctionExcludeNeighborsAbstractSelfTest.java | 3 +- .../near/GridCacheAtomicNearOnlySelfTest.java | 32 - ...idCacheNearOnlyMultiNodeFullApiSelfTest.java | 2 + .../near/GridCacheNearOnlySelfTest.java | 63 +- .../near/GridCacheNearOnlyTopologySelfTest.java | 1 + ...ionedClientOnlyNoPrimaryFullApiSelfTest.java | 5 +- ...idCacheRendezvousAffinityClientSelfTest.java | 4 + .../GridCacheReplicatedClientOnlySelfTest.java | 43 - .../GridCacheReplicatedNearOnlySelfTest.java | 43 - .../GridCacheSyncReplicatedPreloadSelfTest.java | 1 - ...heNearOnlyLruNearEvictionPolicySelfTest.java | 25 +- ...CacheLocalOffHeapAndSwapMetricsSelfTest.java | 412 ++ ...ridCacheContinuousQueryAbstractSelfTest.java | 6 +- .../continuous/GridEventConsumeSelfTest.java | 93 +- .../DataStreamProcessorSelfTest.java | 1 + .../DataStreamerMultiThreadedSelfTest.java | 2 - .../igfs/IgfsClientCacheSelfTest.java | 3 +- .../processors/igfs/IgfsCommonAbstractTest.java | 10 - .../processors/igfs/IgfsOneClientNodeTest.java | 8 +- .../service/ClosureServiceClientsNodesTest.java | 251 + .../service/GridServiceClientNodeTest.java | 81 + .../OptimizedMarshallerNodeFailoverTest.java | 4 +- ...GridMessagingNoPeerClassLoadingSelfTest.java | 7 +- .../ignite/messaging/GridMessagingSelfTest.java | 13 +- .../discovery/AbstractDiscoverySelfTest.java | 8 +- ...pClientDiscoveryMarshallerCheckSelfTest.java | 76 + .../tcp/TcpClientDiscoverySelfTest.java | 700 --- .../tcp/TcpClientDiscoverySpiSelfTest.java | 1171 ++++ .../tcp/TcpDiscoveryConcurrentStartTest.java | 61 +- .../tcp/TcpDiscoveryMultiThreadedTest.java | 18 +- .../spi/discovery/tcp/TcpDiscoverySelfTest.java | 2 +- .../testframework/GridSpiTestContext.java | 25 +- .../ignite/testframework/GridTestUtils.java | 15 + .../testframework/junits/GridAbstractTest.java | 52 +- .../junits/common/GridCommonAbstractTest.java | 59 +- .../ignite/testsuites/IgniteBasicTestSuite.java | 4 +- .../IgniteCacheDataStructuresSelfTestSuite.java | 3 + .../IgniteCacheFailoverTestSuite.java | 4 +- .../IgniteCacheMetricsSelfTestSuite.java | 1 + .../IgniteCacheNearOnlySelfTestSuite.java | 16 +- ...gniteCacheP2pUnmarshallingErrorTestSuit.java | 41 - ...niteCacheP2pUnmarshallingErrorTestSuite.java | 41 + .../IgniteCacheTcpClientDiscoveryTestSuite.java | 47 + .../ignite/testsuites/IgniteCacheTestSuite.java | 4 + .../testsuites/IgniteCacheTestSuite2.java | 11 +- .../testsuites/IgniteCacheTestSuite4.java | 2 + .../testsuites/IgniteKernalSelfTestSuite.java | 7 +- .../IgniteSpiDiscoverySelfTestSuite.java | 3 +- modules/extdata/p2p/pom.xml | 2 +- modules/extdata/uri/pom.xml | 2 +- modules/gce/pom.xml | 2 +- modules/geospatial/pom.xml | 2 +- modules/hadoop/pom.xml | 2 +- .../fs/IgniteHadoopIgfsSecondaryFileSystem.java | 165 +- .../hadoop/fs/v1/IgniteHadoopFileSystem.java | 107 +- .../hadoop/fs/v2/IgniteHadoopFileSystem.java | 32 +- .../internal/processors/hadoop/HadoopUtils.java | 10 +- .../hadoop/SecondaryFileSystemProvider.java | 53 +- .../hadoop/fs/HadoopDistributedFileSystem.java | 91 - .../hadoop/fs/HadoopFileSystemsUtils.java | 17 - .../hadoop/fs/HadoopLazyConcurrentMap.java | 204 + .../processors/hadoop/igfs/HadoopIgfsEx.java | 6 + .../hadoop/igfs/HadoopIgfsInProc.java | 170 +- .../processors/hadoop/igfs/HadoopIgfsIpcIo.java | 2 +- .../hadoop/igfs/HadoopIgfsOutProc.java | 33 +- .../hadoop/igfs/HadoopIgfsWrapper.java | 19 +- .../hadoop/v2/HadoopV2TaskContext.java | 4 +- .../HadoopIgfs20FileSystemAbstractSelfTest.java | 56 +- ...oopSecondaryFileSystemConfigurationTest.java | 4 +- .../igfs/IgfsNearOnlyMultiNodeSelfTest.java | 5 +- .../IgniteHadoopFileSystemAbstractSelfTest.java | 63 +- .../IgniteHadoopFileSystemClientSelfTest.java | 2 +- .../IgniteHadoopFileSystemIpcCacheSelfTest.java | 2 + .../hadoop/HadoopFileSystemsTest.java | 23 +- .../collections/HadoopSkipListSelfTest.java | 4 +- modules/hibernate/pom.xml | 2 +- modules/indexing/pom.xml | 2 +- .../query/h2/sql/GridSqlQuerySplitter.java | 4 + .../cache/IgniteCacheAbstractQuerySelfTest.java | 6 +- ...niteCacheP2pUnmarshallingQueryErrorTest.java | 3 +- .../query/h2/sql/BaseH2CompareQueryTest.java | 16 + modules/jcl/pom.xml | 2 +- modules/jta/pom.xml | 2 +- modules/log4j/pom.xml | 2 +- modules/mesos/README.txt | 28 + modules/mesos/licenses/apache-2.0.txt | 202 + modules/mesos/licenses/jetty-epl-license.txt | 69 + modules/mesos/pom.xml | 101 + .../apache/ignite/mesos/ClusterProperties.java | 519 ++ .../apache/ignite/mesos/IgniteFramework.java | 119 + .../apache/ignite/mesos/IgniteScheduler.java | 361 ++ .../org/apache/ignite/mesos/IgniteTask.java | 86 + .../org/apache/ignite/mesos/package-info.java | 22 + .../ignite/mesos/resource/IgniteProvider.java | 234 + .../ignite/mesos/resource/JettyServer.java | 61 + .../ignite/mesos/resource/ResourceHandler.java | 142 + .../ignite/mesos/resource/ResourceProvider.java | 120 + .../ignite/mesos/resource/package-info.java | 22 + .../main/resources/ignite-default-config.xml | 35 + .../org/apache/ignite/IgniteMesosTestSuite.java | 38 + .../ignite/mesos/IgniteSchedulerSelfTest.java | 464 ++ modules/rest-http/pom.xml | 2 +- modules/scalar/pom.xml | 2 +- modules/schedule/pom.xml | 2 +- modules/schema-import/pom.xml | 2 +- modules/slf4j/pom.xml | 2 +- modules/spring/pom.xml | 2 +- modules/ssh/pom.xml | 2 +- modules/tools/pom.xml | 2 +- modules/urideploy/pom.xml | 2 +- .../licenses/jcraft-revised-bsd.txt | 28 - modules/visor-console/pom.xml | 2 +- modules/visor-plugins/pom.xml | 2 +- modules/web/pom.xml | 2 +- modules/yardstick/pom.xml | 2 +- parent/pom.xml | 4 + pom.xml | 15 +- scripts/git-format-patch.sh | 14 +- scripts/git-patch-prop.sh | 2 +- 332 files changed, 23238 insertions(+), 11214 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f8910f6b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f8910f6b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f8910f6b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java index 3c4c7d4,3065a2f..b61e4f0 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java @@@ -2633,9 -2637,9 +2653,9 @@@ public class GridCacheProcessor extend req.clientStartOnly(true); - F.first(initiateCacheChanges(F.asList(req))).get(); + F.first(initiateCacheChanges(F.asList(req), false)).get(); - IgniteCache cache = jCacheProxies.get(masked); + IgniteCacheProxy cache = jCacheProxies.get(masked); if (cache == null && failIfNotStarted) throw new IllegalArgumentException("Cache is not started: " + cacheName); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f8910f6b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f8910f6b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryAdapter.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryAdapter.java index 2f32faa,fab490f..6fc6436 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryAdapter.java @@@ -498,21 -469,17 +498,26 @@@ public class GridCacheQueryAdapter<T> i * @param prj Projection (optional). * @return Collection of data nodes in provided projection (if any). */ - private static Collection<ClusterNode> nodes(final GridCacheContext<?, ?> cctx, @Nullable final ClusterGroup prj) { + private static Collection<ClusterNode> nodes(final GridCacheContext<?, ?> cctx, + @Nullable final ClusterGroup prj, @Nullable final Integer part) { assert cctx != null; + final AffinityTopologyVersion topVer = cctx.affinity().affinityTopologyVersion(); + + Collection<ClusterNode> affNodes = CU.affinityNodes(cctx); + - if (prj == null) ++ if (prj == null && part == null) + return affNodes; + + final Set<ClusterNode> owners = + part == null ? Collections.<ClusterNode>emptySet() : new HashSet<>(cctx.topology().owners(part, topVer)); + - return F.view(CU.allNodes(cctx), new P1<ClusterNode>() { + return F.view(affNodes, new P1<ClusterNode>() { @Override public boolean apply(ClusterNode n) { - return prj.node(n.id()) != null; + + return cctx.discovery().cacheAffinityNode(n, cctx.name()) && + (prj == null || prj.node(n.id()) != null) && + (part == null || owners.contains(n)); } }); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f8910f6b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java index 652d62e,32e9d63..6e71ba7 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java @@@ -769,138 -768,98 +769,138 @@@ public abstract class GridCacheQueryMan final boolean backups = qry.includeBackups() || cctx.isReplicated(); - final GridCloseableIteratorAdapter<IgniteBiTuple<K, V>> heapIt = new GridCloseableIteratorAdapter<IgniteBiTuple<K, V>>() { - private IgniteBiTuple<K, V> next; + final GridCloseableIteratorAdapter<IgniteBiTuple<K, V>> heapIt = + new GridCloseableIteratorAdapter<IgniteBiTuple<K, V>>() { + private IgniteBiTuple<K, V> next; - private IgniteCacheExpiryPolicy expiryPlc = cctx.cache().expiryPolicy(plc); + private IgniteCacheExpiryPolicy expiryPlc = cctx.cache().expiryPolicy(plc); - private Iterator<K> iter = backups ? prj.keySetx().iterator() : prj.primaryKeySet().iterator(); + private Iterator<K> iter; - { - advance(); - } + private GridDhtLocalPartition locPart; - @Override public boolean onHasNext() { - return next != null; - } + { + Integer part = qry.partition(); - @Override public IgniteBiTuple<K, V> onNext() { - if (next == null) - throw new NoSuchElementException(); + if (part == null || dht == null) - iter = backups ? prj.keySet().iterator() : prj.primaryKeySet().iterator(); ++ iter = backups ? prj.keySetx().iterator() : prj.primaryKeySet().iterator(); + else if (part < 0 || part >= cctx.affinity().partitions()) + iter = F.emptyIterator(); + else { + AffinityTopologyVersion topVer = cctx.affinity().affinityTopologyVersion(); - IgniteBiTuple<K, V> next0 = next; + locPart = dht.topology().localPartition(part, topVer, false); - advance(); + if (locPart == null || (locPart.state() != OWNING && locPart.state() != RENTING) || + !locPart.reserve()) + throw new GridDhtInvalidPartitionException(part, "Partition can't be reserved"); - return next0; - } + iter = new Iterator<K>() { + private Iterator<KeyCacheObject> iter0 = locPart.keySet().iterator(); - private void advance() { - IgniteBiTuple<K, V> next0 = null; - - while (iter.hasNext()) { - next0 = null; + @Override public boolean hasNext() { + return iter0.hasNext(); + } - K key = iter.next(); + @Override public K next() { + KeyCacheObject key = iter0.next(); - V val; + return key.value(cctx.cacheObjectContext(), false); + } - try { - val = prj.localPeek(key, CachePeekModes.ONHEAP_ONLY, expiryPlc); + @Override public void remove() { + iter0.remove(); + } + }; } - catch (IgniteCheckedException e) { - if (log.isDebugEnabled()) - log.debug("Failed to peek value: " + e); - val = null; - } + advance(); + } - if (dht != null && expiryPlc != null && expiryPlc.readyToFlush(100)) { - dht.sendTtlUpdateRequest(expiryPlc); + @Override public boolean onHasNext() { + return next != null; + } - expiryPlc = cctx.cache().expiryPolicy(plc); - } + @Override public IgniteBiTuple<K, V> onNext() { + if (next == null) + throw new NoSuchElementException(); - if (val != null) { - next0 = F.t(key, val); + IgniteBiTuple<K, V> next0 = next; - if (checkPredicate(next0)) - break; - else - next0 = null; - } + advance(); + + return next0; } - next = next0 != null ? - new IgniteBiTuple<>(next0.getKey(), next0.getValue()) : - null; + private void advance() { + IgniteBiTuple<K, V> next0 = null; - if (next == null) - sendTtlUpdate(); - } + while (iter.hasNext()) { + next0 = null; - @Override protected void onClose() { - sendTtlUpdate(); - } + K key = iter.next(); + + V val; - private void sendTtlUpdate() { - if (dht != null && expiryPlc != null) { - dht.sendTtlUpdateRequest(expiryPlc); + try { + val = prj.localPeek(key, CachePeekModes.ONHEAP_ONLY, expiryPlc); + } + catch (IgniteCheckedException e) { + if (log.isDebugEnabled()) + log.debug("Failed to peek value: " + e); + + val = null; + } - expiryPlc = null; + if (dht != null && expiryPlc != null && expiryPlc.readyToFlush(100)) { + dht.sendTtlUpdateRequest(expiryPlc); + + expiryPlc = cctx.cache().expiryPolicy(plc); + } + + if (val != null) { + next0 = F.t(key, val); + + if (checkPredicate(next0)) + break; + else + next0 = null; + } + } + + next = next0 != null ? + new IgniteBiTuple<>(next0.getKey(), next0.getValue()) : + null; + + if (next == null) + sendTtlUpdate(); } - } - private boolean checkPredicate(Map.Entry<K, V> e) { - if (keyValFilter != null) { - Map.Entry<K, V> e0 = (Map.Entry<K, V>)cctx.unwrapPortableIfNeeded(e, qry.keepPortable()); + @Override protected void onClose() { + sendTtlUpdate(); - return keyValFilter.apply(e0.getKey(), e0.getValue()); + if (locPart != null) + locPart.release(); } - return true; - } - }; + private void sendTtlUpdate() { + if (dht != null && expiryPlc != null) { + dht.sendTtlUpdateRequest(expiryPlc); + + expiryPlc = null; + } + } + + private boolean checkPredicate(Map.Entry<K, V> e) { + if (keyValFilter != null) { + Map.Entry<K, V> e0 = (Map.Entry<K, V>)cctx.unwrapPortableIfNeeded(e, qry.keepPortable()); + + return keyValFilter.apply(e0.getKey(), e0.getValue()); + } + + return true; + } + }; final GridIterator<IgniteBiTuple<K, V>> it; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f8910f6b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f8910f6b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f8910f6b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f8910f6b/pom.xml ----------------------------------------------------------------------