Repository: ignite Updated Branches: refs/heads/ignite-5075-cacheStart b59733a39 -> 861b34b29
ignite-5075 Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/861b34b2 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/861b34b2 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/861b34b2 Branch: refs/heads/ignite-5075-cacheStart Commit: 861b34b29a9a32f63204e1fb73f43cdcb8b049fc Parents: b59733a Author: sboikov <[email protected]> Authored: Thu May 11 14:40:00 2017 +0300 Committer: sboikov <[email protected]> Committed: Thu May 11 14:40:00 2017 +0300 ---------------------------------------------------------------------- .../processors/cache/ClusterCachesInfo.java | 24 ++++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/861b34b2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java index 1afedf1..44d41f8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java @@ -82,6 +82,9 @@ class ClusterCachesInfo { private List<T2<DynamicCacheDescriptor, NearCacheConfiguration>> locJoinStartCaches; /** */ + private Map<UUID, CacheJoinNodeDiscoveryData> joiningNodesDiscoData = new HashMap<>(); + + /** */ private Map<UUID, CacheClientReconnectDiscoveryData> clientReconnectReqs; /** @@ -575,15 +578,10 @@ class ClusterCachesInfo { } } else { - for (DynamicCacheDescriptor desc : registeredCaches.values()) { - if (desc.startTopologyVersion() == null && node.id().equals(desc.receivedFrom())) - desc.startTopologyVersion(topVer); - } + CacheJoinNodeDiscoveryData discoData = joiningNodesDiscoData.remove(node.id()); - for (DynamicCacheDescriptor desc : registeredTemplates().values()) { - if (desc.startTopologyVersion() == null && node.id().equals(desc.receivedFrom())) - desc.startTopologyVersion(topVer); - } + if (discoData != null) + processJoiningNode(discoData, node.id(), topVer); } } } @@ -725,8 +723,12 @@ class ClusterCachesInfo { else processClientReconnectData((CacheClientReconnectDiscoveryData) joiningNodeData, data.joiningNodeId()); } - else if (joiningNodeData instanceof CacheJoinNodeDiscoveryData) - processJoiningNode((CacheJoinNodeDiscoveryData)joiningNodeData, data.joiningNodeId(), null); + else if (joiningNodeData instanceof CacheJoinNodeDiscoveryData) { + CacheJoinNodeDiscoveryData old = + joiningNodesDiscoData.put(data.joiningNodeId(), (CacheJoinNodeDiscoveryData)joiningNodeData); + + assert old == null : old; + } } } @@ -768,6 +770,7 @@ class ClusterCachesInfo { desc.staticallyConfigured(true); desc.receivedFrom(nodeId); + desc.startTopologyVersion(topVer); DynamicCacheDescriptor old = registeredTemplates.put(cfg.getName(), desc); @@ -788,6 +791,7 @@ class ClusterCachesInfo { desc.staticallyConfigured(true); desc.receivedFrom(nodeId); + desc.startTopologyVersion(topVer); DynamicCacheDescriptor old = registeredCaches.put(cfg.getName(), desc);
