You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/11/30 13:10:07 UTC

[24/50] [abbrv] ignite git commit: Fixed IgniteTxRemoteState to properly process invalid partitions.

Fixed IgniteTxRemoteState to properly process invalid partitions.


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

Branch: refs/heads/ignite-843-rc1
Commit: 3080f61ae9ca1481d65f18f7a84f8bbc9d682f79
Parents: 722fe14
Author: sboikov <sb...@gridgain.com>
Authored: Fri Nov 27 15:24:32 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Nov 27 15:24:32 2015 +0300

----------------------------------------------------------------------
 .../cache/distributed/dht/GridDhtTxRemote.java  | 15 +-----------
 .../IgniteTxRemoteSingleStateImpl.java          | 16 ++++++-------
 .../cache/transactions/IgniteTxRemoteState.java |  5 ++++
 .../transactions/IgniteTxRemoteStateImpl.java   | 24 ++++++++++++++++++++
 4 files changed, 37 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/3080f61a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java
index e0929ad..85a5759 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxRemote.java
@@ -279,20 +279,7 @@ public class GridDhtTxRemote extends GridDistributedTxRemoteAdapter {
     @Override public void addInvalidPartition(GridCacheContext cacheCtx, int part) {
         super.addInvalidPartition(cacheCtx, part);
 
-        Map<IgniteTxKey, IgniteTxEntry> writeMap = txState.writeMap();
-
-        for (Iterator<IgniteTxEntry> it = writeMap.values().iterator(); it.hasNext();) {
-            IgniteTxEntry e = it.next();
-
-            GridCacheEntryEx cached = e.cached();
-
-            if (cached != null) {
-                if (cached.partition() == part)
-                    it.remove();
-            }
-            else if (cacheCtx.affinity().partition(e.key()) == part)
-                it.remove();
-        }
+        txState.invalidPartition(part);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/3080f61a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteSingleStateImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteSingleStateImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteSingleStateImpl.java
index 90af517..a68006b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteSingleStateImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteSingleStateImpl.java
@@ -65,15 +65,7 @@ public class IgniteTxRemoteSingleStateImpl extends IgniteTxRemoteStateAdapter {
 
     /** {@inheritDoc} */
     @Override public Set<IgniteTxKey> writeSet() {
-        if (entry != null) {
-            HashSet<IgniteTxKey> set = new HashSet<>(3, 0.75f);
-
-            set.add(entry.txKey());
-
-            return set;
-        }
-        else
-            return Collections.<IgniteTxKey>emptySet();
+        return entry != null ? Collections.singleton(entry.txKey()) : Collections.<IgniteTxKey>emptySet();
     }
 
     /** {@inheritDoc} */
@@ -113,6 +105,12 @@ public class IgniteTxRemoteSingleStateImpl extends IgniteTxRemoteStateAdapter {
     }
 
     /** {@inheritDoc} */
+    @Override public void invalidPartition(int part) {
+        if (entry != null && entry.context().affinity().partition(entry.key()) == part)
+            entry = null;
+    }
+
+    /** {@inheritDoc} */
     public String toString() {
         return S.toString(IgniteTxRemoteSingleStateImpl.class, this);
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/3080f61a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteState.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteState.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteState.java
index b8290a1..77fc97e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteState.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteState.java
@@ -31,4 +31,9 @@ public interface IgniteTxRemoteState extends IgniteTxState {
      * @param key Entry key.
      */
     public void clearEntry(IgniteTxKey key);
+
+    /**
+     * @param part Partition number.
+     */
+    public void invalidPartition(int part);
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/3080f61a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteStateImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteStateImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteStateImpl.java
index 32bc646..3335b44 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteStateImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteStateImpl.java
@@ -18,8 +18,12 @@
 package org.apache.ignite.internal.processors.cache.transactions;
 
 import java.util.Collection;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
+
+import org.apache.ignite.internal.processors.cache.GridCacheContext;
+import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
 import org.apache.ignite.internal.util.tostring.GridToStringInclude;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.S;
@@ -118,6 +122,26 @@ public class IgniteTxRemoteStateImpl extends IgniteTxRemoteStateAdapter {
     }
 
     /** {@inheritDoc} */
+    @Override public void invalidPartition(int part) {
+        if (writeMap != null) {
+            for (Iterator<IgniteTxEntry> it = writeMap.values().iterator(); it.hasNext();) {
+                IgniteTxEntry e = it.next();
+
+                GridCacheContext cacheCtx = e.context();
+
+                GridCacheEntryEx cached = e.cached();
+
+                if (cached != null) {
+                    if (cached.partition() == part)
+                        it.remove();
+                }
+                else if (cacheCtx.affinity().partition(e.key()) == part)
+                    it.remove();
+            }
+        }
+    }
+
+    /** {@inheritDoc} */
     public String toString() {
         return S.toString(IgniteTxRemoteStateImpl.class, this);
     }