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/04/09 11:20:28 UTC

[01/12] incubator-ignite git commit: # ignite-694

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-sprint-3 5fcb07292 -> 8803e1798


# ignite-694


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

Branch: refs/heads/ignite-sprint-3
Commit: db754aba1fcf9d762dba9b96e5333afde7efa0dd
Parents: 6553549
Author: sboikov <sb...@gridgain.com>
Authored: Tue Apr 7 17:17:08 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Apr 7 17:17:08 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheIoManager.java    |  77 ++++++------
 .../GridCachePartitionExchangeManager.java      | 121 ++++++++++++++++++-
 .../IgniteCacheAtomicNodeJoinTest.java          |  44 +++++++
 .../IgniteCacheNodeJoinAbstractTest.java        | 109 +++++++++++++++++
 .../distributed/IgniteCacheTxNodeJoinTest.java  |  38 ++++++
 .../IgniteCacheFailoverTestSuite.java           |   4 +
 6 files changed, 356 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/db754aba/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
index 7bd6726..8805853 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
@@ -23,6 +23,7 @@ import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.cluster.*;
 import org.apache.ignite.internal.managers.communication.*;
 import org.apache.ignite.internal.managers.deployment.*;
+import org.apache.ignite.internal.processors.affinity.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.lang.*;
 import org.apache.ignite.internal.util.typedef.*;
