Repository: ignite Updated Branches: refs/heads/ignite-7505 [created] 241171acd
GG-13361 Debug Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/1a4ceae2 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/1a4ceae2 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/1a4ceae2 Branch: refs/heads/ignite-7505 Commit: 1a4ceae2da25f773fb202f89237ae10a2e46b03e Parents: 326c19b Author: Alexey Goncharuk <[email protected]> Authored: Mon Jan 22 19:55:44 2018 +0300 Committer: Alexey Goncharuk <[email protected]> Committed: Mon Jan 22 19:55:44 2018 +0300 ---------------------------------------------------------------------- .../ignite/internal/managers/discovery/DiscoCache.java | 8 ++++++++ .../cache/distributed/dht/GridDhtPartitionTopologyImpl.java | 8 ++++++++ 2 files changed, 16 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1a4ceae2/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoCache.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoCache.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoCache.java index aa47168..f73f420 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoCache.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoCache.java @@ -213,6 +213,14 @@ public class DiscoCache { return baselineNodes; } + /** + * @param nodeId Node ID to check. + * @return {@code True} if baseline is not set or the node is in the baseline topology. + */ + public boolean baselineNode(UUID nodeId) { + return nodeIdToConsIdx == null || nodeIdToConsIdx.containsKey(nodeId); + } + /** @return All nodes. */ public List<ClusterNode> allNodes() { return allNodes; http://git-wip-us.apache.org/repos/asf/ignite/blob/1a4ceae2/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 9ccaecf..bc0d607 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 @@ -1390,6 +1390,8 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology { if (diffIds == null) diffFromAffinity.put(p, diffIds = U.newHashSet(3)); + assert !grp.persistenceEnabled() || discoCache.baselineNode(e.getKey()); + diffIds.add(e.getKey()); } else { @@ -1683,6 +1685,8 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology { if (diffIds == null) diffFromAffinity.put(p, diffIds = U.newHashSet(3)); + assert !grp.persistenceEnabled() || discoCache.baselineNode(parts.nodeId()); + if (diffIds.add(parts.nodeId())) changed = true; } @@ -1841,6 +1845,8 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology { if (ids == null) diffFromAffinity.put(p0, ids = U.newHashSet(3)); + assert !grp.persistenceEnabled() || discoCache.baselineNode(nodeId); + ids.add(nodeId); } else { @@ -2239,6 +2245,8 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology { if (diffIds == null) diffFromAffinity.put(p, diffIds = U.newHashSet(3)); + assert !grp.persistenceEnabled() || discoCache.baselineNode(ctx.localNodeId()); + diffIds.add(ctx.localNodeId()); } }
