You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/07/03 14:57:34 UTC
[39/39] incubator-ignite git commit: ignite-747: returning only
verified nodes from top snapshot
ignite-747: returning only verified nodes from top snapshot
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/96960375
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/96960375
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/96960375
Branch: refs/heads/ignite-747
Commit: 9696037540220507cbad1151ff10706bdd615c85
Parents: 20204f0
Author: Denis Magda <dm...@gridgain.com>
Authored: Fri Jul 3 15:07:58 2015 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Fri Jul 3 15:07:58 2015 +0300
----------------------------------------------------------------------
.../managers/discovery/GridDiscoveryManager.java | 3 ++-
.../apache/ignite/internal/util/lang/GridFunc.java | 16 ++++++++++++++++
.../tcp/internal/TcpDiscoveryNodesRing.java | 8 +++++++-
3 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96960375/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index a8ce8ff..616e27c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -438,7 +438,8 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
// There is no race possible between history maintenance and concurrent discovery
// event notifications, since SPI notifies manager about all events from this listener.
if (verChanged) {
- DiscoCache cache = new DiscoCache(locNode, F.view(topSnapshot, F.remoteNodes(locNode.id())));
+ DiscoCache cache = new DiscoCache(locNode, F.view(topSnapshot,
+ F.remoteVerifiedNodes(locNode.id())));
discoCacheHist.put(nextTopVer, cache);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96960375/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java b/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java
index 6f544e0..d04190a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java
@@ -332,6 +332,22 @@ public class GridFunc {
}
/**
+ * Gets predicate that evaluates to {@code false} for given local node ID and unverified nodes - who hasn't
+ * received order ID from the coordinator.
+ *
+ * @param locNodeId Local node ID.
+ * @param <T> Type of the node.
+ * @return Return {@code false} for the given local node ID.
+ */
+ public static <T extends ClusterNode> IgnitePredicate<T> remoteVerifiedNodes(final UUID locNodeId) {
+ return new P1<T>() {
+ @Override public boolean apply(T n) {
+ return n.order() > 0 && !n.id().equals(locNodeId);
+ }
+ };
+ }
+
+ /**
* Creates new collection by removing duplicates from the given collection.
*
* @param c Collection to remove duplicates from.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96960375/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
index e9eaa1d..acb479d 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
@@ -34,7 +34,13 @@ public class TcpDiscoveryNodesRing {
/** Visible nodes filter. */
public static final IgnitePredicate<TcpDiscoveryNode> VISIBLE_NODES = new P1<TcpDiscoveryNode>() {
@Override public boolean apply(TcpDiscoveryNode node) {
- return node.visible();
+ if (node.visible()) {
+ assert node.order() > 0 : "Invalid node order: " + node;
+
+ return true;
+ }
+
+ return false;
}
};