@@ -76,7 +77,6 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
 
     /** Message listener. */
     private GridMessageListener lsnr = new GridMessageListener() {
-        @SuppressWarnings("unchecked")
         @Override public void onMessage(final UUID nodeId, Object msg) {
             if (log.isDebugEnabled())
                 log.debug("Received unordered cache communication message [nodeId=" + nodeId +
@@ -84,44 +84,20 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
 
             final GridCacheMessage cacheMsg = (GridCacheMessage)msg;
 
-            int msgIdx = cacheMsg.lookupIndex();
+            AffinityTopologyVersion locAffVer = cctx.exchange().topologyVersion();
+            AffinityTopologyVersion rmtAffVer = cacheMsg.topologyVersion();
 
-            IgniteBiInClosure<UUID, GridCacheMessage> c = null;
-
-            if (msgIdx >= 0) {
-                IgniteBiInClosure[] cacheClsHandlers = idxClsHandlers.get(cacheMsg.cacheId());
-
-                if (cacheClsHandlers != null)
-                    c = cacheClsHandlers[msgIdx];
-            }
-
-            if (c == null)
-                c = clsHandlers.get(new ListenerKey(cacheMsg.cacheId(), cacheMsg.getClass()));
-
-            if (c == null) {
-                if (log.isDebugEnabled())
-                    log.debug("Received message without registered handler (will ignore) [msg=" + msg +
-                        ", nodeId=" + nodeId + ']');
-
-                return;
-            }
-
-            long locTopVer = cctx.discovery().topologyVersion();
-            long rmtTopVer = cacheMsg.topologyVersion().topologyVersion();
-
-            if (locTopVer < rmtTopVer) {
+            if (locAffVer.compareTo(rmtAffVer) < 0) {
                 if (log.isDebugEnabled())
                     log.debug("Received message has higher topology version [msg=" + msg +
-                        ", locTopVer=" + locTopVer + ", rmtTopVer=" + rmtTopVer + ']');
-
-                IgniteInternalFuture<Long> topFut = cctx.discovery().topologyFuture(rmtTopVer);
+                        ", locTopVer=" + locAffVer + ", rmtTopVer=" + rmtAffVer + ']');
 
-                if (!topFut.isDone()) {
-                    final IgniteBiInClosure<UUID, GridCacheMessage> c0 = c;
+                IgniteInternalFuture<?> topFut = cctx.exchange().affinityReadyFuture(rmtAffVer);
 
-                    topFut.listen(new CI1<IgniteInternalFuture<Long>>() {
-                        @Override public void apply(IgniteInternalFuture<Long> t) {
-                            onMessage0(nodeId, cacheMsg, c0);
+                if (topFut != null && !topFut.isDone()) {
+                    topFut.listen(new CI1<IgniteInternalFuture<?>>() {
+                        @Override public void apply(IgniteInternalFuture<?> t) {
+                            handleMessage(nodeId, cacheMsg);
                         }
                     });
 
@@ -129,10 +105,41 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
                 }
             }
 
-            onMessage0(nodeId, cacheMsg, c);
+            handleMessage(nodeId, cacheMsg);
         }
     };
 
+    /**
+     * @param nodeId Sender node ID.
+     * @param cacheMsg Message.
+     */
+    @SuppressWarnings("unchecked")
+    private void handleMessage(UUID nodeId, GridCacheMessage cacheMsg) {
+        int msgIdx = cacheMsg.lookupIndex();
+
+        IgniteBiInClosure<UUID, GridCacheMessage> c = null;
+
+        if (msgIdx >= 0) {
+            IgniteBiInClosure[] cacheClsHandlers = idxClsHandlers.get(cacheMsg.cacheId());
+
+            if (cacheClsHandlers != null)
+                c = cacheClsHandlers[msgIdx];
+        }
+
+        if (c == null)
+            c = clsHandlers.get(new ListenerKey(cacheMsg.cacheId(), cacheMsg.getClass()));
+
+        if (c == null) {
+            if (log.isDebugEnabled())
+                log.debug("Received message without registered handler (will ignore) [msg=" + cacheMsg +
+                    ", nodeId=" + nodeId + ']');
+
+            return;
+        }
+
+        onMessage0(nodeId, cacheMsg, c);
+    }
+
     /** {@inheritDoc} */
     @Override public void start0() throws IgniteCheckedException {
         retryDelay = cctx.gridConfig().getNetworkSendRetryDelay();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/db754aba/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index d2d3531..e8e3ea1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -90,6 +90,14 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
     /** */
     private volatile GridDhtPartitionsExchangeFuture lastInitializedFut;
 
+    /** */
+    private final ConcurrentMap<AffinityTopologyVersion, AffinityReadyFuture> readyFuts = new ConcurrentHashMap8<>();
+
+    /** */
+    private final AtomicReference<AffinityTopologyVersion> readyTopVer =
+        new AtomicReference<>(AffinityTopologyVersion.NONE);
+
+
     /**
      * Partition map futures.
      * This set also contains already completed exchange futures to address race conditions when coordinator
@@ -311,6 +319,9 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
         for (GridDhtPartitionsExchangeFuture f : exchFuts.values())
             f.onDone(new IgniteInterruptedCheckedException("Grid is stopping: " + cctx.gridName()));
 
+        for (AffinityReadyFuture f : readyFuts.values())
+            f.onDone(new IgniteInterruptedCheckedException("Grid is stopping: " + cctx.gridName()));
+
         U.cancel(exchWorker);
 
         if (log.isDebugEnabled())
@@ -372,7 +383,10 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
      * @return Topology version.
      */
     public AffinityTopologyVersion topologyVersion() {
-        return lastInitializedFut.exchangeId().topologyVersion();
+        GridDhtPartitionsExchangeFuture lastInitializedFut0 = lastInitializedFut;
+
+        return lastInitializedFut0 != null
+            ? lastInitializedFut0.exchangeId().topologyVersion() : AffinityTopologyVersion.NONE;
     }
 
     /**
@@ -383,6 +397,49 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
     }
 
     /**
+     * @param ver Topology version.
+     * @return Future or {@code null} is future is already completed.
+     */
+    @Nullable IgniteInternalFuture<?> affinityReadyFuture(AffinityTopologyVersion ver) {
+        GridDhtPartitionsExchangeFuture lastInitializedFut0 = lastInitializedFut;
+
+        if (lastInitializedFut0 != null && lastInitializedFut0.topologyVersion().compareTo(ver) >= 0) {
+            if (log.isDebugEnabled())
+                log.debug("Return lastInitializedFut for topology ready future " +
+                    "[ver=" + ver + ", fut=" + lastInitializedFut0 + ']');
+
+            return lastInitializedFut0;
+        }
+
+        AffinityTopologyVersion topVer = readyTopVer.get();
+
+        if (topVer.compareTo(ver) >= 0) {
+            if (log.isDebugEnabled())
+                log.debug("Return finished future for topology ready future [ver=" + ver + ", topVer=" + topVer + ']');
+
+            return null;
+        }
+
+        GridFutureAdapter<AffinityTopologyVersion> fut = F.addIfAbsent(readyFuts, ver,
+            new AffinityReadyFuture(ver));
+
+        if (log.isDebugEnabled())
+            log.debug("Created topology ready future [ver=" + ver + ", fut=" + fut + ']');
+
+        topVer = readyTopVer.get();
+
+        if (topVer.compareTo(ver) >= 0) {
+            if (log.isDebugEnabled())
+                log.debug("Completing created topology ready future " +
+                    "[ver=" + topVer + ", topVer=" + topVer + ", fut=" + fut + ']');
+
+            fut.onDone(topVer);
+        }
+
+        return fut;
+    }
+
+    /**
      * @return {@code true} if entered to busy state.
      */
     private boolean enterBusy() {
@@ -642,8 +699,38 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
 
     /**
      * @param exchFut Exchange.
+     * @param err Error.
      */
-    public void onExchangeDone(GridDhtPartitionsExchangeFuture exchFut, Throwable err) {
+    public void onExchangeDone(GridDhtPartitionsExchangeFuture exchFut, @Nullable Throwable err) {
+        if (err == null) {
+            AffinityTopologyVersion topVer = exchFut.topologyVersion();
+
+            if (log.isDebugEnabled())
+                log.debug("Exchange done [topVer=" + topVer + ", fut=" + exchFut + ']');
+
+            while (true) {
+                AffinityTopologyVersion readyVer = readyTopVer.get();
+
+                if (readyVer.compareTo(topVer) >= 0)
+                    break;
+
+                if (readyTopVer.compareAndSet(readyVer, topVer))
+                    break;
+            }
+
+            for (Map.Entry<AffinityTopologyVersion, AffinityReadyFuture> entry : readyFuts.entrySet()) {
+                if (entry.getKey().compareTo(topVer) <= 0) {
+                    if (log.isDebugEnabled())
+                        log.debug("Completing created topology ready future " +
+                            "[ver=" + topVer + ", fut=" + entry.getValue() + ']');
+
+                    entry.getValue().onDone(topVer);
+                }
+            }
+        }
+        else if (log.isDebugEnabled())
+            log.debug("Exchange done with error [fut=" + exchFut + ", err=" + err + ']');
+
         ExchangeFutureSet exchFuts0 = exchFuts;
 
         if (exchFuts0 != null) {
@@ -1130,4 +1217,34 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
          */
         protected abstract void onMessage(ClusterNode node, M msg);
     }
+
+    /**
+     * Affinity ready future.
+     */
+    private class AffinityReadyFuture extends GridFutureAdapter<AffinityTopologyVersion> {
+        /** */
+        private static final long serialVersionUID = 0L;
+
+        /** */
+        private AffinityTopologyVersion topVer;
+
+        /**
+         * @param topVer Topology version.
+         */
+        private AffinityReadyFuture(AffinityTopologyVersion topVer) {
+            this.topVer = topVer;
+        }
+
+        /** {@inheritDoc} */
+        @Override public boolean onDone(AffinityTopologyVersion res, @Nullable Throwable err) {
+            assert res != null || err != null;
+
+            boolean done = super.onDone(res, err);
+
+            if (done)
+                readyFuts.remove(topVer, this);
+
+            return done;
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/db754aba/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheAtomicNodeJoinTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheAtomicNodeJoinTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheAtomicNodeJoinTest.java
new file mode 100644
index 0000000..c0818bd
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheAtomicNodeJoinTest.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed;
+
+import org.apache.ignite.cache.*;
+import org.apache.ignite.configuration.*;
+
+import static org.apache.ignite.cache.CacheAtomicWriteOrderMode.*;
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+
+/**
+ *
+ */
+public class IgniteCacheAtomicNodeJoinTest extends IgniteCacheNodeJoinAbstractTest {
+    /** {@inheritDoc} */
+    @Override protected CacheAtomicWriteOrderMode atomicWriteOrderMode() {
+        return PRIMARY;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected CacheAtomicityMode atomicityMode() {
+        return ATOMIC;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected NearCacheConfiguration nearConfiguration() {
+        return null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/db754aba/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheNodeJoinAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheNodeJoinAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheNodeJoinAbstractTest.java
new file mode 100644
index 0000000..bed83ec
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheNodeJoinAbstractTest.java
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed;
+
+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.testframework.*;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+import static org.apache.ignite.cache.CacheMode.*;
+
+/**
+ *
+ */
+public abstract class IgniteCacheNodeJoinAbstractTest extends IgniteCacheAbstractTest {
+    /** {@inheritDoc} */
+    @Override protected CacheMode cacheMode() {
+        return PARTITIONED;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected int gridCount() {
+        return 1;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected CacheConfiguration cacheConfiguration(String gridName) throws Exception {
+        CacheConfiguration cfg = super.cacheConfiguration(gridName);
+
+        cfg.setReadFromBackup(false); // Force remote 'get'.
+
+        return cfg;
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testGet() throws Exception {
+        final IgniteCache<Integer, Integer> cache = jcache(0);
+
+        final int KEYS = 1000;
+
+        Map<Integer, Integer> map = new HashMap<>();
+
+        for (int i = 0; i < KEYS; i++)
+            map.put(i, i);
+
+        for (int i = 0; i < 10; i++) {
+            log.info("Iteration: " + i);
+
+            cache.putAll(map);
+
+            final IgniteInternalFuture fut = GridTestUtils.runAsync(new Callable<Void>() {
+                @Override public Void call() throws Exception {
+                    startGrid(1);
+
+                    return null;
+                }
+            });
+
+            final AtomicBoolean stop = new AtomicBoolean();
+
+            GridTestUtils.runMultiThreaded(new Callable<Void>() {
+                @Override public Void call() throws Exception {
+                    while (!stop.get() && !fut.isDone()) {
+                        for (int key = 0; key < KEYS; key++) {
+                            assertNotNull(cache.get(key));
+
+                            if (key % 100 == 0 && fut.isDone())
+                                break;
+                        }
+                    }
+
+                    return null;
+                }
+            }, 10, "test-get");
+
+            try {
+                fut.get(60_000);
+            }
+            finally {
+                stop.set(true);
+            }
+
+            stopGrid(1);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/db754aba/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheTxNodeJoinTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheTxNodeJoinTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheTxNodeJoinTest.java
new file mode 100644
index 0000000..d250cd6
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheTxNodeJoinTest.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed;
+
+import org.apache.ignite.cache.*;
+import org.apache.ignite.configuration.*;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+
+/**
+ *
+ */
+public class IgniteCacheTxNodeJoinTest extends IgniteCacheNodeJoinAbstractTest {
+    /** {@inheritDoc} */
+    @Override protected CacheAtomicityMode atomicityMode() {
+        return TRANSACTIONAL;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected NearCacheConfiguration nearConfiguration() {
+        return null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/db754aba/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
index 9556235..da79c55 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
@@ -19,6 +19,7 @@ package org.apache.ignite.testsuites;
 
 import junit.framework.*;
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.distributed.*;
 import org.apache.ignite.internal.processors.cache.distributed.dht.*;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.*;
 import org.apache.ignite.internal.processors.cache.distributed.near.*;
@@ -56,6 +57,9 @@ public class IgniteCacheFailoverTestSuite extends TestSuite {
         //suite.addTestSuite(GridCacheColocatedFailoverSelfTest.class); TODO IGNITE-631.
         //suite.addTestSuite(GridCacheReplicatedFailoverSelfTest.class); TODO IGNITE-631.
 
+        suite.addTestSuite(IgniteCacheAtomicNodeJoinTest.class);
+        suite.addTestSuite(IgniteCacheTxNodeJoinTest.class);
+
         return suite;
     }
 }


[07/12] incubator-ignite git commit: # ignite-694

Posted by sb...@apache.org.
# ignite-694


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

Branch: refs/heads/ignite-sprint-3
Commit: 7f7c829c8f9a65016fcae4847c7991f5a6acc59d
Parents: 8474a0a
Author: sboikov <sb...@gridgain.com>
Authored: Wed Apr 8 15:47:35 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Apr 8 15:47:35 2015 +0300

----------------------------------------------------------------------
 .../cache/distributed/dht/GridDhtAffinityAssignmentRequest.java | 5 +++++
 .../distributed/dht/GridDhtAffinityAssignmentResponse.java      | 5 +++++
 2 files changed, 10 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7f7c829c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
index cdb52c7..2f3fa23 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
@@ -56,6 +56,11 @@ public class GridDhtAffinityAssignmentRequest extends GridCacheMessage {
         return true;
     }
 
+    /** {@inheritDoc} */
+    @Override public boolean partitionExchangeMessage() {
+        return true;
+    }
+
     /**
      * @return Requested topology version.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7f7c829c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
index 375d5fc..73b4a48 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
@@ -72,6 +72,11 @@ public class GridDhtAffinityAssignmentResponse extends GridCacheMessage {
         return true;
     }
 
+    /** {@inheritDoc} */
+    @Override public boolean partitionExchangeMessage() {
+        return true;
+    }
+
     /**
      * @return Topology version.
      */


[03/12] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-694

Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-694


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

Branch: refs/heads/ignite-sprint-3
Commit: 5042e3b7bcc1498992e536a8c6f0e7b21c5bbb0a
Parents: 93948ff cbab850
Author: sboikov <sb...@gridgain.com>
Authored: Wed Apr 8 09:21:38 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Apr 8 09:21:38 2015 +0300

----------------------------------------------------------------------
 .../dht/GridClientPartitionTopology.java        |   6 +-
 .../distributed/dht/GridDhtLockFuture.java      |  10 +-
 .../dht/GridDhtPartitionTopologyImpl.java       |   6 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |  49 +++++----
 .../distributed/dht/GridDhtTxPrepareFuture.java |   2 +-
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |  24 +++-
 .../communication/tcp/TcpCommunicationSpi.java  |  14 +--
 .../discovery/tcp/TcpClientDiscoverySpi.java    |  47 ++++----
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |  78 ++++++-------
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |   8 +-
 .../spi/swapspace/file/FileSwapSpaceSpi.java    |   4 +-
 .../resources/META-INF/classnames.properties    |  19 ++--
 .../cache/IgniteDynamicCacheStartSelfTest.java  |  23 ++++
 ...ePartitionedBasicStoreMultiNodeSelfTest.java | 110 ++-----------------
 .../GridAbstractCommunicationSelfTest.java      |   3 +-
 .../GridTcpCommunicationSpiAbstractTest.java    |   5 +-
 ...mmunicationSpiConcurrentConnectSelfTest.java |   3 +-
 ...cpCommunicationSpiMultithreadedSelfTest.java |   3 +-
 ...dTcpCommunicationSpiRecoveryAckSelfTest.java |   3 +-
 ...GridTcpCommunicationSpiRecoverySelfTest.java |   2 +-
 .../ignite/testsuites/IgniteCacheTestSuite.java |   3 +-
 parent/pom.xml                                  |   2 +-
 pom.xml                                         |   1 +
 23 files changed, 198 insertions(+), 227 deletions(-)
----------------------------------------------------------------------



[08/12] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-694

Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-694


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

Branch: refs/heads/ignite-sprint-3
Commit: 7908aea91ad23d04efd1e6bbbc0ae796e72c0880
Parents: 8474a0a 5e9addb
Author: sboikov <sb...@gridgain.com>
Authored: Thu Apr 9 09:02:56 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Apr 9 09:02:56 2015 +0300

----------------------------------------------------------------------
 .../apache/ignite/internal/IgniteKernal.java    |   7 +-
 .../org/apache/ignite/internal/IgnitionEx.java  | 171 +++-----
 .../cache/transactions/IgniteTxManager.java     |   6 +-
 .../ignite/internal/visor/cache/VisorCache.java |   2 +-
 .../cache/VisorCacheAggregatedMetrics.java      |  38 +-
 .../visor/cache/VisorCacheConfiguration.java    |  17 +-
 .../internal/visor/cache/VisorCacheMetrics.java |  53 ++-
 .../cache/VisorCacheMetricsCollectorTask.java   |  59 ++-
 .../visor/cache/VisorCacheStopTask.java         |  69 +++
 .../h2/twostep/GridReduceQueryExecutor.java     |   2 +-
 .../commands/cache/VisorCacheCommand.scala      | 423 +++++++++++--------
 .../commands/cache/VisorCacheStopCommand.scala  | 145 +++++++
 12 files changed, 657 insertions(+), 335 deletions(-)
----------------------------------------------------------------------



[05/12] incubator-ignite git commit: # ignite-694

Posted by sb...@apache.org.
# ignite-694


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

Branch: refs/heads/ignite-sprint-3
Commit: 327a1086d60b46c49fe3fbfc73af49c21f1238f4
Parents: 76d80f4
Author: sboikov <sb...@gridgain.com>
Authored: Wed Apr 8 12:13:37 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Apr 8 12:13:37 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheIoManager.java    | 44 +++++++++++++-------
 .../processors/cache/GridCacheMessage.java      |  7 ++++
 .../GridCachePartitionExchangeManager.java      | 12 +++++-
 .../GridDhtPartitionsAbstractMessage.java       | 15 ++++---
 4 files changed, 57 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/327a1086/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
index 09fe2e0..6fefdfd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
@@ -84,27 +84,43 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
 
             final GridCacheMessage cacheMsg = (GridCacheMessage)msg;
 
-            AffinityTopologyVersion locAffVer = cctx.exchange().topologyVersion();
-            AffinityTopologyVersion rmtAffVer = cacheMsg.topologyVersion();
+            IgniteInternalFuture<?> fut = null;
 
-            if (locAffVer.compareTo(rmtAffVer) < 0) {
-                if (log.isDebugEnabled())
-                    log.debug("Received message has higher topology version [msg=" + msg +
-                        ", locTopVer=" + locAffVer + ", rmtTopVer=" + rmtAffVer + ']');
+            if (cacheMsg.partitionExchangeMessage()) {
+                long locTopVer = cctx.discovery().topologyVersion();
+                long rmtTopVer = cacheMsg.topologyVersion().topologyVersion();
 
-                IgniteInternalFuture<?> topFut = cctx.exchange().affinityReadyFuture(rmtAffVer);
+                if (locTopVer < rmtTopVer) {
+                    if (log.isDebugEnabled())
+                        log.debug("Received message has higher topology version [msg=" + msg +
+                            ", locTopVer=" + locTopVer + ", rmtTopVer=" + rmtTopVer + ']');
 
-                if (topFut != null && !topFut.isDone()) {
-                    topFut.listen(new CI1<IgniteInternalFuture<?>>() {
-                        @Override public void apply(IgniteInternalFuture<?> t) {
-                            handleMessage(nodeId, cacheMsg);
-                        }
-                    });
+                    fut = cctx.discovery().topologyFuture(rmtTopVer);
+                }
+            }
+            else {
+                AffinityTopologyVersion locAffVer = cctx.exchange().readyAffinityVersion();
+                AffinityTopologyVersion rmtAffVer = cacheMsg.topologyVersion();
 
-                    return;
+                if (locAffVer.compareTo(rmtAffVer) < 0) {
+                    if (log.isDebugEnabled())
+                        log.debug("Received message has higher affinity topology version [msg=" + msg +
+                            ", locTopVer=" + locAffVer + ", rmtTopVer=" + rmtAffVer + ']');
+
+                    fut = cctx.exchange().affinityReadyFuture(rmtAffVer);
                 }
             }
 
+            if (fut != null && !fut.isDone()) {
+                fut.listen(new CI1<IgniteInternalFuture<?>>() {
+                    @Override public void apply(IgniteInternalFuture<?> t) {
+                        handleMessage(nodeId, cacheMsg);
+                    }
+                });
+
+                return;
+            }
+
             handleMessage(nodeId, cacheMsg);
         }
     };

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/327a1086/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java
index b9bce3e..fefd582 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java
@@ -86,6 +86,13 @@ public abstract class GridCacheMessage implements Message {
     }
 
     /**
+     * @return {@code True} if this message is partition exchange message.
+     */
+    public boolean partitionExchangeMessage() {
+        return false;
+    }
+
+    /**
      * @return {@code True} if class loading errors should be ignored, false otherwise.
      */
     public boolean ignoreClassErrors() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/327a1086/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index e8e3ea1..0955328 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -372,13 +372,15 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
 
     /**
      * @param cacheId Cache ID.
+     * @return Client partition topology.
      */
     public GridClientPartitionTopology clearClientTopology(int cacheId) {
         return clientTops.remove(cacheId);
     }
 
     /**
-     * Gets topology version of last completed partition exchange.
+     * Gets topology version of last partition exchange, it is possible that last partition exchange
+     * is not completed yet.
      *
      * @return Topology version.
      */
@@ -390,6 +392,13 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
     }
 
     /**
+     * @return Topology version of latest completed partition exchange.
+     */
+    public AffinityTopologyVersion readyAffinityVersion() {
+        return readyTopVer.get();
+    }
+
+    /**
      * @return Last completed topology future.
      */
     public GridDhtTopologyFuture lastTopologyFuture() {
@@ -796,7 +805,6 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
 
                     if (top != null)
                         updated |= top.update(null, entry.getValue()) != null;
-
                 }
 
                 if (updated)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/327a1086/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
index 6af0072..5a8616d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
@@ -46,11 +46,6 @@ abstract class GridDhtPartitionsAbstractMessage extends GridCacheMessage {
         // No-op.
     }
 
-    /** {@inheritDoc} */
-    @Override public boolean allowForStartup() {
-        return true;
-    }
-
     /**
      * @param exchId Exchange ID.
      * @param lastVer Last version.
@@ -60,6 +55,16 @@ abstract class GridDhtPartitionsAbstractMessage extends GridCacheMessage {
         this.lastVer = lastVer;
     }
 
+    /** {@inheritDoc} */
+    @Override public boolean allowForStartup() {
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean partitionExchangeMessage() {
+        return true;
+    }
+
     /**
      * @return Exchange ID.
      */


[04/12] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-694

Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-694


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

Branch: refs/heads/ignite-sprint-3
Commit: 76d80f4412ac08c224ad410e873d0c607f9d110d
Parents: 5042e3b 3f6beb3
Author: sboikov <sb...@gridgain.com>
Authored: Wed Apr 8 10:31:35 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Apr 8 10:31:35 2015 +0300

----------------------------------------------------------------------
 .../ignite/internal/processors/cache/GridCacheIoManager.java       | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/76d80f44/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
----------------------------------------------------------------------


[10/12] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-694

Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-694


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

Branch: refs/heads/ignite-sprint-3
Commit: 9eb3fceb17d7ef0e11370f0de65ad641860a8b53
Parents: 32aa57c 3e6da9c
Author: sboikov <sb...@gridgain.com>
Authored: Thu Apr 9 10:13:17 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Apr 9 10:13:17 2015 +0300

----------------------------------------------------------------------
 .../src/main/java/org/apache/ignite/Ignite.java |  11 +
 .../java/org/apache/ignite/IgniteCluster.java   |   9 +-
 .../ignite/cluster/ClusterStartNodeResult.java  |  46 +
 .../ignite/internal/ClusterMetricsSnapshot.java | 384 +++------
 .../apache/ignite/internal/IgniteKernal.java    |  30 +-
 .../cluster/ClusterStartNodeResultImpl.java     |  87 ++
 .../cluster/IgniteClusterAsyncImpl.java         |   5 +-
 .../internal/cluster/IgniteClusterImpl.java     |  37 +-
 .../cache/DynamicCacheChangeRequest.java        |   2 +-
 .../processors/cache/GridCacheProcessor.java    | 130 +--
 .../ignite/internal/util/lang/GridFunc.java     |  33 +
 .../util/nodestart/IgniteNodeCallable.java      |  30 -
 .../util/nodestart/IgniteSshHelper.java         |   2 +-
 .../util/nodestart/StartNodeCallable.java       |  30 +
 .../messages/TcpDiscoveryAbstractMessage.java   |  24 +-
 .../messages/TcpDiscoveryAuthFailedMessage.java |  25 +-
 .../TcpDiscoveryCheckFailedMessage.java         |  24 +-
 .../TcpDiscoveryClientReconnectMessage.java     |  30 +-
 .../TcpDiscoveryCustomEventMessage.java         |  23 +-
 .../messages/TcpDiscoveryDiscardMessage.java    |  24 +-
 .../TcpDiscoveryDuplicateIdMessage.java         |  24 +-
 .../messages/TcpDiscoveryHandshakeRequest.java  |   8 -
 .../messages/TcpDiscoveryHandshakeResponse.java |  22 -
 .../messages/TcpDiscoveryHeartbeatMessage.java  |  44 +-
 .../TcpDiscoveryJoinRequestMessage.java         |  28 +-
 .../TcpDiscoveryLoopbackProblemMessage.java     |  28 +-
 .../TcpDiscoveryNodeAddFinishedMessage.java     |  24 +-
 .../messages/TcpDiscoveryNodeAddedMessage.java  |  60 +-
 .../messages/TcpDiscoveryNodeFailedMessage.java |  28 +-
 .../messages/TcpDiscoveryNodeLeftMessage.java   |   8 -
 .../tcp/messages/TcpDiscoveryPingRequest.java   |  25 +-
 .../tcp/messages/TcpDiscoveryPingResponse.java  |  14 -
 .../TcpDiscoveryStatusCheckMessage.java         |  30 +-
 ...teCacheConfigurationDefaultTemplateTest.java | 111 +++
 ...eCacheConfigurationTemplateNotFoundTest.java | 114 ---
 .../IgniteCacheConfigurationTemplateTest.java   |  86 +-
 .../ignite/testframework/junits/IgniteMock.java |   5 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |   2 +-
 .../processors/query/h2/sql/GridSqlElement.java |   8 -
 .../processors/query/h2/sql/GridSqlQuery.java   | 183 ++++
 .../query/h2/sql/GridSqlQueryParser.java        |  97 ++-
 .../query/h2/sql/GridSqlQuerySplitter.java      | 111 ++-
 .../processors/query/h2/sql/GridSqlSelect.java  | 209 ++---
 .../query/h2/sql/GridSqlSubquery.java           |   8 +-
 .../processors/query/h2/sql/GridSqlUnion.java   | 134 +++
 .../h2/sql/AbstractH2CompareQueryTest.java      | 341 ++++++++
 .../query/h2/sql/BaseH2CompareQueryTest.java    | 823 ++++++++++++++++++
 .../query/h2/sql/GridQueryParsingTest.java      |  26 +-
 .../query/h2/sql/H2CompareBigQueryTest.java     | 707 +++++++++++++++
 .../query/h2/sql/IgniteVsH2QueryTest.java       | 860 -------------------
 .../IgniteCacheQuerySelfTestSuite.java          |   5 +-
 .../processors/query/h2/sql/bigQuery.sql        |  55 ++
 .../org/apache/ignite/IgniteSpringBean.java     |   7 +
 .../util/nodestart/IgniteNodeCallableImpl.java  | 308 -------
 .../util/nodestart/IgniteSshHelperImpl.java     |   4 +-
 .../util/nodestart/StartNodeCallableImpl.java   | 309 +++++++
 ...gniteProjectionStartStopRestartSelfTest.java | 261 +++---
 .../IgniteStartStopRestartTestSuite.java        |   1 +
 .../commands/start/VisorStartCommand.scala      |   4 +-
 59 files changed, 3636 insertions(+), 2472 deletions(-)
----------------------------------------------------------------------



[02/12] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-694

Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-694


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

Branch: refs/heads/ignite-sprint-3
Commit: 93948ff10d76dc4413e8eb4445da26fe5cfa8b33
Parents: db754ab 2444811
Author: sboikov <sb...@gridgain.com>
Authored: Tue Apr 7 17:22:07 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Apr 7 17:22:07 2015 +0300

----------------------------------------------------------------------
 .../eviction/fifo/GridCacheFifoBatchEvictionPolicySelfTest.java     | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------



[09/12] incubator-ignite git commit: Merge remote-tracking branch 'origin/ignite-694' into ignite-694

Posted by sb...@apache.org.
Merge remote-tracking branch 'origin/ignite-694' into ignite-694


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

Branch: refs/heads/ignite-sprint-3
Commit: 32aa57c5875cc4bc07ef9b3bc3fa61a8985ea31d
Parents: 7908aea 7f7c829
Author: sboikov <sb...@gridgain.com>
Authored: Thu Apr 9 09:03:39 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Apr 9 09:03:39 2015 +0300

----------------------------------------------------------------------
 .../cache/distributed/dht/GridDhtAffinityAssignmentRequest.java | 5 +++++
 .../distributed/dht/GridDhtAffinityAssignmentResponse.java      | 5 +++++
 2 files changed, 10 insertions(+)
----------------------------------------------------------------------



[12/12] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-694' into ignite-sprint-3

Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-694' into ignite-sprint-3


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

Branch: refs/heads/ignite-sprint-3
Commit: 8803e17981fac145c94780220eff18093376df9f
Parents: 5fcb072 998d1fa
Author: sboikov <sb...@gridgain.com>
Authored: Thu Apr 9 12:19:25 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Apr 9 12:19:25 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheIoManager.java    |  87 +++++++-----
 .../processors/cache/GridCacheMessage.java      |   7 +
 .../GridCachePartitionExchangeManager.java      | 136 ++++++++++++++++++-
 .../dht/GridDhtAffinityAssignmentRequest.java   |   5 +
 .../dht/GridDhtAffinityAssignmentResponse.java  |   5 +
 .../GridDhtPartitionsAbstractMessage.java       |  15 +-
 .../IgniteCacheAtomicNodeJoinTest.java          |  44 ++++++
 .../IgniteCacheNodeJoinAbstractTest.java        | 109 +++++++++++++++
 .../distributed/IgniteCacheTxNodeJoinTest.java  |  38 ++++++
 .../IgniteCacheFailoverTestSuite.java           |   4 +
 10 files changed, 409 insertions(+), 41 deletions(-)
----------------------------------------------------------------------



[06/12] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-694

Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-3' into ignite-694


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

Branch: refs/heads/ignite-sprint-3
Commit: 8474a0a8d3f8ebd47049724700222d2322daa37d
Parents: 327a108 682dcd1
Author: sboikov <sb...@gridgain.com>
Authored: Wed Apr 8 12:16:39 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Apr 8 12:16:39 2015 +0300

----------------------------------------------------------------------
 .../src/main/java/org/apache/ignite/Ignite.java |  15 +
 .../apache/ignite/internal/IgniteKernal.java    |  37 ++
 .../internal/managers/GridManagerAdapter.java   |  34 +-
 .../cache/DynamicCacheChangeRequest.java        |  17 +
 .../cache/DynamicCacheDescriptor.java           |  17 +-
 .../processors/cache/GridCacheProcessor.java    | 349 +++++++++++++++---
 .../GridDhtPartitionsExchangeFuture.java        |   1 +
 ...eCacheConfigurationTemplateNotFoundTest.java | 114 ++++++
 .../IgniteCacheConfigurationTemplateTest.java   | 364 +++++++++++++++++++
 .../ignite/testframework/junits/IgniteMock.java |  10 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |   2 +
 .../org/apache/ignite/IgniteSpringBean.java     |  14 +
 .../commands/cache/VisorCacheClearCommand.scala |   3 +-
 .../scala/org/apache/ignite/visor/visor.scala   |  12 +-
 14 files changed, 927 insertions(+), 62 deletions(-)
----------------------------------------------------------------------



[11/12] incubator-ignite git commit: # ignite-694

Posted by sb...@apache.org.
# ignite-694


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

Branch: refs/heads/ignite-sprint-3
Commit: 998d1fa4e2f5515ed7f008ac2f866ce0178638cd
Parents: 9eb3fce
Author: sboikov <sb...@gridgain.com>
Authored: Thu Apr 9 10:41:27 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Apr 9 10:41:27 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCachePartitionExchangeManager.java       | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/998d1fa4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index 0955328..7a1324f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -796,6 +796,9 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
 
                     GridCacheContext<K, V> cacheCtx = cctx.cacheContext(cacheId);
 
+                    if (cacheCtx != null && !cacheCtx.started())
+                        continue; // Can safely ignore background exchange.
+
                     GridDhtPartitionTopology top = null;
 
                     if (cacheCtx == null)