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 2018/08/01 20:52:27 UTC
ignite git commit: ignite-6467 Result of updateRebalanceVersion was
incorrect when diffFromAffinityVer did not match current affinity version.
Repository: ignite
Updated Branches:
refs/heads/master 891da2a5b -> 5fc18e6f1
ignite-6467 Result of updateRebalanceVersion was incorrect when diffFromAffinityVer did not match current affinity version.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5fc18e6f
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5fc18e6f
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5fc18e6f
Branch: refs/heads/master
Commit: 5fc18e6f1f81643747bcc8d5ef8ee4fe47116763
Parents: 891da2a
Author: sboikov <sb...@apache.org>
Authored: Wed Aug 1 23:51:19 2018 +0300
Committer: sboikov <sb...@apache.org>
Committed: Wed Aug 1 23:51:19 2018 +0300
----------------------------------------------------------------------
.../dht/GridDhtPartitionTopologyImpl.java | 23 +++++++++++++-------
1 file changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/5fc18e6f/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 aa43b2f..c5c574f 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
@@ -433,7 +433,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
}
}
- updateRebalanceVersion(affAssignment);
+ updateRebalanceVersion(affVer, affAssignment);
return needRefresh;
}
@@ -762,7 +762,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
if (node2part != null && node2part.valid())
changed |= checkEvictions(updateSeq, aff);
- updateRebalanceVersion(aff.assignment());
+ updateRebalanceVersion(aff.topologyVersion(), aff.assignment());
consistencyCheck();
@@ -1535,7 +1535,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
if (exchangeVer == null)
changed |= checkEvictions(updateSeq, aff);
- updateRebalanceVersion(aff.assignment());
+ updateRebalanceVersion(aff.topologyVersion(), aff.assignment());
}
if (partSizes != null)
@@ -1803,7 +1803,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
if (exchId == null)
changed |= checkEvictions(updateSeq, aff);
- updateRebalanceVersion(aff.assignment());
+ updateRebalanceVersion(aff.topologyVersion(), aff.assignment());
}
consistencyCheck();
@@ -1827,8 +1827,8 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
/** {@inheritDoc} */
@Override public void onExchangeDone(@Nullable GridDhtPartitionsExchangeFuture fut,
- AffinityAssignment assignment,
- boolean updateRebalanceVer) {
+ AffinityAssignment assignment,
+ boolean updateRebalanceVer) {
lock.writeLock().lock();
try {
@@ -1850,10 +1850,13 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
}
else
diffFromAffinityVer = readyTopVer;
+
+ if (!updateRebalanceVer)
+ updateRebalanceVersion(assignment.topologyVersion(), assignment.assignment());
}
if (updateRebalanceVer)
- updateRebalanceVersion(assignment.assignment());
+ updateRebalanceVersion(assignment.topologyVersion(), assignment.assignment());
}
finally {
lock.writeLock().unlock();
@@ -2748,9 +2751,13 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
}
/**
+ * @param affVer Affinity version.
* @param aff Affinity assignments.
*/
- private void updateRebalanceVersion(List<List<ClusterNode>> aff) {
+ private void updateRebalanceVersion(AffinityTopologyVersion affVer, List<List<ClusterNode>> aff) {
+ if (!grp.isReplicated() && !affVer.equals(diffFromAffinityVer))
+ return;
+
if (!rebalancedTopVer.equals(readyTopVer)) {
if (node2part == null || !node2part.valid())
return;