You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2015/08/21 11:21:14 UTC

[1/3] incubator-ignite git commit: ignite-1093

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-1093 bd317a016 -> a483f5220


ignite-1093


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

Branch: refs/heads/ignite-1093
Commit: c1f843248eb452d48ac33ff5f7bedeebc3b43b70
Parents: bd317a0
Author: Anton Vinogradov <vi...@gmail.com>
Authored: Thu Aug 20 19:18:28 2015 +0300
Committer: Anton Vinogradov <vi...@gmail.com>
Committed: Thu Aug 20 19:18:28 2015 +0300

----------------------------------------------------------------------
 .../dht/preloader/GridDhtPartitionDemander.java | 26 +++++++++-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |  2 +-
 ...ridCacheMassiveRebalancingAsyncSelfTest.java | 54 ++++++++++++++++++++
 ...GridCacheMassiveRebalancingSyncSelfTest.java |  4 +-
 4 files changed, 81 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c1f84324/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
index 6d024de..72d43c9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
@@ -24,6 +24,7 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.cluster.*;
+import org.apache.ignite.internal.managers.eventstorage.*;
 import org.apache.ignite.internal.processors.affinity.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.cache.distributed.dht.*;
@@ -701,6 +702,8 @@ public class GridDhtPartitionDemander {
 
         private ConcurrentHashMap8<UUID, Collection<Integer>> missed = new ConcurrentHashMap8<>();
 
+        private volatile GridLocalEventListener lsnr;
+
         /** Assignments. */
         private volatile GridDhtPreloaderAssignments assigns;
 
@@ -714,8 +717,17 @@ public class GridDhtPartitionDemander {
             return assigns != null ? assigns.topologyVersion() : null;
         }
 
-        void init(
-            GridDhtPreloaderAssignments assigns) {
+        void init(GridDhtPreloaderAssignments assigns) {
+            final SyncFuture fut = this;
+
+            lsnr = new GridLocalEventListener() {
+                @Override public void onEvent(Event evt) {
+                    fut.onCancel();
+                }
+            };
+
+            cctx.events().addListener(lsnr, EVT_NODE_FAILED);
+
             this.assigns = assigns;
         }
 
@@ -736,6 +748,14 @@ public class GridDhtPartitionDemander {
             return assigns.get(node);
         }
 
+        void onCancel() {
+            remaining.clear();
+
+            cancelled = true;
+
+            checkIsDone();
+        }
+
         void onCancel(UUID nodeId, AffinityTopologyVersion topVer) {
             if (isDone() || !topVer.equals(assigns.topologyVersion()))
                 return;
@@ -809,6 +829,8 @@ public class GridDhtPartitionDemander {
                 if (cctx.events().isRecordable(EVT_CACHE_REBALANCE_STOPPED) && !cctx.isReplicated())
                     preloadEvent(EVT_CACHE_REBALANCE_STOPPED, assigns.exchangeFuture().discoveryEvent());
 
+                cctx.events().removeListener(lsnr);
+
                 onDone(cancelled);
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c1f84324/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 18a540c..2546774 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -1878,7 +1878,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * <p>
      * This method is intended for test purposes only.
      */
-    void simulateNodeFailure() {
+    protected void simulateNodeFailure() {
         impl.simulateNodeFailure();
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c1f84324/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingAsyncSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingAsyncSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingAsyncSelfTest.java
index 8bcd6d1..ca564ed 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingAsyncSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingAsyncSelfTest.java
@@ -17,8 +17,13 @@
 
 package org.apache.ignite.internal.processors.cache.distributed.rebalancing;
 
+import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 
 /**
  *
@@ -32,6 +37,55 @@ public class GridCacheMassiveRebalancingAsyncSelfTest extends GridCacheMassiveRe
 
         cacheCfg.setRebalanceMode(CacheRebalanceMode.ASYNC);
 
+        iCfg.setDiscoverySpi(new FailableTcpDiscoverySpi());
+
+        ((TcpDiscoverySpi)iCfg.getDiscoverySpi()).setIpFinder(ipFinder);
+        ((TcpDiscoverySpi)iCfg.getDiscoverySpi()).setForceServerMode(true);
+
+        if (getTestGridName(20).equals(gridName))
+           spi =(FailableTcpDiscoverySpi)iCfg.getDiscoverySpi();
+
         return iCfg;
     }
+
+    public static class FailableTcpDiscoverySpi extends TcpDiscoverySpi{
+        public void fail(){
+            simulateNodeFailure();
+        }
+    }
+
+    private volatile FailableTcpDiscoverySpi spi;
+
+    /**
+     * @throws Exception
+     */
+    public void testNodeFailedAtRebalancing() throws Exception {
+        Ignite ignite = startGrid(0);
+
+        generateData(ignite);
+
+        log.info("Preloading started.");
+
+        startGrid(1);
+
+        IgniteInternalFuture f1 = ((GridCacheAdapter)grid(1).context().cache().internalCache(CACHE_NAME_DHT)).preloader().syncFuture();
+
+        f1.get();
+
+        startGrid(20);
+
+        U.sleep(500);
+
+        spi.fail();
+
+        U.sleep(500);
+
+        f1 = ((GridCacheAdapter)grid(1).context().cache().internalCache(CACHE_NAME_DHT)).preloader().syncFuture();
+        IgniteInternalFuture f0 = ((GridCacheAdapter)grid(0).context().cache().internalCache(CACHE_NAME_DHT)).preloader().syncFuture();
+
+        f1.get();
+        f0.get();
+
+        stopAllGrids();
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c1f84324/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingSyncSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingSyncSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingSyncSelfTest.java
index 91352ee..9606810 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingSyncSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingSyncSelfTest.java
@@ -37,9 +37,9 @@ import java.util.concurrent.atomic.*;
  */
 public class GridCacheMassiveRebalancingSyncSelfTest extends GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
-    private static int TEST_SIZE = 1_024_000;
+    private static int TEST_SIZE = 10_024_000;
 
     /** cache name. */
     protected static String CACHE_NAME_DHT = "cache";


[3/3] incubator-ignite git commit: ignite-1093

Posted by av...@apache.org.
ignite-1093


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

Branch: refs/heads/ignite-1093
Commit: a483f522042bda553492e240bc43e2691e19c691
Parents: c3d47ce
Author: Anton Vinogradov <vi...@gmail.com>
Authored: Fri Aug 21 12:09:15 2015 +0300
Committer: Anton Vinogradov <vi...@gmail.com>
Committed: Fri Aug 21 12:09:15 2015 +0300

----------------------------------------------------------------------
 .../dht/preloader/GridDhtPartitionDemander.java         | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a483f522/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
index 73e1fed..e11addc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
@@ -791,13 +791,15 @@ public class GridDhtPartitionDemander {
 
             Collection<Integer> parts = remaining.get(nodeId);
 
-            parts.remove(p);
+            if (parts!=null) {
+                parts.remove(p);
 
-            if (parts.isEmpty()) {
-                remaining.remove(nodeId);
+                if (parts.isEmpty()) {
+                    remaining.remove(nodeId);
 
-                if (log.isDebugEnabled())
-                    log.debug("Completed full partition iteration for node [nodeId=" + nodeId + ']');
+                    if (log.isDebugEnabled())
+                        log.debug("Completed full partition iteration for node [nodeId=" + nodeId + ']');
+                }
             }
 
             checkIsDone();


[2/3] incubator-ignite git commit: ignite-1093

Posted by av...@apache.org.
ignite-1093


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

Branch: refs/heads/ignite-1093
Commit: c3d47cedb4f377404a00f01b53e2e52b68a07987
Parents: c1f8432
Author: Anton Vinogradov <vi...@gmail.com>
Authored: Thu Aug 20 20:19:56 2015 +0300
Committer: Anton Vinogradov <vi...@gmail.com>
Committed: Thu Aug 20 20:19:56 2015 +0300

----------------------------------------------------------------------
 .../cache/distributed/dht/preloader/GridDhtPartitionDemander.java | 3 ++-
 .../rebalancing/GridCacheMassiveRebalancingSyncSelfTest.java      | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c3d47ced/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
index 72d43c9..73e1fed 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
@@ -829,7 +829,8 @@ public class GridDhtPartitionDemander {
                 if (cctx.events().isRecordable(EVT_CACHE_REBALANCE_STOPPED) && !cctx.isReplicated())
                     preloadEvent(EVT_CACHE_REBALANCE_STOPPED, assigns.exchangeFuture().discoveryEvent());
 
-                cctx.events().removeListener(lsnr);
+                if (lsnr != null)
+                    cctx.events().removeListener(lsnr);
 
                 onDone(cancelled);
             }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c3d47ced/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingSyncSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingSyncSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingSyncSelfTest.java
index 9606810..cc82e79 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingSyncSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheMassiveRebalancingSyncSelfTest.java
@@ -39,7 +39,7 @@ public class GridCacheMassiveRebalancingSyncSelfTest extends GridCommonAbstractT
     /** */
     protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
-    private static int TEST_SIZE = 10_024_000;
+    private static int TEST_SIZE = 1_024_000;
 
     /** cache name. */
     protected static String CACHE_NAME_DHT = "cache";