Merge remote-tracking branch 'remotes/origin/ignite-5075-cacheStart' into 
ignite-5075

# Conflicts:
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAssignmentFetchFuture.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/aee10316
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/aee10316
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/aee10316

Branch: refs/heads/ignite-5075
Commit: aee103166463a38494d73507e70ee1c55bb9f134
Parents: 4afeba7
Author: sboikov <[email protected]>
Authored: Thu May 11 17:42:22 2017 +0300
Committer: sboikov <[email protected]>
Committed: Thu May 11 17:42:22 2017 +0300

----------------------------------------------------------------------
 .../processors/cache/CacheAffinitySharedManager.java        | 2 +-
 .../internal/processors/cache/CacheGroupInfrastructure.java | 9 +++++++++
 .../internal/processors/cache/GridCacheProcessor.java       | 1 +
 .../cache/distributed/dht/GridDhtPartitionTopologyImpl.java | 5 +++--
 4 files changed, 14 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/aee10316/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
index dc31ae9..f85d110 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
@@ -952,7 +952,7 @@ public class CacheAffinitySharedManager<K, V> extends 
GridCacheSharedManagerAdap
             if (grp.isLocal())
                 continue;
 
-            if (canCalculateAffinity(grp.affinity(), fut)) {
+            if (fut.cacheGroupStarting(grp.groupId()) || 
cctx.localNodeId().equals(grp.receivedFrom())) {
                 List<List<ClusterNode>> assignment = 
grp.affinity().calculate(fut.topologyVersion(),
                     fut.discoveryEvent(),
                     fut.discoCache());

http://git-wip-us.apache.org/repos/asf/ignite/blob/aee10316/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java
index 2a4e918..04b45a0 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java
@@ -105,6 +105,9 @@ public class CacheGroupInfrastructure {
     /** */
     private boolean storeCacheId;
 
+    /** */
+    private UUID rcvdFrom;
+
     /**
      * @param grpId Group ID.
      * @param ctx Context.
@@ -112,6 +115,7 @@ public class CacheGroupInfrastructure {
      */
     CacheGroupInfrastructure(GridCacheSharedContext ctx,
         int grpId,
+        UUID rcvdFrom,
         CacheType cacheType,
         CacheConfiguration ccfg,
         boolean affNode,
@@ -124,6 +128,7 @@ public class CacheGroupInfrastructure {
         assert ccfg != null;
 
         this.grpId = grpId;
+        this.rcvdFrom = rcvdFrom;
         this.cacheType = cacheType;
         this.ctx = ctx;
         this.ccfg = ccfg;
@@ -143,6 +148,10 @@ public class CacheGroupInfrastructure {
         log = ctx.kernalContext().log(getClass());
     }
 
+    public UUID receivedFrom() {
+        return rcvdFrom;
+    }
+
     public boolean storeCacheId() {
         return storeCacheId;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/aee10316/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git 
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
index 63b29b8..be3b4fd 100644
--- 
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
@@ -1915,6 +1915,7 @@ public class GridCacheProcessor extends 
GridProcessorAdapter {
 
         CacheGroupInfrastructure grp = new CacheGroupInfrastructure(sharedCtx,
             desc.groupId(),
+            desc.receivedFrom(),
             cacheType,
             cfg,
             affNode,

http://git-wip-us.apache.org/repos/asf/ignite/blob/aee10316/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
index c75f05c..9168d7f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
@@ -401,9 +401,10 @@ public class GridDhtPartitionTopologyImpl implements 
GridDhtPartitionTopology {
         int num = grp.affinity().partitions();
 
         if (grp.rebalanceEnabled()) {
-            boolean added = 
exchId.topologyVersion().equals(grp.localStartVersion());
+            boolean added = exchFut.cacheGroupStarting(grp.groupId()) ||
+                (exchId.isJoined() && 
exchId.nodeId().equals(grp.receivedFrom()));
 
-            boolean first = (loc.equals(oldest) && 
loc.id().equals(exchId.nodeId()) && exchId.isJoined()) || added;
+            boolean first = added || (loc.equals(oldest) && 
loc.id().equals(exchId.nodeId()) && exchId.isJoined());
 
             if (first) {
                 assert exchId.isJoined() || added;

Reply via email to