You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2016/12/29 09:37:05 UTC

[01/50] [abbrv] ignite git commit: ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation fix restore memory onKernalStart (save wal record before resume log)

Repository: ignite
Updated Branches:
  refs/heads/ignite-3477 [created] 9776f3f49


ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation  fix restore memory onKernalStart (save wal record before resume log)


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

Branch: refs/heads/ignite-3477
Commit: ef03eef463af6122b3f2eba35923ae29e419c3fb
Parents: b26ca40
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Mon Dec 19 18:02:19 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Mon Dec 19 18:02:19 2016 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheProcessor.java    | 27 ++++++++++----------
 .../internal/util/OffheapReadWriteLock.java     |  4 +++
 2 files changed, 17 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ef03eef4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 06a6ff8..518fd18 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -734,20 +734,6 @@ public class GridCacheProcessor extends GridProcessorAdapter {
         try {
             checkConsistency();
 
-            //must be here, because we must start log wal before start first cache
-            if (activeOnStart) {
-                //todo not used explicit lock
-                if (!ctx.clientNode())
-                    sharedCtx.database().lock();
-
-                sharedCtx.wal().onKernalStart(false);
-
-                if (sharedCtx.pageStore() != null)
-                    sharedCtx.pageStore().onKernalStart(false);
-
-                sharedCtx.database().onKernalStart(false);
-            }
-
             // Start dynamic caches received from collect discovery data.
             for (DynamicCacheDescriptor desc : registeredCaches.values()) {
                 if (ctx.config().isDaemon() && !CU.isMarshallerCache(desc.cacheConfiguration().getName()))
@@ -793,6 +779,19 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             cacheStartedLatch.countDown();
         }
 
+        if (activeOnStart) {
+            //todo not used explicit lock
+            if (!ctx.clientNode())
+                sharedCtx.database().lock();
+
+            sharedCtx.wal().onKernalStart(false);
+
+            if (sharedCtx.pageStore() != null)
+                sharedCtx.pageStore().onKernalStart(false);
+
+            sharedCtx.database().onKernalStart(false);
+        }
+
         // Must call onKernalStart on shared managers after creation of fetched caches.
         for (GridCacheSharedManager<?, ?> mgr : sharedCtx.managers())
             if (sharedCtx.database() != mgr && sharedCtx.wal() != mgr && sharedCtx.pageStore() != mgr)

http://git-wip-us.apache.org/repos/asf/ignite/blob/ef03eef4/modules/core/src/main/java/org/apache/ignite/internal/util/OffheapReadWriteLock.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/OffheapReadWriteLock.java b/modules/core/src/main/java/org/apache/ignite/internal/util/OffheapReadWriteLock.java
index 8197bff..83765ce 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/OffheapReadWriteLock.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/OffheapReadWriteLock.java
@@ -515,6 +515,10 @@ public class OffheapReadWriteLock {
         return lockCount(state) == 0;
     }
 
+    /**
+     * @param state State.
+     * @param tag Tag.
+     */
     private boolean checkTag(long state, int tag) {
         // If passed in tag is negative, lock regardless of the state.
         return tag < 0 || tag(state) == tag;


[22/50] [abbrv] ignite git commit: ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation fix join inactive node to active cluster (minor update)

Posted by ag...@apache.org.
ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation fix join inactive node to active cluster (minor update)


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

Branch: refs/heads/ignite-3477
Commit: 691c3b771b761fe0e82bf7877a3afc7add59196b
Parents: 094a1b8
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Thu Dec 22 16:15:02 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Thu Dec 22 16:15:02 2016 +0300

----------------------------------------------------------------------
 .../ignite/internal/processors/cache/GridCacheProcessor.java  | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/691c3b77/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 6514287..f7a816e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -759,6 +759,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
 
                 CacheConfiguration[] newCacheCfg = new CacheConfiguration[cacheCfgs.length];
 
+                boolean apply = false;
+
                 for (int i = 0; i < cacheCfgs.length; i++) {
                     CacheConfiguration conf = cacheCfgs[i];
 
@@ -771,12 +773,15 @@ public class GridCacheProcessor extends GridProcessorAdapter {
 
                             newCacheCfg[i] = c;
 
+                            apply = true;
+
                             break;
                         }
                     }
                 }
 
-                ctx.config().setCacheConfiguration(newCacheCfg);
+                if (apply)
+                    ctx.config().setCacheConfiguration(newCacheCfg);
 
                 activeOnStart = ctx.state().active();
             }


[29/50] [abbrv] ignite git commit: Merge with master.

Posted by ag...@apache.org.
Merge with master.


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

Branch: refs/heads/ignite-3477
Commit: 871a069e6f874389198591f2930113407329a95d
Parents: cecaf7e
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Thu Dec 22 17:50:41 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Thu Dec 22 17:50:41 2016 +0300

----------------------------------------------------------------------
 .../ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/871a069e/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java
index 2fb9643..70ea6a9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java
@@ -120,7 +120,7 @@ public class SnapshotProgressMessage implements Message {
 
     /** {@inheritDoc} */
     @Override public byte directType() {
-        return -39;
+        return -47;
     }
 
     /** {@inheritDoc} */


[44/50] [abbrv] ignite git commit: GG-11789 Set lateAffinityAssignment defaults to false

Posted by ag...@apache.org.
GG-11789 Set lateAffinityAssignment defaults to false


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

Branch: refs/heads/ignite-3477
Commit: 893cd901d1f0aae115cff9b944085f90b21a58ee
Parents: d98d947
Author: Aleksei Scherbakov <al...@gmail.com>
Authored: Tue Dec 27 18:11:34 2016 +0300
Committer: Aleksei Scherbakov <al...@gmail.com>
Committed: Tue Dec 27 18:11:34 2016 +0300

----------------------------------------------------------------------
 .../java/org/apache/ignite/configuration/IgniteConfiguration.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/893cd901/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index 23313e2..5887dcd 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@ -213,7 +213,7 @@ public class IgniteConfiguration {
     public static final boolean DFLT_CACHE_SANITY_CHECK_ENABLED = true;
 
     /** Default value for late affinity assignment flag. */
-    public static final boolean DFLT_LATE_AFF_ASSIGNMENT = true;
+    public static final boolean DFLT_LATE_AFF_ASSIGNMENT = false;
 
     /** Default value for active on start flag. */
     public static final boolean DFLT_ACTIVE_ON_START = true;


[45/50] [abbrv] ignite git commit: ignite-gg-11842 Add reproducer test.

Posted by ag...@apache.org.
ignite-gg-11842 Add reproducer test.


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

Branch: refs/heads/ignite-3477
Commit: 2999ffd5646e608a20080b758f65e0e816343c77
Parents: 893cd90
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Wed Dec 28 18:53:36 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Wed Dec 28 18:53:36 2016 +0300

----------------------------------------------------------------------
 .../GridCacheConcurrentGetCacheOnClient.java    | 129 +++++++++++++++++++
 .../ignite/testframework/GridTestUtils.java     |  80 ++++++++++--
 2 files changed, 197 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/2999ffd5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClient.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClient.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClient.java
new file mode 100644
index 0000000..3a97964
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClient.java
@@ -0,0 +1,129 @@
+/*
+ * 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;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+import static org.apache.ignite.testframework.GridTestUtils.runAsync;
+
+/**
+ *
+ */
+public class GridCacheConcurrentGetCacheOnClient extends GridCommonAbstractTest{
+    /** Ip finder. */
+    private final static TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+    /**
+     * @param gridName Grid name.
+     */
+   @Override protected IgniteConfiguration getConfiguration(final String gridName) throws Exception {
+        final IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
+
+        return cfg;
+    }
+
+    /**
+     *
+     */
+    public void test() throws Exception {
+        IgniteConfiguration node1cfg = getConfiguration("node1");
+        IgniteConfiguration node2cfg = getConfiguration("node2");
+
+        Ignite node1 = startGrid("node1", node1cfg);
+        Ignite node2 = startGrid("node2", node2cfg);
+
+        IgniteConfiguration clientCfg1 = getConfiguration("client");
+        clientCfg1.setClientMode(true);
+
+        IgniteConfiguration clientCfg2 = getConfiguration("client");
+        clientCfg2.setClientMode(true);
+
+        final IgniteEx client1 = (IgniteEx)startGrid("client1", clientCfg1);
+        final IgniteEx client2 = (IgniteEx)startGrid("client2", clientCfg2);
+
+        final CountDownLatch startLatch = new CountDownLatch(1);
+
+        final CountDownLatch stopLatch = new CountDownLatch(2);
+
+        final AtomicInteger countFails = new AtomicInteger();
+
+        final AtomicInteger exceptionFails = new AtomicInteger();
+
+        final String cacheName = "TEST_CACHE";
+
+        runAsync(new Runnable() {
+            @Override public void run() {
+                try {
+                    startLatch.await();
+
+                    IgniteCache<Object, Object> cache = client2.cache(cacheName);
+
+                    if (cache == null)
+                        countFails.incrementAndGet();
+
+                    stopLatch.countDown();
+                }
+                catch (Exception e) {
+                    exceptionFails.incrementAndGet();
+                }
+            }
+        });
+
+        runAsync(new Runnable() {
+            @Override public void run() {
+                try {
+                    startLatch.await();
+
+                    IgniteCache<Object, Object> cache = client2.cache(cacheName);
+
+                    if (cache == null)
+                        countFails.incrementAndGet();
+
+                    stopLatch.countDown();
+                }
+                catch (Exception e) {
+                    exceptionFails.incrementAndGet();
+                }
+            }
+        });
+
+        client1.getOrCreateCache(cacheName);
+
+        startLatch.countDown();
+
+        IgniteCache<Object, Object> cache = client2.cache(cacheName);
+
+        if (cache == null)
+            countFails.incrementAndGet();
+
+        stopLatch.await();
+
+        if (countFails.get() != 0 || exceptionFails.get() != 0)
+            fail("Cache return null in " + countFails.get() + " of 3 cases. Total exception: " + exceptionFails.get());
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/2999ffd5/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java b/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
index 218f658..065147e 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
@@ -755,6 +755,72 @@ public final class GridTestUtils {
     }
 
     /**
+     * Create future async result.
+     *
+     * @param thrFactory Thr factory.
+     */
+    private static<T> GridFutureAdapter<T> createFutureAdapter(final GridTestSafeThreadFactory thrFactory){
+       return new GridFutureAdapter<T>() {
+            @Override public boolean cancel() throws IgniteCheckedException {
+                super.cancel();
+
+                thrFactory.interruptAllThreads();
+
+                onCancelled();
+
+                return true;
+            }
+        };
+    }
+
+    /**
+     * Runs runnable task asyncronously.
+     *
+     * @param task Runnable.
+     * @return Future with task result.
+     */
+    @SuppressWarnings("ExternalizableWithoutPublicNoArgConstructor")
+    public static IgniteInternalFuture runAsync(final Runnable task) {
+        return runAsync(task,"async-runnable-runner");
+    }
+
+    /**
+     * Runs runnable task asyncronously.
+     *
+     * @param task Runnable.
+     * @return Future with task result.
+     */
+    @SuppressWarnings("ExternalizableWithoutPublicNoArgConstructor")
+    public static IgniteInternalFuture runAsync(final Runnable task, String threadName) {
+        if (!busyLock.enterBusy())
+            throw new IllegalStateException("Failed to start new threads (test is being stopped).");
+
+        try {
+            final GridTestSafeThreadFactory thrFactory = new GridTestSafeThreadFactory(threadName);
+
+            final GridFutureAdapter fut = createFutureAdapter(thrFactory);
+
+            thrFactory.newThread(new Runnable() {
+                @Override public void run() {
+                    try {
+                        task.run();
+
+                        fut.onDone();
+                    }
+                    catch (Throwable e) {
+                        fut.onDone(e);
+                    }
+                }
+            }).start();
+
+            return fut;
+        }
+        finally {
+            busyLock.leaveBusy();
+        }
+    }
+
+    /**
      * Runs callable task asyncronously.
      *
      * @param task Callable.
@@ -762,7 +828,7 @@ public final class GridTestUtils {
      */
     @SuppressWarnings("ExternalizableWithoutPublicNoArgConstructor")
     public static <T> IgniteInternalFuture<T> runAsync(final Callable<T> task) {
-        return runAsync(task, "async-runner");
+        return runAsync(task, "async-callable-runner");
     }
 
     /**
@@ -780,17 +846,7 @@ public final class GridTestUtils {
         try {
             final GridTestSafeThreadFactory thrFactory = new GridTestSafeThreadFactory(threadName);
 
-            final GridFutureAdapter<T> fut = new GridFutureAdapter<T>() {
-                @Override public boolean cancel() throws IgniteCheckedException {
-                    super.cancel();
-
-                    thrFactory.interruptAllThreads();
-
-                    onCancelled();
-
-                    return true;
-                }
-            };
+            final GridFutureAdapter<T> fut = createFutureAdapter(thrFactory);
 
             thrFactory.newThread(new Runnable() {
                 @Override public void run() {


[07/50] [abbrv] ignite git commit: gg-11729 : Cosmetic changes.

Posted by ag...@apache.org.
gg-11729 : Cosmetic changes.


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

Branch: refs/heads/ignite-3477
Commit: d4f307182d34dacd498f3ed4774025cdc45abb5b
Parents: 3f83c08
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Tue Dec 20 23:17:28 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Tue Dec 20 23:17:28 2016 +0300

----------------------------------------------------------------------
 .../pagemem/snapshot/SnapshotProgressMessage.java   | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d4f30718/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java
index 2245893..8de4c40 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java
@@ -23,6 +23,9 @@ import org.apache.ignite.plugin.extensions.communication.Message;
 import org.apache.ignite.plugin.extensions.communication.MessageReader;
 import org.apache.ignite.plugin.extensions.communication.MessageWriter;
 
+/**
+ * Message for exchange of snapshot creation/restoration progress between nodes.
+ */
 public class SnapshotProgressMessage implements Message {
     /** */
     private static final long serialVersionUID = 0L;
@@ -33,22 +36,31 @@ public class SnapshotProgressMessage implements Message {
     /** */
     private double progress;
 
+    /** */
     public SnapshotProgressMessage() {
     }
 
+    /** */
     public SnapshotProgressMessage(long snapshotId, double progress) {
         this.snapshotId = snapshotId;
         this.progress = progress;
     }
 
+    /**
+     * @return Snapshot ID.
+     */
     public long snapshotId() {
         return snapshotId;
     }
 
+    /**
+     * @return Snapshot creation/restoration progress.
+     */
     public double progress() {
         return progress;
     }
 
+    /** {@inheritDoc} */
     @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
         writer.setBuffer(buf);
 
@@ -77,6 +89,7 @@ public class SnapshotProgressMessage implements Message {
         return true;
     }
 
+    /** {@inheritDoc} */
     @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
@@ -105,14 +118,17 @@ public class SnapshotProgressMessage implements Message {
         return reader.afterMessageRead(SnapshotProgressMessage.class);
     }
 
+    /** {@inheritDoc} */
     @Override public byte directType() {
         return -38;
     }
 
+    /** {@inheritDoc} */
     @Override public byte fieldsCount() {
         return 2;
     }
 
+    /** {@inheritDoc} */
     @Override public void onAckReceived() {
         // No-op
     }


[39/50] [abbrv] ignite git commit: GG-11750 Implemented DELETE command and minor refactorings.

Posted by ag...@apache.org.
GG-11750 Implemented DELETE command and minor refactorings.


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

Branch: refs/heads/ignite-3477
Commit: 7677f5f223d1904d914e6d702aaf925195fbc1b8
Parents: cf67df2
Author: AKuznetsov <ak...@gridgain.com>
Authored: Sun Dec 25 21:46:33 2016 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Sun Dec 25 21:46:33 2016 +0700

----------------------------------------------------------------------
 .../visor/event/VisorGridDiscoveryEvent.java    | 18 ++++-
 .../visor/event/VisorGridDiscoveryEventV2.java  | 80 --------------------
 .../visor/node/VisorNodeDataCollectorJob.java   |  3 +-
 .../internal/visor/util/VisorEventMapper.java   |  4 +-
 .../internal/visor/util/VisorTaskUtils.java     | 23 +-----
 .../resources/META-INF/classnames.properties    |  1 -
 .../commands/disco/VisorDiscoveryCommand.scala  |  2 +-
 7 files changed, 24 insertions(+), 107 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/7677f5f2/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEvent.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEvent.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEvent.java
index 7d970de..bad6966 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEvent.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEvent.java
@@ -38,6 +38,9 @@ public class VisorGridDiscoveryEvent extends VisorGridEvent {
     /** If node that caused this event is daemon. */
     private final boolean isDaemon;
 
+    /** Topology version. */
+    private final long topVer;
+
     /**
      * Create event with given parameters.
      *
@@ -51,6 +54,7 @@ public class VisorGridDiscoveryEvent extends VisorGridEvent {
      * @param evtNodeId Event node id.
      * @param addr Event node address.
      * @param isDaemon If event node is daemon on not.
+     * @param topVer Topology version.
      */
     public VisorGridDiscoveryEvent(
         int typeId,
@@ -62,13 +66,15 @@ public class VisorGridDiscoveryEvent extends VisorGridEvent {
         String shortDisplay,
         UUID evtNodeId,
         String addr,
-        boolean isDaemon
+        boolean isDaemon,
+        long topVer
     ) {
         super(typeId, id, name, nid, ts, msg, shortDisplay);
 
         this.evtNodeId = evtNodeId;
         this.addr = addr;
         this.isDaemon = isDaemon;
+        this.topVer = topVer;
     }
 
     /**
@@ -92,8 +98,16 @@ public class VisorGridDiscoveryEvent extends VisorGridEvent {
         return isDaemon;
     }
 
+    /**
+     * @return Topology version or {@code 0} if configured discovery SPI implementation
+     *      does not support versioning.
+     **/
+    public long topologyVersion() {
+        return topVer;
+    }
+
     /** {@inheritDoc} */
     @Override public String toString() {
         return S.toString(VisorGridDiscoveryEvent.class, this);
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/7677f5f2/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEventV2.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEventV2.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEventV2.java
deleted file mode 100644
index b66aacf..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEventV2.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * 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.visor.event;
-
-import java.util.UUID;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.lang.IgniteUuid;
-import org.jetbrains.annotations.Nullable;
-
-/**
- * Lightweight counterpart for {@link org.apache.ignite.events.DiscoveryEvent}.
- */
-public class VisorGridDiscoveryEventV2 extends VisorGridDiscoveryEvent {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Topology version. */
-    private final long topVer;
-
-    /**
-     * Create event with given parameters.
-     *
-     * @param typeId Event type.
-     * @param id Event id.
-     * @param name Event name.
-     * @param nid Event node ID.
-     * @param ts Event timestamp.
-     * @param msg Event message.
-     * @param shortDisplay Shortened version of {@code toString()} result.
-     * @param evtNodeId Event node id.
-     * @param addr Event node address.
-     * @param isDaemon If event node is daemon on not.
-     * @param topVer Topology version.
-     */
-    public VisorGridDiscoveryEventV2(
-        int typeId,
-        IgniteUuid id,
-        String name,
-        UUID nid,
-        long ts,
-        @Nullable String msg,
-        String shortDisplay,
-        UUID evtNodeId,
-        String addr,
-        boolean isDaemon,
-        long topVer
-    ) {
-        super(typeId, id, name, nid, ts, msg, shortDisplay, evtNodeId, addr, isDaemon);
-
-        this.topVer = topVer;
-    }
-
-    /**
-     * @return Topology version or {@code 0} if configured discovery SPI implementation
-     *      does not support versioning.
-     **/
-    public long topologyVersion() {
-        return topVer;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(VisorGridDiscoveryEventV2.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/7677f5f2/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java
index 18dce34..694bc94 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java
@@ -39,7 +39,6 @@ import static org.apache.ignite.internal.processors.cache.GridCacheUtils.isIgfsC
 import static org.apache.ignite.internal.processors.cache.GridCacheUtils.isSystemCache;
 import static org.apache.ignite.internal.visor.compute.VisorComputeMonitoringHolder.COMPUTE_MONITORING_HOLDER_KEY;
 import static org.apache.ignite.internal.visor.util.VisorTaskUtils.EVT_MAPPER;
-import static org.apache.ignite.internal.visor.util.VisorTaskUtils.EVT_MAPPER_V2;
 import static org.apache.ignite.internal.visor.util.VisorTaskUtils.VISOR_TASK_EVTS;
 import static org.apache.ignite.internal.visor.util.VisorTaskUtils.checkExplicitTaskMonitoring;
 import static org.apache.ignite.internal.visor.util.VisorTaskUtils.collectEvents;
@@ -72,7 +71,7 @@ public class VisorNodeDataCollectorJob extends VisorJob<VisorNodeDataCollectorTa
      */
     protected void events0(VisorNodeDataCollectorJobResult res, String evtOrderKey, String evtThrottleCntrKey,
         final boolean all) {
-        res.events().addAll(collectEvents(ignite, evtOrderKey, evtThrottleCntrKey, all, EVT_MAPPER_V2));
+        res.events().addAll(collectEvents(ignite, evtOrderKey, evtThrottleCntrKey, all, EVT_MAPPER));
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/7677f5f2/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorEventMapper.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorEventMapper.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorEventMapper.java
index 829adb3..ca319db 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorEventMapper.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorEventMapper.java
@@ -136,7 +136,7 @@ public class VisorEventMapper implements IgniteClosure<Event, VisorGridEvent> {
         ClusterNode node = de.eventNode();
 
         return new VisorGridDiscoveryEvent(type, id, name, nid, ts, msg, shortDisplay, node.id(),
-            F.first(node.addresses()), node.isDaemon());
+            F.first(node.addresses()), node.isDaemon(), de.topologyVersion());
     }
 
     /** {@inheritDoc} */
@@ -144,4 +144,4 @@ public class VisorEventMapper implements IgniteClosure<Event, VisorGridEvent> {
         return map(evt, evt.type(), evt.id(), evt.name(), evt.node().id(), evt.timestamp(), evt.message(),
             evt.shortDisplay());
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/7677f5f2/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java
index 1e9346c..c859d69 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java
@@ -41,7 +41,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.SortedMap;
-import java.util.UUID;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.zip.ZipEntry;
@@ -55,21 +54,18 @@ import org.apache.ignite.cache.eviction.fifo.FifoEvictionPolicyMBean;
 import org.apache.ignite.cache.eviction.lru.LruEvictionPolicyMBean;
 import org.apache.ignite.cache.eviction.random.RandomEvictionPolicyMBean;
 import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.events.DiscoveryEvent;
 import org.apache.ignite.events.Event;
 import org.apache.ignite.internal.processors.igfs.IgfsEx;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.X;
 import org.apache.ignite.internal.util.typedef.internal.SB;
 import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.internal.visor.event.VisorGridDiscoveryEventV2;
 import org.apache.ignite.internal.visor.event.VisorGridEvent;
 import org.apache.ignite.internal.visor.event.VisorGridEventsLost;
 import org.apache.ignite.internal.visor.file.VisorFileBlock;
 import org.apache.ignite.internal.visor.log.VisorLogFile;
 import org.apache.ignite.lang.IgniteClosure;
 import org.apache.ignite.lang.IgnitePredicate;
-import org.apache.ignite.lang.IgniteUuid;
 import org.jetbrains.annotations.Nullable;
 
 import static java.lang.System.getProperty;
@@ -377,17 +373,6 @@ public class VisorTaskUtils {
     /** Mapper from grid event to Visor data transfer object. */
     public static final VisorEventMapper EVT_MAPPER = new VisorEventMapper();
 
-    /** Mapper from grid event to Visor data transfer object. */
-    public static final VisorEventMapper EVT_MAPPER_V2 = new VisorEventMapper() {
-        @Override protected VisorGridEvent discoveryEvent(DiscoveryEvent de, int type, IgniteUuid id, String name,
-            UUID nid, long ts, String msg, String shortDisplay) {
-            ClusterNode node = de.eventNode();
-
-            return new VisorGridDiscoveryEventV2(type, id, name, nid, ts, msg, shortDisplay, node.id(),
-                F.first(node.addresses()), node.isDaemon(), de.topologyVersion());
-        }
-    };
-
     /**
      * Grabs local events and detects if events was lost since last poll.
      *
@@ -860,8 +845,6 @@ public class VisorTaskUtils {
         if (cmdFilePath == null || !cmdFilePath.exists())
             throw new FileNotFoundException(String.format("File not found: %s", cmdFile));
 
-        String ignite = cmdFilePath.getCanonicalPath();
-
         File nodesCfgPath = U.resolveIgnitePath(cfgPath);
 
         if (nodesCfgPath == null || !nodesCfgPath.exists())
@@ -874,6 +857,8 @@ public class VisorTaskUtils {
         List<Process> run = new ArrayList<>();
 
         try {
+            String igniteCmd = cmdFilePath.getCanonicalPath();
+
             for (int i = 0; i < nodesToStart; i++) {
                 if (U.isMacOs()) {
                     Map<String, String> macEnv = new HashMap<>(System.getenv());
@@ -902,9 +887,9 @@ public class VisorTaskUtils {
                                     entry.getKey(), val.replace('\n', ' ').replace("'", "\'")));
                     }
 
-                    run.add(openInConsole(envs.toString(), ignite, quitePar, nodeCfg));
+                    run.add(openInConsole(envs.toString(), igniteCmd, quitePar, nodeCfg));
                 } else
-                    run.add(openInConsole(null, envVars, ignite, quitePar, nodeCfg));
+                    run.add(openInConsole(null, envVars, igniteCmd, quitePar, nodeCfg));
             }
 
             return run;

http://git-wip-us.apache.org/repos/asf/ignite/blob/7677f5f2/modules/core/src/main/resources/META-INF/classnames.properties
----------------------------------------------------------------------
diff --git a/modules/core/src/main/resources/META-INF/classnames.properties b/modules/core/src/main/resources/META-INF/classnames.properties
index ab518e5..a1de5bb 100644
--- a/modules/core/src/main/resources/META-INF/classnames.properties
+++ b/modules/core/src/main/resources/META-INF/classnames.properties
@@ -1752,7 +1752,6 @@ org.apache.ignite.internal.visor.debug.VisorThreadLockInfo
 org.apache.ignite.internal.visor.debug.VisorThreadMonitorInfo
 org.apache.ignite.internal.visor.event.VisorGridDeploymentEvent
 org.apache.ignite.internal.visor.event.VisorGridDiscoveryEvent
-org.apache.ignite.internal.visor.event.VisorGridDiscoveryEventV2
 org.apache.ignite.internal.visor.event.VisorGridEvent
 org.apache.ignite.internal.visor.event.VisorGridEventsLost
 org.apache.ignite.internal.visor.event.VisorGridJobEvent

http://git-wip-us.apache.org/repos/asf/ignite/blob/7677f5f2/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/disco/VisorDiscoveryCommand.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/disco/VisorDiscoveryCommand.scala b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/disco/VisorDiscoveryCommand.scala
index 9ff7118..0ea88ad 100644
--- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/disco/VisorDiscoveryCommand.scala
+++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/disco/VisorDiscoveryCommand.scala
@@ -216,7 +216,7 @@ class VisorDiscoveryCommand extends VisorConsoleCommand {
 
         if (nodeStartTime > System.currentTimeMillis() - tmFrame) {
             val root = new VisorGridDiscoveryEvent(EVT_NODE_JOINED, null, U.gridEventName(EVT_NODE_JOINED),
-                node.id(), nodeStartTime, "", "", node.id, node.addresses().head, node.isDaemon)
+                node.id(), nodeStartTime, "", "", node.id, node.addresses().head, node.isDaemon, 0L)
 
             evts = Seq(root) ++ evts
         }


[14/50] [abbrv] ignite git commit: GG-11808 Implement deletion of snapshots on platform level

Posted by ag...@apache.org.
GG-11808 Implement deletion of snapshots on platform level


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

Branch: refs/heads/ignite-3477
Commit: 9217f3fc207f1af70c2ca648871a78a9664529a2
Parents: 9f9be20
Author: EdShangGG <es...@gridgain.com>
Authored: Wed Dec 21 21:25:07 2016 +0300
Committer: EdShangGG <es...@gridgain.com>
Committed: Wed Dec 21 21:25:07 2016 +0300

----------------------------------------------------------------------
 .../cache/database/IgniteCacheDatabaseSharedManager.java           | 2 +-
 .../distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9217f3fc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
index 1fb1543..1c29da3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
@@ -191,7 +191,7 @@ public class IgniteCacheDatabaseSharedManager extends GridCacheSharedManagerAdap
      * @return Snapshot creation init future or {@code null} if snapshot is not available.
      * @throws IgniteCheckedException If failed.
      */
-    @Nullable public IgniteInternalFuture startLocalSnapshot(StartFullSnapshotAckDiscoveryMessage snapshotMsg,
+    @Nullable public IgniteInternalFuture startLocalSnapshotCreation(StartFullSnapshotAckDiscoveryMessage snapshotMsg,
         ClusterNode initiator)
         throws IgniteCheckedException {
         return null;

http://git-wip-us.apache.org/repos/asf/ignite/blob/9217f3fc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index 81ba317..939078d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -833,7 +833,7 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
 
                     assert node != null;
 
-                    IgniteInternalFuture fut = cctx.database().startLocalSnapshot(backupMsg, node);
+                    IgniteInternalFuture fut = cctx.database().startLocalSnapshotCreation(backupMsg, node);
 
                     if (fut != null)
                         fut.get();


[27/50] [abbrv] ignite git commit: Merge with master - WIP

Posted by ag...@apache.org.
Merge with master - WIP


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

Branch: refs/heads/ignite-3477
Commit: 88a7eda47281e538a7c56b33c7882da7413c935e
Parents: 3063357
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Thu Dec 22 17:36:21 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Thu Dec 22 17:36:21 2016 +0300

----------------------------------------------------------------------
 .../GridCachePartitionExchangeManager.java      | 26 +++-----------------
 1 file changed, 3 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/88a7eda4/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 c63da75..2b62ce9 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
@@ -863,10 +863,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
                     ready = cacheCtx.started();
 
                 if (ready) {
-                    GridAffinityAssignmentCache affCache = cacheCtx.affinity().affinityCache();
-
-                    if (affCache != null) {
-                        GridDhtPartitionFullMap locMap = cacheCtx.topology().partitionMap(true);
+                    GridDhtPartitionFullMap locMap = cacheCtx.topology().partitionMap(true);
 
                     addFullPartitionsMap(m,
                         dupData,
@@ -875,11 +872,8 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
                         locMap,
                         cacheCtx.affinity().affinityCache().similarAffinityKey());
 
-                        if (exchId != null)
-                            m.addPartitionUpdateCounters(cacheCtx.cacheId(), cacheCtx.topology().updateCounters(true));
-                    }
-                    else
-                        assert cctx.cacheContext(cacheCtx.cacheId()) == null : cacheCtx.name();
+                    if (exchId != null)
+                        m.addPartitionUpdateCounters(cacheCtx.cacheId(), cacheCtx.topology().updateCounters(true));
                 }
             }
         }
@@ -950,20 +944,6 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
             cctx.kernalContext().clientNode(),
             false);
 
-        for (GridCacheContext cacheCtx : cctx.cacheContexts()) {
-            if (!cacheCtx.isLocal()) {
-                GridDhtPartitionMap2 locMap = cacheCtx.topology().localPartitionMap();
-
-                m.addLocalPartitionMap(cacheCtx.cacheId(), locMap, null);
-            }
-        }
-
-        for (GridClientPartitionTopology top : clientTops.values()) {
-            GridDhtPartitionMap2 locMap = top.localPartitionMap();
-
-            m.addLocalPartitionMap(top.cacheId(), locMap, null);
-        }
-
         if (log.isDebugEnabled())
             log.debug("Sending local partitions [nodeId=" + node.id() + ", msg=" + m + ']');
 


[37/50] [abbrv] ignite git commit: Merge remote-tracking branch 'origin/ignite-gg-8.0.2.ea1' into GG-11808

Posted by ag...@apache.org.
Merge remote-tracking branch 'origin/ignite-gg-8.0.2.ea1' into GG-11808


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

Branch: refs/heads/ignite-3477
Commit: dc086bf355dbd0fe694111427427976669b39422
Parents: 8ba772f 302a28f
Author: EdShangGG <es...@gridgain.com>
Authored: Fri Dec 23 18:14:39 2016 +0300
Committer: EdShangGG <es...@gridgain.com>
Committed: Fri Dec 23 18:14:39 2016 +0300

----------------------------------------------------------------------
 .gitignore                                      |   35 +-
 README.md                                       |    8 +
 RELEASE_NOTES.txt                               |   22 +
 assembly/dependencies-fabric-lgpl.xml           |    1 +
 assembly/dependencies-fabric.xml                |    1 +
 assembly/release-base.xml                       |    5 +
 assembly/release-fabric-base.xml                |    1 +
 bin/ignite.sh                                   |    9 +
 config/dotnet/default-dotnet.xml                |   45 +
 examples/pom-standalone.xml                     |    6 +
 examples/pom.xml                                |    2 +-
 examples/redis/redis-example.php                |   82 ++
 examples/redis/redis-example.py                 |   62 +
 examples/schema-import/pom.xml                  |    2 +-
 .../ignite/examples/ExampleNodeStartup.java     |    2 +-
 .../examples/datagrid/CachePutGetExample.java   |    2 +-
 .../examples/datagrid/CacheQueryDmlExample.java |  163 +++
 .../scalar/examples/ScalarJvmCloudExample.scala |    2 +-
 .../CacheExamplesMultiNodeSelfTest.java         |    7 +
 .../ignite/examples/CacheExamplesSelfTest.java  |    8 +
 modules/aop/pom.xml                             |    2 +-
 modules/apache-license-gen/pom.xml              |    2 +-
 modules/aws/pom.xml                             |    2 +-
 modules/benchmarks/pom.xml                      |    2 +-
 .../jmh/misc/JmhIncrementBenchmark.java         |   95 ++
 modules/camel/pom.xml                           |    2 +-
 modules/cassandra/pom.xml                       |   16 +-
 modules/cassandra/serializers/README.txt        |    7 +-
 modules/cassandra/serializers/pom.xml           |    4 +-
 modules/cassandra/store/pom.xml                 |    4 +-
 modules/clients/pom.xml                         |   12 +-
 .../clients/src/test/config/jdbc-bin-config.xml |   54 +
 .../jdbc2/JdbcAbstractDmlStatementSelfTest.java |  263 ++++
 .../JdbcAbstractUpdateStatementSelfTest.java    |   37 +
 ...BinaryMarshallerInsertStatementSelfTest.java |   37 +
 ...cBinaryMarshallerMergeStatementSelfTest.java |   37 +
 .../jdbc2/JdbcDeleteStatementSelfTest.java      |   49 +
 .../jdbc2/JdbcInsertStatementSelfTest.java      |  122 ++
 .../jdbc2/JdbcMergeStatementSelfTest.java       |   91 ++
 .../internal/jdbc2/JdbcNoDefaultCacheTest.java  |   40 +-
 .../internal/jdbc2/JdbcResultSetSelfTest.java   |   18 +
 .../rest/ClientMemcachedProtocolSelfTest.java   |    4 +-
 .../rest/RestProcessorMultiStartSelfTest.java   |   48 +-
 .../rest/protocols/tcp/MockNioSession.java      |   11 +
 .../tcp/redis/RedisProtocolSelfTest.java        |  101 +-
 .../jdbc/suite/IgniteJdbcDriverTestSuite.java   |    5 +
 modules/cloud/pom.xml                           |    2 +-
 modules/codegen/pom.xml                         |    2 +-
 modules/core/pom.xml                            |    2 +-
 .../java/org/apache/ignite/IgniteCache.java     |    2 +
 .../apache/ignite/IgniteSystemProperties.java   |   17 +
 .../binary/BinaryAbstractIdentityResolver.java  |   53 +
 .../binary/BinaryArrayIdentityResolver.java     |  224 +++
 .../binary/BinaryFieldIdentityResolver.java     |  307 ++++
 .../ignite/binary/BinaryIdentityResolver.java   |   42 +
 .../ignite/binary/BinaryTypeConfiguration.java  |   27 +-
 .../org/apache/ignite/cache/QueryEntity.java    |   27 +
 .../rendezvous/RendezvousAffinityFunction.java  |   80 +-
 .../ignite/cache/query/SqlFieldsQuery.java      |    2 +-
 .../cache/store/CacheLoadOnlyStoreAdapter.java  |    6 +-
 .../configuration/CacheConfiguration.java       |   19 +-
 .../configuration/IgniteConfiguration.java      |   48 +
 .../internal/GridEventConsumeHandler.java       |    2 +-
 .../ignite/internal/GridJobContextImpl.java     |    4 +-
 .../ignite/internal/GridKernalContext.java      |    9 +
 .../ignite/internal/GridKernalContextImpl.java  |   16 +-
 .../internal/GridPerformanceSuggestions.java    |    2 +-
 .../org/apache/ignite/internal/GridTopic.java   |    4 +-
 .../ignite/internal/IgniteInternalFuture.java   |   11 +
 .../apache/ignite/internal/IgniteKernal.java    |   71 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |   32 +-
 .../internal/binary/BinaryClassDescriptor.java  |   15 +
 .../ignite/internal/binary/BinaryContext.java   |   76 +-
 .../ignite/internal/binary/BinaryFieldImpl.java |   10 +-
 .../internal/binary/BinaryObjectExImpl.java     |   90 +-
 .../internal/binary/BinaryObjectImpl.java       |   48 +-
 .../binary/BinaryObjectOffheapImpl.java         |   42 +-
 .../internal/binary/BinaryPrimitives.java       |   30 +-
 .../binary/BinarySerializedFieldComparator.java |  343 +++++
 .../ignite/internal/binary/BinaryUtils.java     |    2 +-
 .../internal/binary/BinaryWriterExImpl.java     |   47 +-
 .../internal/binary/GridBinaryMarshaller.java   |    2 +-
 .../binary/builder/BinaryBuilderReader.java     |   11 +
 .../binary/builder/BinaryBuilderSerializer.java |    4 +
 .../binary/builder/BinaryObjectBuilderImpl.java |   16 +
 .../streams/BinaryAbstractInputStream.java      |    5 +
 .../streams/BinaryAbstractOutputStream.java     |    5 +
 .../streams/BinaryByteBufferInputStream.java    |   10 +
 .../binary/streams/BinaryHeapInputStream.java   |    9 +-
 .../binary/streams/BinaryHeapOutputStream.java  |    7 +-
 .../streams/BinaryMemoryAllocatorChunk.java     |    3 +-
 .../streams/BinaryOffheapInputStream.java       |   14 +-
 .../streams/BinaryOffheapOutputStream.java      |    8 +-
 .../internal/binary/streams/BinaryStream.java   |   12 +-
 .../GridClientConnectionManagerAdapter.java     |    1 +
 .../router/impl/GridRouterClientImpl.java       |    2 +-
 .../ignite/internal/jdbc2/JdbcConnection.java   |   17 +
 .../internal/jdbc2/JdbcPreparedStatement.java   |   71 +-
 .../ignite/internal/jdbc2/JdbcQueryTask.java    |    5 +-
 .../ignite/internal/jdbc2/JdbcQueryTaskV2.java  |  406 ++++++
 .../ignite/internal/jdbc2/JdbcResultSet.java    |   72 +-
 .../internal/jdbc2/JdbcSqlFieldsQuery.java      |   49 +
 .../ignite/internal/jdbc2/JdbcStatement.java    |  213 ++-
 .../apache/ignite/internal/jdbc2/JdbcUtils.java |   25 +-
 .../managers/communication/GridIoManager.java   |   33 +-
 .../managers/communication/GridIoMessage.java   |   13 +
 .../communication/GridIoMessageFactory.java     |   62 +-
 .../communication/IgniteIoTestMessage.java      |   13 +-
 .../discovery/GridDiscoveryManager.java         |  118 +-
 .../snapshot/SnapshotFinishedMessage.java       |    2 +-
 .../snapshot/SnapshotProgressMessage.java       |    2 +-
 .../processors/cache/GridCacheAdapter.java      |  741 ++++------
 .../processors/cache/GridCacheEntryEx.java      |    4 +-
 .../processors/cache/GridCacheMapEntry.java     |   41 +-
 .../processors/cache/GridCacheMessage.java      |    7 +
 .../GridCachePartitionExchangeManager.java      |  121 +-
 .../processors/cache/GridCachePreloader.java    |    8 +-
 .../cache/GridCachePreloaderAdapter.java        |    9 +-
 .../processors/cache/GridCacheProcessor.java    |  122 +-
 .../processors/cache/GridCacheProxyImpl.java    |   24 +-
 .../cache/GridCacheSharedTtlCleanupManager.java |    5 +-
 .../processors/cache/GridCacheTtlManager.java   |    4 +
 .../processors/cache/GridCacheUtils.java        |   62 +-
 .../GridChangeGlobalStateMessageResponse.java   |    2 +-
 .../processors/cache/IgniteInternalCache.java   |    8 +
 .../processors/cache/QueryCursorImpl.java       |   31 +-
 .../binary/CacheObjectBinaryProcessorImpl.java  |    3 +-
 .../IgniteCacheDatabaseSharedManager.java       |    7 +
 .../distributed/GridCacheTxRecoveryFuture.java  |    4 +-
 .../distributed/GridDistributedLockRequest.java |    5 +
 .../GridDistributedUnlockRequest.java           |    5 +
 .../dht/GridClientPartitionTopology.java        |   38 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |    3 +-
 .../cache/distributed/dht/GridDhtGetFuture.java |    2 +-
 .../distributed/dht/GridDhtLockFuture.java      |   27 +-
 .../distributed/dht/GridDhtLockResponse.java    |    9 +-
 .../dht/GridDhtPartitionTopology.java           |   10 +
 .../dht/GridDhtPartitionTopologyImpl.java       |  171 ++-
 .../distributed/dht/GridDhtTxFinishFuture.java  |   74 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |  125 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |    7 +-
 .../dht/GridDhtTxOnePhaseCommitAckRequest.java  |    2 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |    4 +-
 .../dht/atomic/GridDhtAtomicCache.java          |  453 +++---
 .../GridDhtAtomicSingleUpdateRequest.java       |    7 +-
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |    5 +
 ...idNearAtomicAbstractSingleUpdateRequest.java |   28 +-
 .../atomic/GridNearAtomicFullUpdateRequest.java |   69 +-
 ...GridNearAtomicSingleUpdateInvokeRequest.java |    6 +-
 .../GridNearAtomicSingleUpdateRequest.java      |    7 +-
 .../dht/colocated/GridDhtColocatedCache.java    |   13 -
 .../colocated/GridDhtColocatedLockFuture.java   |    4 +-
 .../dht/preloader/GridDhtPartitionDemander.java |  233 +--
 .../dht/preloader/GridDhtPartitionFullMap.java  |   18 +-
 .../dht/preloader/GridDhtPartitionMap2.java     |    4 +
 .../GridDhtPartitionsExchangeFuture.java        |    2 +-
 .../dht/preloader/GridDhtPreloader.java         |   13 +-
 .../distributed/near/GridNearAtomicCache.java   |   65 +-
 .../distributed/near/GridNearGetRequest.java    |    5 +
 .../distributed/near/GridNearLockFuture.java    |    4 +-
 ...arOptimisticSerializableTxPrepareFuture.java |    4 +-
 .../near/GridNearOptimisticTxPrepareFuture.java |   15 +-
 .../GridNearPessimisticTxPrepareFuture.java     |    4 +-
 .../near/GridNearTxFinishFuture.java            |   46 +-
 .../cache/distributed/near/GridNearTxLocal.java |   48 +-
 .../local/atomic/GridLocalAtomicCache.java      |  174 +--
 .../query/GridCacheDistributedQueryManager.java |    2 +-
 .../cache/query/GridCacheQueryManager.java      |   18 +-
 .../cache/query/GridCacheQueryRequest.java      |    6 +-
 .../cache/query/GridCacheTwoStepQuery.java      |  253 ----
 .../cache/query/IgniteQueryErrorCode.java       |   91 ++
 .../cache/store/CacheStoreManager.java          |    4 +-
 .../store/GridCacheStoreManagerAdapter.java     |   34 +-
 .../cache/store/GridCacheWriteBehindStore.java  |    6 +-
 .../cache/transactions/IgniteTxHandler.java     |   17 +-
 .../transactions/IgniteTxLocalAdapter.java      |   38 +-
 .../cache/transactions/IgniteTxManager.java     |   15 +-
 .../cluster/GridClusterStateProcessor.java      |   23 +-
 .../datastreamer/DataStreamProcessor.java       |   22 +-
 .../datastructures/DataStructuresProcessor.java |   11 +-
 .../GridCacheAtomicSequenceImpl.java            |   12 +-
 .../processors/hadoop/HadoopClassLoader.java    |   11 +
 .../internal/processors/hadoop/HadoopJobId.java |   79 +-
 .../processors/hadoop/HadoopJobProperty.java    |   64 +-
 .../hadoop/HadoopMapperAwareTaskOutput.java     |   32 +
 .../processors/hadoop/HadoopTaskContext.java    |    8 +
 .../processors/hadoop/HadoopTaskInfo.java       |   43 +
 .../io/PartiallyOffheapRawComparatorEx.java     |   33 +
 .../hadoop/message/HadoopMessage.java           |   27 +
 .../shuffle/HadoopDirectShuffleMessage.java     |  243 ++++
 .../hadoop/shuffle/HadoopShuffleAck.java        |  170 +++
 .../shuffle/HadoopShuffleFinishRequest.java     |  172 +++
 .../shuffle/HadoopShuffleFinishResponse.java    |  142 ++
 .../hadoop/shuffle/HadoopShuffleMessage.java    |  361 +++++
 .../internal/processors/igfs/IgfsContext.java   |    4 +-
 .../processors/igfs/IgfsDataManager.java        |    6 +-
 .../internal/processors/igfs/IgfsImpl.java      |    2 +-
 .../processors/odbc/OdbcMessageParser.java      |   16 +
 .../processors/odbc/OdbcNioListener.java        |    2 +-
 .../odbc/OdbcQueryGetParamsMetaRequest.java     |   60 +
 .../odbc/OdbcQueryGetParamsMetaResult.java      |   40 +
 .../internal/processors/odbc/OdbcRequest.java   |    3 +
 .../processors/odbc/OdbcRequestHandler.java     |  175 ++-
 .../internal/processors/odbc/OdbcUtils.java     |    4 +-
 .../platform/PlatformAbstractTarget.java        |  268 +---
 .../platform/PlatformAsyncTarget.java           |   44 +
 .../platform/PlatformNoopProcessor.java         |   41 +-
 .../processors/platform/PlatformProcessor.java  |   42 +-
 .../platform/PlatformProcessorImpl.java         |   87 +-
 .../processors/platform/PlatformTarget.java     |  103 +-
 .../platform/PlatformTargetProxy.java           |  126 ++
 .../platform/PlatformTargetProxyImpl.java       |  222 +++
 .../binary/PlatformBinaryProcessor.java         |    6 +-
 .../platform/cache/PlatformCache.java           |   15 +-
 .../cache/PlatformCacheEntryFilterImpl.java     |    4 +-
 .../cache/PlatformCacheEntryProcessorImpl.java  |   43 +-
 .../platform/cache/PlatformCacheIterator.java   |    2 +-
 .../cache/affinity/PlatformAffinity.java        |    4 +-
 .../affinity/PlatformAffinityFunction.java      |   59 +-
 .../PlatformAffinityFunctionTarget.java         |    4 +-
 .../query/PlatformAbstractQueryCursor.java      |    4 +-
 .../query/PlatformContinuousQueryProxy.java     |    3 +-
 .../callback/PlatformCallbackGateway.java       |  272 ++--
 .../platform/callback/PlatformCallbackOp.java   |  206 +++
 .../callback/PlatformCallbackUtils.java         |  544 +------
 .../platform/cluster/PlatformClusterGroup.java  |   18 +-
 .../platform/compute/PlatformAbstractJob.java   |    2 +-
 .../platform/compute/PlatformAbstractTask.java  |   15 +-
 .../platform/compute/PlatformClosureJob.java    |   12 +-
 .../platform/compute/PlatformCompute.java       |   21 +-
 .../platform/compute/PlatformFullJob.java       |   15 +-
 .../platform/compute/PlatformFullTask.java      |   18 +-
 .../datastreamer/PlatformDataStreamer.java      |    4 +-
 .../PlatformStreamReceiverImpl.java             |   11 +-
 .../datastructures/PlatformAtomicLong.java      |    4 +-
 .../datastructures/PlatformAtomicReference.java |    8 +-
 .../datastructures/PlatformAtomicSequence.java  |    2 +-
 .../dotnet/PlatformDotNetCacheStore.java        |    6 +-
 .../platform/events/PlatformEvents.java         |   15 +-
 .../memory/PlatformInputStreamImpl.java         |   14 +-
 .../memory/PlatformOutputStreamImpl.java        |   14 +-
 .../platform/messaging/PlatformMessaging.java   |    9 +-
 .../services/PlatformAbstractService.java       |   25 +-
 .../platform/services/PlatformServices.java     |   27 +-
 .../transactions/PlatformTransactions.java      |    8 +-
 .../platform/utils/PlatformFutureUtils.java     |   18 +-
 .../utils/PlatformListenableTarget.java         |   62 +
 .../platform/utils/PlatformUtils.java           |    8 +-
 .../processors/query/GridQueryIndexing.java     |   23 +-
 .../processors/query/GridQueryProcessor.java    |  591 ++++++--
 .../processors/query/GridQueryProperty.java     |   20 +
 .../query/GridQueryTypeDescriptor.java          |   25 +
 .../processors/query/IgniteSQLException.java    |   89 ++
 .../processors/rest/GridRestProcessor.java      |   15 +
 .../redis/GridRedisRestCommandHandler.java      |    1 +
 .../redis/key/GridRedisDelCommandHandler.java   |    7 +-
 .../key/GridRedisExistsCommandHandler.java      |    7 +-
 .../server/GridRedisDbSizeCommandHandler.java   |    7 +-
 .../string/GridRedisAppendCommandHandler.java   |    7 +-
 .../string/GridRedisGetCommandHandler.java      |   34 +-
 .../string/GridRedisGetRangeCommandHandler.java |    7 +-
 .../string/GridRedisGetSetCommandHandler.java   |    7 +-
 .../string/GridRedisIncrDecrCommandHandler.java |   70 +-
 .../string/GridRedisMGetCommandHandler.java     |    7 +-
 .../string/GridRedisMSetCommandHandler.java     |    7 +-
 .../string/GridRedisSetCommandHandler.java      |   31 +-
 .../string/GridRedisSetRangeCommandHandler.java |    7 +-
 .../string/GridRedisStrlenCommandHandler.java   |    7 +-
 .../tcp/GridTcpMemcachedNioListener.java        |   15 +-
 .../protocols/tcp/GridTcpRestNioListener.java   |    2 +-
 .../tcp/redis/GridRedisNioListener.java         |    4 +-
 .../service/GridServiceProcessor.java           |   54 +-
 .../ignite/internal/util/GridHandleTable.java   |   10 +-
 .../apache/ignite/internal/util/GridUnsafe.java |   61 +-
 .../ignite/internal/util/IgniteUtils.java       |  105 +-
 .../ignite/internal/util/StripedExecutor.java   |  667 +++++++++
 .../util/future/GridCompoundFuture.java         |   56 +-
 .../util/future/GridFinishedFuture.java         |   24 +
 .../internal/util/future/GridFutureAdapter.java |   15 +-
 .../util/future/GridFutureChainListener.java    |   30 +-
 .../internal/util/io/GridUnsafeDataInput.java   |   12 +-
 .../internal/util/io/GridUnsafeDataOutput.java  |   12 +-
 .../internal/util/ipc/IpcToNioAdapter.java      |    2 +-
 .../util/lang/IgniteSingletonIterator.java      |   56 +
 .../util/nio/GridCommunicationClient.java       |    4 +-
 .../nio/GridConnectionBytesVerifyFilter.java    |   15 +-
 .../util/nio/GridNioAsyncNotifyFilter.java      |   10 +-
 .../internal/util/nio/GridNioCodecFilter.java   |   17 +-
 .../ignite/internal/util/nio/GridNioFilter.java |   16 +-
 .../internal/util/nio/GridNioFilterAdapter.java |   10 +-
 .../internal/util/nio/GridNioFilterChain.java   |   14 +-
 .../ignite/internal/util/nio/GridNioFuture.java |    4 +-
 .../util/nio/GridNioRecoveryDescriptor.java     |   95 +-
 .../ignite/internal/util/nio/GridNioServer.java | 1343 ++++++++++++++----
 .../internal/util/nio/GridNioSession.java       |   11 +
 .../internal/util/nio/GridNioSessionImpl.java   |   49 +-
 .../ignite/internal/util/nio/GridNioWorker.java |   48 +
 .../util/nio/GridSelectorNioSessionImpl.java    |  157 +-
 .../util/nio/GridTcpNioCommunicationClient.java |   49 +-
 .../internal/util/nio/SessionWriteRequest.java  |   85 ++
 .../internal/util/nio/ssl/GridNioSslFilter.java |   10 +-
 .../util/nio/ssl/GridNioSslHandler.java         |    4 +-
 .../util/offheap/unsafe/GridUnsafeMemory.java   |   10 +-
 .../util/tostring/GridToStringBuilder.java      |    2 +-
 .../internal/visor/VisorMultiNodeTask.java      |    2 +-
 .../internal/visor/VisorTaskArgument.java       |    2 +-
 .../internal/visor/query/VisorQueryJob.java     |    2 +-
 .../ignite/marshaller/jdk/JdkMarshaller.java    |    4 +-
 .../optimized/OptimizedMarshaller.java          |    8 +-
 .../optimized/OptimizedObjectOutputStream.java  |   25 +-
 .../communication/tcp/TcpCommunicationSpi.java  |  324 +++--
 .../tcp/TcpCommunicationSpiMBean.java           |   40 +
 .../ignite/spi/discovery/tcp/ServerImpl.java    |   57 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   14 +-
 .../tcp/internal/TcpDiscoveryStatistics.java    |    4 +
 .../org/apache/ignite/stream/StreamAdapter.java |    4 +-
 .../ignite/thread/IgniteThreadFactory.java      |    8 +-
 .../resources/META-INF/classnames.properties    |   69 +-
 .../core/src/main/resources/ignite.properties   |    2 +-
 .../AbstractAffinityFunctionSelfTest.java       |    2 +-
 .../BinaryArrayIdentityResolverSelfTest.java    |  300 ++++
 .../BinaryFieldIdentityResolverSelfTest.java    |  333 +++++
 .../binary/BinaryFieldsOffheapSelfTest.java     |    2 +-
 .../BinaryFooterOffsetsOffheapSelfTest.java     |    2 +-
 ...ryIdentityResolverConfigurationSelfTest.java |  138 ++
 .../binary/BinaryMarshallerSelfTest.java        |    2 +-
 .../BinaryObjectBuilderAdditionalSelfTest.java  |  157 +-
 ...naryObjectBuilderDefaultMappersSelfTest.java |    2 +-
 .../BinarySerialiedFieldComparatorSelfTest.java |  568 ++++++++
 ...unicationBalanceMultipleConnectionsTest.java |   28 +
 .../IgniteCommunicationBalanceTest.java         |  339 +++++
 .../communication/IgniteIoTestMessagesTest.java |   95 ++
 .../IgniteVariousConnectionNumberTest.java      |  166 +++
 .../GridDiscoveryManagerAliveCacheSelfTest.java |    2 +-
 .../cache/CrossCacheTxRandomOperationsTest.java |   30 +-
 ...idAbstractCacheInterceptorRebalanceTest.java |    4 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |    4 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |    6 +-
 ...CacheOffHeapMultiThreadedUpdateSelfTest.java |    6 +-
 .../GridCachePartitionedAffinitySpreadTest.java |    7 +-
 .../processors/cache/GridCacheTestEntryEx.java  |    3 +-
 .../GridCacheTtlManagerEvictionSelfTest.java    |    1 +
 .../IgniteTxStoreExceptionAbstractSelfTest.java |    1 +
 .../GridCacheBinaryObjectsAbstractSelfTest.java |  260 +++-
 ...achePartitionedAtomicSequenceTxSelfTest.java |  169 +++
 .../CacheLockReleaseNodeLeaveTest.java          |  135 ++
 ...eAtomicMessageRecovery10ConnectionsTest.java |   28 +
 ...cMessageRecoveryNoPairedConnectionsTest.java |   47 +
 ...acheConnectionRecovery10ConnectionsTest.java |   35 +
 .../distributed/IgniteCacheCreatePutTest.java   |    2 +-
 .../distributed/dht/GridCacheDhtTestUtils.java  |  232 ---
 .../dht/IgniteCacheMultiTxLockSelfTest.java     |    6 +-
 ...nabledMultiNodeLongTxTimeoutFullApiTest.java |    2 +-
 ...achePartitionedMultiNodeFullApiSelfTest.java |   37 +-
 ...edNoStripedPoolMultiNodeFullApiSelfTest.java |   35 +
 .../GridCacheRebalancingSyncSelfTest.java       |    2 +
 ...eCacheExpiryPolicyWithStoreAbstractTest.java |   40 +
 .../TxDeadlockDetectionNoHangsTest.java         |    2 +-
 .../TxOptimisticDeadlockDetectionTest.java      |   29 +-
 ...lockMessageSystemPoolStarvationSelfTest.java |   14 +-
 .../GridServiceProcessorProxySelfTest.java      |    2 +-
 .../util/future/GridFutureAdapterSelfTest.java  |  122 +-
 .../nio/impl/GridNioFilterChainSelfTest.java    |   18 +-
 .../loadtests/nio/GridNioBenchmarkClient.java   |    4 +-
 .../p2p/GridP2PRecursionTaskSelfTest.java       |    2 +-
 ...mmunicationSpiConcurrentConnectSelfTest.java |   37 +-
 ...cpCommunicationSpiMultithreadedSelfTest.java |    9 +-
 ...dTcpCommunicationSpiRecoveryAckSelfTest.java |    6 +-
 ...ationSpiRecoveryNoPairedConnectionsTest.java |   28 +
 ...GridTcpCommunicationSpiRecoverySelfTest.java |    8 +
 ...CommunicationRecoveryAckClosureSelfTest.java |    6 +-
 .../junits/GridTestKernalContext.java           |    4 +-
 .../IgniteBinaryObjectsTestSuite.java           |   10 +
 .../IgniteCacheDataStructuresSelfTestSuite.java |    5 +-
 .../IgniteCacheFullApiSelfTestSuite.java        |    4 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |   15 +
 .../testsuites/IgniteCacheTestSuite4.java       |    3 +
 .../testsuites/IgniteCacheTestSuite5.java       |    1 +
 .../IgniteSpiCommunicationSelfTestSuite.java    |    2 +
 modules/docker/1.8.0/Dockerfile                 |   46 +
 modules/docker/1.8.0/run.sh                     |   51 +
 modules/docker/Dockerfile                       |    6 +-
 modules/extdata/p2p/pom.xml                     |    2 +-
 .../extdata/uri/modules/uri-dependency/pom.xml  |    2 +-
 modules/extdata/uri/pom.xml                     |    2 +-
 modules/flink/pom.xml                           |    2 +-
 modules/flume/pom.xml                           |    2 +-
 modules/gce/pom.xml                             |    2 +-
 modules/geospatial/pom.xml                      |    2 +-
 modules/hadoop/pom.xml                          |    9 +-
 .../hadoop/io/PartiallyRawComparator.java       |   33 +
 .../org/apache/ignite/hadoop/io/RawMemory.java  |   86 ++
 .../hadoop/io/TextPartiallyRawComparator.java   |  115 ++
 .../apache/ignite/hadoop/io/package-info.java   |   22 +
 .../IgniteHadoopClientProtocolProvider.java     |   70 +-
 .../processors/hadoop/HadoopMapperUtils.java    |   56 +
 .../hadoop/impl/fs/HadoopFileSystemsUtils.java  |   11 +
 .../hadoop/impl/proto/HadoopClientProtocol.java |   55 +-
 .../hadoop/impl/v2/HadoopV2Context.java         |   11 +
 ...DelegatingPartiallyOffheapRawComparator.java |   54 +
 .../processors/hadoop/impl/v2/HadoopV2Job.java  |   22 +-
 .../impl/v2/HadoopV2JobResourceManager.java     |   25 +-
 .../hadoop/impl/v2/HadoopV2MapTask.java         |   10 +
 .../hadoop/impl/v2/HadoopV2TaskContext.java     |   21 +
 .../processors/hadoop/io/OffheapRawMemory.java  |  131 ++
 .../hadoop/jobtracker/HadoopJobTracker.java     |    8 +-
 .../hadoop/mapreduce/MapReduceClient.java       |  147 ++
 .../hadoop/message/HadoopMessage.java           |   27 -
 .../hadoop/shuffle/HadoopShuffle.java           |  112 +-
 .../hadoop/shuffle/HadoopShuffleAck.java        |   92 --
 .../hadoop/shuffle/HadoopShuffleJob.java        |  748 ++++++++--
 .../hadoop/shuffle/HadoopShuffleLocalState.java |   67 +
 .../hadoop/shuffle/HadoopShuffleMessage.java    |  242 ----
 .../shuffle/HadoopShuffleRemoteState.java       |   61 +
 .../shuffle/collections/HadoopMultimapBase.java |    5 +-
 .../shuffle/collections/HadoopSkipList.java     |   14 +-
 .../shuffle/direct/HadoopDirectDataInput.java   |  166 +++
 .../shuffle/direct/HadoopDirectDataOutput.java  |  221 +++
 .../direct/HadoopDirectDataOutputContext.java   |  100 ++
 .../direct/HadoopDirectDataOutputState.java     |   54 +
 .../shuffle/streams/HadoopDataOutStream.java    |    2 +-
 .../child/HadoopChildProcessRunner.java         |   12 +-
 .../HadoopExternalCommunication.java            |    4 +-
 .../communication/HadoopIpcToNioAdapter.java    |    2 +-
 .../communication/HadoopMarshallerFilter.java   |    6 +-
 .../resources/META-INF/classnames.properties    |  114 ++
 .../hadoop/impl/HadoopAbstractSelfTest.java     |   13 +-
 .../impl/HadoopAbstractWordCountTest.java       |    6 +-
 .../hadoop/impl/HadoopFileSystemsTest.java      |    9 +
 .../hadoop/impl/HadoopJobTrackerSelfTest.java   |    4 +-
 .../impl/HadoopMapReduceEmbeddedSelfTest.java   |   22 +-
 .../impl/HadoopTaskExecutionSelfTest.java       |    4 +-
 .../hadoop/impl/HadoopTeraSortTest.java         |  383 +++++
 ...opClientProtocolMultipleServersSelfTest.java |   93 +-
 .../client/HadoopClientProtocolSelfTest.java    |  232 +--
 .../collections/HadoopAbstractMapTest.java      |    6 +
 .../HadoopConcurrentHashMultimapSelftest.java   |    2 +-
 .../collections/HadoopSkipListSelfTest.java     |   16 +-
 .../HadoopExternalTaskExecutionSelfTest.java    |    2 +
 .../testsuites/IgniteHadoopTestSuite.java       |    3 +
 modules/hibernate/pom.xml                       |    2 +-
 modules/indexing/pom.xml                        |    2 +-
 .../cache/query/GridCacheTwoStepQuery.java      |  253 ++++
 .../query/h2/DmlStatementsProcessor.java        | 1083 ++++++++++++++
 .../query/h2/GridH2ResultSetIterator.java       |    3 +-
 .../processors/query/h2/IgniteH2Indexing.java   |  130 +-
 .../query/h2/dml/FastUpdateArgument.java        |   27 +
 .../query/h2/dml/FastUpdateArguments.java       |   53 +
 .../query/h2/dml/KeyValueSupplier.java          |   30 +
 .../processors/query/h2/dml/UpdateMode.java     |   36 +
 .../processors/query/h2/dml/UpdatePlan.java     |  128 ++
 .../query/h2/dml/UpdatePlanBuilder.java         |  486 +++++++
 .../processors/query/h2/dml/package-info.java   |   22 +
 .../query/h2/opt/GridH2RowDescriptor.java       |   23 +
 .../query/h2/opt/GridH2TreeIndex.java           |    2 +-
 .../processors/query/h2/sql/DmlAstUtils.java    |  616 ++++++++
 .../processors/query/h2/sql/GridSqlArray.java   |    8 +
 .../processors/query/h2/sql/GridSqlConst.java   |    6 +
 .../processors/query/h2/sql/GridSqlDelete.java  |   68 +
 .../query/h2/sql/GridSqlFunction.java           |    5 +-
 .../processors/query/h2/sql/GridSqlInsert.java  |  149 ++
 .../processors/query/h2/sql/GridSqlKeyword.java |   46 +
 .../processors/query/h2/sql/GridSqlMerge.java   |  143 ++
 .../processors/query/h2/sql/GridSqlQuery.java   |   44 +-
 .../query/h2/sql/GridSqlQueryParser.java        |  323 ++++-
 .../query/h2/sql/GridSqlQuerySplitter.java      |    6 +-
 .../processors/query/h2/sql/GridSqlSelect.java  |    3 +-
 .../query/h2/sql/GridSqlStatement.java          |   64 +
 .../processors/query/h2/sql/GridSqlUpdate.java  |  105 ++
 .../h2/twostep/GridReduceQueryExecutor.java     |   61 +-
 ...niteCacheAbstractInsertSqlQuerySelfTest.java |  559 ++++++++
 .../IgniteCacheAbstractSqlDmlQuerySelfTest.java |  243 ++++
 .../IgniteCacheDeleteSqlQuerySelfTest.java      |  106 ++
 .../IgniteCacheInsertSqlQuerySelfTest.java      |  203 +++
 .../cache/IgniteCacheLargeResultSelfTest.java   |   15 +-
 .../cache/IgniteCacheMergeSqlQuerySelfTest.java |  153 ++
 .../IgniteCacheUpdateSqlQuerySelfTest.java      |  472 ++++++
 .../IgniteCacheAtomicFieldsQuerySelfTest.java   |   21 -
 .../h2/GridIndexingSpiAbstractSelfTest.java     |   37 +-
 .../query/h2/sql/GridQueryParsingTest.java      |  109 +-
 .../IgniteCacheQuerySelfTestSuite.java          |  143 +-
 .../IgniteCacheQuerySelfTestSuite2.java         |  111 +-
 .../IgniteH2IndexingSpiTestSuite.java           |   16 +-
 modules/jcl/pom.xml                             |    2 +-
 modules/jms11/pom.xml                           |    2 +-
 modules/jta/pom.xml                             |    2 +-
 modules/kafka/pom.xml                           |    2 +-
 .../ignite/stream/kafka/KafkaStreamer.java      |   50 +-
 .../kafka/KafkaIgniteStreamerSelfTest.java      |   36 +-
 modules/log4j/pom.xml                           |    2 +-
 modules/log4j2/pom.xml                          |    2 +-
 modules/mesos/pom.xml                           |    2 +-
 modules/mqtt/pom.xml                            |    2 +-
 modules/osgi-karaf/pom.xml                      |    2 +-
 modules/osgi-paxlogging/pom.xml                 |    2 +-
 modules/osgi/pom.xml                            |    3 +-
 .../include/ignite/binary/binary_raw_reader.h   |   21 +
 .../ignite/impl/binary/binary_reader_impl.h     |    9 +-
 .../src/impl/binary/binary_reader_impl.cpp      |   20 +-
 .../platforms/cpp/common/include/Makefile.am    |    5 +-
 .../common/include/ignite/common/concurrent.h   |   90 +-
 .../include/ignite/common/reference_impl.h      |  286 ++++
 .../cpp/common/include/ignite/reference.h       |  564 ++++++++
 .../cpp/common/project/vs/common.vcxproj        |    2 +
 .../common/project/vs/common.vcxproj.filters    |    6 +
 modules/platforms/cpp/configure.ac              |    2 +-
 modules/platforms/cpp/configure.acrel           |    2 +-
 modules/platforms/cpp/core-test/Makefile.am     |    7 +-
 .../core-test/config/cache-query-continuous.xml |   87 ++
 .../cpp/core-test/config/cache-query.xml        |   10 +
 .../cpp/core-test/config/cache-test.xml         |    1 +
 .../platforms/cpp/core-test/config/invalid.xml  |   39 +
 .../cpp/core-test/project/vs/core-test.vcxproj  |   13 +-
 .../project/vs/core-test.vcxproj.filters        |   11 +-
 .../cpp/core-test/src/cache_query_test.cpp      |   76 +-
 .../cpp/core-test/src/continuous_query_test.cpp |  611 ++++++++
 .../cpp/core-test/src/handle_registry_test.cpp  |   18 +-
 .../cpp/core-test/src/interop_test.cpp          |   17 +-
 .../cpp/core-test/src/reference_test.cpp        |  412 ++++++
 modules/platforms/cpp/core/Makefile.am          |    1 +
 .../cpp/core/include/ignite/cache/cache.h       |  104 +-
 .../cpp/core/include/ignite/cache/cache_entry.h |   40 +-
 .../ignite/cache/event/cache_entry_event.h      |  139 ++
 .../cache/event/cache_entry_event_listener.h    |   71 +
 .../cache/query/continuous/continuous_query.h   |  239 ++++
 .../query/continuous/continuous_query_handle.h  |  133 ++
 .../core/include/ignite/impl/cache/cache_impl.h |  116 +-
 .../continuous/continuous_query_handle_impl.h   |  101 ++
 .../query/continuous/continuous_query_impl.h    |  351 +++++
 .../core/include/ignite/impl/handle_registry.h  |   62 +-
 .../include/ignite/impl/ignite_environment.h    |   34 +-
 modules/platforms/cpp/core/namespaces.dox       |   74 +-
 .../platforms/cpp/core/project/vs/core.vcxproj  |    7 +
 .../cpp/core/project/vs/core.vcxproj.filters    |   30 +
 modules/platforms/cpp/core/src/ignition.cpp     |   15 +-
 .../cpp/core/src/impl/cache/cache_impl.cpp      |   31 +
 .../continuous/continuous_query_handle_impl.cpp |   96 ++
 .../cpp/core/src/impl/handle_registry.cpp       |  102 +-
 .../cpp/core/src/impl/ignite_environment.cpp    |  146 +-
 modules/platforms/cpp/examples/Makefile.am      |    1 +
 modules/platforms/cpp/examples/configure.ac     |    3 +-
 .../continuous-query-example/Makefile.am        |   58 +
 .../config/continuous-query-example.xml         |   52 +
 .../project/vs/continuous-query-example.vcxproj |  110 ++
 .../vs/continuous-query-example.vcxproj.filters |   35 +
 .../src/continuous_query_example.cpp            |  142 ++
 .../examples/include/ignite/examples/person.h   |    2 +-
 .../odbc-example/config/example-odbc.xml        |   38 +-
 .../project/vs/odbc-example.vcxproj             |    7 +-
 .../project/vs/odbc-example.vcxproj.filters     |    8 +
 .../examples/odbc-example/src/odbc_example.cpp  |  514 ++++++-
 .../cpp/examples/project/vs/ignite-examples.sln |    6 +
 .../putget-example/src/putget_example.cpp       |    2 +-
 .../query-example/src/query_example.cpp         |    4 +-
 .../cpp/jni/include/ignite/jni/exports.h        |    3 -
 .../platforms/cpp/jni/include/ignite/jni/java.h |   94 +-
 modules/platforms/cpp/jni/project/vs/module.def |    6 +-
 modules/platforms/cpp/jni/src/exports.cpp       |    8 -
 modules/platforms/cpp/jni/src/java.cpp          |  419 +-----
 .../odbc-test/config/queries-test-noodbc.xml    |    4 +
 .../cpp/odbc-test/config/queries-test.xml       |   41 +
 .../platforms/cpp/odbc-test/include/Makefile.am |    1 +
 .../cpp/odbc-test/include/complex_type.h        |  122 ++
 .../cpp/odbc-test/project/vs/odbc-test.vcxproj  |    5 +-
 .../project/vs/odbc-test.vcxproj.filters        |    3 +
 .../src/application_data_buffer_test.cpp        |    2 +-
 .../cpp/odbc-test/src/queries_test.cpp          |  437 +++++-
 .../platforms/cpp/odbc/include/ignite/odbc.h    |   14 +-
 .../ignite/odbc/app/application_data_buffer.h   |    4 +-
 .../odbc/include/ignite/odbc/app/parameter.h    |    2 +-
 .../cpp/odbc/include/ignite/odbc/common_types.h |    3 +
 .../cpp/odbc/include/ignite/odbc/message.h      |  138 +-
 .../odbc/include/ignite/odbc/query/data_query.h |   12 +-
 .../cpp/odbc/include/ignite/odbc/query/query.h  |   44 +-
 .../cpp/odbc/include/ignite/odbc/statement.h    |   83 +-
 .../cpp/odbc/include/ignite/odbc/type_traits.h  |    2 +-
 .../cpp/odbc/include/ignite/odbc/utility.h      |   11 +-
 .../cpp/odbc/install/ignite-odbc-amd64.wxs      |    2 +-
 .../cpp/odbc/install/ignite-odbc-x86.wxs        |    2 +-
 .../odbc/src/app/application_data_buffer.cpp    |   57 +-
 .../platforms/cpp/odbc/src/app/parameter.cpp    |    3 +-
 modules/platforms/cpp/odbc/src/column.cpp       |   41 +-
 modules/platforms/cpp/odbc/src/connection.cpp   |   23 +-
 modules/platforms/cpp/odbc/src/entry_points.cpp |   32 +-
 modules/platforms/cpp/odbc/src/odbc.cpp         |   25 +-
 .../odbc/src/query/column_metadata_query.cpp    |    2 +-
 .../platforms/cpp/odbc/src/query/data_query.cpp |    6 +-
 .../cpp/odbc/src/query/foreign_keys_query.cpp   |    2 +-
 .../cpp/odbc/src/query/primary_keys_query.cpp   |    2 +-
 .../odbc/src/query/special_columns_query.cpp    |    2 +-
 .../cpp/odbc/src/query/table_metadata_query.cpp |    2 +-
 .../cpp/odbc/src/query/type_info_query.cpp      |    2 +-
 modules/platforms/cpp/odbc/src/statement.cpp    |  230 ++-
 modules/platforms/cpp/odbc/src/type_traits.cpp  |    3 +
 modules/platforms/cpp/odbc/src/utility.cpp      |   22 +-
 modules/platforms/cpp/project/vs/ignite.slnrel  |    3 +
 .../platforms/cpp/project/vs/ignite_x86.slnrel  |    3 +
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Apache.Ignite.AspNet.nuspec                 |    4 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Binary/BinaryCompactFooterInteropTest.cs    |   31 +-
 .../Cache/Query/CacheLinqTest.cs                |   21 +-
 .../Query/CacheQueriesCodeConfigurationTest.cs  |   17 +-
 .../Cache/Query/CacheQueriesTest.cs             |    8 +
 .../Examples/Example.cs                         |    6 +-
 .../Examples/ExamplesTest.cs                    |    7 +-
 .../Apache.Ignite.Core.Tests/ExecutableTest.cs  |   64 +-
 .../Process/IgniteProcess.cs                    |   21 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Apache.Ignite.Core.Tests/ReconnectTest.cs   |    4 +-
 .../Services/ServicesTest.cs                    |   46 +-
 .../Apache.Ignite.Core.Tests/TestUtils.cs       |    3 +-
 .../Apache.Ignite.Core.csproj                   |    2 +
 .../dotnet/Apache.Ignite.Core/Binary/IBinary.cs |    3 +-
 .../Apache.Ignite.Core/Cache/Query/QueryBase.cs |   15 +-
 .../Apache.Ignite.Core/IgniteConfiguration.cs   |    1 +
 .../Impl/Binary/BinaryUtils.cs                  |   16 +
 .../Impl/Binary/Io/BinaryStreamBase.cs          |    4 +-
 .../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs  |   29 +-
 .../Apache.Ignite.Core/Impl/Common/Future.cs    |   13 +-
 .../Impl/Common/Listenable.cs                   |   49 +
 .../Impl/Compute/ComputeImpl.cs                 |    4 +-
 .../Impl/Compute/ComputeTaskHolder.cs           |   14 +-
 .../Apache.Ignite.Core/Impl/PlatformTarget.cs   |    2 +-
 .../Impl/Unmanaged/IgniteJniNativeMethods.cs    |    8 -
 .../Impl/Unmanaged/UnmanagedCallbackHandlers.cs |   79 +-
 .../Impl/Unmanaged/UnmanagedCallbackOp.cs       |   86 ++
 .../Impl/Unmanaged/UnmanagedCallbacks.cs        | 1229 ++++++++--------
 .../Impl/Unmanaged/UnmanagedUtils.cs            |    5 -
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../EntityFrameworkCacheTest.cs                 |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Impl/CacheQueryExpressionVisitor.cs         |   12 +-
 .../Apache.Ignite.Linq/Impl/MethodVisitor.cs    |   34 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 modules/platforms/dotnet/Apache.Ignite.sln      |    7 +
 .../Apache.Ignite/Config/ArgsConfigurator.cs    |    7 +-
 .../dotnet/Apache.Ignite/Config/Configurator.cs |   10 +
 .../Apache.Ignite/Properties/AssemblyInfo.cs    |    6 +-
 modules/platforms/dotnet/DEVNOTES.txt           |   12 +-
 modules/platforms/dotnet/README.md              |  150 ++
 modules/platforms/dotnet/build.bat              |   14 +
 modules/platforms/dotnet/build.ps1              |  211 +++
 .../Datagrid/MultiTieredCacheExample.cs         |    8 +-
 .../Misc/ClientReconnectExample.cs              |   18 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 modules/rest-http/pom.xml                       |    2 +-
 modules/scalar-2.10/pom.xml                     |    2 +-
 modules/scalar/pom.xml                          |    2 +-
 modules/schedule/pom.xml                        |    2 +-
 modules/schema-import-db/pom.xml                |    2 +-
 modules/schema-import/pom.xml                   |    2 +-
 modules/slf4j/pom.xml                           |    2 +-
 modules/spark-2.10/pom.xml                      |    2 +-
 modules/spark/pom.xml                           |    2 +-
 modules/spring/pom.xml                          |    2 +-
 modules/ssh/pom.xml                             |    2 +-
 modules/storm/pom.xml                           |    2 +-
 modules/tools/pom.xml                           |    2 +-
 .../ignite/tools/classgen/ClassesGenerator.java |    8 +-
 modules/twitter/pom.xml                         |    2 +-
 modules/urideploy/pom.xml                       |    2 +-
 modules/visor-console-2.10/pom.xml              |    2 +-
 modules/visor-console/pom.xml                   |    2 +-
 modules/visor-plugins/pom.xml                   |    2 +-
 modules/web-console/backend/app/agent.js        |   32 +-
 modules/web-console/backend/app/browser.js      |   13 +
 modules/web-console/backend/app/mongo.js        |    6 +
 .../backend/config/settings.json.sample         |    7 -
 modules/web-console/backend/index.js            |    6 +-
 modules/web-console/backend/middlewares/host.js |    7 +-
 modules/web-console/backend/routes/agent.js     |    4 +-
 modules/web-console/backend/services/agents.js  |    2 +-
 modules/web-console/backend/services/caches.js  |    2 +
 .../docker/compose/backend/.dockerignore        |    2 +
 .../docker/compose/backend/Dockerfile           |    6 +-
 .../web-console/docker/compose/backend/build.sh |    4 +-
 .../docker/compose/docker-compose.yml           |    5 -
 .../docker/compose/frontend/DockerfileBuild     |    4 +-
 .../docker/compose/frontend/build.sh            |    6 +-
 .../compose/frontend/nginx/web-console.conf     |    9 +
 .../web-console/docker/standalone/.dockerignore |    5 +
 .../web-console/docker/standalone/Dockerfile    |   10 +-
 modules/web-console/docker/standalone/build.sh  |    4 +-
 .../docker/standalone/docker-compose.yml        |    7 +-
 .../docker/standalone/nginx/web-console.conf    |    9 +
 .../frontend/app/data/pom-dependencies.json     |    2 +-
 .../directives/ui-ace-pojos/ui-ace-pojos.jade   |    2 +-
 .../frontend/app/filters/duration.filter.js     |    3 +
 .../helpers/jade/form/form-field-checkbox.jade  |    2 +-
 .../helpers/jade/form/form-field-datalist.jade  |    2 +-
 .../helpers/jade/form/form-field-dropdown.jade  |    2 +-
 .../helpers/jade/form/form-field-number.jade    |    2 +-
 .../helpers/jade/form/form-field-password.jade  |    2 +-
 .../app/helpers/jade/form/form-field-text.jade  |    2 +-
 .../frontend/app/helpers/jade/mixins.jade       |   24 +-
 .../modules/configuration/generator/Beans.js    |    6 +
 .../generator/ConfigurationGenerator.js         |  165 ++-
 .../generator/JavaTransformer.service.js        |   15 +-
 .../generator/Properties.service.js             |   19 +
 .../generator/SpringTransformer.service.js      |   22 +-
 .../generator/defaults/cache.provider.js        |    8 +
 .../generator/defaults/cluster.provider.js      |    2 +-
 .../app/modules/form/field/tooltip.directive.js |    2 +-
 .../app/modules/form/group/tooltip.directive.js |    2 +-
 .../app/modules/form/panel/field.directive.js   |    4 +-
 .../app/modules/sql/scan-filter-input.jade      |    2 +-
 .../frontend/app/modules/sql/sql.controller.js  |    6 +-
 .../configuration/caches/client-near-cache.jade |    2 +-
 .../configuration/caches/concurrency.jade       |    2 +-
 .../states/configuration/caches/general.jade    |    2 +-
 .../states/configuration/caches/memory.jade     |    2 +-
 .../configuration/caches/near-cache-client.jade |    2 +-
 .../configuration/caches/near-cache-server.jade |    2 +-
 .../configuration/caches/node-filter.jade       |    2 +-
 .../states/configuration/caches/query.jade      |    2 +-
 .../states/configuration/caches/rebalance.jade  |    2 +-
 .../states/configuration/caches/statistics.jade |    2 +-
 .../states/configuration/caches/store.jade      |   20 +-
 .../states/configuration/clusters/atomic.jade   |    2 +-
 .../configuration/clusters/attributes.jade      |    2 +-
 .../states/configuration/clusters/binary.jade   |    2 +-
 .../configuration/clusters/cache-key-cfg.jade   |    2 +-
 .../configuration/clusters/checkpoint.jade      |    8 +-
 .../configuration/clusters/checkpoint/fs.jade   |    2 +-
 .../configuration/clusters/checkpoint/jdbc.jade |   41 +-
 .../configuration/clusters/checkpoint/s3.jade   |  229 +--
 .../configuration/clusters/collision.jade       |   12 +-
 .../clusters/collision/custom.jade              |    2 +-
 .../clusters/collision/fifo-queue.jade          |    2 +-
 .../clusters/collision/job-stealing.jade        |    2 +-
 .../clusters/collision/priority-queue.jade      |    2 +-
 .../configuration/clusters/communication.jade   |    2 +-
 .../configuration/clusters/connector.jade       |    2 +-
 .../configuration/clusters/deployment.jade      |    2 +-
 .../configuration/clusters/discovery.jade       |    2 +-
 .../states/configuration/clusters/events.jade   |    2 +-
 .../states/configuration/clusters/failover.jade |    2 +-
 .../states/configuration/clusters/general.jade  |    2 +-
 .../clusters/general/discovery/cloud.jade       |    2 +-
 .../clusters/general/discovery/google.jade      |    2 +-
 .../clusters/general/discovery/jdbc.jade        |    3 +-
 .../clusters/general/discovery/multicast.jade   |    2 +-
 .../clusters/general/discovery/s3.jade          |    2 +-
 .../clusters/general/discovery/shared.jade      |    2 +-
 .../clusters/general/discovery/vm.jade          |    2 +-
 .../clusters/general/discovery/zookeeper.jade   |    2 +-
 .../bounded-exponential-backoff.jade            |    2 +-
 .../discovery/zookeeper/retrypolicy/custom.jade |    2 +-
 .../retrypolicy/exponential-backoff.jade        |    2 +-
 .../zookeeper/retrypolicy/forever.jade          |    2 +-
 .../zookeeper/retrypolicy/n-times.jade          |    2 +-
 .../zookeeper/retrypolicy/one-time.jade         |    2 +-
 .../zookeeper/retrypolicy/until-elapsed.jade    |    2 +-
 .../states/configuration/clusters/igfs.jade     |    2 +-
 .../configuration/clusters/load-balancing.jade  |    2 +-
 .../states/configuration/clusters/logger.jade   |    2 +-
 .../configuration/clusters/logger/custom.jade   |    2 +-
 .../configuration/clusters/logger/log4j.jade    |    2 +-
 .../configuration/clusters/logger/log4j2.jade   |    2 +-
 .../configuration/clusters/marshaller.jade      |    2 +-
 .../states/configuration/clusters/metrics.jade  |    2 +-
 .../states/configuration/clusters/odbc.jade     |    2 +-
 .../states/configuration/clusters/ssl.jade      |    2 +-
 .../states/configuration/clusters/swap.jade     |    2 +-
 .../states/configuration/clusters/thread.jade   |    2 +-
 .../states/configuration/clusters/time.jade     |    2 +-
 .../configuration/clusters/transactions.jade    |    2 +-
 .../states/configuration/domains/general.jade   |    2 +-
 .../states/configuration/domains/query.jade     |   16 +-
 .../states/configuration/domains/store.jade     |   12 +-
 .../modules/states/configuration/igfs/dual.jade |    2 +-
 .../states/configuration/igfs/fragmentizer.jade |    2 +-
 .../states/configuration/igfs/general.jade      |    2 +-
 .../modules/states/configuration/igfs/ipc.jade  |    2 +-
 .../modules/states/configuration/igfs/misc.jade |    6 +-
 .../states/configuration/igfs/secondary.jade    |    2 +-
 .../configuration/summary/summary.controller.js |   12 +-
 .../frontend/controllers/clusters-controller.js |   10 +
 .../frontend/controllers/domains-controller.js  |    8 +-
 .../frontend/gulpfile.babel.js/tasks/jade.js    |    4 +-
 .../frontend/gulpfile.babel.js/tasks/test.js    |   92 --
 .../gulpfile.babel.js/webpack/common.js         |    5 +-
 .../webpack/environments/development.js         |    5 +
 modules/web-console/frontend/package.json       |    2 +-
 .../stylesheets/_font-awesome-custom.scss       |   18 +
 .../frontend/public/stylesheets/style.scss      |   13 +-
 .../frontend/views/configuration/caches.jade    |   22 +-
 .../frontend/views/configuration/clusters.jade  |   50 +-
 .../views/configuration/domains-import.jade     |    4 +-
 .../frontend/views/configuration/domains.jade   |    8 +-
 .../frontend/views/configuration/igfs.jade      |   14 +-
 .../frontend/views/configuration/summary.jade   |    2 +-
 .../frontend/views/includes/header.jade         |   15 +-
 .../frontend/views/settings/profile.jade        |    2 +-
 modules/web-console/frontend/views/sql/sql.jade |    2 +-
 .../views/templates/agent-download.jade         |    2 +-
 .../frontend/views/templates/batch-confirm.jade |    2 +-
 .../frontend/views/templates/clone.jade         |    2 +-
 .../frontend/views/templates/confirm.jade       |    2 +-
 modules/web-console/pom.xml                     |    2 +-
 modules/web-console/web-agent/README.txt        |    4 +-
 .../web-agent/bin/ignite-web-agent.bat          |    7 +-
 .../web-agent/bin/ignite-web-agent.sh           |    6 +-
 modules/web-console/web-agent/pom.xml           |    2 +-
 .../console/agent/AgentConfiguration.java       |    5 +-
 .../ignite/console/agent/AgentLauncher.java     |    6 +-
 .../ignite/console/demo/AgentClusterDemo.java   |    1 +
 modules/web/ignite-appserver-test/pom.xml       |    2 +-
 modules/web/ignite-websphere-test/pom.xml       |    2 +-
 modules/web/pom.xml                             |    2 +-
 .../config/benchmark-bin-identity.properties    |   94 ++
 .../config/benchmark-multicast.properties       |   15 +
 .../config/benchmark-sql-dml.properties         |   72 +
 modules/yardstick/config/ignite-base-config.xml |   71 +-
 .../config/ignite-bin-multicast-config.xml      |   86 ++
 modules/yardstick/pom.xml                       |    2 +-
 .../yardstick/IgniteAbstractBenchmark.java      |   30 +
 .../yardstick/IgniteBenchmarkArguments.java     |   11 +
 .../ignite/yardstick/IgniteBenchmarkUtils.java  |   42 +-
 .../apache/ignite/yardstick/PreloadLogger.java  |  155 ++
 .../yardstick/cache/CacheEntryEventProbe.java   |    2 +-
 .../cache/IgniteBinaryIdentityBenchmark.java    |  108 ++
 .../cache/IgniteBinaryIdentityGetBenchmark.java |   34 +
 .../cache/IgniteBinaryIdentityPutBenchmark.java |   35 +
 .../IgniteFieldsBinaryIdentityGetBenchmark.java |   30 +
 .../IgniteFieldsBinaryIdentityPutBenchmark.java |   30 +
 .../yardstick/cache/IgniteIoTestBenchmark.java  |   73 +
 .../IgniteLegacyBinaryIdentityGetBenchmark.java |   30 +
 .../IgniteLegacyBinaryIdentityPutBenchmark.java |   30 +
 ...IgnitePutIfAbsentIndexedValue1Benchmark.java |   45 +
 .../IgniteReplaceIndexedValue1Benchmark.java    |   79 ++
 .../cache/dml/IgniteSqlDeleteBenchmark.java     |   83 ++
 .../dml/IgniteSqlDeleteFilteredBenchmark.java   |   88 ++
 .../IgniteSqlInsertIndexedValue1Benchmark.java  |   48 +
 .../IgniteSqlInsertIndexedValue2Benchmark.java  |   48 +
 .../IgniteSqlInsertIndexedValue8Benchmark.java  |   48 +
 .../cache/dml/IgniteSqlMergeAllBenchmark.java   |   82 ++
 .../cache/dml/IgniteSqlMergeBenchmark.java      |   42 +
 .../IgniteSqlMergeIndexedValue1Benchmark.java   |   43 +
 .../IgniteSqlMergeIndexedValue2Benchmark.java   |   43 +
 .../IgniteSqlMergeIndexedValue8Benchmark.java   |   43 +
 .../cache/dml/IgniteSqlMergeQueryBenchmark.java |  116 ++
 .../cache/dml/IgniteSqlUpdateBenchmark.java     |   82 ++
 .../dml/IgniteSqlUpdateFilteredBenchmark.java   |   88 ++
 .../IgniteCacheRandomOperationBenchmark.java    |   22 +-
 .../yardstick/cache/model/SampleValue.java      |    2 +
 .../io/IgniteIoTestAbstractBenchmark.java       |   61 +
 .../io/IgniteIoTestSendAllBenchmark.java        |   32 +
 .../io/IgniteIoTestSendRandomBenchmark.java     |   35 +
 modules/yarn/pom.xml                            |    2 +-
 modules/zookeeper/pom.xml                       |    2 +-
 pom.xml                                         |    2 +-
 860 files changed, 34797 insertions(+), 8348 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/dc086bf3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/dc086bf3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------


[04/50] [abbrv] ignite git commit: gg-11729 : Reverted MessageCodeGenerator.

Posted by ag...@apache.org.
gg-11729 : Reverted MessageCodeGenerator.


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

Branch: refs/heads/ignite-3477
Commit: 3f83c0819f0530632c82ccadee34352de16d5617
Parents: eddd7dc
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Mon Dec 19 22:24:18 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Mon Dec 19 22:24:18 2016 +0300

----------------------------------------------------------------------
 .../main/java/org/apache/ignite/codegen/MessageCodeGenerator.java | 3 ---
 1 file changed, 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/3f83c081/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
----------------------------------------------------------------------
diff --git a/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java b/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
index a54b376..65ebd8d 100644
--- a/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
+++ b/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
@@ -44,7 +44,6 @@ import org.apache.ignite.internal.GridDirectCollection;
 import org.apache.ignite.internal.GridDirectMap;
 import org.apache.ignite.internal.GridDirectTransient;
 import org.apache.ignite.internal.IgniteCodeGeneratingFail;
-import org.apache.ignite.internal.pagemem.snapshot.SnapshotProgressMessage;
 import org.apache.ignite.internal.util.typedef.internal.SB;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteUuid;
@@ -167,8 +166,6 @@ public class MessageCodeGenerator {
 
         MessageCodeGenerator gen = new MessageCodeGenerator(srcDir);
 
-        gen.generateAndWrite(SnapshotProgressMessage.class);
-
 //        gen.generateAll(true);
 
 //        gen.generateAndWrite(GridNearAtomicUpdateRequest.class);


[41/50] [abbrv] ignite git commit: ignite-gg-11650 Stabilize 8.0.2.ea1 fix for generated full api tests

Posted by ag...@apache.org.
ignite-gg-11650 Stabilize 8.0.2.ea1 fix for generated full api tests


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

Branch: refs/heads/ignite-3477
Commit: cb5633317c9071369ddde1c568e4479a7ccc0557
Parents: 8070da3
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Mon Dec 26 16:26:30 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Mon Dec 26 16:26:30 2016 +0300

----------------------------------------------------------------------
 .../ignite/internal/processors/cache/GridCacheProcessor.java   | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/cb563331/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index d9d6c2e..554d062 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -781,7 +781,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                     ctx.config().setCacheConfiguration(newCacheCfg);
                 }
 
-                activeOnStart = ctx.state().active();
+                activeOnStart = currentStatus;
             }
 
             if (activeOnStart)
@@ -849,6 +849,10 @@ public class GridCacheProcessor extends GridProcessorAdapter {
         for (GridCacheAdapter<?, ?> cache : caches.values())
             onKernalStart(cache);
 
+        //todo
+     /*   if (!ctx.state().active())
+            return;*/
+
         ctx.marshallerContext().onMarshallerCacheStarted(ctx);
 
         if (!ctx.config().isDaemon())


[34/50] [abbrv] ignite git commit: ignite-gg-11650 Stabilize 8.0.2.ea1 cancel deployment fut if deactivate

Posted by ag...@apache.org.
ignite-gg-11650 Stabilize 8.0.2.ea1 cancel deployment fut if deactivate


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

Branch: refs/heads/ignite-3477
Commit: 6d45ace3faad9b491c11b64a01f1f9d093201b8a
Parents: c1fd8aa
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Fri Dec 23 12:28:04 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Fri Dec 23 12:28:04 2016 +0300

----------------------------------------------------------------------
 .../processors/cluster/GridClusterStateProcessor.java   | 12 ++++++------
 .../processors/service/GridServiceProcessor.java        |  6 +++++-
 2 files changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/6d45ace3/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
index 725c9f3..55061fc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
@@ -379,6 +379,12 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
         // revert change if activation request fail
         if (actx.activate) {
             try {
+                cacheProc.onKernalStopCaches(true);
+
+                cacheProc.stopCaches(true);
+
+                sharedCtx.affinity().removeAllCacheInfo();
+
                 if (!ctx.clientNode()) {
                     sharedCtx.database().onDeActivate(ctx);
 
@@ -387,12 +393,6 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
 
                     sharedCtx.wal().onDeActivate(ctx);
                 }
-
-                cacheProc.onKernalStopCaches(true);
-
-                cacheProc.stopCaches(true);
-
-                sharedCtx.affinity().removeAllCacheInfo();
             }
             catch (Exception e) {
                 for (Map.Entry<UUID, Exception> entry : exs.entrySet())

http://git-wip-us.apache.org/repos/asf/ignite/blob/6d45ace3/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
index c63ffd4..ac50ef2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
@@ -376,11 +376,15 @@ public class GridServiceProcessor extends GridProcessorAdapter implements Ignite
     }
 
     /** {@inheritDoc} */
-    @Override public void onDeActivate(GridKernalContext kctx) {
+    @Override public void onDeActivate(GridKernalContext kctx) throws IgniteCheckedException {
         if (log.isDebugEnabled())
             log.debug("DeActivate service processor [nodeId=" + ctx.localNodeId() +
                 " topVer=" + ctx.discovery().topologyVersionEx() + " ]");
 
+        cancelFutures(depFuts, new IgniteCheckedException("Failed to deploy service, cluster in active."));
+
+        cancelFutures(undepFuts, new IgniteCheckedException("Failed to undeploy service, cluster in active."));
+
         onKernalStop(true);
     }
 


[43/50] [abbrv] ignite git commit: Merge apache/master into ignite-gg-8.0.2.ea1

Posted by ag...@apache.org.
Merge apache/master into ignite-gg-8.0.2.ea1


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

Branch: refs/heads/ignite-3477
Commit: d98d947fb971053b2c9e024cb6cf286b4c47d65a
Parents: e8f6a54 300750f
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Tue Dec 27 12:53:52 2016 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Tue Dec 27 12:53:52 2016 +0300

----------------------------------------------------------------------
 .../store/cassandra/CassandraCacheStore.java    |    6 +
 .../store/cassandra/datasource/DataSource.java  |    9 +
 .../java/org/apache/ignite/IgniteLogger.java    |    6 +-
 .../java/org/apache/ignite/IgniteServices.java  |   16 +
 .../ignite/cache/store/CacheStoreAdapter.java   |    6 +
 .../cache/store/jdbc/CacheJdbcPojoStore.java    |   19 +-
 .../store/jdbc/JdbcTypesDefaultTransformer.java |  112 +-
 .../org/apache/ignite/internal/GridTopic.java   |    8 +-
 .../ignite/internal/IgniteServicesImpl.java     |    9 +-
 .../internal/binary/BinaryClassDescriptor.java  |   12 +-
 .../ignite/internal/binary/BinaryUtils.java     |   10 +-
 .../binary/builder/BinaryObjectBuilderImpl.java |   11 +-
 .../affinity/GridAffinityProcessor.java         |    2 +-
 .../cache/CacheStoreBalancingWrapper.java       |    6 +
 .../processors/cache/GridCacheAdapter.java      |    8 +-
 .../cache/GridCacheLoaderWriterStore.java       |    6 +
 .../GridCachePartitionExchangeManager.java      |   31 +-
 .../CacheDataStructuresManager.java             |    6 +-
 .../cache/query/GridCacheQueryManager.java      |    4 +-
 .../closure/GridClosureProcessor.java           |   31 +-
 .../internal/processors/job/GridJobWorker.java  |   76 +-
 .../processors/odbc/OdbcRequestHandler.java     |   16 +-
 .../internal/processors/odbc/OdbcTableMeta.java |   15 +-
 .../platform/PlatformContextImpl.java           |    2 +-
 .../dotnet/PlatformDotNetCacheStore.java        |   11 +
 .../platform/services/PlatformServices.java     |    2 +-
 .../platform/utils/PlatformUtils.java           |   28 +
 .../service/GridServiceProcessor.java           |   11 +-
 .../processors/service/GridServiceProxy.java    |   18 +-
 .../processors/task/GridTaskWorker.java         |    7 +
 .../visor/service/VisorCancelServiceTask.java   |   70 +
 .../visor/service/VisorServiceDescriptor.java   |  132 +
 .../visor/service/VisorServiceTask.java         |   75 +
 .../internal/visor/util/VisorTaskUtils.java     |   15 +-
 .../apache/ignite/logger/java/JavaLogger.java   |    4 +-
 .../communication/tcp/TcpCommunicationSpi.java  |    4 +-
 .../apache/ignite/util/AttributeNodeFilter.java |  108 +
 .../resources/META-INF/classnames.properties    |    7 +
 .../jdbc/JdbcTypesDefaultTransformerTest.java   |  283 ++
 .../IgniteComputeTopologyExceptionTest.java     |    5 +-
 .../binary/BinaryMarshallerSelfTest.java        |   66 +
 ...heapCacheMetricsForClusterGroupSelfTest.java |  141 +
 .../CacheOffHeapAndSwapMetricsSelfTest.java     |  617 ---
 ...LocalCacheOffHeapAndSwapMetricsSelfTest.java |  617 +++
 .../closure/GridClosureSerializationTest.java   |  177 +
 ...gniteServiceProxyTimeoutInitializedTest.java |  284 ++
 .../junits/logger/GridTestLog4jLogger.java      |    4 +-
 .../ignite/testsuites/IgniteBasicTestSuite.java |    5 +
 .../IgniteCacheMetricsSelfTestSuite.java        |    6 +-
 .../ignite/testsuites/IgniteCacheTestSuite.java |    2 +
 .../testsuites/IgniteKernalSelfTestSuite.java   |    2 +
 .../util/AttributeNodeFilterSelfTest.java       |  184 +
 .../processors/query/h2/IgniteH2Indexing.java   |   75 +-
 ...niteCachePartitionedFieldsQuerySelfTest.java |   25 +
 .../apache/ignite/logger/log4j/Log4JLogger.java |    4 +-
 .../cache/query/continuous/continuous_query.h   |    2 +-
 .../cpp/odbc-test/config/queries-default.xml    |  145 +
 .../odbc-test/config/queries-test-noodbc.xml    |   84 +-
 .../cpp/odbc-test/config/queries-test.xml       |  122 +-
 .../cpp/odbc-test/src/queries_test.cpp          |   76 +
 .../cpp/odbc-test/src/utility_test.cpp          |   27 +-
 modules/platforms/cpp/odbc/src/utility.cpp      |   10 +
 .../Cache/Query/CacheLinqTest.cs                |   51 +-
 .../Examples/Example.cs                         |    5 +-
 .../Examples/ExamplesTest.cs                    |  107 +-
 .../Apache.Ignite.Core.Tests/ReconnectTest.cs   |   21 +-
 .../EntityFrameworkCacheTest.cs                 |   54 +-
 .../Impl/DbCommandInfo.cs                       |   21 +-
 .../Apache.Ignite.Linq/Impl/ExpressionWalker.cs |    8 +
 modules/platforms/dotnet/build.bat              |   11 +-
 .../spi/deployment/uri/UriDeploymentSpi.java    |    2 +-
 modules/web-console/backend/app/agent.js        |   15 +
 modules/web-console/backend/app/browser.js      |   13 +
 modules/web-console/backend/app/mongo.js        |   24 +-
 modules/web-console/backend/routes/demo.js      |   17 +-
 modules/web-console/backend/routes/profile.js   |    3 +-
 .../web-console/backend/services/notebooks.js   |   14 +-
 .../web-console/backend/services/sessions.js    |    6 +-
 modules/web-console/backend/services/spaces.js  |   15 +
 modules/web-console/frontend/app/app.js         |    5 -
 .../controllers/reset-password.controller.js    |   14 +-
 .../frontend/app/data/event-groups.json         |  169 +
 .../frontend/app/data/event-types.json          |  169 -
 .../frontend/app/data/pom-dependencies.json     |   12 +-
 .../ui-ace-docker/ui-ace-docker.controller.js   |    2 +-
 .../directives/ui-ace-docker/ui-ace-docker.jade |    2 +-
 .../ui-ace-pojos/ui-ace-pojos.controller.js     |   12 +-
 .../ui-ace-pom/ui-ace-pom.controller.js         |    4 +-
 .../helpers/jade/form/form-field-dropdown.jade  |    5 +-
 .../helpers/jade/form/form-field-number.jade    |    3 +-
 .../app/helpers/jade/form/form-field-text.jade  |   19 +-
 .../frontend/app/helpers/jade/mixins.jade       |   52 +-
 .../frontend/app/modules/Demo/Demo.module.js    |    6 +-
 .../configuration/EventGroups.provider.js       |   30 -
 .../modules/configuration/Version.service.js    |    6 +-
 .../configuration/configuration.module.js       |   63 +-
 .../generator/AbstractTransformer.js            |   17 +
 .../modules/configuration/generator/Beans.js    |    5 +
 .../generator/ConfigurationGenerator.js         | 2795 +++++++-------
 .../configuration/generator/Custom.service.js   |   23 +
 .../configuration/generator/Docker.service.js   |    4 +-
 .../generator/JavaTransformer.service.js        | 2318 +++++------
 .../configuration/generator/Maven.service.js    |  234 ++
 .../configuration/generator/Pom.service.js      |  233 --
 .../generator/Properties.service.js             |    2 +-
 .../configuration/generator/Readme.service.js   |    2 +-
 .../generator/SharpTransformer.service.js       |  437 ++-
 .../generator/SpringTransformer.service.js      |  497 ++-
 .../defaults/Cache.platform.service.js          |   56 +
 .../generator/defaults/Cache.service.js         |  131 +
 .../defaults/Cluster.platform.service.js        |   43 +
 .../generator/defaults/Cluster.service.js       |  289 ++
 .../generator/defaults/Event-groups.service.js  |   27 +
 .../generator/defaults/IGFS.service.js          |   64 +
 .../defaults/cache.platform.provider.js         |   60 -
 .../generator/defaults/cache.provider.js        |  137 -
 .../defaults/cluster.platform.provider.js       |   49 -
 .../generator/defaults/cluster.provider.js      |  293 --
 .../generator/defaults/igfs.provider.js         |   68 -
 .../configuration/generator/generator-common.js |  625 ---
 .../configuration/generator/generator-java.js   | 3617 ------------------
 .../generator/generator-optional.js             |   25 -
 .../configuration/generator/generator-spring.js | 2111 ----------
 .../frontend/app/modules/sql/Notebook.data.js   |   11 +-
 .../app/modules/sql/Notebook.service.js         |    2 +-
 .../app/modules/sql/scan-filter-input.jade      |   39 -
 .../modules/sql/scan-filter-input.service.js    |   51 -
 .../frontend/app/modules/sql/sql.controller.js  |  211 +-
 .../frontend/app/modules/sql/sql.module.js      |    2 -
 .../app/modules/states/configuration.state.js   |    2 +
 .../configuration/caches/node-filter.jade       |    2 +-
 .../states/configuration/caches/query.jade      |    3 +
 .../states/configuration/caches/store.jade      |    4 +-
 .../configuration/clusters/checkpoint.jade      |   11 +-
 .../configuration/clusters/checkpoint/fs.jade   |    8 +-
 .../configuration/clusters/checkpoint/jdbc.jade |    8 +-
 .../configuration/clusters/checkpoint/s3.jade   |   25 +-
 .../clusters/collision/custom.jade              |    2 +-
 .../clusters/collision/job-stealing.jade        |    2 +-
 .../configuration/clusters/deployment.jade      |  129 +-
 .../states/configuration/clusters/events.jade   |    4 +-
 .../states/configuration/clusters/failover.jade |    4 +-
 .../clusters/general/discovery/zookeeper.jade   |    2 +-
 .../discovery/zookeeper/retrypolicy/custom.jade |    2 +-
 .../configuration/clusters/load-balancing.jade  |   23 +-
 .../configuration/clusters/logger/custom.jade   |    2 +-
 .../states/configuration/clusters/ssl.jade      |    2 +-
 .../summary/summary-zipper.service.js           |   37 +
 .../configuration/summary/summary.controller.js |  103 +-
 .../configuration/summary/summary.worker.js     |  123 +
 .../frontend/app/modules/user/Auth.service.js   |   11 +-
 .../frontend/app/services/JavaTypes.service.js  |   13 +-
 .../frontend/app/services/Messages.service.js   |   17 +-
 .../frontend/controllers/admin-controller.js    |  211 +-
 .../frontend/controllers/caches-controller.js   |   22 +-
 .../frontend/controllers/clusters-controller.js |   42 +-
 .../frontend/controllers/domains-controller.js  |   32 +-
 .../frontend/controllers/igfs-controller.js     |   20 +-
 .../frontend/controllers/profile-controller.js  |    3 +-
 .../gulpfile.babel.js/webpack/common.js         |   17 +-
 .../webpack/environments/development.js         |   14 +-
 .../webpack/environments/production.js          |    3 +-
 .../webpack/plugins/progress.js                 |   82 -
 modules/web-console/frontend/package.json       |  178 +-
 .../frontend/public/images/cache.png            |  Bin 23700 -> 24791 bytes
 .../frontend/public/images/domains.png          |  Bin 23828 -> 22131 bytes
 .../web-console/frontend/public/images/igfs.png |  Bin 14307 -> 14139 bytes
 .../frontend/public/images/query-chart.png      |  Bin 16637 -> 17142 bytes
 .../frontend/public/images/query-metadata.png   |  Bin 32298 -> 39361 bytes
 .../frontend/public/images/query-table.png      |  Bin 29189 -> 28065 bytes
 .../frontend/public/images/summary.png          |  Bin 31997 -> 33650 bytes
 .../stylesheets/_font-awesome-custom.scss       |   23 +-
 .../frontend/public/stylesheets/form-field.scss |   37 +
 .../frontend/public/stylesheets/style.scss      |  111 +-
 .../frontend/test/unit/JavaTypes.test.js        |   17 +-
 .../frontend/test/unit/Version.test.js          |    8 +-
 .../views/configuration/domains-import.jade     |    5 +-
 .../frontend/views/configuration/summary.jade   |   25 +-
 .../frontend/views/settings/admin.jade          |   85 +-
 .../frontend/views/sql/notebook-new.jade        |    2 +-
 modules/web-console/frontend/views/sql/sql.jade |  235 +-
 .../frontend/views/templates/alert.jade         |    2 +-
 .../frontend/views/templates/select.jade        |    2 +-
 183 files changed, 8697 insertions(+), 12338 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
index c86e572,2962540..86245a8
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
@@@ -99,10 -96,11 +96,13 @@@ public enum GridTopic 
      /** */
      TOPIC_TX,
  
 +    TOPIC_SNAPSHOT,
 +
      /** */
-     TOPIC_IO_TEST;
+     TOPIC_IO_TEST,
+ 
+     /** */
+     TOPIC_HADOOP_MSG;
  
      /** Enum values. */
      private static final GridTopic[] VALS = values();

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index 2b62ce9,f6dfe95..f10a072
--- 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
@@@ -839,10 -821,18 +839,18 @@@ public class GridCachePartitionExchange
                  lastVer,
                  exchId != null ? exchId.topologyVersion() : AffinityTopologyVersion.NONE);
  
 -        boolean useOldApi = false;
 -
          if (nodes != null) {
              for (ClusterNode node : nodes) {
-                 if (node.version().compareToIgnoreTimestamp(GridDhtPartitionsAbstractMessage.PART_MAP_COMPRESS_SINCE) < 0)
+                 if (node.version().compareTo(GridDhtPartitionMap2.SINCE) < 0) {
 -                    useOldApi = true;
                      compress = false;
+ 
+                     break;
+                 }
 -                else if (!canUsePartitionMapCompression(node))
++                else if (!canUsePartitionMapCompression(node)) {
+                     compress = false;
++
++                    break;
++                }
              }
          }
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/main/resources/META-INF/classnames.properties
----------------------------------------------------------------------
diff --cc modules/core/src/main/resources/META-INF/classnames.properties
index a1de5bb,4d0b931..445f072
--- a/modules/core/src/main/resources/META-INF/classnames.properties
+++ b/modules/core/src/main/resources/META-INF/classnames.properties
@@@ -1894,8 -1891,8 +1899,9 @@@ org.apache.ignite.spi.checkpoint.shared
  org.apache.ignite.spi.collision.jobstealing.JobStealingRequest
  org.apache.ignite.spi.collision.priorityqueue.PriorityQueueCollisionSpi$PriorityGridCollisionJobContextComparator
  org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$1
+ org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$10
  org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$11
 +org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$12
  org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$2$ConnectClosure
  org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$2$ConnectClosure$1
  org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$2$ConnectClosureNew

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/local/LocalCacheOffHeapAndSwapMetricsSelfTest.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/internal/processors/cache/local/LocalCacheOffHeapAndSwapMetricsSelfTest.java
index 0000000,ae8807f..20befb5
mode 000000,100644..100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/local/LocalCacheOffHeapAndSwapMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/local/LocalCacheOffHeapAndSwapMetricsSelfTest.java
@@@ -1,0 -1,621 +1,617 @@@
+ /*
+  * 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.local;
+ 
+ import org.apache.ignite.IgniteCache;
+ import org.apache.ignite.cache.CacheAtomicityMode;
+ import org.apache.ignite.cache.CacheMemoryMode;
+ import org.apache.ignite.cache.CacheMode;
+ import org.apache.ignite.cache.eviction.fifo.FifoEvictionPolicy;
+ import org.apache.ignite.configuration.CacheConfiguration;
+ import org.apache.ignite.configuration.IgniteConfiguration;
 -import org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi;
+ import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+ 
+ /**
+  *
+  */
+ public class LocalCacheOffHeapAndSwapMetricsSelfTest extends GridCommonAbstractTest {
+     /** Grid count. */
+     private static final int GRID_CNT = 1;
+ 
+     /** Keys count. */
+     private static final int KEYS_CNT = 1000;
+ 
+     /** Max size. */
+     private static final int MAX_SIZE = 100;
+ 
+     /** Entry size. */
+     private static final int ENTRY_SIZE = 86; // Calculated as allocated size divided on entries count.
+ 
+     /** Offheap max count. */
+     private static final int OFFHEAP_MAX_CNT = KEYS_CNT / 2;
+ 
+     /** Offheap max size. */
+     private static final int OFFHEAP_MAX_SIZE = ENTRY_SIZE * OFFHEAP_MAX_CNT;
+ 
+     /** Cache. */
+     private IgniteCache<Integer, Integer> cache;
+ 
+     /** {@inheritDoc} */
+     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+         IgniteConfiguration cfg = super.getConfiguration(gridName);
+ 
 -        cfg.setSwapSpaceSpi(new FileSwapSpaceSpi());
 -
+         return cfg;
+     }
+ 
+     /**
+      * @param memoryMode Cache memory mode.
+      * @param offHeapSize Max off-heap size.
+      * @param swapEnabled Swap enabled.
+      */
+     private void createCache(CacheMemoryMode memoryMode, int offHeapSize, boolean swapEnabled) {
+         CacheConfiguration ccfg = defaultCacheConfiguration();
+ 
+         ccfg.setStatisticsEnabled(true);
+ 
+         ccfg.setCacheMode(CacheMode.LOCAL);
+         ccfg.setAtomicityMode(CacheAtomicityMode.ATOMIC);
+         ccfg.setMemoryMode(memoryMode);
+ 
+         ccfg.setOffHeapMaxMemory(offHeapSize);
 -        ccfg.setSwapEnabled(swapEnabled);
+ 
+         ccfg.setEvictionPolicy(new FifoEvictionPolicy(MAX_SIZE));
+ 
+         cache = grid(0).getOrCreateCache(ccfg);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override protected void beforeTestsStarted() throws Exception {
+         super.beforeTestsStarted();
+ 
+         startGrids(GRID_CNT);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override protected void afterTestsStopped() throws Exception {
+         super.afterTestsStopped();
+ 
+         stopAllGrids();
+     }
+ 
+     /** {@inheritDoc} */
+     @Override protected void afterTest() throws Exception {
+         if (cache != null)
+             cache.destroy();
+     }
+ 
+     /**
+      * @throws Exception if failed.
+      */
+     public void testOffHeapMetrics() throws Exception {
+         createCache(CacheMemoryMode.ONHEAP_TIERED, 0, false);
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.put(i, i);
+ 
+         printStat();
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getOffHeapPuts());
+         assertEquals(KEYS_CNT, cache.localMetrics().getOffHeapGets());
+         assertEquals(0, cache.localMetrics().getOffHeapHits());
+         assertEquals(0f, cache.localMetrics().getOffHeapHitPercentage());
+         assertEquals(KEYS_CNT, cache.localMetrics().getOffHeapMisses());
+         assertEquals(100f, cache.localMetrics().getOffHeapMissPercentage());
+         assertEquals(0, cache.localMetrics().getOffHeapRemovals());
+ 
+         assertEquals(0, cache.localMetrics().getOffHeapEvictions());
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getOffHeapEntriesCount());
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.localMetrics().getOffHeapBackupEntriesCount());
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.get(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getOffHeapPuts());
+         assertEquals(KEYS_CNT * 2, cache.localMetrics().getOffHeapGets());
+         assertEquals(KEYS_CNT, cache.localMetrics().getOffHeapHits());
+         assertEquals(100 * KEYS_CNT / (KEYS_CNT * 2.0), cache.localMetrics().getOffHeapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.localMetrics().getOffHeapMisses());
+         assertEquals(100 * KEYS_CNT / (KEYS_CNT * 2.0), cache.localMetrics().getOffHeapMissPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.localMetrics().getOffHeapRemovals());
+ 
+         assertEquals(0, cache.localMetrics().getOffHeapEvictions());
+         assertEquals(KEYS_CNT - MAX_SIZE, cache.localMetrics().getOffHeapEntriesCount());
+         assertEquals(KEYS_CNT - MAX_SIZE, cache.localMetrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.localMetrics().getOffHeapBackupEntriesCount());
+ 
+         for (int i = KEYS_CNT; i < KEYS_CNT * 2; i++)
+             cache.get(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getOffHeapPuts());
+         assertEquals(KEYS_CNT * 3, cache.localMetrics().getOffHeapGets());
+         assertEquals(KEYS_CNT, cache.localMetrics().getOffHeapHits());
+         assertEquals(100 / 3.0, cache.localMetrics().getOffHeapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2, cache.localMetrics().getOffHeapMisses());
+         assertEquals(100 - (100 / 3.0), cache.localMetrics().getOffHeapMissPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.localMetrics().getOffHeapRemovals());
+ 
+         assertEquals(0, cache.localMetrics().getOffHeapEvictions());
+         assertEquals(KEYS_CNT - MAX_SIZE, cache.localMetrics().getOffHeapEntriesCount());
+         assertEquals(KEYS_CNT - MAX_SIZE, cache.localMetrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.localMetrics().getOffHeapBackupEntriesCount());
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.remove(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getOffHeapPuts());
+         assertEquals(KEYS_CNT * 4 - MAX_SIZE, cache.localMetrics().getOffHeapGets());
+         assertEquals(KEYS_CNT * 2 - MAX_SIZE, cache.localMetrics().getOffHeapHits());
+         assertEquals(100 * (KEYS_CNT * 2.0 - MAX_SIZE) / (KEYS_CNT * 4.0 - MAX_SIZE),
+             cache.localMetrics().getOffHeapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2, cache.localMetrics().getOffHeapMisses());
+         assertEquals(100 * KEYS_CNT * 2.0 / (KEYS_CNT * 4.0 - MAX_SIZE),
+             cache.localMetrics().getOffHeapMissPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2 - MAX_SIZE, cache.localMetrics().getOffHeapRemovals());
+ 
+         assertEquals(0, cache.localMetrics().getOffHeapEvictions());
+         assertEquals(0, cache.localMetrics().getOffHeapEntriesCount());
+         assertEquals(0, cache.localMetrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.localMetrics().getOffHeapBackupEntriesCount());
+     }
+ 
+     /**
+      * @throws Exception if failed.
+      */
+     public void testSwapMetrics() throws Exception {
+         createCache(CacheMemoryMode.ONHEAP_TIERED, -1, true);
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.put(i, i);
+ 
+         printStat();
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getSwapPuts());
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapGets());
+         assertEquals(0, cache.localMetrics().getSwapHits());
+         assertEquals(0f, cache.localMetrics().getSwapHitPercentage());
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapMisses());
+         assertEquals(100f, cache.localMetrics().getSwapMissPercentage());
+         assertEquals(0, cache.localMetrics().getSwapRemovals());
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getSwapEntriesCount());
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.get(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getSwapPuts());
+         assertEquals(KEYS_CNT * 2, cache.localMetrics().getSwapGets());
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapHits());
+         assertEquals(100 * KEYS_CNT / (KEYS_CNT * 2.0), cache.localMetrics().getSwapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapMisses());
+         assertEquals(100 * KEYS_CNT / (KEYS_CNT * 2.0), cache.localMetrics().getSwapMissPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapRemovals());
+ 
+         assertEquals(KEYS_CNT - MAX_SIZE, cache.localMetrics().getSwapEntriesCount());
+ 
+         for (int i = KEYS_CNT; i < KEYS_CNT * 2; i++)
+             cache.get(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getSwapPuts());
+         assertEquals(KEYS_CNT * 3, cache.localMetrics().getSwapGets());
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapHits());
+         assertEquals(100 / 3.0, cache.localMetrics().getSwapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2, cache.localMetrics().getSwapMisses());
+         assertEquals(100 - (100 / 3.0), cache.localMetrics().getSwapMissPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapRemovals());
+ 
+         assertEquals(KEYS_CNT - MAX_SIZE, cache.localMetrics().getSwapEntriesCount());
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.remove(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getSwapPuts());
+         assertEquals(KEYS_CNT * 4 - MAX_SIZE, cache.localMetrics().getSwapGets());
+         assertEquals(KEYS_CNT * 2 - MAX_SIZE, cache.localMetrics().getSwapHits());
+         assertEquals(100 * (KEYS_CNT * 2.0 - MAX_SIZE) / (KEYS_CNT * 4.0 - MAX_SIZE),
+             cache.localMetrics().getSwapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2, cache.localMetrics().getSwapMisses());
+         assertEquals(100 * KEYS_CNT * 2.0 / (KEYS_CNT * 4.0 - MAX_SIZE),
+             cache.localMetrics().getSwapMissPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2 - MAX_SIZE, cache.localMetrics().getSwapRemovals());
+ 
+         assertEquals(0, cache.localMetrics().getSwapEntriesCount());
+     }
+ 
+     /**
+      * @throws Exception if failed.
+      */
+     public void testOffHeapAndSwapMetrics() throws Exception {
+         createCache(CacheMemoryMode.ONHEAP_TIERED, OFFHEAP_MAX_SIZE, true);
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.put(i, i);
+ 
+         printStat();
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getOffHeapPuts());
+         assertEquals(KEYS_CNT, cache.localMetrics().getOffHeapGets());
+         assertEquals(0, cache.localMetrics().getOffHeapHits());
+         assertEquals(0f, cache.localMetrics().getOffHeapHitPercentage());
+         assertEquals(KEYS_CNT, cache.localMetrics().getOffHeapMisses());
+         assertEquals(100f, cache.localMetrics().getOffHeapMissPercentage());
+         assertEquals(0, cache.localMetrics().getOffHeapRemovals());
+ 
+         assertEquals(KEYS_CNT - MAX_SIZE - OFFHEAP_MAX_CNT, cache.localMetrics().getOffHeapEvictions());
+         assertEquals(OFFHEAP_MAX_CNT, cache.localMetrics().getOffHeapEntriesCount());
+         assertEquals(OFFHEAP_MAX_CNT, cache.localMetrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.localMetrics().getOffHeapBackupEntriesCount());
+ 
+         assertEquals(cache.localMetrics().getOffHeapEvictions(), cache.localMetrics().getSwapPuts());
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapGets());
+         assertEquals(0, cache.localMetrics().getSwapHits());
+         assertEquals(0f, cache.localMetrics().getSwapHitPercentage());
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapMisses());
+         assertEquals(100f, cache.localMetrics().getSwapMissPercentage());
+         assertEquals(0, cache.localMetrics().getSwapRemovals());
+ 
+         assertEquals(cache.localMetrics().getOffHeapEvictions(), cache.localMetrics().getSwapEntriesCount());
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.get(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getOffHeapPuts());
+         assertEquals(KEYS_CNT * 2, cache.localMetrics().getOffHeapGets());
+         assertEquals(0, cache.localMetrics().getOffHeapHits());
+         assertEquals(0.0, cache.localMetrics().getOffHeapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2, cache.localMetrics().getOffHeapMisses());
+         assertEquals(100.0, cache.localMetrics().getOffHeapMissPercentage(), 0.1);
+         assertEquals(0, cache.localMetrics().getOffHeapRemovals());
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions() - OFFHEAP_MAX_CNT, cache.localMetrics().getOffHeapEvictions());
+         assertEquals(OFFHEAP_MAX_CNT, cache.localMetrics().getOffHeapEntriesCount());
+         assertEquals(OFFHEAP_MAX_CNT, cache.localMetrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.localMetrics().getOffHeapBackupEntriesCount());
+ 
+         assertEquals(cache.localMetrics().getOffHeapEvictions(), cache.localMetrics().getSwapPuts());
+         assertEquals(KEYS_CNT * 2, cache.localMetrics().getSwapGets());
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapHits());
+         assertEquals(100 * KEYS_CNT / (KEYS_CNT * 2.0), cache.localMetrics().getSwapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapMisses());
+         assertEquals(100 * KEYS_CNT / (KEYS_CNT * 2.0), cache.localMetrics().getSwapMissPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapRemovals());
+ 
+         assertEquals(KEYS_CNT - MAX_SIZE - OFFHEAP_MAX_CNT, cache.localMetrics().getSwapEntriesCount());
+ 
+         for (int i = KEYS_CNT; i < KEYS_CNT * 2; i++)
+             cache.get(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getOffHeapPuts());
+         assertEquals(KEYS_CNT * 3, cache.localMetrics().getOffHeapGets());
+         assertEquals(0, cache.localMetrics().getOffHeapHits());
+         assertEquals(0.0, cache.localMetrics().getOffHeapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 3, cache.localMetrics().getOffHeapMisses());
+         assertEquals(100.0, cache.localMetrics().getOffHeapMissPercentage(), 0.1);
+         assertEquals(0, cache.localMetrics().getOffHeapRemovals());
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions() - OFFHEAP_MAX_CNT, cache.localMetrics().getOffHeapEvictions());
+         assertEquals(OFFHEAP_MAX_CNT, cache.localMetrics().getOffHeapEntriesCount());
+         assertEquals(OFFHEAP_MAX_CNT, cache.localMetrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.localMetrics().getOffHeapBackupEntriesCount());
+ 
+         assertEquals(cache.localMetrics().getOffHeapEvictions(), cache.localMetrics().getSwapPuts());
+         assertEquals(KEYS_CNT * 3, cache.localMetrics().getSwapGets());
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapHits());
+         assertEquals(100 / 3.0, cache.localMetrics().getSwapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2, cache.localMetrics().getSwapMisses());
+         assertEquals(100 - (100 / 3.0), cache.localMetrics().getSwapMissPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.localMetrics().getSwapRemovals());
+ 
+         assertEquals(KEYS_CNT - MAX_SIZE - OFFHEAP_MAX_CNT, cache.localMetrics().getSwapEntriesCount());
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.remove(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions(), cache.localMetrics().getOffHeapPuts());
+         assertEquals(KEYS_CNT * 4 - MAX_SIZE, cache.localMetrics().getOffHeapGets());
+         assertEquals(OFFHEAP_MAX_CNT, cache.localMetrics().getOffHeapHits());
+         assertEquals(100 * OFFHEAP_MAX_CNT / (KEYS_CNT * 4.0 - MAX_SIZE),
+             cache.localMetrics().getOffHeapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 4 - OFFHEAP_MAX_CNT - MAX_SIZE, cache.localMetrics().getOffHeapMisses());
+         assertEquals(100 * (KEYS_CNT * 4 - OFFHEAP_MAX_CNT - MAX_SIZE) / (KEYS_CNT * 4.0 - MAX_SIZE),
+             cache.localMetrics().getOffHeapMissPercentage(), 0.1);
+         assertEquals(OFFHEAP_MAX_CNT, cache.localMetrics().getOffHeapRemovals());
+ 
+         assertEquals(cache.localMetrics().getCacheEvictions() - OFFHEAP_MAX_CNT, cache.localMetrics().getOffHeapEvictions());
+         assertEquals(0, cache.localMetrics().getOffHeapEntriesCount());
+         assertEquals(0, cache.localMetrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.localMetrics().getOffHeapBackupEntriesCount());
+ 
+         assertEquals(cache.localMetrics().getOffHeapEvictions(), cache.localMetrics().getSwapPuts());
+         assertEquals(KEYS_CNT * 4 - MAX_SIZE - OFFHEAP_MAX_CNT, cache.localMetrics().getSwapGets());
+         assertEquals(KEYS_CNT * 2 - MAX_SIZE - OFFHEAP_MAX_CNT, cache.localMetrics().getSwapHits());
+         assertEquals(100 * (KEYS_CNT * 2.0 - MAX_SIZE - OFFHEAP_MAX_CNT) / (KEYS_CNT * 4.0 - MAX_SIZE - OFFHEAP_MAX_CNT),
+             cache.localMetrics().getSwapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2, cache.localMetrics().getSwapMisses());
+         assertEquals(100 * KEYS_CNT * 2.0 / (KEYS_CNT * 4.0 - MAX_SIZE - OFFHEAP_MAX_CNT),
+             cache.localMetrics().getSwapMissPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2 - MAX_SIZE - OFFHEAP_MAX_CNT, cache.localMetrics().getSwapRemovals());
+ 
+         assertEquals(0, cache.localMetrics().getSwapEntriesCount());
+     }
+ 
+     /**
+      * @throws Exception if failed.
+      */
+     public void testOffHeapMetricsInOffHeapTiered() throws Exception {
+         createCache(CacheMemoryMode.OFFHEAP_TIERED, 0, false);
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.put(i, i);
+ 
+         printStat();
+ 
+         assertEquals(cache.metrics().getCacheEvictions(), cache.metrics().getOffHeapPuts());
+         assertEquals(KEYS_CNT, cache.metrics().getOffHeapGets());
+         assertEquals(0, cache.metrics().getOffHeapHits());
+         assertEquals(0f, cache.metrics().getOffHeapHitPercentage());
+         assertEquals(KEYS_CNT, cache.metrics().getOffHeapMisses());
+         assertEquals(100f, cache.metrics().getOffHeapMissPercentage());
+         assertEquals(0, cache.metrics().getOffHeapRemovals());
+ 
+         assertEquals(0, cache.metrics().getOffHeapEvictions());
+         assertEquals(cache.metrics().getCacheEvictions(), cache.metrics().getOffHeapEntriesCount());
+         assertEquals(cache.metrics().getCacheEvictions(), cache.metrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.metrics().getOffHeapBackupEntriesCount());
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.get(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.metrics().getCacheEvictions(), cache.metrics().getOffHeapGets());
+         assertEquals(KEYS_CNT * 2, cache.metrics().getOffHeapGets());
+         assertEquals(KEYS_CNT, cache.metrics().getOffHeapHits());
+         assertEquals(100 * KEYS_CNT / (KEYS_CNT * 2.0), cache.metrics().getOffHeapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.metrics().getOffHeapMisses());
+         assertEquals(100 * KEYS_CNT / (KEYS_CNT * 2.0), cache.metrics().getOffHeapMissPercentage(), 0.1);
+         assertEquals(0, cache.metrics().getOffHeapRemovals());
+ 
+         assertEquals(0, cache.metrics().getOffHeapEvictions());
+         assertEquals(KEYS_CNT, cache.metrics().getOffHeapEntriesCount());
+         assertEquals(KEYS_CNT, cache.metrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.metrics().getOffHeapBackupEntriesCount());
+ 
+         for (int i = KEYS_CNT; i < KEYS_CNT * 2; i++)
+             cache.get(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.metrics().getCacheEvictions(), cache.metrics().getOffHeapGets());
+         assertEquals(KEYS_CNT * 3, cache.metrics().getOffHeapGets());
+         assertEquals(KEYS_CNT, cache.metrics().getOffHeapHits());
+         assertEquals(100 / 3.0, cache.metrics().getOffHeapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2, cache.metrics().getOffHeapMisses());
+         assertEquals(100 - (100 / 3.0), cache.metrics().getOffHeapMissPercentage(), 0.1);
+         assertEquals(0, cache.metrics().getOffHeapRemovals());
+ 
+         assertEquals(0, cache.metrics().getOffHeapEvictions());
+         assertEquals(KEYS_CNT, cache.metrics().getOffHeapEntriesCount());
+         assertEquals(KEYS_CNT, cache.metrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.metrics().getOffHeapBackupEntriesCount());
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.remove(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.metrics().getCacheEvictions(), cache.metrics().getOffHeapGets());
+         assertEquals(KEYS_CNT * 4, cache.metrics().getOffHeapGets());
+         assertEquals(KEYS_CNT * 2, cache.metrics().getOffHeapHits());
+         assertEquals(100 * (KEYS_CNT * 2.0) / (KEYS_CNT * 4.0),
+             cache.metrics().getOffHeapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2, cache.metrics().getOffHeapMisses());
+         assertEquals(100 * KEYS_CNT * 2.0 / (KEYS_CNT * 4.0),
+             cache.metrics().getOffHeapMissPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.metrics().getOffHeapRemovals());
+ 
+         assertEquals(0, cache.metrics().getOffHeapEvictions());
+         assertEquals(0, cache.metrics().getOffHeapEntriesCount());
+         assertEquals(0, cache.metrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.metrics().getOffHeapBackupEntriesCount());
+     }
+ 
+     /**
+      * @throws Exception if failed.
+      */
+     public void testOffHeapAndSwapMetricsInOffHeapTiered() throws Exception {
+         createCache(CacheMemoryMode.OFFHEAP_TIERED, OFFHEAP_MAX_SIZE, true);
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.put(i, i);
+ 
+         printStat();
+ 
+         assertEquals(cache.metrics().getCacheEvictions(), cache.metrics().getOffHeapGets());
+         assertEquals(KEYS_CNT, cache.metrics().getOffHeapGets());
+         assertEquals(0, cache.metrics().getOffHeapHits());
+         assertEquals(0f, cache.metrics().getOffHeapHitPercentage());
+         assertEquals(KEYS_CNT, cache.metrics().getOffHeapMisses());
+         assertEquals(100f, cache.metrics().getOffHeapMissPercentage());
+         assertEquals(0, cache.metrics().getOffHeapRemovals());
+ 
+         assertEquals(KEYS_CNT - OFFHEAP_MAX_CNT, cache.metrics().getOffHeapEvictions());
+         assertEquals(OFFHEAP_MAX_CNT, cache.metrics().getOffHeapEntriesCount());
+         assertEquals(OFFHEAP_MAX_CNT, cache.metrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.metrics().getOffHeapBackupEntriesCount());
+ 
+         assertEquals(cache.metrics().getOffHeapEvictions(), cache.metrics().getSwapPuts());
+         assertEquals(KEYS_CNT, cache.metrics().getSwapGets());
+         assertEquals(0, cache.metrics().getSwapHits());
+         assertEquals(0f, cache.metrics().getSwapHitPercentage());
+         assertEquals(KEYS_CNT, cache.metrics().getSwapMisses());
+         assertEquals(100f, cache.metrics().getSwapMissPercentage());
+         assertEquals(0, cache.metrics().getSwapRemovals());
+ 
+         assertEquals(cache.metrics().getOffHeapEvictions(), cache.metrics().getSwapEntriesCount());
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.get(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.metrics().getCacheEvictions(), cache.metrics().getOffHeapPuts());
+         assertEquals(KEYS_CNT * 2, cache.metrics().getOffHeapGets());
+         assertEquals(0, cache.metrics().getOffHeapHits());
+         assertEquals(0.0, cache.metrics().getOffHeapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2, cache.metrics().getOffHeapMisses());
+         assertEquals(100.0, cache.metrics().getOffHeapMissPercentage(), 0.1);
+         assertEquals(0, cache.metrics().getOffHeapRemovals());
+ 
+         assertEquals(cache.metrics().getCacheEvictions() - OFFHEAP_MAX_CNT, cache.metrics().getOffHeapEvictions());
+         assertEquals(OFFHEAP_MAX_CNT, cache.metrics().getOffHeapEntriesCount());
+         assertEquals(OFFHEAP_MAX_CNT, cache.metrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.metrics().getOffHeapBackupEntriesCount());
+ 
+         assertEquals(cache.metrics().getOffHeapEvictions(), cache.metrics().getSwapPuts());
+         assertEquals(KEYS_CNT * 2, cache.metrics().getSwapGets());
+         assertEquals(KEYS_CNT, cache.metrics().getSwapHits());
+         assertEquals(100 * KEYS_CNT / (KEYS_CNT * 2.0), cache.metrics().getSwapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.metrics().getSwapMisses());
+         assertEquals(100 * KEYS_CNT / (KEYS_CNT * 2.0), cache.metrics().getSwapMissPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.metrics().getSwapRemovals());
+ 
+         assertEquals(KEYS_CNT - OFFHEAP_MAX_CNT, cache.metrics().getSwapEntriesCount());
+ 
+         for (int i = KEYS_CNT; i < KEYS_CNT * 2; i++)
+             cache.get(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.metrics().getCacheEvictions(), cache.metrics().getOffHeapGets());
+         assertEquals(KEYS_CNT * 3, cache.metrics().getOffHeapGets());
+         assertEquals(0, cache.metrics().getOffHeapHits());
+         assertEquals(0.0, cache.metrics().getOffHeapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 3, cache.metrics().getOffHeapMisses());
+         assertEquals(100.0, cache.metrics().getOffHeapMissPercentage(), 0.1);
+         assertEquals(0, cache.metrics().getOffHeapRemovals());
+ 
+         assertEquals(cache.metrics().getCacheEvictions() - OFFHEAP_MAX_CNT - KEYS_CNT,
+             cache.metrics().getOffHeapEvictions());
+         assertEquals(OFFHEAP_MAX_CNT, cache.metrics().getOffHeapEntriesCount());
+         assertEquals(OFFHEAP_MAX_CNT, cache.metrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.metrics().getOffHeapBackupEntriesCount());
+ 
+         assertEquals(cache.metrics().getOffHeapEvictions(), cache.metrics().getSwapPuts());
+         assertEquals(KEYS_CNT * 3, cache.metrics().getSwapGets());
+         assertEquals(KEYS_CNT, cache.metrics().getSwapHits());
+         assertEquals(100 / 3.0, cache.metrics().getSwapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2, cache.metrics().getSwapMisses());
+         assertEquals(100 - (100 / 3.0), cache.metrics().getSwapMissPercentage(), 0.1);
+         assertEquals(KEYS_CNT, cache.metrics().getSwapRemovals());
+ 
+         assertEquals(KEYS_CNT - OFFHEAP_MAX_CNT, cache.metrics().getSwapEntriesCount());
+ 
+         for (int i = 0; i < KEYS_CNT; i++)
+             cache.remove(i);
+ 
+         printStat();
+ 
+         assertEquals(cache.metrics().getCacheEvictions(), cache.metrics().getOffHeapGets());
+         assertEquals(KEYS_CNT * 4, cache.metrics().getOffHeapGets());
+         assertEquals(OFFHEAP_MAX_CNT, cache.metrics().getOffHeapHits());
+         assertEquals(100 * OFFHEAP_MAX_CNT / (KEYS_CNT * 4.0),
+             cache.metrics().getOffHeapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 4 - OFFHEAP_MAX_CNT, cache.metrics().getOffHeapMisses());
+         assertEquals(100 * (KEYS_CNT * 4 - OFFHEAP_MAX_CNT) / (KEYS_CNT * 4.0),
+             cache.metrics().getOffHeapMissPercentage(), 0.1);
+         assertEquals(OFFHEAP_MAX_CNT, cache.metrics().getOffHeapRemovals());
+ 
+         assertEquals(cache.metrics().getCacheEvictions() - OFFHEAP_MAX_CNT - 2 * KEYS_CNT, cache.metrics().getOffHeapEvictions());
+         assertEquals(0, cache.metrics().getOffHeapEntriesCount());
+         assertEquals(0, cache.metrics().getOffHeapPrimaryEntriesCount());
+         assertEquals(0, cache.metrics().getOffHeapBackupEntriesCount());
+ 
+         assertEquals(cache.metrics().getOffHeapEvictions(), cache.metrics().getSwapPuts());
+         assertEquals(KEYS_CNT * 4 - OFFHEAP_MAX_CNT, cache.metrics().getSwapGets());
+         assertEquals(KEYS_CNT * 2 - OFFHEAP_MAX_CNT, cache.metrics().getSwapHits());
+         assertEquals(100 * (KEYS_CNT * 2.0 - OFFHEAP_MAX_CNT) / (KEYS_CNT * 4.0 - OFFHEAP_MAX_CNT),
+             cache.metrics().getSwapHitPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2, cache.metrics().getSwapMisses());
+         assertEquals(100 * KEYS_CNT * 2.0 / (KEYS_CNT * 4.0 - OFFHEAP_MAX_CNT),
+             cache.metrics().getSwapMissPercentage(), 0.1);
+         assertEquals(KEYS_CNT * 2 - OFFHEAP_MAX_CNT, cache.metrics().getSwapRemovals());
+ 
+         assertEquals(0, cache.metrics().getSwapEntriesCount());
+     }
+ 
+     /**
+      * Prints stats.
+      */
+     protected void printStat() {
+         System.out.println("!!! -------------------------------------------------------");
+         System.out.println("!!! Puts: cache = " + cache.localMetrics().getCachePuts() +
+             ", offheap = " + cache.localMetrics().getOffHeapPuts() +
+             ", swap = " + cache.localMetrics().getSwapPuts());
+         System.out.println("!!! Gets: cache = " + cache.localMetrics().getCacheGets() +
+             ", offheap = " + cache.localMetrics().getOffHeapGets() +
+             ", swap = " + cache.localMetrics().getSwapGets());
+         System.out.println("!!! Removes: cache = " + cache.localMetrics().getCacheRemovals() +
+             ", offheap = " + cache.localMetrics().getOffHeapRemovals() +
+             ", swap = " + cache.localMetrics().getSwapRemovals());
+         System.out.println("!!! Evictions: cache = " + cache.localMetrics().getCacheEvictions() +
+             ", offheap = " + cache.localMetrics().getOffHeapEvictions() +
+             ", swap = none" );
+         System.out.println("!!! Hits: cache = " + cache.localMetrics().getCacheHits() +
+             ", offheap = " + cache.localMetrics().getOffHeapHits() +
+             ", swap = " + cache.localMetrics().getSwapHits());
+         System.out.println("!!! Hit(%): cache = " + cache.localMetrics().getCacheHitPercentage() +
+             ", offheap = " + cache.localMetrics().getOffHeapHitPercentage() +
+             ", swap = " + cache.localMetrics().getSwapHitPercentage());
+         System.out.println("!!! Misses: cache = " + cache.localMetrics().getCacheMisses() +
+             ", offheap = " + cache.localMetrics().getOffHeapMisses() +
+             ", swap = " + cache.localMetrics().getSwapMisses());
+         System.out.println("!!! Miss(%): cache = " + cache.localMetrics().getCacheMissPercentage() +
+             ", offheap = " + cache.localMetrics().getOffHeapMissPercentage() +
+             ", swap = " + cache.localMetrics().getSwapMissPercentage());
+         System.out.println("!!! Entries: cache = " + cache.localMetrics().getSize() +
+             ", offheap = " + cache.localMetrics().getOffHeapEntriesCount() +
+             ", swap = " + cache.localMetrics().getSwapEntriesCount());
+         System.out.println("!!! Size: cache = none" +
+             ", offheap = " + cache.localMetrics().getOffHeapAllocatedSize() +
+             ", swap = " + cache.localMetrics().getSwapSize());
+         System.out.println();
+     }
+ }

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
index 3b5e6b7,9e20d2a..63528a1
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
@@@ -42,15 -43,11 +43,16 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cache.IgniteMarshallerCacheConcurrentReadWriteTest;
  import org.apache.ignite.internal.processors.cache.OffHeapTieredTransactionSelfTest;
  import org.apache.ignite.internal.processors.closure.GridClosureProcessorSelfTest;
+ import org.apache.ignite.internal.processors.closure.GridClosureSerializationTest;
  import org.apache.ignite.internal.processors.continuous.GridEventConsumeSelfTest;
  import org.apache.ignite.internal.processors.continuous.GridMessageListenSelfTest;
 -import org.apache.ignite.internal.processors.odbc.OdbcProcessorValidationSelfTest;
 +import org.apache.ignite.internal.processors.database.BPlusTreeFakeReuseSelfTest;
 +import org.apache.ignite.internal.processors.database.BPlusTreeReuseSelfTest;
 +import org.apache.ignite.internal.processors.database.BPlusTreeSelfTest;
 +import org.apache.ignite.internal.processors.database.FreeListImplSelfTest;
 +import org.apache.ignite.internal.processors.database.MetadataStorageSelfTest;
  import org.apache.ignite.internal.processors.odbc.OdbcEscapeSequenceSelfTest;
 +import org.apache.ignite.internal.processors.odbc.OdbcProcessorValidationSelfTest;
  import org.apache.ignite.internal.processors.service.ClosureServiceClientsNodesTest;
  import org.apache.ignite.internal.product.GridProductVersionSelfTest;
  import org.apache.ignite.internal.util.nio.IgniteExceptionInNioWorkerSelfTest;
@@@ -154,13 -152,8 +157,15 @@@ public class IgniteBasicTestSuite exten
  
          suite.addTestSuite(SecurityPermissionSetBuilderTest.class);
  
+         suite.addTestSuite(AttributeNodeFilterSelfTest.class);
+ 
 +        // Basic DB data structures.
 +        suite.addTestSuite(BPlusTreeSelfTest.class);
 +        suite.addTestSuite(BPlusTreeFakeReuseSelfTest.class);
 +        suite.addTestSuite(BPlusTreeReuseSelfTest.class);
 +        suite.addTestSuite(MetadataStorageSelfTest.class);
 +        suite.addTestSuite(FreeListImplSelfTest.class);
 +
          return suite;
      }
  }

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/d98d947f/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCachePartitionedFieldsQuerySelfTest.java
----------------------------------------------------------------------


[06/50] [abbrv] ignite git commit: ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation fix check current state

Posted by ag...@apache.org.
ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation fix check current state


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

Branch: refs/heads/ignite-3477
Commit: cbb9b9edbf1674f0ded47237e31dd2dfaeb281a0
Parents: 1ac93f0
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Tue Dec 20 16:39:28 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Tue Dec 20 16:39:28 2016 +0300

----------------------------------------------------------------------
 .../cache/distributed/dht/GridDhtPartitionTopologyImpl.java  | 3 ++-
 .../processors/cluster/GridClusterStateProcessor.java        | 8 ++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/cbb9b9ed/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 e78c1c5..c93978c 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
@@ -1676,8 +1676,9 @@ import static org.apache.ignite.internal.processors.cache.distributed.dht.GridDh
 
         // In case if node joins, get topology at the time of joining node.
         ClusterNode oldest = CU.oldestAliveCacheServerNode(cctx.shared(), topVer);
+        boolean client = cctx.kernalContext().clientNode();
 
-        assert oldest != null || cctx.kernalContext().clientNode();
+        assert oldest != null || client : "oldest=" + oldest + " client=" + client;
 
         // If this node became the oldest node.
         if (cctx.localNode().equals(oldest)) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/cbb9b9ed/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
index 18e4a1c..c1ff5e4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
@@ -315,6 +315,14 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
      *
      */
     public boolean active() {
+        ChangeGlobalStateContext actx = lastCgsCtx;
+
+        if (actx != null && !actx.activate && globalState == TRANSITION)
+            return true;
+
+        if (actx != null && actx.activate && globalState == TRANSITION)
+            return false;
+
         return globalState == ACTIVE;
     }
 


[12/50] [abbrv] ignite git commit: Merge with master - WIP.

Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/Ignite.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
index 4cbf50e,4d85c54..cb19875
--- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
@@@ -471,23 -483,34 +493,50 @@@ public final class IgniteSystemProperti
      @Deprecated
      public static final String IGNITE_BINARY_DONT_WRAP_TREE_STRUCTURES = "IGNITE_BINARY_DONT_WRAP_TREE_STRUCTURES";
  
+     /** */
+     public static final String IGNITE_IO_BALANCE_PERIOD = "IGNITE_IO_BALANCE_PERIOD";
+ 
+     /**
+      * When set to {@code true} fields are written by BinaryMarshaller in sorted order. Otherwise
+      * the natural order is used.
+      * <p>
+      * @deprecated Should be removed in Apache Ignite 2.0.
+      */
+     @Deprecated
+     public static final String IGNITE_BINARY_SORT_OBJECT_FIELDS = "IGNITE_BINARY_SORT_OBJECT_FIELDS";
+ 
+     /**
+      * Whether Ignite can access unaligned memory addresses.
+      * <p>
+      * Defaults to {@code} false, meaning that unaligned access will be performed only on x86 architecture.
+      */
+     public static final String IGNITE_MEMORY_UNALIGNED_ACCESS = "IGNITE_MEMORY_UNALIGNED_ACCESS";
+ 
+     /**
+      * When unsafe memory copy if performed below this threshold, Ignite will do it on per-byte basis instead of
+      * calling to Unsafe.copyMemory().
+      * <p>
+      * Defaults to 0, meaning that threshold is disabled.
+      */
+     public static final String IGNITE_MEMORY_PER_BYTE_COPY_THRESHOLD = "IGNITE_MEMORY_PER_BYTE_COPY_THRESHOLD";
+ 
      /**
 +     * When set to {@code true} fields are written by BinaryMarshaller in sorted order. Otherwise
 +     * the natural order is used.
 +     * <p>
 +     * @deprecated Should be removed in Apache Ignite 2.0.
 +     */
 +    @Deprecated
 +    public static final String IGNITE_BINARY_SORT_OBJECT_FIELDS = "IGNITE_BINARY_SORT_OBJECT_FIELDS";
 +
 +    /**
 +     * Whether Ignite can access unaligned memory addresses.
 +     * <p>
 +     * Defaults to {@code} false, meaning that unaligned access will be performed only on x86 architecture.
 +     */
 +    public static final String IGNITE_MEMORY_UNALIGNED_ACCESS = "IGNITE_MEMORY_UNALIGNED_ACCESS";
 +
 +    /**
       * Enforces singleton.
       */
      private IgniteSystemProperties() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/cache/affinity/fair/FairAffinityFunction.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
index e15c989,56fc5b4..f24a940
--- a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
@@@ -329,6 -341,12 +336,9 @@@ public class CacheConfiguration<K, V> e
      /** Maximum batch size for write-behind cache store. */
      private int writeBehindBatchSize = DFLT_WRITE_BEHIND_BATCH_SIZE;
  
+     /** Maximum number of query iterators that can be stored. */
+     private int maxQryIterCnt = DFLT_MAX_QUERY_ITERATOR_CNT;
+ 
 -    /** Memory mode. */
 -    private CacheMemoryMode memMode = DFLT_MEMORY_MODE;
 -
      /** */
      private AffinityKeyMapper affMapper;
  
@@@ -454,9 -472,10 +467,10 @@@
          name = cc.getName();
          nearCfg = cc.getNearConfiguration();
          nodeFilter = cc.getNodeFilter();
 +        partitionLossPolicy = cc.getPartitionLossPolicy();
          pluginCfgs = cc.getPluginConfigurations();
          qryEntities = cc.getQueryEntities() == Collections.<QueryEntity>emptyList() ? null : cc.getQueryEntities();
+         qryDetailMetricsSz = cc.getQueryDetailMetricsSize();
          readFromBackup = cc.isReadFromBackup();
          rebalanceBatchSize = cc.getRebalanceBatchSize();
          rebalanceBatchesPrefetchCount = cc.getRebalanceBatchesPrefetchCount();
@@@ -1604,8 -1646,35 +1618,33 @@@
      }
  
      /**
+      * Gets maximum number of query iterators that can be stored. Iterators are stored to
+      * support query pagination when each page of data is sent to user's node only on demand.
+      * Increase this property if you are running and processing lots of queries in parallel.
+      * <p>
+      * Default value is {@link #DFLT_MAX_QUERY_ITERATOR_CNT}.
+      *
+      * @return Maximum number of query iterators that can be stored.
+      */
+     public int getMaxQueryIteratorsCount() {
+         return maxQryIterCnt;
+     }
+ 
+     /**
+      * Sets maximum number of query iterators that can be stored.
+      *
+      * @param maxQryIterCnt Maximum number of query iterators that can be stored.
+      * @return {@code this} for chaining.
+      */
+     public CacheConfiguration<K, V> setMaxQueryIteratorsCount(int maxQryIterCnt) {
+         this.maxQryIterCnt = maxQryIterCnt;
+ 
+         return this;
+     }
+ 
+     /**
       * Gets memory mode for cache. Memory mode helps control whether value is stored in on-heap memory,
       * off-heap memory, or swap space. Refer to {@link CacheMemoryMode} for more info.
 -     * <p>
 -     * Default value is {@link #DFLT_MEMORY_MODE}.
       *
       * @return Memory mode.
       */

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
index 3f83972,927944f..cee71bb
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
@@@ -48,8 -50,10 +49,9 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.job.GridJobProcessor;
  import org.apache.ignite.internal.processors.jobmetrics.GridJobMetricsProcessor;
  import org.apache.ignite.internal.processors.odbc.OdbcProcessor;
 -import org.apache.ignite.internal.processors.offheap.GridOffHeapProcessor;
  import org.apache.ignite.internal.processors.platform.PlatformProcessor;
  import org.apache.ignite.internal.processors.plugin.IgnitePluginProcessor;
+ import org.apache.ignite.internal.processors.pool.PoolProcessor;
  import org.apache.ignite.internal.processors.port.GridPortProcessor;
  import org.apache.ignite.internal.processors.query.GridQueryProcessor;
  import org.apache.ignite.internal.processors.resource.GridResourceProcessor;

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
index 42084e6,a2ad1b2..6a4547d
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
@@@ -65,8 -67,10 +66,9 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.jobmetrics.GridJobMetricsProcessor;
  import org.apache.ignite.internal.processors.nodevalidation.DiscoveryNodeValidationProcessor;
  import org.apache.ignite.internal.processors.odbc.OdbcProcessor;
 -import org.apache.ignite.internal.processors.offheap.GridOffHeapProcessor;
  import org.apache.ignite.internal.processors.platform.PlatformProcessor;
  import org.apache.ignite.internal.processors.plugin.IgnitePluginProcessor;
+ import org.apache.ignite.internal.processors.pool.PoolProcessor;
  import org.apache.ignite.internal.processors.port.GridPortProcessor;
  import org.apache.ignite.internal.processors.query.GridQueryProcessor;
  import org.apache.ignite.internal.processors.resource.GridResourceProcessor;

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/GridMessageListenHandler.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
index cbd7dd0,24ddcd2..7c1c484
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
@@@ -97,10 -100,7 +100,10 @@@ public enum GridTopic 
      TOPIC_TX,
  
      /** */
-     TOPIC_BACKUP,
 -    TOPIC_IO_TEST;
++    TOPIC_IO_TEST,
 +
 +    /** */
-     TOPIC_IO_TEST;
++    TOPIC_BACKUP;
  
      /** Enum values. */
      private static final GridTopic[] VALS = values();

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 29691e6,4972d1f..0d99f4c
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@@ -813,8 -835,15 +828,12 @@@ public class IgniteKernal implements Ig
  
              addHelper(IGFS_HELPER.create(F.isEmpty(cfg.getFileSystemConfiguration())));
  
+             addHelper(HADOOP_HELPER.createIfInClassPath(ctx, false));
+ 
              startProcessor(new IgnitePluginProcessor(ctx, cfg, plugins));
  
+             startProcessor(new PoolProcessor(ctx));
+ 
 -            // Off-heap processor has no dependencies.
 -            startProcessor(new GridOffHeapProcessor(ctx));
 -
              // Closure processor should be started before all others
              // (except for resource processor), as many components can depend on it.
              startProcessor(new GridClosureProcessor(ctx));

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
index f8a20c3,f32a753..da24e40
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
@@@ -93,7 -94,10 +95,8 @@@ import org.apache.ignite.spi.discovery.
  import org.apache.ignite.spi.eventstorage.memory.MemoryEventStorageSpi;
  import org.apache.ignite.spi.failover.always.AlwaysFailoverSpi;
  import org.apache.ignite.spi.indexing.noop.NoopIndexingSpi;
+ import org.apache.ignite.spi.loadbalancing.LoadBalancingSpi;
  import org.apache.ignite.spi.loadbalancing.roundrobin.RoundRobinLoadBalancingSpi;
 -import org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi;
 -import org.apache.ignite.spi.swapspace.noop.NoopSwapSpaceSpi;
  import org.apache.ignite.thread.IgniteStripedThreadPoolExecutor;
  import org.apache.ignite.thread.IgniteThread;
  import org.apache.ignite.thread.IgniteThreadPoolExecutor;
@@@ -1627,8 -1641,11 +1640,10 @@@ public class IgnitionEx 
                  ensureMultiInstanceSupport(myCfg.getCollisionSpi());
                  ensureMultiInstanceSupport(myCfg.getFailoverSpi());
                  ensureMultiInstanceSupport(myCfg.getLoadBalancingSpi());
 -                ensureMultiInstanceSupport(myCfg.getSwapSpaceSpi());
              }
  
+             validateThreadPoolSize(cfg.getPublicThreadPoolSize(), "public");
+ 
              execSvc = new IgniteThreadPoolExecutor(
                  "pub",
                  cfg.getGridName(),

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
index 8624c64,69de3f2..7f3f5e4
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
@@@ -250,29 -248,7 +256,29 @@@ public class BinaryEnumObjectImpl imple
  
      /** {@inheritDoc} */
      @Override public byte[] valueBytes(CacheObjectContext cacheCtx) throws IgniteCheckedException {
 -        return U.marshal(ctx.marshaller(), this);
 +        if (valBytes != null)
 +            return valBytes;
 +
-         valBytes = ctx.marshaller().marshal(this);
++        valBytes = U.marshal(ctx.marshaller(), this);
 +
 +        return valBytes;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public boolean putValue(ByteBuffer buf) throws IgniteCheckedException {
 +        assert valBytes != null : "Value bytes must be initialized before object is stored";
 +
 +        return putValue(buf, 0, objectPutSize(valBytes.length));
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public boolean putValue(final ByteBuffer buf, int off, int len) throws IgniteCheckedException {
 +        return CacheObjectAdapter.putValue(cacheObjectType(), buf, off, len, valBytes, 0);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public int valueBytesLength(CacheObjectContext ctx) throws IgniteCheckedException {
 +        return objectPutSize(valueBytes(ctx).length);
      }
  
      /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldImpl.java
index 4b59904,59e79fb..477ae37
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldImpl.java
@@@ -60,20 -47,11 +60,19 @@@ public class BinaryFieldImpl implement
       * @param fieldName Field name.
       * @param fieldId Field ID.
       */
 -    public BinaryFieldImpl(int typeId, BinarySchemaRegistry schemas, String fieldName, int fieldId) {
 +    public BinaryFieldImpl(
 +        BinaryContext ctx,
 +        int typeId,
 +        BinarySchemaRegistry schemas,
 +        String fieldName,
 +        int fieldId
 +    ) {
 +        assert ctx != null;
          assert typeId != 0;
          assert schemas != null;
-         assert fieldName != null;
          assert fieldId != 0;
  
 +        this.ctx = ctx;
          this.typeId = typeId;
          this.schemas = schemas;
          this.fieldName = fieldName;

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
index e6d8781,b80f573..33c7f08
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
@@@ -18,17 -18,20 +18,21 @@@
  package org.apache.ignite.internal.binary;
  
  import java.math.BigDecimal;
 +import java.nio.ByteBuffer;
  import java.util.Arrays;
  import java.util.IdentityHashMap;
+ import java.util.Iterator;
+ import java.util.Map;
  import org.apache.ignite.IgniteException;
+ import org.apache.ignite.binary.BinaryArrayIdentityResolver;
+ import org.apache.ignite.binary.BinaryObject;
  import org.apache.ignite.binary.BinaryObjectBuilder;
- import org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl;
- import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeMemory;
- import org.apache.ignite.internal.util.typedef.internal.SB;
  import org.apache.ignite.binary.BinaryObjectException;
+ import org.apache.ignite.binary.BinaryIdentityResolver;
  import org.apache.ignite.binary.BinaryType;
- import org.apache.ignite.binary.BinaryObject;
+ import org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl;
+ import org.apache.ignite.internal.util.typedef.internal.SB;
+ import org.apache.ignite.lang.IgniteUuid;
  import org.jetbrains.annotations.Nullable;
  
  /**
@@@ -75,23 -78,35 +79,44 @@@ public abstract class BinaryObjectExImp
      }
  
      /**
+      * Get offset of data begin.
+      *
+      * @return Field value.
+      */
+     public abstract int dataStartOffset();
+ 
+     /**
+      * Get offset of the footer begin.
+      *
+      * @return Field value.
+      */
+     public abstract int footerStartOffset();
+ 
+     /**
       * Get field by offset.
       *
-      * @param fieldOffset Field offset.
+      * @param order Field offset.
       * @return Field value.
       */
-     @Nullable protected abstract <F> F fieldByOrder(int fieldOffset);
+     @Nullable public abstract <F> F fieldByOrder(int order);
+ 
+     /**
+      * Create field comparer.
+      *
+      * @return Comparer.
+      */
+     public abstract BinarySerializedFieldComparator createFieldComparator();
  
      /**
 +     * Writes field value defined by the given field offset to the given byte buffer.
 +     *
 +     * @param fieldOffset Field offset.
 +     * @return Boolean flag indicating whether the field was successfully written to the buffer, {@code false}
 +     *      if there is no enough space for the field in the buffer.
 +     */
 +    protected abstract boolean writeFieldByOrder(int fieldOffset, ByteBuffer buf);
 +
 +    /**
       * @param ctx Reader context.
       * @param fieldName Field name.
       * @return Field value.

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index bb7bf69,7ef7bc0..e0ff2a6
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@@ -967,8 -804,17 +804,27 @@@ public class GridIoManager extends Grid
              }
          }
  
+         if (ctx.config().getStripedPoolSize() > 0 &&
+             plc == GridIoPolicy.SYSTEM_POOL &&
+             msg.partition() != Integer.MIN_VALUE
+             ) {
+             ctx.getStripedExecutorService().execute(msg.partition(), c);
+ 
+             return;
+         }
+ 
++        if (msg.topicOrdinal() == TOPIC_IO_TEST.ordinal()) {
++            IgniteIoTestMessage msg0 = (IgniteIoTestMessage)msg.message();
++
++            if (msg0.processFromNioThread()) {
++                c.run();
++
++                return;
++            }
++        }
++
          try {
-             pool(plc).execute(c);
+             pools.poolForPolicy(plc).execute(c);
          }
          catch (RejectedExecutionException e) {
              U.error(log, "Failed to process regular message due to execution rejection. Increase the upper bound " +

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index f5c46a8,b1fe910..63d84c4
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@@ -161,11 -171,56 +172,61 @@@ public class GridIoMessageFactory imple
          Message msg = null;
  
          switch (type) {
+             case -44:
+                 msg = new TcpCommunicationSpi.HandshakeMessage2();
+ 
+                 break;
+ 
+             case -43:
+                 msg = new IgniteIoTestMessage();
+ 
+                 break;
+ 
+             case -42:
+                 msg = new HadoopDirectShuffleMessage();
+ 
+                 break;
+ 
+             case -41:
+                 msg = new HadoopShuffleFinishResponse();
+ 
+                 break;
+ 
+             case -40:
+                 msg = new HadoopShuffleFinishRequest();
+ 
+                 break;
+ 
+             case -39:
+                 msg = new HadoopJobId();
+ 
+                 break;
+ 
+             case -38:
+                 msg = new HadoopShuffleAck();
+ 
+                 break;
+ 
+             case -37:
+                 msg = new HadoopShuffleMessage();
+ 
+                 break;
+ 
+             case -36:
+                 msg = new GridDhtAtomicSingleUpdateRequest();
+ 
+                 break;
+ 
+             case -27:
+                 msg = new GridDhtTxOnePhaseCommitAckRequest();
+ 
+                 break;
+ 
 +            case -27:
 +                msg = new BackupFinishedMessage();
 +
 +                break;
 +
              case -26:
                  msg = new TxLockList();
  
@@@ -757,17 -812,21 +818,33 @@@
                  break;
  
              case 125:
+                 msg = new GridNearAtomicSingleUpdateRequest();
+ 
+                 break;
+ 
+             case 126:
+                 msg = new GridNearAtomicSingleUpdateInvokeRequest();
+ 
+                 break;
+ 
+             case 127:
+                 msg = new GridNearAtomicSingleUpdateFilterRequest();
+ 
+                 break;
+ 
+             // [-3..119] [124..127] [-36..-44]- this
++            case 125:
 +                msg = new TcpCommunicationSpi.HandshakeMessage2();
 +
 +                break;
 +
 +            // [-3..119] [124-125] - this
 +            case 126:
 +                msg = new IgniteIoTestMessage();
 +
 +                break;
 +
 +            // [-3..119] [124-126] - this
              // [120..123] - DR
              // [-4..-22, -30..-35] - SQL
              default:

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessage.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessage.java
index 985cf99,77aaa09..969ea39
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessage.java
@@@ -53,27 -54,28 +53,28 @@@ public class IgniteIoTestMessage implem
      }
  
      /**
-      * @param id ID.
-      * @param req {@code True} for request.
+      * @param id Message ID.
+      * @param req Request flag.
       * @param payload Payload.
       */
 -    IgniteIoTestMessage(long id, boolean req, byte[] payload) {
 +    public IgniteIoTestMessage(long id, boolean req, byte[] payload) {
          this.id = id;
          this.req = req;
          this.payload = payload;
      }
  
      /**
-      * @return Process from NIO thread flag.
+      * @return {@code True} if message should be processed from NIO thread
+      * (otherwise message is submitted to system pool).
       */
 -    boolean processFromNioThread() {
 +    public boolean processFromNioThread() {
          return isFlag(FLAG_PROC_FROM_NIO);
      }
  
      /**
-      * @param procFromNioThread Process from NIO thread flag.
+      * @param procFromNioThread {@code True} if message should be processed from NIO thread.
       */
 -    void processFromNioThread(boolean procFromNioThread) {
 +    public void processFromNioThread(boolean procFromNioThread) {
          setFlag(procFromNioThread, FLAG_PROC_FROM_NIO);
      }
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index c36262f,88aa4e0..4c62371
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@@ -1942,10 -1882,9 +1957,10 @@@ public abstract class GridCacheAdapter<
          @Nullable final UUID subjId,
          final String taskName,
          final boolean deserializeBinary,
-         @Nullable IgniteCacheExpiryPolicy expiry,
+         @Nullable final IgniteCacheExpiryPolicy expiry,
          final boolean skipVals,
          final boolean keepCacheObjects,
 +        final boolean recovery,
          boolean canRemap,
          final boolean needVer
      ) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAffinityManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index db10484,52b779d..5f45024
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@@ -34,15 -35,15 +35,15 @@@ import org.apache.ignite.IgniteCheckedE
  import org.apache.ignite.IgniteException;
  import org.apache.ignite.IgniteLogger;
  import org.apache.ignite.cache.CacheAtomicWriteOrderMode;
 -import org.apache.ignite.cache.CacheMemoryMode;
  import org.apache.ignite.cache.eviction.EvictableEntry;
 -import org.apache.ignite.internal.binary.BinaryObjectOffheapImpl;
 -import org.apache.ignite.internal.managers.deployment.GridDeploymentInfo;
 -import org.apache.ignite.internal.managers.deployment.GridDeploymentInfoBean;
 +import org.apache.ignite.internal.pagemem.wal.StorageException;
 +import org.apache.ignite.internal.pagemem.wal.record.DataEntry;
 +import org.apache.ignite.internal.pagemem.wal.record.DataRecord;
  import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 +import org.apache.ignite.internal.processors.cache.database.CacheDataRow;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition;
- import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateFuture;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicAbstractUpdateFuture;
  import org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheEntry;
  import org.apache.ignite.internal.processors.cache.extras.GridCacheEntryExtras;
  import org.apache.ignite.internal.processors.cache.extras.GridCacheMvccEntryExtras;
@@@ -891,7 -1196,14 +894,7 @@@ public abstract class GridCacheMapEntr
  
              assert newVer != null : "Failed to get write version for tx: " + tx;
  
-             old = this.val;
 -            boolean internal = isInternal() || !context().userCache();
 -
 -            Map<UUID, CacheContinuousQueryListener> lsnrCol =
 -                notifyContinuousQueries(tx) ? cctx.continuousQueries().updateListeners(internal, false) : null;
 -
 -            old = oldValPresent ? oldVal :
 -                (retval || intercept || lsnrCol != null) ?
 -                rawGetOrUnmarshalUnlocked(!retval && !isOffHeapValuesOnly()) : this.val;
++            old = oldValPresent ? oldVal : this.val;
  
              if (intercept) {
                  val0 = cctx.unwrapBinaryIfNeeded(val, keepBinary, false);
@@@ -1083,10 -1409,8 +1088,10 @@@
              Map<UUID, CacheContinuousQueryListener> lsnrCol =
                  notifyContinuousQueries(tx) ? cctx.continuousQueries().updateListeners(internal, false) : null;
  
 -            old = oldValPresent ? oldVal : (retval || intercept || lsnrCol != null) ?
 -                rawGetOrUnmarshalUnlocked(!retval && !isOffHeapValuesOnly()) : val;
 +            if (startVer && (retval || intercept || lsnrCol != null))
 +                unswap();
 +
-             old = val;
++            old = oldValPresent ? oldVal : val;
  
              if (intercept) {
                  entry0 = new CacheLazyEntry(cctx, key, old, keepBinary);
@@@ -3122,35 -3559,47 +3125,35 @@@
  
          if (curVer == null || curVer.equals(ver)) {
              if (val != this.val) {
--                GridCacheMvcc mvcc = mvccExtras();
++                        GridCacheMvcc mvcc = mvccExtras();
  
--                if (mvcc != null && !mvcc.isEmpty())
--                    return null;
++                        if (mvcc != null && !mvcc.isEmpty())
++                            return null;
  
--                if (newVer == null)
--                    newVer = cctx.versions().next();
++                        if (newVer == null)
++                            newVer = cctx.versions().next();
  
-                 long ttl = ttlExtras();
 -                CacheObject old = rawGetOrUnmarshalUnlocked(false);
++                        long ttl = ttlExtras();
  
-                 long expTime = CU.toExpireTime(ttl);
 -                long ttl;
 -                long expTime;
++                        long expTime = CU.toExpireTime(ttl);
  
-                 // Detach value before index update.
-                 val = cctx.kernalContext().cacheObjects().prepareForCache(val, cctx);
 -                if (loadExpiryPlc != null) {
 -                    IgniteBiTuple<Long, Long> initTtlAndExpireTime = initialTtlAndExpireTime(loadExpiryPlc);
++                        // Detach value before index update.
++                        val = cctx.kernalContext().cacheObjects().prepareForCache(val, cctx);
  
-                 if (val != null) {
-                     storeValue(val, expTime, newVer);
 -                    ttl = initTtlAndExpireTime.get1();
 -                    expTime = initTtlAndExpireTime.get2();
 -                }
 -                else {
 -                    ttl = ttlExtras();
 -                    expTime = expireTimeExtras();
 -                }
++                        if (val != null) {
++                            storeValue(val, expTime, newVer);
  
-                     if (deletedUnlocked())
-                         deletedUnlocked(false);
-                 }
 -                // Detach value before index update.
 -                val = cctx.kernalContext().cacheObjects().prepareForCache(val, cctx);
++                            if (deletedUnlocked())
++                                deletedUnlocked(false);
++                        }
  
-                 // Version does not change for load ops.
-                 update(val, expTime, ttl, newVer, true);
 -                if (val != null) {
 -                    updateIndex(val, expTime, newVer, old);
++                        // Version does not change for load ops.
++                        update(val, expTime, ttl, newVer, true);
  
-                 return newVer;
-             }
-         }
 -                    if (deletedUnlocked())
 -                        deletedUnlocked(false);
++                        return newVer;
++                    }
+                 }
  
 -                // Version does not change for load ops.
 -                update(val, expTime, ttl, newVer, true);
 -
 -                return newVer;
 -            }
 -        }
 -
          return null;
      }
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index d03a90a,8ea2169..40035c0
--- 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
@@@ -54,16 -56,18 +56,18 @@@ import org.apache.ignite.internal.Ignit
  import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
  import org.apache.ignite.internal.events.DiscoveryCustomEvent;
  import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener;
 +import org.apache.ignite.internal.pagemem.backup.StartFullBackupAckDiscoveryMessage;
  import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridClientPartitionTopology;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopology;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTopologyFuture;
  import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemandMessage;
  import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionExchangeId;
  import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionFullMap;
 -import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap;
  import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap2;
  import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionSupplyMessageV2;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsAbstractMessage;
  import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture;
  import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsFullMessage;
  import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsSingleMessage;
@@@ -751,9 -750,17 +769,15 @@@ public class GridCachePartitionExchange
          if (log.isDebugEnabled())
              log.debug("Refreshing partitions [oldest=" + oldest.id() + ", loc=" + cctx.localNodeId() + ']');
  
 -        Collection<ClusterNode> rmts;
 -
          // If this is the oldest node.
          if (oldest.id().equals(cctx.localNodeId())) {
+             GridDhtPartitionsExchangeFuture lastFut = lastInitializedFut;
+ 
+             // No need to send to nodes which did not finish their first exchange.
+             AffinityTopologyVersion rmtTopVer =
+                 lastFut != null ? lastFut.topologyVersion() : AffinityTopologyVersion.NONE;
+ 
 -            rmts = CU.remoteNodes(cctx, rmtTopVer);
 +            Collection<ClusterNode> rmts = CU.remoteNodes(cctx, AffinityTopologyVersion.NONE);
  
              if (log.isDebugEnabled())
                  log.debug("Refreshing partitions from oldest node: " + cctx.localNodeId());
@@@ -813,24 -935,11 +964,25 @@@
       * @param id ID.
       */
      private void sendLocalPartitions(ClusterNode node, @Nullable GridDhtPartitionExchangeId id) {
-         GridDhtPartitionsSingleMessage m = new GridDhtPartitionsSingleMessage(id,
+         GridDhtPartitionsSingleMessage m = createPartitionsSingleMessage(node,
+             id,
              cctx.kernalContext().clientNode(),
-             cctx.versions().last());
+             false);
  
 +        for (GridCacheContext cacheCtx : cctx.cacheContexts()) {
 +            if (!cacheCtx.isLocal()) {
 +                GridDhtPartitionMap2 locMap = cacheCtx.topology().localPartitionMap();
 +
 +                m.addLocalPartitionMap(cacheCtx.cacheId(), locMap);
 +            }
 +        }
 +
 +        for (GridClientPartitionTopology top : clientTops.values()) {
 +            GridDhtPartitionMap2 locMap = top.localPartitionMap();
 +
 +            m.addLocalPartitionMap(top.cacheId(), locMap);
 +        }
 +
          if (log.isDebugEnabled())
              log.debug("Sending local partitions [nodeId=" + node.id() + ", msg=" + m + ']');
  
@@@ -1395,17 -1594,13 +1644,13 @@@
          @Override protected void body() throws InterruptedException, IgniteInterruptedCheckedException {
              long timeout = cctx.gridConfig().getNetworkTimeout();
  
-             boolean startEvtFired = false;
- 
              int cnt = 0;
  
-             IgniteInternalFuture asyncStartFut = null;
- 
              while (!isCancelled()) {
 -                GridDhtPartitionsExchangeFuture exchFut = null;
 -
                  cnt++;
  
 +                GridDhtPartitionsExchangeFuture exchFut = null;
 +
                  try {
                      boolean preloadFinished = true;
  
@@@ -1580,27 -1762,26 +1813,34 @@@
                              for (Integer cacheId : orderMap.get(order)) {
                                  GridCacheContext<K, V> cacheCtx = cctx.cacheContext(cacheId);
  
+                                 GridDhtPreloaderAssignments assigns = assignsMap.get(cacheId);
+ 
+                                 if (assigns != null)
+                                     assignsCancelled |= assigns.cancelled();
+ 
 +                                List<String> waitList = new ArrayList<>(size - 1);
 +
 +                                for (List<Integer> cIds : orderMap.headMap(order).values()) {
 +                                    for (Integer cId : cIds)
 +                                        waitList.add(cctx.cacheContext(cId).name());
 +                                }
 +
-                                 Callable<Boolean> r = cacheCtx.preloader().addAssignments(assignsMap.get(cacheId),
+                                 // Cancels previous rebalance future (in case it's not done yet).
+                                 // Sends previous rebalance stopped event (if necessary).
+                                 // Creates new rebalance future.
+                                 // Sends current rebalance started event (if necessary).
+                                 // Finishes cache sync future (on empty assignments).
+                                 Runnable cur = cacheCtx.preloader().addAssignments(assigns,
                                      forcePreload,
 +                                    waitList,
                                      cnt,
+                                     r,
                                      exchFut.forcedRebalanceFuture());
  
-                                 if (r != null) {
-                                     U.log(log, "Cache rebalancing scheduled: [cache=" + cacheCtx.name() +
-                                         ", waitList=" + waitList.toString() + "]");
+                                 if (cur != null) {
+                                     rebList.add(U.maskName(cacheCtx.name()));
  
-                                     if (cacheId == CU.cacheId(GridCacheUtils.MARSH_CACHE_NAME))
-                                         marshR = r;
-                                     else
-                                         orderedRs.add(r);
+                                     r = cur;
                                  }
                              }
                          }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePreloader.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePreloader.java
index 1ea2e12,0c28691..694e20f
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePreloader.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePreloader.java
@@@ -84,14 -84,14 +84,15 @@@ public interface GridCachePreloader 
       *
       * @param assignments Assignments to add.
       * @param forcePreload Force preload flag.
-      * @param caches Rebalancing of these caches will be finished before this started.
       * @param cnt Counter.
-      * @return Rebalancing closure.
+      * @param next Runnable responsible for cache rebalancing start.
+      * @return Rebalancing runnable.
       */
-     public Callable<Boolean> addAssignments(GridDhtPreloaderAssignments assignments,
+     public Runnable addAssignments(GridDhtPreloaderAssignments assignments,
          boolean forcePreload,
 +        Collection<String> caches,
          int cnt,
+         Runnable next,
          @Nullable GridFutureAdapter<Boolean> forcedRebFut);
  
      /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePreloaderAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePreloaderAdapter.java
index 84e7727,d7ec288..d3eeed9
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePreloaderAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePreloaderAdapter.java
@@@ -160,8 -166,11 +166,12 @@@ public class GridCachePreloaderAdapter 
      }
  
      /** {@inheritDoc} */
-     @Override public Callable<Boolean> addAssignments(GridDhtPreloaderAssignments assignments, boolean forcePreload,
-         Collection<String> caches, int cnt, @Nullable GridFutureAdapter<Boolean> forcedRebFut) {
+     @Override public Runnable addAssignments(GridDhtPreloaderAssignments assignments,
+         boolean forcePreload,
++        Collection<String> caches,
+         int cnt,
+         Runnable next,
+         @Nullable GridFutureAdapter<Boolean> forcedRebFut) {
          return null;
      }
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 179f5f8,0be2072..881d257
mode 100644,100755..100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@@ -1913,20 -1867,9 +1915,21 @@@ public class GridCacheProcessor extend
          GridCacheVersionManager verMgr = new GridCacheVersionManager();
          GridCacheDeploymentManager depMgr = new GridCacheDeploymentManager();
          GridCachePartitionExchangeManager exchMgr = new GridCachePartitionExchangeManager();
 +
 +        IgniteCacheDatabaseSharedManager dbMgr = ctx.plugins().createComponent(IgniteCacheDatabaseSharedManager.class);
 +
 +        if (dbMgr == null)
 +            dbMgr = new IgniteCacheDatabaseSharedManager();
 +
 +        IgnitePageStoreManager pageStoreMgr = ctx.plugins().createComponent(IgnitePageStoreManager.class);
 +        IgniteWriteAheadLogManager walMgr = ctx.plugins().createComponent(IgniteWriteAheadLogManager.class);
 +
 +        if (walMgr == null)
 +            walMgr = new IgniteWriteAheadLogNoopManager();
 +
          GridCacheIoManager ioMgr = new GridCacheIoManager();
          CacheAffinitySharedManager topMgr = new CacheAffinitySharedManager();
+         GridCacheSharedTtlCleanupManager ttl = new GridCacheSharedTtlCleanupManager();
  
          CacheJtaManagerAdapter jta = JTA.createOptional();
  
@@@ -2477,44 -2437,8 +2512,45 @@@
      }
  
      /**
 +     * Resets cache state after the cache has been moved to recovery state.
 +     *
 +     * @param cacheName Cache name.
 +     * @return Future that will be completed when state is changed.
 +     */
 +    public IgniteInternalFuture<?> resetCacheState(String cacheName) {
 +        IgniteCacheProxy<?, ?> proxy = jCacheProxies.get(maskNull(cacheName));
 +
 +        if (proxy == null || proxy.proxyClosed())
 +            return new GridFinishedFuture<>(); // No-op.
 +
 +        checkEmptyTransactions();
 +
 +        DynamicCacheChangeRequest t = new DynamicCacheChangeRequest(UUID.randomUUID(), cacheName, ctx.localNodeId());
 +
 +        t.markResetLostPartitions();
 +
 +        return F.first(initiateCacheChanges(F.asList(t), false));
 +    }
 +
 +    /**
 +     * Changes global cluster state.
 +     *
 +     * @param state Cache state.
 +     * @return Future that will be completed when state is changed.
 +     */
 +    public IgniteInternalFuture<?> changeGlobalState(CacheState state) {
 +        checkEmptyTransactions();
 +
 +        DynamicCacheChangeRequest t = new DynamicCacheChangeRequest(UUID.randomUUID(), null, ctx.localNodeId());
 +
 +        t.state(state);
 +
 +        return F.first(initiateCacheChanges(F.asList(t), false));
 +    }
 +
 +    /**
       * @param reqs Requests.
+      * @param failIfExists Fail if exists flag.
       * @return Collection of futures.
       */
      @SuppressWarnings("TypeMayBeWeakened")

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
index f01b6fd,117a5c3..384750f
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
@@@ -173,7 -157,7 +178,7 @@@ public class GridCacheSharedContext<K, 
      ) {
          this.kernalCtx = kernalCtx;
  
-         setManagers(mgrs, txMgr, jtaMgr, verMgr, mvccMgr, pageStoreMgr, walMgr, dbMgr, depMgr, exchMgr, affMgr, ioMgr);
 -        setManagers(mgrs, txMgr, jtaMgr, verMgr, mvccMgr, depMgr, exchMgr, affMgr, ioMgr, ttlMgr);
++        setManagers(mgrs, txMgr, jtaMgr, verMgr, mvccMgr, pageStoreMgr, walMgr, dbMgr, depMgr, exchMgr, affMgr, ioMgr, ttlMgr);
  
          this.storeSesLsnrs = storeSesLsnrs;
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManager.java
index 7270f22,0f855fe..7ccf890
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManager.java
@@@ -98,30 -50,14 +98,36 @@@ public class GridCacheTtlManager extend
          if (cleanupDisabled)
              return;
  
 +        cleanupWorker = new CleanupWorker();
 +
 +        pendingEntries = cctx.config().getNearConfiguration() != null ? new GridConcurrentSkipListSetEx() : null;
++
+         cctx.shared().ttl().register(this);
      }
  
 +    /**
 +     * @return {@code True} if eager expired entries cleanup is enabled for cache.
 +     */
 +    public boolean eagerTtlEnabled() {
 +        assert cctx != null : "Manager not started";
 +
 +        return cleanupWorker != null;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override protected void onKernalStart0() throws IgniteCheckedException {
 +        if (cleanupWorker != null)
 +            new IgniteThread(cleanupWorker).start();
 +    }
 +
      /** {@inheritDoc} */
      @Override protected void onKernalStop0(boolean cancel) {
 +        U.cancel(cleanupWorker);
 +        U.join(cleanupWorker, log);
++
+         pendingEntries.clear();
+ 
+         cctx.shared().ttl().unregister(this);
      }
  
      /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
index 6460067,90898f9..a5a72a0
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
@@@ -574,9 -558,9 +586,9 @@@ public class IgniteCacheProxy<K, V> ext
              if (grp != null)
                  qry.projection(grp);
  
-             fut = ctx.kernalContext().query().executeQuery(ctx,
+             fut = ctx.kernalContext().query().executeQuery(GridCacheQueryType.TEXT, p.getText(), ctx,
                  new IgniteOutClosureX<CacheQueryFuture<Map.Entry<K, V>>>() {
 -                    @Override public CacheQueryFuture<Map.Entry<K, V>> applyx() throws IgniteCheckedException {
 +                    @Override public CacheQueryFuture<Map.Entry<K, V>> applyx() {
                          return qry.execute();
                      }
                  }, false);

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
index ac002fc,1d60c42..17df059
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
@@@ -85,7 -88,9 +86,8 @@@ import org.apache.ignite.internal.util.
  import org.apache.ignite.internal.util.lang.GridCloseableIterator;
  import org.apache.ignite.internal.util.lang.GridMapEntry;
  import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 -import org.apache.ignite.internal.util.typedef.C1;
  import org.apache.ignite.internal.util.typedef.F;
+ import org.apache.ignite.internal.util.typedef.T1;
  import org.apache.ignite.internal.util.typedef.T2;
  import org.apache.ignite.internal.util.typedef.X;
  import org.apache.ignite.internal.util.typedef.internal.CU;

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
index 690bfeb,4adfa8b..a8d3f2d
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
@@@ -477,147 -484,77 +497,151 @@@ public class GridDistributedTxRemoteAda
  
                              boolean replicate = cacheCtx.isDrEnabled();
  
 -                            while (true) {
 -                                try {
 -                                    GridCacheEntryEx cached = txEntry.cached();
 +                            try {
 +                                while (true) {
 +                                    try {
 +                                        GridCacheEntryEx cached = txEntry.cached();
  
 -                                    if (cached == null)
 -                                        txEntry.cached(cached = cacheCtx.cache().entryEx(txEntry.key(), topologyVersion()));
 +                                        if (cached == null)
 +                                            txEntry.cached(cached = cacheCtx.cache().entryEx(txEntry.key(), topologyVersion()));
  
 -                                    if (near() && cacheCtx.dr().receiveEnabled()) {
 -                                        cached.markObsolete(xidVer);
 +                                        if (near() && cacheCtx.dr().receiveEnabled()) {
 +                                            cached.markObsolete(xidVer);
  
 -                                        break;
 -                                    }
 +                                            break;
 +                                        }
  
 -                                    GridNearCacheEntry nearCached = null;
 +                                        GridNearCacheEntry nearCached = null;
  
 -                                    if (updateNearCache(cacheCtx, txEntry.key(), topVer))
 -                                        nearCached = cacheCtx.dht().near().peekExx(txEntry.key());
 +                                        if (updateNearCache(cacheCtx, txEntry.key(), topVer))
 +                                            nearCached = cacheCtx.dht().near().peekExx(txEntry.key());
  
 -                                    if (!F.isEmpty(txEntry.entryProcessors()))
 -                                        txEntry.cached().unswap(false);
 +                                        if (!F.isEmpty(txEntry.entryProcessors()))
 +                                            txEntry.cached().unswap(false);
  
 -                                    IgniteBiTuple<GridCacheOperation, CacheObject> res =
 -                                        applyTransformClosures(txEntry, false, ret);
 +                                        IgniteBiTuple<GridCacheOperation, CacheObject> res =
-                                             applyTransformClosures(txEntry, false);
++                                            applyTransformClosures(txEntry, false, ret);
  
 -                                    GridCacheOperation op = res.get1();
 -                                    CacheObject val = res.get2();
 +                                        GridCacheOperation op = res.get1();
 +                                        CacheObject val = res.get2();
  
 -                                    GridCacheVersion explicitVer = txEntry.conflictVersion();
 +                                        GridCacheVersion explicitVer = txEntry.conflictVersion();
  
 -                                    if (explicitVer == null)
 -                                        explicitVer = writeVersion();
 +                                        if (explicitVer == null)
 +                                            explicitVer = writeVersion();
  
 -                                    if (txEntry.ttl() == CU.TTL_ZERO)
 -                                        op = DELETE;
 +                                        if (txEntry.ttl() == CU.TTL_ZERO)
 +                                            op = DELETE;
  
 -                                    boolean conflictNeedResolve = cacheCtx.conflictNeedResolve();
 +                                        boolean conflictNeedResolve = cacheCtx.conflictNeedResolve();
  
 -                                    GridCacheVersionConflictContext conflictCtx = null;
 +                                        GridCacheVersionConflictContext conflictCtx = null;
  
 -                                    if (conflictNeedResolve) {
 -                                        IgniteBiTuple<GridCacheOperation, GridCacheVersionConflictContext>
 -                                            drRes = conflictResolve(op, txEntry, val, explicitVer, cached);
 +                                        if (conflictNeedResolve) {
 +                                            IgniteBiTuple<GridCacheOperation, GridCacheVersionConflictContext>
 +                                                drRes = conflictResolve(op, txEntry, val, explicitVer, cached);
  
 -                                        assert drRes != null;
 +                                            assert drRes != null;
  
 -                                        conflictCtx = drRes.get2();
 +                                            conflictCtx = drRes.get2();
  
 -                                        if (conflictCtx.isUseOld())
 -                                            op = NOOP;
 -                                        else if (conflictCtx.isUseNew()) {
 -                                            txEntry.ttl(conflictCtx.ttl());
 -                                            txEntry.conflictExpireTime(conflictCtx.expireTime());
 -                                        }
 -                                        else if (conflictCtx.isMerge()) {
 -                                            op = drRes.get1();
 -                                            val = txEntry.context().toCacheObject(conflictCtx.mergeValue());
 -                                            explicitVer = writeVersion();
 +                                            if (conflictCtx.isUseOld())
 +                                                op = NOOP;
 +                                            else if (conflictCtx.isUseNew()) {
 +                                                txEntry.ttl(conflictCtx.ttl());
 +                                                txEntry.conflictExpireTime(conflictCtx.expireTime());
 +                                            }
 +                                            else if (conflictCtx.isMerge()) {
 +                                                op = drRes.get1();
 +                                                val = txEntry.context().toCacheObject(conflictCtx.mergeValue());
 +                                                explicitVer = writeVersion();
  
 -                                            txEntry.ttl(conflictCtx.ttl());
 -                                            txEntry.conflictExpireTime(conflictCtx.expireTime());
 +                                                txEntry.ttl(conflictCtx.ttl());
 +                                                txEntry.conflictExpireTime(conflictCtx.expireTime());
 +                                            }
 +                                        }
 +                                        else
 +                                            // Nullify explicit version so that innerSet/innerRemove will work as usual.
 +                                            explicitVer = null;
 +
 +                                        GridCacheVersion dhtVer = cached.isNear() ? writeVersion() : null;
 +
 +                                        if (!near() && cctx.wal() != null && op != NOOP && op != RELOAD && op != READ) {
 +                                            if (dataEntries == null)
 +                                                dataEntries = new ArrayList<>(entries.size());
 +
 +                                            dataEntries.add(
 +                                                new DataEntry(
 +                                                    cacheCtx.cacheId(),
 +                                                    txEntry.key(),
 +                                                    val,
 +                                                    op,
 +                                                    nearXidVersion(),
 +                                                    writeVersion(),
 +                                                    0,
 +                                                    txEntry.key().partition(),
 +                                                    txEntry.updateCounter()
 +                                                )
 +                                            );
                                          }
 -                                    }
 -                                    else
 -                                        // Nullify explicit version so that innerSet/innerRemove will work as usual.
 -                                        explicitVer = null;
 -
 -                                    GridCacheVersion dhtVer = cached.isNear() ? writeVersion() : null;
  
 -                                    if (op == CREATE || op == UPDATE) {
 -                                        // Invalidate only for near nodes (backups cannot be invalidated).
 -                                        if (isSystemInvalidate() || (isInvalidate() && cacheCtx.isNear()))
 +                                        if (op == CREATE || op == UPDATE) {
 +                                            // Invalidate only for near nodes (backups cannot be invalidated).
 +                                            if (isSystemInvalidate() || (isInvalidate() && cacheCtx.isNear()))
 +                                                cached.innerRemove(this,
 +                                                    eventNodeId(),
 +                                                    nodeId,
 +                                                    false,
 +                                                    true,
 +                                                    true,
 +                                                    txEntry.keepBinary(),
++                                                    txEntry.hasOldValue(),
++                                                    txEntry.oldValue(),
 +                                                    topVer,
 +                                                    null,
 +                                                    replicate ? DR_BACKUP : DR_NONE,
 +                                                    near() ? null : explicitVer,
 +                                                    CU.subjectId(this, cctx),
 +                                                    resolveTaskName(),
 +                                                    dhtVer,
 +                                                    txEntry.updateCounter());
 +                                            else {
 +                                                cached.innerSet(this,
 +                                                    eventNodeId(),
 +                                                    nodeId,
 +                                                    val,
 +                                                    false,
 +                                                    false,
 +                                                    txEntry.ttl(),
 +                                                    true,
 +                                                    true,
 +                                                    txEntry.keepBinary(),
++                                                    txEntry.hasOldValue(),
++                                                    txEntry.oldValue(),
 +                                                    topVer,
 +                                                    null,
 +                                                    replicate ? DR_BACKUP : DR_NONE,
 +                                                    txEntry.conflictExpireTime(),
 +                                                    near() ? null : explicitVer,
 +                                                    CU.subjectId(this, cctx),
 +                                                    resolveTaskName(),
 +                                                    dhtVer,
 +                                                    txEntry.updateCounter());
 +
 +                                                // Keep near entry up to date.
 +                                                if (nearCached != null) {
 +                                                    CacheObject val0 = cached.valueBytes();
 +
 +                                                    nearCached.updateOrEvict(xidVer,
 +                                                        val0,
 +                                                        cached.expireTime(),
 +                                                        cached.ttl(),
 +                                                        nodeId,
 +                                                        topVer);
 +                                                }
 +                                            }
 +                                        }
 +                                        else if (op == DELETE) {
                                              cached.innerRemove(this,
                                                  eventNodeId(),
                                                  nodeId,
@@@ -652,82 -607,111 +678,86 @@@
                                                      topVer);
                                              }
                                          }
 -                                    }
 -                                    else if (op == DELETE) {
 -                                        cached.innerRemove(this,
 -                                            eventNodeId(),
 -                                            nodeId,
 -                                            false,
 -                                            true,
 -                                            true,
 -                                            txEntry.keepBinary(),
 -                                            txEntry.hasOldValue(),
 -                                            txEntry.oldValue(),
 -                                            topVer,
 -                                            null,
 -                                            replicate ? DR_BACKUP : DR_NONE,
 -                                            near() ? null : explicitVer,
 -                                            CU.subjectId(this, cctx),
 -                                            resolveTaskName(),
 -                                            dhtVer,
 -                                            txEntry.updateCounter());
 -
 -                                        // Keep near entry up to date.
 -                                        if (nearCached != null)
 -                                            nearCached.updateOrEvict(xidVer, null, 0, 0, nodeId, topVer);
 -                                    }
 -                                    else if (op == RELOAD) {
 -                                        CacheObject reloaded = cached.innerReload();
 +                                        else if (op == READ) {
 +                                            assert near();
  
 -                                        if (nearCached != null) {
 -                                            nearCached.innerReload();
 -
 -                                            nearCached.updateOrEvict(cached.version(),
 -                                                reloaded,
 -                                                cached.expireTime(),
 -                                                cached.ttl(),
 -                                                nodeId,
 -                                                topVer);
 +                                            if (log.isDebugEnabled())
 +                                                log.debug("Ignoring READ entry when committing: " + txEntry);
                                          }
 -                                    }
 -                                    else if (op == READ) {
 -                                        assert near();
 -
 -                                        if (log.isDebugEnabled())
 -                                            log.debug("Ignoring READ entry when committing: " + txEntry);
 -                                    }
 -                                    // No-op.
 -                                    else {
 -                                        if (conflictCtx == null || !conflictCtx.isUseOld()) {
 -                                            if (txEntry.ttl() != CU.TTL_NOT_CHANGED)
 -                                                cached.updateTtl(null, txEntry.ttl());
 -
 -                                            if (nearCached != null) {
 -                                                CacheObject val0 = cached.valueBytes();
 -
 -                                                nearCached.updateOrEvict(xidVer,
 -                                                    val0,
 -                                                    cached.expireTime(),
 -                                                    cached.ttl(),
 -                                                    nodeId,
 -                                                    topVer);
 +                                        // No-op.
 +                                        else {
 +                                            if (conflictCtx == null || !conflictCtx.isUseOld()) {
 +                                                if (txEntry.ttl() != CU.TTL_NOT_CHANGED)
 +                                                    cached.updateTtl(null, txEntry.ttl());
 +
 +                                                if (nearCached != null) {
 +                                                    CacheObject val0 = cached.valueBytes();
 +
 +                                                    nearCached.updateOrEvict(xidVer,
 +                                                        val0,
 +                                                        cached.expireTime(),
 +                                                        cached.ttl(),
 +                                                        nodeId,
 +                                                        topVer);
 +                                                }
                                              }
                                          }
 -                                    }
  
 -                                    // Assert after setting values as we want to make sure
 -                                    // that if we replaced removed entries.
 -                                    assert
 -                                        txEntry.op() == READ || onePhaseCommit() ||
 -                                            // If candidate is not there, then lock was explicit
 -                                            // and we simply allow the commit to proceed.
 -                                            !cached.hasLockCandidateUnsafe(xidVer) || cached.lockedByUnsafe(xidVer) :
 -                                        "Transaction does not own lock for commit [entry=" + cached +
 -                                            ", tx=" + this + ']';
 -
 -                                    // Break out of while loop.
 -                                    break;
 -                                }
 -                                catch (GridCacheEntryRemovedException ignored) {
 -                                    if (log.isDebugEnabled())
 -                                        log.debug("Attempting to commit a removed entry (will retry): " + txEntry);
 +                                        // Assert after setting values as we want to make sure
 +                                        // that if we replaced removed entries.
 +                                        assert
 +                                            txEntry.op() == READ || onePhaseCommit() ||
 +                                                // If candidate is not there, then lock was explicit
 +                                                // and we simply allow the commit to proceed.
 +                                                !cached.hasLockCandidateUnsafe(xidVer) || cached.lockedByUnsafe(xidVer) :
 +                                            "Transaction does not own lock for commit [entry=" + cached +
 +                                                ", tx=" + this + ']';
 +
 +                                        // Break out of while loop.
 +                                        break;
 +                                    }
 +                                    catch (GridCacheEntryRemovedException ignored) {
 +                                        if (log.isDebugEnabled())
 +                                            log.debug("Attempting to commit a removed entry (will retry): " + txEntry);
  
 -                                    // Renew cached entry.
 -                                    txEntry.cached(cacheCtx.cache().entryEx(txEntry.key(), topologyVersion()));
 +                                        // Renew cached entry.
 +                                        txEntry.cached(cacheCtx.cache().entryEx(txEntry.key(), topologyVersion()));
 +                                    }
                                  }
                              }
 -                        }
 -                    }
 -                    catch (Throwable ex) {
 -                        // In case of error, we still make the best effort to commit,
 -                        // as there is no way to rollback at this point.
 -                        err = new IgniteTxHeuristicCheckedException("Commit produced a runtime exception " +
 -                            "(all transaction entries will be invalidated): " + CU.txString(this), ex);
 +                            catch (Throwable ex) {
 +                                // In case of error, we still make the best effort to commit,
 +                                // as there is no way to rollback at this point.
 +                                err = new IgniteTxHeuristicCheckedException("Commit produced a runtime exception " +
 +                                    "(all transaction entries will be invalidated): " + CU.txString(this), ex);
 +
 +                                U.error(log, "Commit failed.", err);
  
 -                        U.error(log, "Commit failed.", err);
 +                                uncommit();
  
 -                        uncommit();
 +                                state(UNKNOWN);
  
 -                        state(UNKNOWN);
 +                                if (ex instanceof Error)
 +                                    throw (Error)ex;
 +                            }
++                            finally {
++                                if (wrapper != null)
++                                    wrapper.initialize(ret);
++                            }
 +                        }
  
 -                        if (ex instanceof Error)
 -                            throw (Error)ex;
 +                        if (!near() && cctx.wal() != null)
 +                            cctx.wal().log(new DataRecord(dataEntries));
  
 +                        if (ptr != null)
 +                            cctx.wal().fsync(ptr);
 +                    }
 +                    catch (StorageException e) {
 +                        throw new IgniteCheckedException("Failed to log transaction record " +
 +                            "(transaction will be rolled back): " + this, e);
                      }
                      finally {
 -                        if (wrapper != null)
 -                            wrapper.initialize(ret);
 +                        cctx.database().checkpointReadUnlock();
                      }
                  }
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
index a6f41ac,816132d..88cd16b
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
@@@ -97,8 -98,11 +100,11 @@@ public class GridClientPartitionTopolog
      private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
  
      /** Partition update counters. */
 -    private Map<Integer, Long> cntrMap = new HashMap<>();
 +    private Map<Integer, T2<Long, Long>> cntrMap = new HashMap<>();
  
+     /** */
+     private final Object similarAffKey;
+ 
      /**
       * @param cctx Context.
       * @param cacheId Cache ID.
@@@ -127,9 -134,16 +136,16 @@@
      }
  
      /**
+      * @return Key to find caches with similar affinity.
+      */
+     @Nullable public Object similarAffinityKey() {
+         return similarAffKey;
+     }
+ 
+     /**
       * @return Full map string representation.
       */
 -    @SuppressWarnings( {"ConstantConditions"})
 +    @SuppressWarnings({"ConstantConditions"})
      private String fullMapString() {
          return node2part == null ? "null" : FULL_MAP_DEBUG ? node2part.toFullString() : node2part.toString();
      }
@@@ -533,9 -550,9 +550,9 @@@
  
      /** {@inheritDoc} */
      @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"})
-     @Nullable @Override public GridDhtPartitionMap2 update(@Nullable GridDhtPartitionExchangeId exchId,
+     @Nullable @Override public boolean update(@Nullable GridDhtPartitionExchangeId exchId,
          GridDhtPartitionFullMap partMap,
 -        Map<Integer, Long> cntrMap) {
 +        Map<Integer, T2<Long, Long>> cntrMap) {
          if (log.isDebugEnabled())
              log.debug("Updating full partition map [exchId=" + exchId + ", parts=" + fullMapString() + ']');
  
@@@ -626,10 -643,10 +643,10 @@@
      }
  
      /** {@inheritDoc} */
-     @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"})
-     @Nullable @Override public GridDhtPartitionMap2 update(@Nullable GridDhtPartitionExchangeId exchId,
+     @Nullable @Override public boolean update(@Nullable GridDhtPartitionExchangeId exchId,
          GridDhtPartitionMap2 parts,
-         Map<Integer, T2<Long, Long>> cntrMap) {
 -        Map<Integer, Long> cntrMap,
++        Map<Integer, T2<Long, Long>> cntrMap,
+         boolean checkEvictions) {
          if (log.isDebugEnabled())
              log.debug("Updating single partition map [exchId=" + exchId + ", parts=" + mapString(parts) + ']');
  
@@@ -674,44 -692,46 +691,46 @@@
  
              long updateSeq = this.updateSeq.incrementAndGet();
  
-             node2part = new GridDhtPartitionFullMap(node2part, updateSeq);
- 
-             boolean changed = false;
+             node2part.updateSequence(updateSeq);
  
-             if (cur == null || !cur.equals(parts))
-                 changed = true;
+             boolean changed = cur == null || !cur.equals(parts);
  
-             node2part.put(parts.nodeId(), parts);
+             if (changed) {
+                 node2part.put(parts.nodeId(), parts);
  
-             part2node = new HashMap<>(part2node);
+                 // Add new mappings.
+                 for (Integer p : parts.keySet()) {
+                     Set<UUID> ids = part2node.get(p);
  
-             // Add new mappings.
-             for (Integer p : parts.keySet()) {
-                 Set<UUID> ids = part2node.get(p);
+                     if (ids == null)
+                         // Initialize HashSet to size 3 in anticipation that there won't be
+                         // more than 3 nodes per partition.
+                         part2node.put(p, ids = U.newHashSet(3));
  
-                 if (ids == null)
-                     // Initialize HashSet to size 3 in anticipation that there won't be
-                     // more than 3 nodes per partition.
-                     part2node.put(p, ids = U.newHashSet(3));
+                     ids.add(parts.nodeId());
+                 }
  
-                 changed |= ids.add(parts.nodeId());
-             }
+                 // Remove obsolete mappings.
+                 if (cur != null) {
+                     for (Integer p : cur.keySet()) {
+                         if (parts.containsKey(p))
+                             continue;
  
-             // Remove obsolete mappings.
-             if (cur != null) {
-                 for (Integer p : F.view(cur.keySet(), F0.notIn(parts.keySet()))) {
-                     Set<UUID> ids = part2node.get(p);
+                         Set<UUID> ids = part2node.get(p);
  
-                     if (ids != null)
-                         changed |= ids.remove(parts.nodeId());
+                         if (ids != null)
+                             ids.remove(parts.nodeId());
+                     }
                  }
              }
+             else
+                 cur.updateSequence(parts.updateSequence(), parts.topologyVersion());
  
              if (cntrMap != null) {
 -                for (Map.Entry<Integer, Long> e : cntrMap.entrySet()) {
 -                    Long cntr = this.cntrMap.get(e.getKey());
 +                for (Map.Entry<Integer, T2<Long, Long>> e : cntrMap.entrySet()) {
 +                    T2<Long, Long> cntr = this.cntrMap.get(e.getKey());
  
 -                    if (cntr == null || cntr < e.getValue())
 +                    if (cntr == null || cntr.get2() < e.getValue().get2())
                          this.cntrMap.put(e.getKey(), e.getValue());
                  }
              }
@@@ -729,24 -749,10 +748,29 @@@
      }
  
      /** {@inheritDoc} */
 +    @Override public boolean detectLostPartitions(DiscoveryEvent discoEvt) {
 +        assert false : "detectLostPartitions should never be called on client topology";
 +
 +        return false;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public void resetLostPartitions() {
 +        assert false : "resetLostPartitions should never be called on client topology";
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public Collection<Integer> lostPartitions() {
 +        assert false : "lostPartitions should never be called on client topology";
 +
 +        return Collections.emptyList();
 +    }
 +
++    /** {@inheritDoc} */
+     @Override public void checkEvictions() {
+         // No-op.
+     }
+ 
      /**
       * Updates value for single partition.
       *
@@@ -877,48 -882,22 +900,36 @@@
      }
  
      /** {@inheritDoc} */
-     @Nullable @Override public GridDhtPartitionMap2 partitions(UUID nodeId) {
 -    @Override public Map<Integer, Long> updateCounters(boolean skipZeros) {
--        lock.readLock().lock();
- 
-         try {
-             return node2part.get(nodeId);
-         }
-         finally {
-             lock.readLock().unlock();
-         }
-     }
- 
-     /** {@inheritDoc} */
 +    @Override public void setOwners(int p, Set<UUID> owners, boolean updateSeq) {
 +        lock.writeLock().lock();
  
          try {
 -            if (skipZeros) {
 -                Map<Integer, Long> res = U.newHashMap(cntrMap.size());
 -
 -                for (Map.Entry<Integer, Long> e : cntrMap.entrySet()) {
 -                    if (!e.getValue().equals(ZERO))
 -                        res.put(e.getKey(), e.getValue());
 -                }
 +            for (Map.Entry<UUID, GridDhtPartitionMap2> e : node2part.entrySet()) {
 +                if (!e.getValue().containsKey(p))
 +                    continue;
  
 -                return res;
 +                if (e.getValue().get(p) == OWNING && !owners.contains(e.getKey()))
 +                    e.getValue().put(p, MOVING);
 +                else if (owners.contains(e.getKey()))
 +                    e.getValue().put(p, OWNING);
              }
 -            else
 -                return new HashMap<>(cntrMap);
 +
 +            part2node.put(p, owners);
 +
 +            if (updateSeq)
 +                this.updateSeq.incrementAndGet();
 +        }
 +        finally {
 +            lock.writeLock().unlock();
 +        }
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public Map<Integer, T2<Long, Long>> updateCounters() {
 +        lock.readLock().lock();
 +
 +        try {
 +            return new HashMap<>(cntrMap);
          }
          finally {
              lock.readLock().unlock();

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
----------------------------------------------------------------------


[26/50] [abbrv] ignite git commit: Merge with master - WIP.

Posted by ag...@apache.org.
Merge with master - WIP.


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

Branch: refs/heads/ignite-3477
Commit: 30633571f878f794c5ba73beb9ecfd9c9f52aa7e
Parents: 9dc652d
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Thu Dec 22 17:28:04 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Thu Dec 22 17:28:04 2016 +0300

----------------------------------------------------------------------
 .../internal/client/GridClientClusterState.java | 33 +++++++++
 .../router/impl/GridRouterClientImpl.java       |  2 +-
 .../GridCachePartitionExchangeManager.java      |  4 +-
 .../dht/GridClientPartitionTopology.java        | 70 ++++++++++----------
 .../dht/GridDhtPartitionTopology.java           | 18 +++--
 .../dht/GridDhtPartitionTopologyImpl.java       | 54 ++++++++++++---
 .../GridNearAtomicAbstractUpdateRequest.java    |  2 -
 .../GridDhtPartitionsExchangeFuture.java        |  2 +-
 .../IgniteCacheFullApiSelfTestSuite.java        |  2 -
 9 files changed, 127 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/30633571/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientClusterState.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientClusterState.java b/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientClusterState.java
new file mode 100644
index 0000000..4fa25ce
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientClusterState.java
@@ -0,0 +1,33 @@
+/*
+ * 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.client;
+
+/**
+ *  Interface for manage state of grid cluster.
+ */
+public interface GridClientClusterState {
+    /**
+     * @param active {@code True} activate, {@code False} deactivate.
+     */
+    public void active(boolean active) throws GridClientException;
+
+    /**
+     * @return {@code Boolean} - Current cluster state. {@code True} active, {@code False} inactive.
+     */
+    public boolean active() throws GridClientException;
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/30633571/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridRouterClientImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridRouterClientImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridRouterClientImpl.java
index 1dd366b..12e2cc8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridRouterClientImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridRouterClientImpl.java
@@ -22,11 +22,11 @@ import java.util.UUID;
 import java.util.concurrent.ConcurrentMap;
 import org.apache.ignite.internal.client.GridClient;
 import org.apache.ignite.internal.client.GridClientClosedException;
+import org.apache.ignite.internal.client.GridClientClusterState;
 import org.apache.ignite.internal.client.GridClientCompute;
 import org.apache.ignite.internal.client.GridClientConfiguration;
 import org.apache.ignite.internal.client.GridClientData;
 import org.apache.ignite.internal.client.GridClientException;
-import org.apache.ignite.internal.client.GridClientClusterState;
 import org.apache.ignite.internal.client.GridClientNode;
 import org.apache.ignite.internal.client.GridClientPredicate;
 import org.apache.ignite.internal.client.GridClientProtocol;

http://git-wip-us.apache.org/repos/asf/ignite/blob/30633571/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 6a9ea1b..c63da75 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
@@ -1243,7 +1243,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
                         top = cacheCtx.topology();
 
                     if (top != null)
-                        updated |= top.update(null, entry.getValue(), null);
+                        updated |= top.update(null, entry.getValue(), null) != null;
                 }
 
                 if (!cctx.kernalContext().clientNode() && updated)
@@ -1292,7 +1292,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
                         top = cacheCtx.topology();
 
                     if (top != null) {
-                        updated |= top.update(null, entry.getValue(), null, true);
+                        updated |= top.update(null, entry.getValue(), null) != null;
 
                         cctx.affinity().checkRebalanceState(top, cacheId);
                     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/30633571/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
index 33de577..ca71f51 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
@@ -550,7 +550,7 @@ public class GridClientPartitionTopology implements GridDhtPartitionTopology {
 
     /** {@inheritDoc} */
     @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"})
-    @Nullable @Override public boolean update(@Nullable GridDhtPartitionExchangeId exchId,
+    @Nullable @Override public GridDhtPartitionMap2 update(@Nullable GridDhtPartitionExchangeId exchId,
         GridDhtPartitionFullMap partMap,
         Map<Integer, T2<Long, Long>> cntrMap) {
         if (log.isDebugEnabled())
@@ -564,7 +564,7 @@ public class GridClientPartitionTopology implements GridDhtPartitionTopology {
                     log.debug("Stale exchange id for full partition map update (will ignore) [lastExchId=" +
                         lastExchangeId + ", exchId=" + exchId + ']');
 
-                return false;
+                return null;
             }
 
             if (node2part != null && node2part.compareTo(partMap) >= 0) {
@@ -572,7 +572,7 @@ public class GridClientPartitionTopology implements GridDhtPartitionTopology {
                     log.debug("Stale partition map for full partition map update (will ignore) [lastExchId=" +
                         lastExchangeId + ", exchId=" + exchId + ", curMap=" + node2part + ", newMap=" + partMap + ']');
 
-                return false;
+                return null;
             }
 
             updateSeq.incrementAndGet();
@@ -635,7 +635,7 @@ public class GridClientPartitionTopology implements GridDhtPartitionTopology {
             if (log.isDebugEnabled())
                 log.debug("Partition map after full update: " + fullMapString());
 
-            return false;
+            return null;
         }
         finally {
             lock.writeLock().unlock();
@@ -643,10 +643,10 @@ public class GridClientPartitionTopology implements GridDhtPartitionTopology {
     }
 
     /** {@inheritDoc} */
-    @Nullable @Override public boolean update(@Nullable GridDhtPartitionExchangeId exchId,
+    @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"})
+    @Nullable @Override public GridDhtPartitionMap2 update(@Nullable GridDhtPartitionExchangeId exchId,
         GridDhtPartitionMap2 parts,
-        Map<Integer, T2<Long, Long>> cntrMap,
-        boolean checkEvictions) {
+        Map<Integer, T2<Long, Long>> cntrMap) {
         if (log.isDebugEnabled())
             log.debug("Updating single partition map [exchId=" + exchId + ", parts=" + mapString(parts) + ']');
 
@@ -655,21 +655,21 @@ public class GridClientPartitionTopology implements GridDhtPartitionTopology {
                 log.debug("Received partition update for non-existing node (will ignore) [exchId=" + exchId +
                     ", parts=" + parts + ']');
 
-            return false;
+            return null;
         }
 
         lock.writeLock().lock();
 
         try {
             if (stopping)
-                return false;
+                return null;
 
             if (lastExchangeId != null && exchId != null && lastExchangeId.compareTo(exchId) > 0) {
                 if (log.isDebugEnabled())
                     log.debug("Stale exchange id for single partition map update (will ignore) [lastExchId=" +
                         lastExchangeId + ", exchId=" + exchId + ']');
 
-                return false;
+                return null;
             }
 
             if (exchId != null)
@@ -686,45 +686,43 @@ public class GridClientPartitionTopology implements GridDhtPartitionTopology {
                     log.debug("Stale update sequence for single partition map update (will ignore) [exchId=" + exchId +
                         ", curSeq=" + cur.updateSequence() + ", newSeq=" + parts.updateSequence() + ']');
 
-                return false;
+                return null;
             }
 
             long updateSeq = this.updateSeq.incrementAndGet();
 
-            node2part.updateSequence(updateSeq);
+            node2part = new GridDhtPartitionFullMap(node2part, updateSeq);
 
-            boolean changed = cur == null || !cur.equals(parts);
+            boolean changed = false;
 
-            if (changed) {
-                node2part.put(parts.nodeId(), parts);
+            if (cur == null || !cur.equals(parts))
+                changed = true;
 
-                // Add new mappings.
-                for (Integer p : parts.keySet()) {
-                    Set<UUID> ids = part2node.get(p);
+            node2part.put(parts.nodeId(), parts);
 
-                    if (ids == null)
-                        // Initialize HashSet to size 3 in anticipation that there won't be
-                        // more than 3 nodes per partition.
-                        part2node.put(p, ids = U.newHashSet(3));
+            part2node = new HashMap<>(part2node);
 
-                    ids.add(parts.nodeId());
-                }
+            // Add new mappings.
+            for (Integer p : parts.keySet()) {
+                Set<UUID> ids = part2node.get(p);
+
+                if (ids == null)
+                    // Initialize HashSet to size 3 in anticipation that there won't be
+                    // more than 3 nodes per partition.
+                    part2node.put(p, ids = U.newHashSet(3));
 
-                // Remove obsolete mappings.
-                if (cur != null) {
-                    for (Integer p : cur.keySet()) {
-                        if (parts.containsKey(p))
-                            continue;
+                changed |= ids.add(parts.nodeId());
+            }
 
-                        Set<UUID> ids = part2node.get(p);
+            // Remove obsolete mappings.
+            if (cur != null) {
+                for (Integer p : F.view(cur.keySet(), F0.notIn(parts.keySet()))) {
+                    Set<UUID> ids = part2node.get(p);
 
-                        if (ids != null)
-                            ids.remove(parts.nodeId());
-                    }
+                    if (ids != null)
+                        changed |= ids.remove(parts.nodeId());
                 }
             }
-            else
-                cur.updateSequence(parts.updateSequence(), parts.topologyVersion());
 
             if (cntrMap != null) {
                 for (Map.Entry<Integer, T2<Long, Long>> e : cntrMap.entrySet()) {
@@ -740,7 +738,7 @@ public class GridClientPartitionTopology implements GridDhtPartitionTopology {
             if (log.isDebugEnabled())
                 log.debug("Partition map after single update: " + fullMapString());
 
-            return changed;
+            return changed ? localPartitionMap() : null;
         }
         finally {
             lock.writeLock().unlock();

http://git-wip-us.apache.org/repos/asf/ignite/blob/30633571/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
index 5918da8..ac3e2c8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
@@ -216,9 +216,9 @@ public interface GridDhtPartitionTopology {
      * @param exchId Exchange ID.
      * @param partMap Update partition map.
      * @param cntrMap Partition update counters.
-     * @return {@code True} if topology state changed.
+     * @return Local partition map if there were evictions or {@code null} otherwise.
      */
-    public boolean update(@Nullable GridDhtPartitionExchangeId exchId,
+    public GridDhtPartitionMap2 update(@Nullable GridDhtPartitionExchangeId exchId,
         GridDhtPartitionFullMap partMap,
         @Nullable Map<Integer, T2<Long, Long>> cntrMap);
 
@@ -226,13 +226,11 @@ public interface GridDhtPartitionTopology {
      * @param exchId Exchange ID.
      * @param parts Partitions.
      * @param cntrMap Partition update counters.
-     * @param checkEvictions Check evictions flag.
-     * @return {@code True} if topology state changed.
+     * @return Local partition map if there were evictions or {@code null} otherwise.
      */
-    @Nullable public boolean update(@Nullable GridDhtPartitionExchangeId exchId,
+    @Nullable public GridDhtPartitionMap2 update(@Nullable GridDhtPartitionExchangeId exchId,
         GridDhtPartitionMap2 parts,
-        @Nullable Map<Integer, T2<Long, Long>> cntrMap,
-        boolean checkEvictions);
+        @Nullable Map<Integer, T2<Long, Long>> cntrMap);
 
     /**
      * Checks if there is at least one owner for each partition in the cache topology.
@@ -279,6 +277,12 @@ public interface GridDhtPartitionTopology {
     public void onEvicted(GridDhtLocalPartition part, boolean updateSeq);
 
     /**
+     * @param nodeId Node to get partitions for.
+     * @return Partitions for node.
+     */
+    @Nullable public GridDhtPartitionMap2 partitions(UUID nodeId);
+
+    /**
      * Prints memory stats.
      *
      * @param threshold Threshold for number of entries.

http://git-wip-us.apache.org/repos/asf/ignite/blob/30633571/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 ea3b7c6..f22c263 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
@@ -1429,7 +1429,7 @@ import static org.apache.ignite.internal.processors.cache.distributed.dht.GridDh
                         boolean marked = plc == PartitionLossPolicy.IGNORE ? locPart.own() : locPart.markLost();
 
                         if (marked)
-                            updateLocal(locPart.id(), cctx.localNodeId(), locPart.state(), updSeq);
+                            updateLocal(locPart.id(), locPart.state(), updSeq);
 
                         changed |= marked;
                     }
@@ -1494,7 +1494,7 @@ import static org.apache.ignite.internal.processors.cache.distributed.dht.GridDh
                             boolean marked = locPart.own();
 
                             if (marked)
-                                updateLocal(locPart.id(), cctx.localNodeId(), locPart.state(), updSeq);
+                                updateLocal(locPart.id(), locPart.state(), updSeq);
                         }
 
                         for (UUID nodeId : nodeIds) {
@@ -1582,6 +1582,42 @@ import static org.apache.ignite.internal.processors.cache.distributed.dht.GridDh
 
     /**
      * @param updateSeq Update sequence.
+     * @return {@code True} if state changed.
+     */
+    private boolean checkEvictions(long updateSeq) {
+        AffinityTopologyVersion affVer = cctx.affinity().affinityTopologyVersion();
+
+        boolean changed = false;
+
+        if (!affVer.equals(AffinityTopologyVersion.NONE) && affVer.compareTo(topVer) >= 0) {
+            List<List<ClusterNode>> aff = cctx.affinity().assignments(topVer);
+
+            changed = checkEvictions(updateSeq, aff);
+
+            updateRebalanceVersion(aff);
+        }
+
+        return changed;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void checkEvictions() {
+        lock.writeLock().lock();
+
+        try {
+            long updateSeq = this.updateSeq.incrementAndGet();
+
+            node2part.newUpdateSequence(updateSeq);
+
+            checkEvictions(updateSeq);
+        }
+        finally {
+            lock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * @param updateSeq Update sequence.
      * @param aff Affinity assignments.
      * @return Checks if any of the local partitions need to be evicted.
      */
@@ -1824,15 +1860,15 @@ import static org.apache.ignite.internal.processors.cache.distributed.dht.GridDh
 
     /** {@inheritDoc} */
     @Nullable @Override public GridDhtPartitionMap2 partitions(UUID nodeId) {
-            lock.readLock().lock();
+        lock.readLock().lock();
 
-            try {
-                return node2part.get(nodeId);
-            }
-            finally {
-                lock.readLock().unlock();
-            }
+        try {
+            return node2part.get(nodeId);
         }
+        finally {
+            lock.readLock().unlock();
+        }
+    }
 
     /** {@inheritDoc} */
     @Override public Map<Integer, T2<Long, Long>> updateCounters(boolean skipZeros) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/30633571/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
index d5f8b64..b933186 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
@@ -133,8 +133,6 @@ public abstract class GridNearAtomicAbstractUpdateRequest extends GridCacheMessa
      */
     public abstract boolean hasPrimary();
 
-    public abstract boolean recovery();
-
     /**
      * @param res Response.
      * @return {@code True} if current response was {@code null}.

http://git-wip-us.apache.org/repos/asf/ignite/blob/30633571/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index 5d90e35..5bb7536 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -1746,7 +1746,7 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
             if (cacheCtx != null)
                 cacheCtx.topology().update(exchId, entry.getValue(), cntrMap);
             else {
-                ClusterNode oldest = CU.oldestAliveCacheServerNode(cctx, AffinityTopologyVersion.NONE);
+                ClusterNode oldest = cctx.discovery().oldestAliveCacheServerNode(AffinityTopologyVersion.NONE);
 
                 if (oldest != null && oldest.isLocal())
                     cctx.exchange().clientTopology(cacheId, this).update(exchId, entry.getValue(), cntrMap);

http://git-wip-us.apache.org/repos/asf/ignite/blob/30633571/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFullApiSelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFullApiSelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFullApiSelfTestSuite.java
index 17757ab..7d4fee1 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFullApiSelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFullApiSelfTestSuite.java
@@ -57,7 +57,6 @@ import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheAto
 import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheAtomicPrimaryWriteOrderFairAffinityMultiNodeFullApiSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheAtomicPrimaryWriteOrderMultiNodeFullApiSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheAtomicPrimaryWriteOrderMultiNodeP2PDisabledFullApiSelfTest;
-import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheAtomicPrimaryWriteOrderNoStripedPoolMultiNodeFullApiSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheAtomicPrimaryWriteOrderOffHeapFullApiSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheAtomicPrimaryWriteOrderOffHeapTieredFullApiSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheAtomicPrimaryWrityOrderOffHeapMultiNodeFullApiSelfTest;
@@ -231,7 +230,6 @@ public class IgniteCacheFullApiSelfTestSuite extends TestSuite {
         suite.addTestSuite(GridCachePartitionedFullApiMultithreadedSelfTest.class);
 
         // Disabled striped pool.
-        suite.addTestSuite(GridCacheAtomicPrimaryWriteOrderNoStripedPoolMultiNodeFullApiSelfTest.class);
         suite.addTestSuite(GridCachePartitionedNoStripedPoolMultiNodeFullApiSelfTest.class);
 
         // Other.


[25/50] [abbrv] ignite git commit: Merge with master - WIP

Posted by ag...@apache.org.
Merge with master - WIP


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

Branch: refs/heads/ignite-3477
Commit: 9dc652db5b0891e08aedc4ed40c333d4f5a7c044
Parents: 7b03a2b f7d89fd
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Thu Dec 22 17:12:31 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Thu Dec 22 17:12:31 2016 +0300

----------------------------------------------------------------------
 .gitignore                                      |   35 +-
 README.md                                       |    8 +
 RELEASE_NOTES.txt                               |   22 +
 assembly/dependencies-fabric-lgpl.xml           |    1 +
 assembly/dependencies-fabric.xml                |    1 +
 assembly/release-base.xml                       |    5 +
 assembly/release-fabric-base.xml                |    1 +
 bin/ignite.sh                                   |    9 +
 config/dotnet/default-dotnet.xml                |   45 +
 examples/pom-standalone.xml                     |    6 +
 examples/pom.xml                                |    2 +-
 examples/redis/redis-example.php                |   82 ++
 examples/redis/redis-example.py                 |   62 +
 examples/schema-import/pom.xml                  |    2 +-
 .../ignite/examples/ExampleNodeStartup.java     |    2 +-
 .../examples/datagrid/CachePutGetExample.java   |    2 +-
 .../examples/datagrid/CacheQueryDmlExample.java |  163 +++
 .../scalar/examples/ScalarJvmCloudExample.scala |    2 +-
 .../CacheExamplesMultiNodeSelfTest.java         |    7 +
 .../ignite/examples/CacheExamplesSelfTest.java  |    8 +
 modules/aop/pom.xml                             |    2 +-
 modules/apache-license-gen/pom.xml              |    2 +-
 modules/aws/pom.xml                             |    2 +-
 modules/benchmarks/pom.xml                      |    2 +-
 .../jmh/misc/JmhIncrementBenchmark.java         |   95 ++
 modules/camel/pom.xml                           |    2 +-
 modules/cassandra/pom.xml                       |   16 +-
 modules/cassandra/serializers/README.txt        |    7 +-
 modules/cassandra/serializers/pom.xml           |    4 +-
 modules/cassandra/store/pom.xml                 |    4 +-
 modules/clients/pom.xml                         |   12 +-
 .../clients/src/test/config/jdbc-bin-config.xml |   54 +
 .../jdbc2/JdbcAbstractDmlStatementSelfTest.java |  263 ++++
 .../JdbcAbstractUpdateStatementSelfTest.java    |   37 +
 ...BinaryMarshallerInsertStatementSelfTest.java |   37 +
 ...cBinaryMarshallerMergeStatementSelfTest.java |   37 +
 .../jdbc2/JdbcDeleteStatementSelfTest.java      |   49 +
 .../jdbc2/JdbcInsertStatementSelfTest.java      |  122 ++
 .../jdbc2/JdbcMergeStatementSelfTest.java       |   91 ++
 .../internal/jdbc2/JdbcNoDefaultCacheTest.java  |   40 +-
 .../internal/jdbc2/JdbcResultSetSelfTest.java   |   18 +
 .../rest/ClientMemcachedProtocolSelfTest.java   |    4 +-
 .../rest/RestProcessorMultiStartSelfTest.java   |   48 +-
 .../rest/protocols/tcp/MockNioSession.java      |   11 +
 .../tcp/redis/RedisProtocolSelfTest.java        |  101 +-
 .../jdbc/suite/IgniteJdbcDriverTestSuite.java   |    5 +
 modules/cloud/pom.xml                           |    2 +-
 modules/codegen/pom.xml                         |    2 +-
 modules/core/pom.xml                            |    2 +-
 .../java/org/apache/ignite/IgniteCache.java     |    2 +
 .../apache/ignite/IgniteSystemProperties.java   |   17 +
 .../binary/BinaryAbstractIdentityResolver.java  |   53 +
 .../binary/BinaryArrayIdentityResolver.java     |  224 +++
 .../binary/BinaryFieldIdentityResolver.java     |  307 ++++
 .../ignite/binary/BinaryIdentityResolver.java   |   42 +
 .../ignite/binary/BinaryTypeConfiguration.java  |   27 +-
 .../org/apache/ignite/cache/QueryEntity.java    |   27 +
 .../rendezvous/RendezvousAffinityFunction.java  |   80 +-
 .../ignite/cache/query/SqlFieldsQuery.java      |    2 +-
 .../cache/store/CacheLoadOnlyStoreAdapter.java  |    6 +-
 .../configuration/CacheConfiguration.java       |   19 +-
 .../configuration/IgniteConfiguration.java      |   48 +
 .../internal/GridEventConsumeHandler.java       |    2 +-
 .../ignite/internal/GridJobContextImpl.java     |    4 +-
 .../ignite/internal/GridKernalContext.java      |    9 +
 .../ignite/internal/GridKernalContextImpl.java  |   16 +-
 .../internal/GridPerformanceSuggestions.java    |    2 +-
 .../org/apache/ignite/internal/GridTopic.java   |    4 +-
 .../ignite/internal/IgniteInternalFuture.java   |   11 +
 .../apache/ignite/internal/IgniteKernal.java    |   71 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |   32 +-
 .../internal/binary/BinaryClassDescriptor.java  |   15 +
 .../ignite/internal/binary/BinaryContext.java   |   76 +-
 .../ignite/internal/binary/BinaryFieldImpl.java |   10 +-
 .../internal/binary/BinaryObjectExImpl.java     |   90 +-
 .../internal/binary/BinaryObjectImpl.java       |   48 +-
 .../binary/BinaryObjectOffheapImpl.java         |   42 +-
 .../internal/binary/BinaryPrimitives.java       |   30 +-
 .../binary/BinarySerializedFieldComparator.java |  343 +++++
 .../ignite/internal/binary/BinaryUtils.java     |    2 +-
 .../internal/binary/BinaryWriterExImpl.java     |   47 +-
 .../internal/binary/GridBinaryMarshaller.java   |    2 +-
 .../binary/builder/BinaryBuilderReader.java     |   11 +
 .../binary/builder/BinaryBuilderSerializer.java |    4 +
 .../binary/builder/BinaryObjectBuilderImpl.java |   16 +
 .../streams/BinaryAbstractInputStream.java      |    5 +
 .../streams/BinaryAbstractOutputStream.java     |    5 +
 .../streams/BinaryByteBufferInputStream.java    |   10 +
 .../binary/streams/BinaryHeapInputStream.java   |    9 +-
 .../binary/streams/BinaryHeapOutputStream.java  |    7 +-
 .../streams/BinaryMemoryAllocatorChunk.java     |    3 +-
 .../streams/BinaryOffheapInputStream.java       |   14 +-
 .../streams/BinaryOffheapOutputStream.java      |    8 +-
 .../internal/binary/streams/BinaryStream.java   |   12 +-
 .../internal/client/GridClientClusterState.java |   33 -
 .../GridClientConnectionManagerAdapter.java     |    1 +
 .../ignite/internal/jdbc2/JdbcConnection.java   |   17 +
 .../internal/jdbc2/JdbcPreparedStatement.java   |   71 +-
 .../ignite/internal/jdbc2/JdbcQueryTask.java    |    5 +-
 .../ignite/internal/jdbc2/JdbcQueryTaskV2.java  |  406 ++++++
 .../ignite/internal/jdbc2/JdbcResultSet.java    |   72 +-
 .../internal/jdbc2/JdbcSqlFieldsQuery.java      |   49 +
 .../ignite/internal/jdbc2/JdbcStatement.java    |  213 ++-
 .../apache/ignite/internal/jdbc2/JdbcUtils.java |   25 +-
 .../managers/communication/GridIoManager.java   |   33 +-
 .../managers/communication/GridIoMessage.java   |   13 +
 .../communication/GridIoMessageFactory.java     |   59 +-
 .../communication/IgniteIoTestMessage.java      |   13 +-
 .../discovery/GridDiscoveryManager.java         |  118 +-
 .../snapshot/SnapshotFinishedMessage.java       |    2 +-
 .../processors/cache/GridCacheAdapter.java      |  741 ++++------
 .../processors/cache/GridCacheEntryEx.java      |    4 +-
 .../processors/cache/GridCacheMapEntry.java     |   41 +-
 .../processors/cache/GridCacheMessage.java      |    7 +
 .../GridCachePartitionExchangeManager.java      |  151 +-
 .../processors/cache/GridCachePreloader.java    |    8 +-
 .../cache/GridCachePreloaderAdapter.java        |    9 +-
 .../processors/cache/GridCacheProcessor.java    |    2 +-
 .../processors/cache/GridCacheProxyImpl.java    |   24 +-
 .../cache/GridCacheSharedTtlCleanupManager.java |    5 +-
 .../processors/cache/GridCacheTtlManager.java   |    4 +
 .../processors/cache/GridCacheUtils.java        |   62 +-
 .../GridChangeGlobalStateMessageResponse.java   |    2 +-
 .../processors/cache/IgniteInternalCache.java   |    8 +
 .../processors/cache/QueryCursorImpl.java       |   31 +-
 .../binary/CacheObjectBinaryProcessorImpl.java  |    3 +-
 .../distributed/GridCacheTxRecoveryFuture.java  |    4 +-
 .../distributed/GridDistributedLockRequest.java |    5 +
 .../GridDistributedUnlockRequest.java           |    5 +
 .../dht/GridClientPartitionTopology.java        |  108 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |    3 +-
 .../cache/distributed/dht/GridDhtGetFuture.java |    2 +-
 .../distributed/dht/GridDhtLockFuture.java      |   27 +-
 .../distributed/dht/GridDhtLockResponse.java    |    9 +-
 .../dht/GridDhtPartitionTopology.java           |   28 +-
 .../dht/GridDhtPartitionTopologyImpl.java       |  142 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |   74 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |  125 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |    7 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |    4 +-
 .../dht/atomic/GridDhtAtomicCache.java          |  453 +++---
 .../GridDhtAtomicSingleUpdateRequest.java       |    5 +
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |    5 +
 ...idNearAtomicAbstractSingleUpdateRequest.java |   28 +-
 .../GridNearAtomicAbstractUpdateRequest.java    |    2 +
 .../atomic/GridNearAtomicFullUpdateRequest.java |   69 +-
 ...GridNearAtomicSingleUpdateInvokeRequest.java |    6 +-
 .../GridNearAtomicSingleUpdateRequest.java      |    5 +
 .../dht/colocated/GridDhtColocatedCache.java    |   13 -
 .../colocated/GridDhtColocatedLockFuture.java   |    4 +-
 .../dht/preloader/GridDhtPartitionDemander.java |  233 +--
 .../dht/preloader/GridDhtPartitionFullMap.java  |   18 +-
 .../dht/preloader/GridDhtPartitionMap2.java     |    4 +
 .../dht/preloader/GridDhtPreloader.java         |   13 +-
 .../distributed/near/GridNearAtomicCache.java   |   65 +-
 .../distributed/near/GridNearGetRequest.java    |    5 +
 .../distributed/near/GridNearLockFuture.java    |    4 +-
 ...arOptimisticSerializableTxPrepareFuture.java |    4 +-
 .../near/GridNearOptimisticTxPrepareFuture.java |   15 +-
 .../GridNearPessimisticTxPrepareFuture.java     |    4 +-
 .../near/GridNearTxFinishFuture.java            |   46 +-
 .../cache/distributed/near/GridNearTxLocal.java |   48 +-
 .../local/atomic/GridLocalAtomicCache.java      |  174 +--
 .../query/GridCacheDistributedQueryManager.java |    2 +-
 .../cache/query/GridCacheQueryManager.java      |   18 +-
 .../cache/query/GridCacheQueryRequest.java      |    6 +-
 .../cache/query/GridCacheTwoStepQuery.java      |  253 ----
 .../cache/query/IgniteQueryErrorCode.java       |   91 ++
 .../cache/store/CacheStoreManager.java          |    4 +-
 .../store/GridCacheStoreManagerAdapter.java     |   34 +-
 .../cache/store/GridCacheWriteBehindStore.java  |    6 +-
 .../cache/transactions/IgniteTxHandler.java     |   17 +-
 .../transactions/IgniteTxLocalAdapter.java      |   38 +-
 .../cache/transactions/IgniteTxManager.java     |   15 +-
 .../datastreamer/DataStreamProcessor.java       |   22 +-
 .../GridCacheAtomicSequenceImpl.java            |   12 +-
 .../processors/hadoop/HadoopClassLoader.java    |   11 +
 .../internal/processors/hadoop/HadoopJobId.java |   79 +-
 .../processors/hadoop/HadoopJobProperty.java    |   64 +-
 .../hadoop/HadoopMapperAwareTaskOutput.java     |   32 +
 .../processors/hadoop/HadoopTaskContext.java    |    8 +
 .../processors/hadoop/HadoopTaskInfo.java       |   43 +
 .../io/PartiallyOffheapRawComparatorEx.java     |   33 +
 .../hadoop/message/HadoopMessage.java           |   27 +
 .../shuffle/HadoopDirectShuffleMessage.java     |  243 ++++
 .../hadoop/shuffle/HadoopShuffleAck.java        |  170 +++
 .../shuffle/HadoopShuffleFinishRequest.java     |  172 +++
 .../shuffle/HadoopShuffleFinishResponse.java    |  142 ++
 .../hadoop/shuffle/HadoopShuffleMessage.java    |  361 +++++
 .../internal/processors/igfs/IgfsContext.java   |    4 +-
 .../processors/igfs/IgfsDataManager.java        |    6 +-
 .../internal/processors/igfs/IgfsImpl.java      |    2 +-
 .../processors/odbc/OdbcMessageParser.java      |   16 +
 .../processors/odbc/OdbcNioListener.java        |    2 +-
 .../odbc/OdbcQueryGetParamsMetaRequest.java     |   60 +
 .../odbc/OdbcQueryGetParamsMetaResult.java      |   40 +
 .../internal/processors/odbc/OdbcRequest.java   |    3 +
 .../processors/odbc/OdbcRequestHandler.java     |  175 ++-
 .../internal/processors/odbc/OdbcUtils.java     |    4 +-
 .../platform/PlatformAbstractTarget.java        |  268 +---
 .../platform/PlatformAsyncTarget.java           |   44 +
 .../platform/PlatformNoopProcessor.java         |   41 +-
 .../processors/platform/PlatformProcessor.java  |   42 +-
 .../platform/PlatformProcessorImpl.java         |   87 +-
 .../processors/platform/PlatformTarget.java     |  103 +-
 .../platform/PlatformTargetProxy.java           |  126 ++
 .../platform/PlatformTargetProxyImpl.java       |  222 +++
 .../binary/PlatformBinaryProcessor.java         |    6 +-
 .../platform/cache/PlatformCache.java           |   15 +-
 .../cache/PlatformCacheEntryFilterImpl.java     |    4 +-
 .../cache/PlatformCacheEntryProcessorImpl.java  |   43 +-
 .../platform/cache/PlatformCacheIterator.java   |    2 +-
 .../cache/affinity/PlatformAffinity.java        |    4 +-
 .../affinity/PlatformAffinityFunction.java      |   59 +-
 .../PlatformAffinityFunctionTarget.java         |    4 +-
 .../query/PlatformAbstractQueryCursor.java      |    4 +-
 .../query/PlatformContinuousQueryProxy.java     |    3 +-
 .../callback/PlatformCallbackGateway.java       |  272 ++--
 .../platform/callback/PlatformCallbackOp.java   |  206 +++
 .../callback/PlatformCallbackUtils.java         |  544 +------
 .../platform/cluster/PlatformClusterGroup.java  |   18 +-
 .../platform/compute/PlatformAbstractJob.java   |    2 +-
 .../platform/compute/PlatformAbstractTask.java  |   15 +-
 .../platform/compute/PlatformClosureJob.java    |   12 +-
 .../platform/compute/PlatformCompute.java       |   21 +-
 .../platform/compute/PlatformFullJob.java       |   15 +-
 .../platform/compute/PlatformFullTask.java      |   18 +-
 .../datastreamer/PlatformDataStreamer.java      |    4 +-
 .../PlatformStreamReceiverImpl.java             |   11 +-
 .../datastructures/PlatformAtomicLong.java      |    4 +-
 .../datastructures/PlatformAtomicReference.java |    8 +-
 .../datastructures/PlatformAtomicSequence.java  |    2 +-
 .../dotnet/PlatformDotNetCacheStore.java        |    6 +-
 .../platform/events/PlatformEvents.java         |   15 +-
 .../memory/PlatformInputStreamImpl.java         |   14 +-
 .../memory/PlatformOutputStreamImpl.java        |   14 +-
 .../platform/messaging/PlatformMessaging.java   |    9 +-
 .../services/PlatformAbstractService.java       |   25 +-
 .../platform/services/PlatformServices.java     |   27 +-
 .../transactions/PlatformTransactions.java      |    8 +-
 .../platform/utils/PlatformFutureUtils.java     |   18 +-
 .../utils/PlatformListenableTarget.java         |   62 +
 .../platform/utils/PlatformUtils.java           |    8 +-
 .../processors/query/GridQueryIndexing.java     |   23 +-
 .../processors/query/GridQueryProcessor.java    |  591 ++++++--
 .../processors/query/GridQueryProperty.java     |   20 +
 .../query/GridQueryTypeDescriptor.java          |   25 +
 .../processors/query/IgniteSQLException.java    |   89 ++
 .../processors/rest/GridRestProcessor.java      |   15 +
 .../redis/GridRedisRestCommandHandler.java      |    1 +
 .../redis/key/GridRedisDelCommandHandler.java   |    7 +-
 .../key/GridRedisExistsCommandHandler.java      |    7 +-
 .../server/GridRedisDbSizeCommandHandler.java   |    7 +-
 .../string/GridRedisAppendCommandHandler.java   |    7 +-
 .../string/GridRedisGetCommandHandler.java      |   34 +-
 .../string/GridRedisGetRangeCommandHandler.java |    7 +-
 .../string/GridRedisGetSetCommandHandler.java   |    7 +-
 .../string/GridRedisIncrDecrCommandHandler.java |   70 +-
 .../string/GridRedisMGetCommandHandler.java     |    7 +-
 .../string/GridRedisMSetCommandHandler.java     |    7 +-
 .../string/GridRedisSetCommandHandler.java      |   31 +-
 .../string/GridRedisSetRangeCommandHandler.java |    7 +-
 .../string/GridRedisStrlenCommandHandler.java   |    7 +-
 .../tcp/GridTcpMemcachedNioListener.java        |   15 +-
 .../protocols/tcp/GridTcpRestNioListener.java   |    2 +-
 .../tcp/redis/GridRedisNioListener.java         |    4 +-
 .../service/GridServiceProcessor.java           |   10 +-
 .../ignite/internal/util/GridHandleTable.java   |   10 +-
 .../apache/ignite/internal/util/GridUnsafe.java |   61 +-
 .../ignite/internal/util/IgniteUtils.java       |  105 +-
 .../ignite/internal/util/StripedExecutor.java   |  667 +++++++++
 .../util/future/GridCompoundFuture.java         |   56 +-
 .../util/future/GridFinishedFuture.java         |   24 +
 .../internal/util/future/GridFutureAdapter.java |   15 +-
 .../util/future/GridFutureChainListener.java    |   30 +-
 .../internal/util/io/GridUnsafeDataInput.java   |   12 +-
 .../internal/util/io/GridUnsafeDataOutput.java  |   12 +-
 .../internal/util/ipc/IpcToNioAdapter.java      |    2 +-
 .../util/lang/IgniteSingletonIterator.java      |   56 +
 .../util/nio/GridCommunicationClient.java       |    4 +-
 .../nio/GridConnectionBytesVerifyFilter.java    |   15 +-
 .../util/nio/GridNioAsyncNotifyFilter.java      |   10 +-
 .../internal/util/nio/GridNioCodecFilter.java   |   17 +-
 .../ignite/internal/util/nio/GridNioFilter.java |   16 +-
 .../internal/util/nio/GridNioFilterAdapter.java |   10 +-
 .../internal/util/nio/GridNioFilterChain.java   |   14 +-
 .../ignite/internal/util/nio/GridNioFuture.java |    4 +-
 .../util/nio/GridNioRecoveryDescriptor.java     |   95 +-
 .../ignite/internal/util/nio/GridNioServer.java | 1343 ++++++++++++++----
 .../internal/util/nio/GridNioSession.java       |   11 +
 .../internal/util/nio/GridNioSessionImpl.java   |   49 +-
 .../ignite/internal/util/nio/GridNioWorker.java |   48 +
 .../util/nio/GridSelectorNioSessionImpl.java    |  157 +-
 .../util/nio/GridTcpNioCommunicationClient.java |   49 +-
 .../internal/util/nio/SessionWriteRequest.java  |   85 ++
 .../internal/util/nio/ssl/GridNioSslFilter.java |   10 +-
 .../util/nio/ssl/GridNioSslHandler.java         |    4 +-
 .../util/offheap/unsafe/GridUnsafeMemory.java   |   10 +-
 .../util/tostring/GridToStringBuilder.java      |    2 +-
 .../internal/visor/query/VisorQueryJob.java     |    2 +-
 .../ignite/marshaller/jdk/JdkMarshaller.java    |    4 +-
 .../optimized/OptimizedMarshaller.java          |    8 +-
 .../optimized/OptimizedObjectOutputStream.java  |   25 +-
 .../communication/tcp/TcpCommunicationSpi.java  |  324 +++--
 .../tcp/TcpCommunicationSpiMBean.java           |   40 +
 .../ignite/spi/discovery/tcp/ServerImpl.java    |   57 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   14 +-
 .../tcp/internal/TcpDiscoveryStatistics.java    |    4 +
 .../org/apache/ignite/stream/StreamAdapter.java |    4 +-
 .../ignite/thread/IgniteThreadFactory.java      |    8 +-
 .../resources/META-INF/classnames.properties    |   69 +-
 .../core/src/main/resources/ignite.properties   |    2 +-
 .../AbstractAffinityFunctionSelfTest.java       |    2 +-
 .../BinaryArrayIdentityResolverSelfTest.java    |  300 ++++
 .../BinaryFieldIdentityResolverSelfTest.java    |  333 +++++
 .../binary/BinaryFieldsOffheapSelfTest.java     |    2 +-
 .../BinaryFooterOffsetsOffheapSelfTest.java     |    2 +-
 ...ryIdentityResolverConfigurationSelfTest.java |  138 ++
 .../binary/BinaryMarshallerSelfTest.java        |    2 +-
 .../BinaryObjectBuilderAdditionalSelfTest.java  |  157 +-
 ...naryObjectBuilderDefaultMappersSelfTest.java |    2 +-
 .../BinarySerialiedFieldComparatorSelfTest.java |  568 ++++++++
 ...unicationBalanceMultipleConnectionsTest.java |   28 +
 .../IgniteCommunicationBalanceTest.java         |  339 +++++
 .../communication/IgniteIoTestMessagesTest.java |   95 ++
 .../IgniteVariousConnectionNumberTest.java      |  166 +++
 .../GridDiscoveryManagerAliveCacheSelfTest.java |    2 +-
 .../cache/CrossCacheTxRandomOperationsTest.java |   30 +-
 ...idAbstractCacheInterceptorRebalanceTest.java |    4 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |    4 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |    6 +-
 ...CacheOffHeapMultiThreadedUpdateSelfTest.java |    6 +-
 .../GridCachePartitionedAffinitySpreadTest.java |    7 +-
 .../processors/cache/GridCacheTestEntryEx.java  |    3 +-
 .../GridCacheTtlManagerEvictionSelfTest.java    |    1 +
 .../IgniteTxStoreExceptionAbstractSelfTest.java |    1 +
 .../GridCacheBinaryObjectsAbstractSelfTest.java |  260 +++-
 ...achePartitionedAtomicSequenceTxSelfTest.java |  169 +++
 .../CacheLockReleaseNodeLeaveTest.java          |  135 ++
 ...eAtomicMessageRecovery10ConnectionsTest.java |   28 +
 ...cMessageRecoveryNoPairedConnectionsTest.java |   47 +
 ...acheConnectionRecovery10ConnectionsTest.java |   35 +
 .../distributed/IgniteCacheCreatePutTest.java   |    2 +-
 .../distributed/dht/GridCacheDhtTestUtils.java  |  232 ---
 .../dht/IgniteCacheMultiTxLockSelfTest.java     |    6 +-
 ...nabledMultiNodeLongTxTimeoutFullApiTest.java |    2 +-
 ...achePartitionedMultiNodeFullApiSelfTest.java |   37 +-
 ...edNoStripedPoolMultiNodeFullApiSelfTest.java |   35 +
 .../GridCacheRebalancingSyncSelfTest.java       |    2 +
 ...eCacheExpiryPolicyWithStoreAbstractTest.java |   40 +
 .../TxDeadlockDetectionNoHangsTest.java         |    2 +-
 .../TxOptimisticDeadlockDetectionTest.java      |   29 +-
 ...lockMessageSystemPoolStarvationSelfTest.java |   14 +-
 .../GridServiceProcessorProxySelfTest.java      |    2 +-
 .../util/future/GridFutureAdapterSelfTest.java  |  122 +-
 .../nio/impl/GridNioFilterChainSelfTest.java    |   18 +-
 .../loadtests/nio/GridNioBenchmarkClient.java   |    4 +-
 .../p2p/GridP2PRecursionTaskSelfTest.java       |    2 +-
 ...mmunicationSpiConcurrentConnectSelfTest.java |   37 +-
 ...cpCommunicationSpiMultithreadedSelfTest.java |    9 +-
 ...dTcpCommunicationSpiRecoveryAckSelfTest.java |    6 +-
 ...ationSpiRecoveryNoPairedConnectionsTest.java |   28 +
 ...GridTcpCommunicationSpiRecoverySelfTest.java |    8 +
 ...CommunicationRecoveryAckClosureSelfTest.java |    6 +-
 .../junits/GridTestKernalContext.java           |    4 +-
 .../IgniteBinaryObjectsTestSuite.java           |   10 +
 .../IgniteCacheDataStructuresSelfTestSuite.java |    5 +-
 .../IgniteCacheFullApiSelfTestSuite.java        |    6 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |   15 +
 .../testsuites/IgniteCacheTestSuite4.java       |    3 +
 .../testsuites/IgniteCacheTestSuite5.java       |    1 +
 .../IgniteSpiCommunicationSelfTestSuite.java    |    2 +
 modules/docker/1.8.0/Dockerfile                 |   46 +
 modules/docker/1.8.0/run.sh                     |   51 +
 modules/docker/Dockerfile                       |    6 +-
 modules/extdata/p2p/pom.xml                     |    2 +-
 .../extdata/uri/modules/uri-dependency/pom.xml  |    2 +-
 modules/extdata/uri/pom.xml                     |    2 +-
 modules/flink/pom.xml                           |    2 +-
 modules/flume/pom.xml                           |    2 +-
 modules/gce/pom.xml                             |    2 +-
 modules/geospatial/pom.xml                      |    2 +-
 modules/hadoop/pom.xml                          |    9 +-
 .../hadoop/io/PartiallyRawComparator.java       |   33 +
 .../org/apache/ignite/hadoop/io/RawMemory.java  |   86 ++
 .../hadoop/io/TextPartiallyRawComparator.java   |  115 ++
 .../apache/ignite/hadoop/io/package-info.java   |   22 +
 .../IgniteHadoopClientProtocolProvider.java     |   70 +-
 .../processors/hadoop/HadoopMapperUtils.java    |   56 +
 .../hadoop/impl/fs/HadoopFileSystemsUtils.java  |   11 +
 .../hadoop/impl/proto/HadoopClientProtocol.java |   55 +-
 .../hadoop/impl/v2/HadoopV2Context.java         |   11 +
 ...DelegatingPartiallyOffheapRawComparator.java |   54 +
 .../processors/hadoop/impl/v2/HadoopV2Job.java  |   22 +-
 .../impl/v2/HadoopV2JobResourceManager.java     |   25 +-
 .../hadoop/impl/v2/HadoopV2MapTask.java         |   10 +
 .../hadoop/impl/v2/HadoopV2TaskContext.java     |   21 +
 .../processors/hadoop/io/OffheapRawMemory.java  |  131 ++
 .../hadoop/jobtracker/HadoopJobTracker.java     |    8 +-
 .../hadoop/mapreduce/MapReduceClient.java       |  147 ++
 .../hadoop/message/HadoopMessage.java           |   27 -
 .../hadoop/shuffle/HadoopShuffle.java           |  112 +-
 .../hadoop/shuffle/HadoopShuffleAck.java        |   92 --
 .../hadoop/shuffle/HadoopShuffleJob.java        |  748 ++++++++--
 .../hadoop/shuffle/HadoopShuffleLocalState.java |   67 +
 .../hadoop/shuffle/HadoopShuffleMessage.java    |  242 ----
 .../shuffle/HadoopShuffleRemoteState.java       |   61 +
 .../shuffle/collections/HadoopMultimapBase.java |    5 +-
 .../shuffle/collections/HadoopSkipList.java     |   14 +-
 .../shuffle/direct/HadoopDirectDataInput.java   |  166 +++
 .../shuffle/direct/HadoopDirectDataOutput.java  |  221 +++
 .../direct/HadoopDirectDataOutputContext.java   |  100 ++
 .../direct/HadoopDirectDataOutputState.java     |   54 +
 .../shuffle/streams/HadoopDataOutStream.java    |    2 +-
 .../child/HadoopChildProcessRunner.java         |   12 +-
 .../HadoopExternalCommunication.java            |    4 +-
 .../communication/HadoopIpcToNioAdapter.java    |    2 +-
 .../communication/HadoopMarshallerFilter.java   |    6 +-
 .../resources/META-INF/classnames.properties    |  114 ++
 .../hadoop/impl/HadoopAbstractSelfTest.java     |   13 +-
 .../impl/HadoopAbstractWordCountTest.java       |    6 +-
 .../hadoop/impl/HadoopFileSystemsTest.java      |    9 +
 .../hadoop/impl/HadoopJobTrackerSelfTest.java   |    4 +-
 .../impl/HadoopMapReduceEmbeddedSelfTest.java   |   22 +-
 .../impl/HadoopTaskExecutionSelfTest.java       |    4 +-
 .../hadoop/impl/HadoopTeraSortTest.java         |  383 +++++
 ...opClientProtocolMultipleServersSelfTest.java |   93 +-
 .../client/HadoopClientProtocolSelfTest.java    |  232 +--
 .../collections/HadoopAbstractMapTest.java      |    6 +
 .../HadoopConcurrentHashMultimapSelftest.java   |    2 +-
 .../collections/HadoopSkipListSelfTest.java     |   16 +-
 .../HadoopExternalTaskExecutionSelfTest.java    |    2 +
 .../testsuites/IgniteHadoopTestSuite.java       |    3 +
 modules/hibernate/pom.xml                       |    2 +-
 modules/indexing/pom.xml                        |    2 +-
 .../cache/query/GridCacheTwoStepQuery.java      |  253 ++++
 .../query/h2/DmlStatementsProcessor.java        | 1083 ++++++++++++++
 .../query/h2/GridH2ResultSetIterator.java       |    3 +-
 .../processors/query/h2/IgniteH2Indexing.java   |  130 +-
 .../query/h2/dml/FastUpdateArgument.java        |   27 +
 .../query/h2/dml/FastUpdateArguments.java       |   53 +
 .../query/h2/dml/KeyValueSupplier.java          |   30 +
 .../processors/query/h2/dml/UpdateMode.java     |   36 +
 .../processors/query/h2/dml/UpdatePlan.java     |  128 ++
 .../query/h2/dml/UpdatePlanBuilder.java         |  486 +++++++
 .../processors/query/h2/dml/package-info.java   |   22 +
 .../query/h2/opt/GridH2RowDescriptor.java       |   23 +
 .../query/h2/opt/GridH2TreeIndex.java           |    2 +-
 .../processors/query/h2/sql/DmlAstUtils.java    |  616 ++++++++
 .../processors/query/h2/sql/GridSqlArray.java   |    8 +
 .../processors/query/h2/sql/GridSqlConst.java   |    6 +
 .../processors/query/h2/sql/GridSqlDelete.java  |   68 +
 .../query/h2/sql/GridSqlFunction.java           |    5 +-
 .../processors/query/h2/sql/GridSqlInsert.java  |  149 ++
 .../processors/query/h2/sql/GridSqlKeyword.java |   46 +
 .../processors/query/h2/sql/GridSqlMerge.java   |  143 ++
 .../processors/query/h2/sql/GridSqlQuery.java   |   44 +-
 .../query/h2/sql/GridSqlQueryParser.java        |  323 ++++-
 .../query/h2/sql/GridSqlQuerySplitter.java      |    6 +-
 .../processors/query/h2/sql/GridSqlSelect.java  |    3 +-
 .../query/h2/sql/GridSqlStatement.java          |   64 +
 .../processors/query/h2/sql/GridSqlUpdate.java  |  105 ++
 .../h2/twostep/GridReduceQueryExecutor.java     |   61 +-
 ...niteCacheAbstractInsertSqlQuerySelfTest.java |  559 ++++++++
 .../IgniteCacheAbstractSqlDmlQuerySelfTest.java |  243 ++++
 .../IgniteCacheDeleteSqlQuerySelfTest.java      |  106 ++
 .../IgniteCacheInsertSqlQuerySelfTest.java      |  203 +++
 .../cache/IgniteCacheLargeResultSelfTest.java   |   15 +-
 .../cache/IgniteCacheMergeSqlQuerySelfTest.java |  153 ++
 .../IgniteCacheUpdateSqlQuerySelfTest.java      |  472 ++++++
 .../IgniteCacheAtomicFieldsQuerySelfTest.java   |   21 -
 .../h2/GridIndexingSpiAbstractSelfTest.java     |   37 +-
 .../query/h2/sql/GridQueryParsingTest.java      |  109 +-
 .../IgniteCacheQuerySelfTestSuite.java          |  143 +-
 .../IgniteCacheQuerySelfTestSuite2.java         |  111 +-
 .../IgniteH2IndexingSpiTestSuite.java           |   16 +-
 modules/jcl/pom.xml                             |    2 +-
 modules/jms11/pom.xml                           |    2 +-
 modules/jta/pom.xml                             |    2 +-
 modules/kafka/pom.xml                           |    2 +-
 .../ignite/stream/kafka/KafkaStreamer.java      |   50 +-
 .../kafka/KafkaIgniteStreamerSelfTest.java      |   36 +-
 modules/log4j/pom.xml                           |    2 +-
 modules/log4j2/pom.xml                          |    2 +-
 modules/mesos/pom.xml                           |    2 +-
 modules/mqtt/pom.xml                            |    2 +-
 modules/osgi-karaf/pom.xml                      |    2 +-
 modules/osgi-paxlogging/pom.xml                 |    2 +-
 modules/osgi/pom.xml                            |    3 +-
 .../include/ignite/binary/binary_raw_reader.h   |   21 +
 .../ignite/impl/binary/binary_reader_impl.h     |    9 +-
 .../src/impl/binary/binary_reader_impl.cpp      |   20 +-
 .../platforms/cpp/common/include/Makefile.am    |    5 +-
 .../common/include/ignite/common/concurrent.h   |   90 +-
 .../include/ignite/common/reference_impl.h      |  286 ++++
 .../cpp/common/include/ignite/reference.h       |  564 ++++++++
 .../cpp/common/project/vs/common.vcxproj        |    2 +
 .../common/project/vs/common.vcxproj.filters    |    6 +
 modules/platforms/cpp/configure.ac              |    2 +-
 modules/platforms/cpp/configure.acrel           |    2 +-
 modules/platforms/cpp/core-test/Makefile.am     |    7 +-
 .../core-test/config/cache-query-continuous.xml |   87 ++
 .../cpp/core-test/config/cache-query.xml        |   10 +
 .../cpp/core-test/config/cache-test.xml         |    1 +
 .../platforms/cpp/core-test/config/invalid.xml  |   39 +
 .../cpp/core-test/project/vs/core-test.vcxproj  |   13 +-
 .../project/vs/core-test.vcxproj.filters        |   11 +-
 .../cpp/core-test/src/cache_query_test.cpp      |   76 +-
 .../cpp/core-test/src/continuous_query_test.cpp |  611 ++++++++
 .../cpp/core-test/src/handle_registry_test.cpp  |   18 +-
 .../cpp/core-test/src/interop_test.cpp          |   17 +-
 .../cpp/core-test/src/reference_test.cpp        |  412 ++++++
 modules/platforms/cpp/core/Makefile.am          |    1 +
 .../cpp/core/include/ignite/cache/cache.h       |  104 +-
 .../cpp/core/include/ignite/cache/cache_entry.h |   40 +-
 .../ignite/cache/event/cache_entry_event.h      |  139 ++
 .../cache/event/cache_entry_event_listener.h    |   71 +
 .../cache/query/continuous/continuous_query.h   |  239 ++++
 .../query/continuous/continuous_query_handle.h  |  133 ++
 .../core/include/ignite/impl/cache/cache_impl.h |  116 +-
 .../continuous/continuous_query_handle_impl.h   |  101 ++
 .../query/continuous/continuous_query_impl.h    |  351 +++++
 .../core/include/ignite/impl/handle_registry.h  |   62 +-
 .../include/ignite/impl/ignite_environment.h    |   34 +-
 modules/platforms/cpp/core/namespaces.dox       |   74 +-
 .../platforms/cpp/core/project/vs/core.vcxproj  |    7 +
 .../cpp/core/project/vs/core.vcxproj.filters    |   30 +
 modules/platforms/cpp/core/src/ignition.cpp     |   15 +-
 .../cpp/core/src/impl/cache/cache_impl.cpp      |   31 +
 .../continuous/continuous_query_handle_impl.cpp |   96 ++
 .../cpp/core/src/impl/handle_registry.cpp       |  102 +-
 .../cpp/core/src/impl/ignite_environment.cpp    |  146 +-
 modules/platforms/cpp/examples/Makefile.am      |    1 +
 modules/platforms/cpp/examples/configure.ac     |    3 +-
 .../continuous-query-example/Makefile.am        |   58 +
 .../config/continuous-query-example.xml         |   52 +
 .../project/vs/continuous-query-example.vcxproj |  110 ++
 .../vs/continuous-query-example.vcxproj.filters |   35 +
 .../src/continuous_query_example.cpp            |  142 ++
 .../examples/include/ignite/examples/person.h   |    2 +-
 .../odbc-example/config/example-odbc.xml        |   38 +-
 .../project/vs/odbc-example.vcxproj             |    7 +-
 .../project/vs/odbc-example.vcxproj.filters     |    8 +
 .../examples/odbc-example/src/odbc_example.cpp  |  514 ++++++-
 .../cpp/examples/project/vs/ignite-examples.sln |    6 +
 .../putget-example/src/putget_example.cpp       |    2 +-
 .../query-example/src/query_example.cpp         |    4 +-
 .../cpp/jni/include/ignite/jni/exports.h        |    3 -
 .../platforms/cpp/jni/include/ignite/jni/java.h |   94 +-
 modules/platforms/cpp/jni/project/vs/module.def |    6 +-
 modules/platforms/cpp/jni/src/exports.cpp       |    8 -
 modules/platforms/cpp/jni/src/java.cpp          |  419 +-----
 .../odbc-test/config/queries-test-noodbc.xml    |    4 +
 .../cpp/odbc-test/config/queries-test.xml       |   41 +
 .../platforms/cpp/odbc-test/include/Makefile.am |    1 +
 .../cpp/odbc-test/include/complex_type.h        |  122 ++
 .../cpp/odbc-test/project/vs/odbc-test.vcxproj  |    5 +-
 .../project/vs/odbc-test.vcxproj.filters        |    3 +
 .../src/application_data_buffer_test.cpp        |    2 +-
 .../cpp/odbc-test/src/queries_test.cpp          |  437 +++++-
 .../platforms/cpp/odbc/include/ignite/odbc.h    |   14 +-
 .../ignite/odbc/app/application_data_buffer.h   |    4 +-
 .../odbc/include/ignite/odbc/app/parameter.h    |    2 +-
 .../cpp/odbc/include/ignite/odbc/common_types.h |    3 +
 .../cpp/odbc/include/ignite/odbc/message.h      |  138 +-
 .../odbc/include/ignite/odbc/query/data_query.h |   12 +-
 .../cpp/odbc/include/ignite/odbc/query/query.h  |   44 +-
 .../cpp/odbc/include/ignite/odbc/statement.h    |   83 +-
 .../cpp/odbc/include/ignite/odbc/type_traits.h  |    2 +-
 .../cpp/odbc/include/ignite/odbc/utility.h      |   11 +-
 .../cpp/odbc/install/ignite-odbc-amd64.wxs      |    2 +-
 .../cpp/odbc/install/ignite-odbc-x86.wxs        |    2 +-
 .../odbc/src/app/application_data_buffer.cpp    |   57 +-
 .../platforms/cpp/odbc/src/app/parameter.cpp    |    3 +-
 modules/platforms/cpp/odbc/src/column.cpp       |   41 +-
 modules/platforms/cpp/odbc/src/connection.cpp   |   23 +-
 modules/platforms/cpp/odbc/src/entry_points.cpp |   32 +-
 modules/platforms/cpp/odbc/src/odbc.cpp         |   25 +-
 .../odbc/src/query/column_metadata_query.cpp    |    2 +-
 .../platforms/cpp/odbc/src/query/data_query.cpp |    6 +-
 .../cpp/odbc/src/query/foreign_keys_query.cpp   |    2 +-
 .../cpp/odbc/src/query/primary_keys_query.cpp   |    2 +-
 .../odbc/src/query/special_columns_query.cpp    |    2 +-
 .../cpp/odbc/src/query/table_metadata_query.cpp |    2 +-
 .../cpp/odbc/src/query/type_info_query.cpp      |    2 +-
 modules/platforms/cpp/odbc/src/statement.cpp    |  230 ++-
 modules/platforms/cpp/odbc/src/type_traits.cpp  |    3 +
 modules/platforms/cpp/odbc/src/utility.cpp      |   22 +-
 modules/platforms/cpp/project/vs/ignite.slnrel  |    3 +
 .../platforms/cpp/project/vs/ignite_x86.slnrel  |    3 +
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Apache.Ignite.AspNet.nuspec                 |    4 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Binary/BinaryCompactFooterInteropTest.cs    |   31 +-
 .../Cache/Query/CacheLinqTest.cs                |   21 +-
 .../Query/CacheQueriesCodeConfigurationTest.cs  |   17 +-
 .../Cache/Query/CacheQueriesTest.cs             |    8 +
 .../Examples/Example.cs                         |    6 +-
 .../Examples/ExamplesTest.cs                    |    7 +-
 .../Apache.Ignite.Core.Tests/ExecutableTest.cs  |   64 +-
 .../Process/IgniteProcess.cs                    |   21 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Apache.Ignite.Core.Tests/ReconnectTest.cs   |    4 +-
 .../Services/ServicesTest.cs                    |   46 +-
 .../Apache.Ignite.Core.Tests/TestUtils.cs       |    3 +-
 .../Apache.Ignite.Core.csproj                   |    2 +
 .../dotnet/Apache.Ignite.Core/Binary/IBinary.cs |    3 +-
 .../Apache.Ignite.Core/Cache/Query/QueryBase.cs |   15 +-
 .../Apache.Ignite.Core/IgniteConfiguration.cs   |    1 +
 .../Impl/Binary/BinaryUtils.cs                  |   16 +
 .../Impl/Binary/Io/BinaryStreamBase.cs          |    4 +-
 .../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs  |   29 +-
 .../Apache.Ignite.Core/Impl/Common/Future.cs    |   13 +-
 .../Impl/Common/Listenable.cs                   |   49 +
 .../Impl/Compute/ComputeImpl.cs                 |    4 +-
 .../Impl/Compute/ComputeTaskHolder.cs           |   14 +-
 .../Apache.Ignite.Core/Impl/PlatformTarget.cs   |    2 +-
 .../Impl/Unmanaged/IgniteJniNativeMethods.cs    |    8 -
 .../Impl/Unmanaged/UnmanagedCallbackHandlers.cs |   79 +-
 .../Impl/Unmanaged/UnmanagedCallbackOp.cs       |   86 ++
 .../Impl/Unmanaged/UnmanagedCallbacks.cs        | 1229 ++++++++--------
 .../Impl/Unmanaged/UnmanagedUtils.cs            |    5 -
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../EntityFrameworkCacheTest.cs                 |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Impl/CacheQueryExpressionVisitor.cs         |   12 +-
 .../Apache.Ignite.Linq/Impl/MethodVisitor.cs    |   34 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 modules/platforms/dotnet/Apache.Ignite.sln      |    7 +
 .../Apache.Ignite/Config/ArgsConfigurator.cs    |    7 +-
 .../dotnet/Apache.Ignite/Config/Configurator.cs |   10 +
 .../Apache.Ignite/Properties/AssemblyInfo.cs    |    6 +-
 modules/platforms/dotnet/DEVNOTES.txt           |   12 +-
 modules/platforms/dotnet/README.md              |  150 ++
 modules/platforms/dotnet/build.bat              |   14 +
 modules/platforms/dotnet/build.ps1              |  211 +++
 .../Datagrid/MultiTieredCacheExample.cs         |    8 +-
 .../Misc/ClientReconnectExample.cs              |   18 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 modules/rest-http/pom.xml                       |    2 +-
 modules/scalar-2.10/pom.xml                     |    2 +-
 modules/scalar/pom.xml                          |    2 +-
 modules/schedule/pom.xml                        |    2 +-
 modules/schema-import-db/pom.xml                |    2 +-
 modules/schema-import/pom.xml                   |    2 +-
 modules/slf4j/pom.xml                           |    2 +-
 modules/spark-2.10/pom.xml                      |    2 +-
 modules/spark/pom.xml                           |    2 +-
 modules/spring/pom.xml                          |    2 +-
 modules/ssh/pom.xml                             |    2 +-
 modules/storm/pom.xml                           |    2 +-
 modules/tools/pom.xml                           |    2 +-
 .../ignite/tools/classgen/ClassesGenerator.java |    8 +-
 modules/twitter/pom.xml                         |    2 +-
 modules/urideploy/pom.xml                       |    2 +-
 modules/visor-console-2.10/pom.xml              |    2 +-
 modules/visor-console/pom.xml                   |    2 +-
 modules/visor-plugins/pom.xml                   |    2 +-
 modules/web-console/backend/app/agent.js        |   32 +-
 modules/web-console/backend/app/browser.js      |   13 +
 modules/web-console/backend/app/mongo.js        |    6 +
 .../backend/config/settings.json.sample         |    7 -
 modules/web-console/backend/index.js            |    6 +-
 modules/web-console/backend/middlewares/host.js |    7 +-
 modules/web-console/backend/routes/agent.js     |    4 +-
 modules/web-console/backend/services/agents.js  |    2 +-
 modules/web-console/backend/services/caches.js  |    2 +
 .../docker/compose/backend/.dockerignore        |    2 +
 .../docker/compose/backend/Dockerfile           |    6 +-
 .../web-console/docker/compose/backend/build.sh |    4 +-
 .../docker/compose/docker-compose.yml           |    5 -
 .../docker/compose/frontend/DockerfileBuild     |    4 +-
 .../docker/compose/frontend/build.sh            |    6 +-
 .../compose/frontend/nginx/web-console.conf     |    9 +
 .../web-console/docker/standalone/.dockerignore |    5 +
 .../web-console/docker/standalone/Dockerfile    |   10 +-
 modules/web-console/docker/standalone/build.sh  |    4 +-
 .../docker/standalone/docker-compose.yml        |    7 +-
 .../docker/standalone/nginx/web-console.conf    |    9 +
 .../frontend/app/data/pom-dependencies.json     |    2 +-
 .../directives/ui-ace-pojos/ui-ace-pojos.jade   |    2 +-
 .../frontend/app/filters/duration.filter.js     |    3 +
 .../helpers/jade/form/form-field-checkbox.jade  |    2 +-
 .../helpers/jade/form/form-field-datalist.jade  |    2 +-
 .../helpers/jade/form/form-field-dropdown.jade  |    2 +-
 .../helpers/jade/form/form-field-number.jade    |    2 +-
 .../helpers/jade/form/form-field-password.jade  |    2 +-
 .../app/helpers/jade/form/form-field-text.jade  |    2 +-
 .../frontend/app/helpers/jade/mixins.jade       |   24 +-
 .../modules/configuration/generator/Beans.js    |    6 +
 .../generator/ConfigurationGenerator.js         |  165 ++-
 .../generator/JavaTransformer.service.js        |   15 +-
 .../generator/Properties.service.js             |   19 +
 .../generator/SpringTransformer.service.js      |   22 +-
 .../generator/defaults/cache.provider.js        |    8 +
 .../generator/defaults/cluster.provider.js      |    2 +-
 .../app/modules/form/field/tooltip.directive.js |    2 +-
 .../app/modules/form/group/tooltip.directive.js |    2 +-
 .../app/modules/form/panel/field.directive.js   |    4 +-
 .../app/modules/sql/scan-filter-input.jade      |    2 +-
 .../frontend/app/modules/sql/sql.controller.js  |    6 +-
 .../configuration/caches/client-near-cache.jade |    2 +-
 .../configuration/caches/concurrency.jade       |    2 +-
 .../states/configuration/caches/general.jade    |    2 +-
 .../states/configuration/caches/memory.jade     |    2 +-
 .../configuration/caches/near-cache-client.jade |    2 +-
 .../configuration/caches/near-cache-server.jade |    2 +-
 .../configuration/caches/node-filter.jade       |    2 +-
 .../states/configuration/caches/query.jade      |    2 +-
 .../states/configuration/caches/rebalance.jade  |    2 +-
 .../states/configuration/caches/statistics.jade |    2 +-
 .../states/configuration/caches/store.jade      |   20 +-
 .../states/configuration/clusters/atomic.jade   |    2 +-
 .../configuration/clusters/attributes.jade      |    2 +-
 .../states/configuration/clusters/binary.jade   |    2 +-
 .../configuration/clusters/cache-key-cfg.jade   |    2 +-
 .../configuration/clusters/checkpoint.jade      |    8 +-
 .../configuration/clusters/checkpoint/fs.jade   |    2 +-
 .../configuration/clusters/checkpoint/jdbc.jade |   41 +-
 .../configuration/clusters/checkpoint/s3.jade   |  229 +--
 .../configuration/clusters/collision.jade       |   12 +-
 .../clusters/collision/custom.jade              |    2 +-
 .../clusters/collision/fifo-queue.jade          |    2 +-
 .../clusters/collision/job-stealing.jade        |    2 +-
 .../clusters/collision/priority-queue.jade      |    2 +-
 .../configuration/clusters/communication.jade   |    2 +-
 .../configuration/clusters/connector.jade       |    2 +-
 .../configuration/clusters/deployment.jade      |    2 +-
 .../configuration/clusters/discovery.jade       |    2 +-
 .../states/configuration/clusters/events.jade   |    2 +-
 .../states/configuration/clusters/failover.jade |    2 +-
 .../states/configuration/clusters/general.jade  |    2 +-
 .../clusters/general/discovery/cloud.jade       |    2 +-
 .../clusters/general/discovery/google.jade      |    2 +-
 .../clusters/general/discovery/jdbc.jade        |    3 +-
 .../clusters/general/discovery/multicast.jade   |    2 +-
 .../clusters/general/discovery/s3.jade          |    2 +-
 .../clusters/general/discovery/shared.jade      |    2 +-
 .../clusters/general/discovery/vm.jade          |    2 +-
 .../clusters/general/discovery/zookeeper.jade   |    2 +-
 .../bounded-exponential-backoff.jade            |    2 +-
 .../discovery/zookeeper/retrypolicy/custom.jade |    2 +-
 .../retrypolicy/exponential-backoff.jade        |    2 +-
 .../zookeeper/retrypolicy/forever.jade          |    2 +-
 .../zookeeper/retrypolicy/n-times.jade          |    2 +-
 .../zookeeper/retrypolicy/one-time.jade         |    2 +-
 .../zookeeper/retrypolicy/until-elapsed.jade    |    2 +-
 .../states/configuration/clusters/igfs.jade     |    2 +-
 .../configuration/clusters/load-balancing.jade  |    2 +-
 .../states/configuration/clusters/logger.jade   |    2 +-
 .../configuration/clusters/logger/custom.jade   |    2 +-
 .../configuration/clusters/logger/log4j.jade    |    2 +-
 .../configuration/clusters/logger/log4j2.jade   |    2 +-
 .../configuration/clusters/marshaller.jade      |    2 +-
 .../states/configuration/clusters/metrics.jade  |    2 +-
 .../states/configuration/clusters/odbc.jade     |    2 +-
 .../states/configuration/clusters/ssl.jade      |    2 +-
 .../states/configuration/clusters/swap.jade     |    2 +-
 .../states/configuration/clusters/thread.jade   |    2 +-
 .../states/configuration/clusters/time.jade     |    2 +-
 .../configuration/clusters/transactions.jade    |    2 +-
 .../states/configuration/domains/general.jade   |    2 +-
 .../states/configuration/domains/query.jade     |   16 +-
 .../states/configuration/domains/store.jade     |   12 +-
 .../modules/states/configuration/igfs/dual.jade |    2 +-
 .../states/configuration/igfs/fragmentizer.jade |    2 +-
 .../states/configuration/igfs/general.jade      |    2 +-
 .../modules/states/configuration/igfs/ipc.jade  |    2 +-
 .../modules/states/configuration/igfs/misc.jade |    6 +-
 .../states/configuration/igfs/secondary.jade    |    2 +-
 .../configuration/summary/summary.controller.js |   12 +-
 .../frontend/controllers/clusters-controller.js |   10 +
 .../frontend/controllers/domains-controller.js  |    8 +-
 .../frontend/gulpfile.babel.js/tasks/jade.js    |    4 +-
 .../frontend/gulpfile.babel.js/tasks/test.js    |   92 --
 .../gulpfile.babel.js/webpack/common.js         |    5 +-
 .../webpack/environments/development.js         |    5 +
 modules/web-console/frontend/package.json       |    2 +-
 .../stylesheets/_font-awesome-custom.scss       |   18 +
 .../frontend/public/stylesheets/style.scss      |   13 +-
 .../frontend/views/configuration/caches.jade    |   22 +-
 .../frontend/views/configuration/clusters.jade  |   50 +-
 .../views/configuration/domains-import.jade     |    4 +-
 .../frontend/views/configuration/domains.jade   |    8 +-
 .../frontend/views/configuration/igfs.jade      |   14 +-
 .../frontend/views/configuration/summary.jade   |    2 +-
 .../frontend/views/includes/header.jade         |   15 +-
 .../frontend/views/settings/profile.jade        |    2 +-
 modules/web-console/frontend/views/sql/sql.jade |    2 +-
 .../views/templates/agent-download.jade         |    2 +-
 .../frontend/views/templates/batch-confirm.jade |    2 +-
 .../frontend/views/templates/clone.jade         |    2 +-
 .../frontend/views/templates/confirm.jade       |    2 +-
 modules/web-console/pom.xml                     |    2 +-
 modules/web-console/web-agent/README.txt        |    4 +-
 .../web-agent/bin/ignite-web-agent.bat          |    7 +-
 .../web-agent/bin/ignite-web-agent.sh           |    6 +-
 modules/web-console/web-agent/pom.xml           |    2 +-
 .../console/agent/AgentConfiguration.java       |    5 +-
 .../ignite/console/agent/AgentLauncher.java     |    6 +-
 .../ignite/console/demo/AgentClusterDemo.java   |    1 +
 modules/web/ignite-appserver-test/pom.xml       |    2 +-
 modules/web/ignite-websphere-test/pom.xml       |    2 +-
 modules/web/pom.xml                             |    2 +-
 .../config/benchmark-bin-identity.properties    |   94 ++
 .../config/benchmark-multicast.properties       |   15 +
 .../config/benchmark-sql-dml.properties         |   72 +
 modules/yardstick/config/ignite-base-config.xml |   71 +-
 .../config/ignite-bin-multicast-config.xml      |   86 ++
 modules/yardstick/pom.xml                       |    2 +-
 .../yardstick/IgniteAbstractBenchmark.java      |   30 +
 .../yardstick/IgniteBenchmarkArguments.java     |   11 +
 .../ignite/yardstick/IgniteBenchmarkUtils.java  |   42 +-
 .../apache/ignite/yardstick/PreloadLogger.java  |  155 ++
 .../yardstick/cache/CacheEntryEventProbe.java   |    2 +-
 .../cache/IgniteBinaryIdentityBenchmark.java    |  108 ++
 .../cache/IgniteBinaryIdentityGetBenchmark.java |   34 +
 .../cache/IgniteBinaryIdentityPutBenchmark.java |   35 +
 .../IgniteFieldsBinaryIdentityGetBenchmark.java |   30 +
 .../IgniteFieldsBinaryIdentityPutBenchmark.java |   30 +
 .../yardstick/cache/IgniteIoTestBenchmark.java  |   73 +
 .../IgniteLegacyBinaryIdentityGetBenchmark.java |   30 +
 .../IgniteLegacyBinaryIdentityPutBenchmark.java |   30 +
 ...IgnitePutIfAbsentIndexedValue1Benchmark.java |   45 +
 .../IgniteReplaceIndexedValue1Benchmark.java    |   79 ++
 .../cache/dml/IgniteSqlDeleteBenchmark.java     |   83 ++
 .../dml/IgniteSqlDeleteFilteredBenchmark.java   |   88 ++
 .../IgniteSqlInsertIndexedValue1Benchmark.java  |   48 +
 .../IgniteSqlInsertIndexedValue2Benchmark.java  |   48 +
 .../IgniteSqlInsertIndexedValue8Benchmark.java  |   48 +
 .../cache/dml/IgniteSqlMergeAllBenchmark.java   |   82 ++
 .../cache/dml/IgniteSqlMergeBenchmark.java      |   42 +
 .../IgniteSqlMergeIndexedValue1Benchmark.java   |   43 +
 .../IgniteSqlMergeIndexedValue2Benchmark.java   |   43 +
 .../IgniteSqlMergeIndexedValue8Benchmark.java   |   43 +
 .../cache/dml/IgniteSqlMergeQueryBenchmark.java |  116 ++
 .../cache/dml/IgniteSqlUpdateBenchmark.java     |   82 ++
 .../dml/IgniteSqlUpdateFilteredBenchmark.java   |   88 ++
 .../IgniteCacheRandomOperationBenchmark.java    |   22 +-
 .../yardstick/cache/model/SampleValue.java      |    2 +
 .../io/IgniteIoTestAbstractBenchmark.java       |   61 +
 .../io/IgniteIoTestSendAllBenchmark.java        |   32 +
 .../io/IgniteIoTestSendRandomBenchmark.java     |   35 +
 modules/yarn/pom.xml                            |    2 +-
 modules/zookeeper/pom.xml                       |    2 +-
 pom.xml                                         |    2 +-
 853 files changed, 34702 insertions(+), 8345 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
index 366c59f,d72d041..a355d71
--- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
@@@ -487,12 -493,9 +493,15 @@@ public final class IgniteSystemProperti
      @Deprecated
      public static final String IGNITE_BINARY_DONT_WRAP_TREE_STRUCTURES = "IGNITE_BINARY_DONT_WRAP_TREE_STRUCTURES";
  
 +    /**
 +     * When set to {@code true}, for consistent id will calculate by host name, without port, and you can use
 +     * only one node for host in cluster.
 +     */
 +    public static final String IGNITE_CONSISTENT_ID_BY_HOST_WITHOUT_PORT = "IGNITE_CONSISTENT_ID_BY_HOST_WITHOUT_PORT";
 +
+     /** */
+     public static final String IGNITE_IO_BALANCE_PERIOD = "IGNITE_IO_BALANCE_PERIOD";
+ 
      /**
       * When set to {@code true} fields are written by BinaryMarshaller in sorted order. Otherwise
       * the natural order is used.

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
index d049912,7c1c484..c86e572
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
@@@ -96,11 -99,11 +99,10 @@@ public enum GridTopic 
      /** */
      TOPIC_TX,
  
--    /** */
 -    TOPIC_IO_TEST,
 +    TOPIC_SNAPSHOT,
  
      /** */
 -    TOPIC_BACKUP;
 +    TOPIC_IO_TEST;
  
      /** Enum values. */
      private static final GridTopic[] VALS = values();

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index 8c6cfa6,81b7312..2980eb7
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@@ -167,12 -172,8 +173,13 @@@ public class GridIoMessageFactory imple
          Message msg = null;
  
          switch (type) {
-             case -38:
++            case -46:
 +                msg = new GridChangeGlobalStateMessageResponse();
 +
 +                break;
-             case -37:
-                 msg = new GridDhtAtomicSingleUpdateRequest();
++
+             case -45:
 -                msg = new BackupFinishedMessage();
++                msg = new SnapshotFinishedMessage();
  
                  break;
  
@@@ -801,7 -832,7 +838,7 @@@
  
                  break;
  
-             // [-3..119] [124-127] [-23..-29] [-36..-37] - this
 -            // [-3..119] [124..127] [-36..-45]- this
++            // [-3..119] [124..127] [-23..-27] [-36..-45]- this
              // [120..123] - DR
              // [-4..-22, -30..-35] - SQL
              default:

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotFinishedMessage.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotFinishedMessage.java
index 614ef6b,0000000..a62d339
mode 100644,000000..100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotFinishedMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotFinishedMessage.java
@@@ -1,136 -1,0 +1,136 @@@
 +/*
 + * 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.pagemem.snapshot;
 +
 +import java.nio.ByteBuffer;
 +import org.apache.ignite.plugin.extensions.communication.Message;
 +import org.apache.ignite.plugin.extensions.communication.MessageReader;
 +import org.apache.ignite.plugin.extensions.communication.MessageWriter;
 +
 +/**
 + * Message indicating that snapshot has been finished on a single node.
 + */
 +public class SnapshotFinishedMessage implements Message {
 +    /** */
 +    private static final long serialVersionUID = 0L;
 +
 +    /** */
 +    private long snapshotId;
 +
 +    /** */
 +    private boolean success;
 +
 +    /**
 +     *
 +     */
 +    public SnapshotFinishedMessage() {
 +    }
 +
 +    /**
 +     * @param snapshotId Snapshot ID.
 +     */
 +    public SnapshotFinishedMessage(long snapshotId, boolean success) {
 +        this.snapshotId = snapshotId;
 +        this.success = success;
 +    }
 +
 +    /**
 +     * @return Snapshot ID.
 +     */
 +    public long snapshotId() {
 +        return snapshotId;
 +    }
 +
 +    public boolean success() {
 +        return success;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
 +        writer.setBuffer(buf);
 +
 +        if (!writer.isHeaderWritten()) {
 +            if (!writer.writeHeader(directType(), fieldsCount()))
 +                return false;
 +
 +            writer.onHeaderWritten();
 +        }
 +
 +        switch (writer.state()) {
 +            case 0:
 +                if (!writer.writeLong("snapshotId", snapshotId))
 +                    return false;
 +
 +                writer.incrementState();
 +
 +            case 1:
 +                if (!writer.writeBoolean("success", success))
 +                    return false;
 +
 +                writer.incrementState();
 +
 +        }
 +
 +        return true;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
 +        reader.setBuffer(buf);
 +
 +        if (!reader.beforeMessageRead())
 +            return false;
 +
 +        switch (reader.state()) {
 +            case 0:
 +                snapshotId = reader.readLong("snapshotId");
 +
 +                if (!reader.isLastRead())
 +                    return false;
 +
 +                reader.incrementState();
 +
 +            case 1:
 +                success = reader.readBoolean("success");
 +
 +                if (!reader.isLastRead())
 +                    return false;
 +
 +                reader.incrementState();
 +
 +        }
 +
 +        return reader.afterMessageRead(SnapshotFinishedMessage.class);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public byte directType() {
-         return -27;
++        return -45;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public byte fieldsCount() {
 +        return 2;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public void onAckReceived() {
 +        // No-op
 +    }
 +}

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index 9115a16,15c060a..6a9ea1b
--- 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
@@@ -56,8 -58,9 +58,9 @@@ import org.apache.ignite.internal.Ignit
  import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
  import org.apache.ignite.internal.events.DiscoveryCustomEvent;
  import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener;
 -import org.apache.ignite.internal.pagemem.backup.StartFullBackupAckDiscoveryMessage;
 +import org.apache.ignite.internal.pagemem.snapshot.StartFullSnapshotAckDiscoveryMessage;
  import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+ import org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridClientPartitionTopology;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopology;
@@@ -862,17 -885,31 +863,23 @@@ public class GridCachePartitionExchange
                      ready = cacheCtx.started();
  
                  if (ready) {
-                     GridDhtPartitionFullMap locMap = cacheCtx.topology().partitionMap(true);
+                     GridAffinityAssignmentCache affCache = cacheCtx.affinity().affinityCache();
+ 
+                     if (affCache != null) {
+                         GridDhtPartitionFullMap locMap = cacheCtx.topology().partitionMap(true);
  
 -                        if (useOldApi) {
 -                            locMap = new GridDhtPartitionFullMap(locMap.nodeId(),
 -                                locMap.nodeOrder(),
 -                                locMap.updateSequence(),
 -                                locMap,
 -                                true);
 -                        }
 -
 -                        addFullPartitionsMap(m,
 -                            dupData,
 -                            compress,
 -                            cacheCtx.cacheId(),
 -                            locMap,
 -                            affCache.similarAffinityKey());
 +                    addFullPartitionsMap(m,
 +                        dupData,
 +                        compress,
 +                        cacheCtx.cacheId(),
 +                        locMap,
 +                        cacheCtx.affinity().affinityCache().similarAffinityKey());
  
-                     if (exchId != null)
-                         m.addPartitionUpdateCounters(cacheCtx.cacheId(), cacheCtx.topology().updateCounters(true));
+                         if (exchId != null)
+                             m.addPartitionUpdateCounters(cacheCtx.cacheId(), cacheCtx.topology().updateCounters(true));
+                     }
+                     else
+                         assert cctx.cacheContext(cacheCtx.cacheId()) == null : cacheCtx.name();
                  }
              }
          }

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedTtlCleanupManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManager.java
index b3871e6,abe1b45..a336a80
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManager.java
@@@ -20,7 -21,7 +21,8 @@@ import java.util.concurrent.atomic.Atom
  import org.apache.ignite.IgniteCheckedException;
  import org.apache.ignite.IgniteException;
  import org.apache.ignite.configuration.CacheConfiguration;
 +import org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheAdapter;
+ import org.apache.ignite.internal.IgniteInterruptedCheckedException;
  import org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheEntry;
  import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
  import org.apache.ignite.internal.util.GridConcurrentSkipListSet;

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridChangeGlobalStateMessageResponse.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridChangeGlobalStateMessageResponse.java
index f871245,0000000..4a7cfb7
mode 100644,000000..100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridChangeGlobalStateMessageResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridChangeGlobalStateMessageResponse.java
@@@ -1,177 -1,0 +1,177 @@@
 +/*
 + * 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;
 +
 +import java.nio.ByteBuffer;
 +import java.util.UUID;
 +import org.apache.ignite.IgniteCheckedException;
 +import org.apache.ignite.internal.GridDirectTransient;
 +import org.apache.ignite.internal.util.typedef.internal.CU;
 +import org.apache.ignite.internal.util.typedef.internal.S;
 +import org.apache.ignite.internal.util.typedef.internal.U;
 +import org.apache.ignite.plugin.extensions.communication.MessageReader;
 +import org.apache.ignite.plugin.extensions.communication.MessageWriter;
 +
 +/**
 + *
 + */
 +public class GridChangeGlobalStateMessageResponse extends GridCacheMessage{
 +    /** */
 +    private static final long serialVersionUID = 0L;
 +
 +    /** Request id. */
 +    private UUID requestId;
 +
 +    /** Activation error. */
 +    @GridDirectTransient
 +    private Throwable err;
 +
 +    /** Serialized activation error. */
 +    private byte[] errBytes;
 +
 +    /**
 +     * Default constructor.
 +     */
 +    public GridChangeGlobalStateMessageResponse() {
 +         /* No-op. */
 +    }
 +
 +    /**
 +     *
 +     */
 +    public GridChangeGlobalStateMessageResponse(UUID requestId, Throwable err) {
 +        this.requestId = requestId;
 +        this.err = err;
 +    }
 +
 +    /**
 +     *
 +     */
 +    public UUID getRequestId() {
 +        return requestId;
 +    }
 +
 +    /**
 +     *
 +     */
 +    public Throwable getError() {
 +        return err;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws IgniteCheckedException {
 +        super.prepareMarshal(ctx);
 +
 +        if (err != null && errBytes == null)
 +            errBytes = CU.marshal(ctx, false, err);
 +
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public void finishUnmarshal(GridCacheSharedContext ctx, ClassLoader ldr) throws IgniteCheckedException {
 +        super.finishUnmarshal(ctx, ldr);
 +
 +        if (errBytes != null && err == null)
 +            err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig()));
 +
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
 +        writer.setBuffer(buf);
 +
 +        if (!super.writeTo(buf, writer))
 +            return false;
 +
 +        if (!writer.isHeaderWritten()) {
 +            if (!writer.writeHeader(directType(), fieldsCount()))
 +                return false;
 +
 +            writer.onHeaderWritten();
 +        }
 +
 +        switch (writer.state()) {
 +            case 3:
 +                if (!writer.writeByteArray("errBytes", errBytes))
 +                    return false;
 +
 +                writer.incrementState();
 +
 +            case 4:
 +                if (!writer.writeUuid("requestId", requestId))
 +                    return false;
 +
 +                writer.incrementState();
 +
 +        }
 +
 +        return true;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
 +        reader.setBuffer(buf);
 +
 +        if (!reader.beforeMessageRead())
 +            return false;
 +
 +        if (!super.readFrom(buf, reader))
 +            return false;
 +
 +        switch (reader.state()) {
 +            case 3:
 +                errBytes = reader.readByteArray("errBytes");
 +
 +                if (!reader.isLastRead())
 +                    return false;
 +
 +                reader.incrementState();
 +
 +            case 4:
 +                requestId = reader.readUuid("requestId");
 +
 +                if (!reader.isLastRead())
 +                    return false;
 +
 +                reader.incrementState();
 +
 +        }
 +
 +        return reader.afterMessageRead(GridChangeGlobalStateMessageResponse.class);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public byte directType() {
-         return -38;
++        return -46;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public byte fieldsCount() {
 +        return 5;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public boolean addDeploymentInfo() {
 +        return false;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public String toString() {
 +        return S.toString(GridChangeGlobalStateMessageResponse.class, this, super.toString());
 +    }
 +}

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
index e78c1c5,47a8103..ea3b7c6
--- 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
@@@ -680,10 -672,10 +671,10 @@@ import static org.apache.ignite.interna
                      if (locPart != null) {
                          GridDhtPartitionState state = locPart.state();
  
 -                        if (state == MOVING && cctx.shared().cache().globalState() == CacheState.ACTIVE) {
 +                        if (state == MOVING && cctx.kernalContext().state().active()) {
                              locPart.rent(false);
  
-                             updateLocal(p, loc.id(), locPart.state(), updateSeq);
+                             updateSeq = updateLocal(p, locPart.state(), updateSeq);
  
                              changed = true;
  
@@@ -1811,18 -1863,6 +1823,18 @@@
      }
  
      /** {@inheritDoc} */
 +    @Nullable @Override public GridDhtPartitionMap2 partitions(UUID nodeId) {
-         lock.readLock().lock();
++            lock.readLock().lock();
 +
-         try {
-             return node2part.get(nodeId);
-         }
-         finally {
-             lock.readLock().unlock();
++            try {
++                return node2part.get(nodeId);
++            }
++            finally {
++                lock.readLock().unlock();
++            }
 +        }
-     }
 +
 +    /** {@inheritDoc} */
      @Override public Map<Integer, T2<Long, Long>> updateCounters(boolean skipZeros) {
          lock.readLock().lock();
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicSingleUpdateRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractSingleUpdateRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractSingleUpdateRequest.java
index e127afb,c3cceae..9160865
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractSingleUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractSingleUpdateRequest.java
@@@ -65,7 -65,6 +65,7 @@@ public abstract class GridNearAtomicAbs
      /** Return value flag. */
      private static final int RET_VAL_FLAG_MASK = 0x40;
  
-     /** Return value flag. */
++    /** Recovery flag mask. */
      private static final int RECOVERY_FLAG_MASK = 0x80;
  
      /** Target node ID. */
@@@ -391,7 -378,15 +379,19 @@@
          setFlag(val, HAS_PRIMARY_FLAG_MASK);
      }
  
 +    /** {@inheritDoc} */
+     @Override public boolean recovery() {
+         return isFlag(RECOVERY_FLAG_MASK);
+     }
+ 
++    /**
++     * Sets recovery flag value.
++     */
+     public void recovery(boolean val) {
+         setFlag(val, RECOVERY_FLAG_MASK);
+     }
+ 
+     /** {@inheritDoc} */
      @Nullable @Override public CacheEntryPredicate[] filter() {
          return NO_FILTER;
      }

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
index bc31b09,3f04785..8486d7f
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
@@@ -435,8 -435,15 +436,15 @@@ public class GridRestProcessor extends 
      }
  
      /** {@inheritDoc} */
 -    @Override public void start() throws IgniteCheckedException {
 +    @Override public void start(boolean activeOnStart) throws IgniteCheckedException {
          if (isRestEnabled()) {
+             if (notStartOnClient()) {
+                 U.quietAndInfo(log, "REST protocols do not start on client node. " +
+                     "To start the protocols on client node set '-DIGNITE_REST_START_ON_CLIENT=true' system property.");
+ 
+                 return;
+             }
+ 
              // Register handlers.
              addHandler(new GridCacheCommandHandler(ctx));
              addHandler(new GridTaskCommandHandler(ctx));
@@@ -472,8 -479,15 +480,15 @@@
          }
      }
  
+     /**
+      * @return {@code True} if rest processor should not start on client node.
+      */
+     private boolean notStartOnClient() {
+         return ctx.clientNode() && !IgniteSystemProperties.getBoolean(IGNITE_REST_START_ON_CLIENT);
+     }
+ 
      /** {@inheritDoc} */
 -    @Override public void onKernalStart() throws IgniteCheckedException {
 +    @Override public void onKernalStart(boolean activeOnStart) throws IgniteCheckedException {
          if (isRestEnabled()) {
              for (GridRestProtocol proto : protos)
                  proto.onKernalStart();

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestNioListener.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/main/resources/META-INF/classnames.properties
----------------------------------------------------------------------
diff --cc modules/core/src/main/resources/META-INF/classnames.properties
index 6d3dbe8,ac3a992..5df5aea
--- a/modules/core/src/main/resources/META-INF/classnames.properties
+++ b/modules/core/src/main/resources/META-INF/classnames.properties
@@@ -700,8 -713,6 +713,7 @@@ org.apache.ignite.internal.processors.c
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture$1
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture$2
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture$3
 +org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture$4
- org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicFullUpdateRequest
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateRequest
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse
  org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManagerEvictionSelfTest.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManagerEvictionSelfTest.java
index c79f30c,0d96e17..c2e48a7
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManagerEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManagerEvictionSelfTest.java
@@@ -17,10 -17,8 +17,11 @@@
  
  package org.apache.ignite.internal.processors.cache;
  
 +import java.util.concurrent.TimeUnit;
 +import javax.cache.expiry.CreatedExpiryPolicy;
 +import javax.cache.expiry.Duration;
  import org.apache.ignite.IgniteCache;
+ import org.apache.ignite.IgniteException;
  import org.apache.ignite.Ignition;
  import org.apache.ignite.cache.CacheMemoryMode;
  import org.apache.ignite.cache.CacheMode;

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiMultithreadedSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestKernalContext.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite5.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index 67cbcc8,1445e16..c82c73d
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@@ -92,7 -91,7 +94,8 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.query.GridQueryIndexing;
  import org.apache.ignite.internal.processors.query.GridQueryProperty;
  import org.apache.ignite.internal.processors.query.GridQueryTypeDescriptor;
+ import org.apache.ignite.internal.processors.query.IgniteSQLException;
 +import org.apache.ignite.internal.processors.query.h2.database.H2PkHashIndex;
  import org.apache.ignite.internal.processors.query.h2.opt.GridH2DefaultTableEngine;
  import org.apache.ignite.internal.processors.query.h2.database.H2RowFactory;
  import org.apache.ignite.internal.processors.query.h2.database.H2TreeIndex;
@@@ -139,9 -139,9 +143,10 @@@ import org.apache.ignite.spi.indexing.I
  import org.h2.api.ErrorCode;
  import org.h2.api.JavaObjectSerializer;
  import org.h2.command.CommandInterface;
+ import org.h2.command.Prepared;
  import org.h2.engine.Session;
  import org.h2.engine.SysProperties;
 +import org.h2.index.Cursor;
  import org.h2.index.Index;
  import org.h2.index.SpatialIndex;
  import org.h2.jdbc.JdbcConnection;

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
index 7548bce,51f8bef..4576cec
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
@@@ -590,8 -584,8 +584,6 @@@ public class GridReduceQueryExecutor 
                          mapQrys.add(new GridCacheSqlQuery("EXPLAIN " + mapQry.query(), mapQry.parameters()));
                  }
  
-                 boolean retry = false;
 -                IgniteProductVersion minNodeVer = cctx.shared().exchange().minimumNodeVersion(topVer);
--
                  final boolean distributedJoins = qry.distributedJoins();
  
                  cancel.set(new Runnable() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
index 529b594,b48d253..fbbdf76
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
@@@ -146,11 -172,14 +172,16 @@@ public class IgniteCacheQuerySelfTestSu
          suite.addTestSuite(IgniteCacheJoinPartitionedAndReplicatedTest.class);
          suite.addTestSuite(IgniteCacheDistributedJoinNoIndexTest.class);
          suite.addTestSuite(IgniteCrossCachesJoinsQueryTest.class);
-         suite.addTestSuite(IgniteCacheCrossCacheJoinRandomTest.class);
-         suite.addTestSuite(IgniteCacheDistributedJoinCustomAffinityMapper.class);
  
 +        suite.addTestSuite(IgniteCacheMultipleIndexedTypesTest.class);
 +
+         suite.addTestSuite(IgniteCacheDistributedJoinCustomAffinityMapper.class);
+ 
+         suite.addTestSuite(IgniteCacheMergeSqlQuerySelfTest.class);
+         suite.addTestSuite(IgniteCacheInsertSqlQuerySelfTest.class);
+         suite.addTestSuite(IgniteCacheUpdateSqlQuerySelfTest.class);
+         suite.addTestSuite(IgniteCacheDeleteSqlQuerySelfTest.class);
+ 
          suite.addTestSuite(IgniteBinaryObjectQueryArgumentsTest.class);
          suite.addTestSuite(IgniteBinaryObjectQueryArgumentsOffheapTest.class);
          suite.addTestSuite(IgniteBinaryObjectQueryArgumentsOffheapLocalTest.class);

http://git-wip-us.apache.org/repos/asf/ignite/blob/9dc652db/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java
----------------------------------------------------------------------


[42/50] [abbrv] ignite git commit: ignite-gg-11650 Stabilize 8.0.2.ea1 fix cache template config

Posted by ag...@apache.org.
ignite-gg-11650 Stabilize 8.0.2.ea1 fix cache template config


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

Branch: refs/heads/ignite-3477
Commit: e8f6a540a95728c04da921b84b8c7376c35e47a2
Parents: cb56333
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Mon Dec 26 19:37:43 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Mon Dec 26 19:37:43 2016 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheProcessor.java    | 35 ++++----------------
 1 file changed, 7 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/e8f6a540/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 554d062..4f299dd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -645,8 +645,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
      * @param cfg Cache configuration.
      * @throws IgniteCheckedException If failed.
      */
-    private void registerCache(CacheConfiguration<?, ?> cfg)
-        throws IgniteCheckedException {
+    private void registerCache(CacheConfiguration<?, ?> cfg) throws IgniteCheckedException {
         cloneCheckSerializable(cfg);
 
         CacheObjectContext cacheObjCtx = ctx.cacheObjects().contextForCache(cfg);
@@ -784,9 +783,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                 activeOnStart = currentStatus;
             }
 
-            if (activeOnStart)
-                if (!ctx.clientNode())
-                    sharedCtx.database().lock();
+            if (activeOnStart && !ctx.clientNode() && !ctx.isDaemon())
+                sharedCtx.database().lock();
 
             //must start database before start first cache
             sharedCtx.database().onKernalStart(false);
@@ -832,7 +830,6 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                 }
             }
         }
-        //todo if in active caches not started on start
         finally {
             cacheStartedLatch.countDown();
         }
@@ -849,10 +846,6 @@ public class GridCacheProcessor extends GridProcessorAdapter {
         for (GridCacheAdapter<?, ?> cache : caches.values())
             onKernalStart(cache);
 
-        //todo
-     /*   if (!ctx.state().active())
-            return;*/
-
         ctx.marshallerContext().onMarshallerCacheStarted(ctx);
 
         if (!ctx.config().isDaemon())
@@ -1024,19 +1017,6 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                 onKernalStop(entry.getValue(), cancel);
             }
         }
-
-        //todo chek it
-        /*cancelFutures();
-
-        List<? extends GridCacheSharedManager<?, ?>> sharedMgrs = sharedCtx.managers();
-
-        for (ListIterator<? extends GridCacheSharedManager<?, ?>> it = sharedMgrs.listIterator(sharedMgrs.size());
-            it.hasPrevious(); ) {
-            GridCacheSharedManager<?, ?> mgr = it.previous();
-
-            if (mgr != exch)
-                mgr.onKernalStop(cancel);
-        }*/
     }
 
     /** {@inheritDoc} */
@@ -2458,9 +2438,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
      * @return Future that will be completed when all caches are deployed.
      */
     public IgniteInternalFuture<?> dynamicStartCaches(
-        Collection<CacheConfiguration> ccfgList,
-        boolean failIfExists,
-        boolean checkThreadTx
+        Collection<CacheConfiguration> ccfgList, boolean failIfExists, boolean checkThreadTx
     ) {
         return dynamicStartCaches(ccfgList, CacheType.USER, failIfExists, checkThreadTx);
     }
@@ -2681,6 +2659,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
 
         req.startCacheConfiguration(cfg);
 
+        req.template(cfg.getName() != null && cfg.getName().endsWith("*"));
+
         req.nearCacheConfiguration(cfg.getNearConfiguration());
 
         req.deploymentId(IgniteUuid.randomUuid());
@@ -2704,8 +2684,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
      */
     @SuppressWarnings("TypeMayBeWeakened")
     private Collection<DynamicCacheStartFuture> initiateCacheChanges(
-        Collection<DynamicCacheChangeRequest> reqs,
-        boolean failIfExists
+        Collection<DynamicCacheChangeRequest> reqs, boolean failIfExists
     ) {
         Collection<DynamicCacheStartFuture> res = new ArrayList<>(reqs.size());
 


[21/50] [abbrv] ignite git commit: Merge with master - WIP.

Posted by ag...@apache.org.
Merge with master - WIP.


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

Branch: refs/heads/ignite-3477
Commit: 2e55963eb987f4fb24b716178f6408782b590f28
Parents: 100f9bb 41dddb8
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Thu Dec 22 15:50:58 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Thu Dec 22 15:50:58 2016 +0300

----------------------------------------------------------------------
 .gitignore                                      |    1 +
 assembly/release-base.xml                       |    5 +
 bin/ignite.sh                                   |    9 +
 config/dotnet/default-dotnet.xml                |   45 +
 examples/pom-standalone.xml                     |    6 +
 modules/cassandra/pom.xml                       |   24 +-
 .../processors/cache/GridCacheAdapter.java      |  748 +++++------
 .../GridCachePartitionExchangeManager.java      |   39 +-
 .../processors/cache/GridCacheProcessor.java    |    2 +-
 .../processors/cache/GridCacheUtils.java        |   10 +-
 .../processors/cache/IgniteCacheProxy.java      |    8 -
 .../distributed/GridCacheTxRecoveryFuture.java  |    4 +-
 .../GridDistributedTxFinishResponse.java        |    6 -
 .../cache/distributed/dht/GridDhtGetFuture.java |    2 +-
 .../distributed/dht/GridDhtLockFuture.java      |    4 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |   74 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |  125 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |    7 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |    4 +-
 .../dht/atomic/GridDhtAtomicCache.java          |  448 ++++---
 .../dht/colocated/GridDhtColocatedCache.java    |   13 -
 .../colocated/GridDhtColocatedLockFuture.java   |    4 +-
 .../GridDhtPartitionsExchangeFuture.java        |    6 +-
 .../distributed/near/GridNearAtomicCache.java   |   65 +-
 .../distributed/near/GridNearLockFuture.java    |    4 +-
 ...arOptimisticSerializableTxPrepareFuture.java |    4 +-
 .../near/GridNearOptimisticTxPrepareFuture.java |   15 +-
 .../GridNearPessimisticTxPrepareFuture.java     |    4 +-
 .../near/GridNearTxFinishFuture.java            |   46 +-
 .../cache/distributed/near/GridNearTxLocal.java |   48 +-
 .../local/atomic/GridLocalAtomicCache.java      |  177 +--
 .../cache/store/CacheStoreManager.java          |    4 +-
 .../store/GridCacheStoreManagerAdapter.java     |   34 +-
 .../cache/store/GridCacheWriteBehindStore.java  |    6 +-
 .../cache/transactions/IgniteTxHandler.java     |   13 +-
 .../transactions/IgniteTxLocalAdapter.java      |   30 +-
 .../cache/transactions/IgniteTxManager.java     |    7 +-
 .../GridCacheAtomicSequenceImpl.java            |   12 +-
 .../processors/hadoop/HadoopClassLoader.java    |   11 +
 .../processors/hadoop/HadoopJobProperty.java    |   16 +-
 .../processors/hadoop/HadoopTaskContext.java    |    8 +
 .../io/PartiallyOffheapRawComparatorEx.java     |   33 +
 .../cache/PlatformCacheEntryFilterImpl.java     |    4 +-
 .../cache/PlatformCacheEntryProcessorImpl.java  |   43 +-
 .../affinity/PlatformAffinityFunction.java      |   52 +-
 .../callback/PlatformCallbackGateway.java       |  266 ++--
 .../platform/callback/PlatformCallbackOp.java   |  206 +++
 .../callback/PlatformCallbackUtils.java         |  544 +-------
 .../platform/compute/PlatformAbstractJob.java   |    2 +-
 .../platform/compute/PlatformAbstractTask.java  |   15 +-
 .../platform/compute/PlatformClosureJob.java    |   12 +-
 .../platform/compute/PlatformFullJob.java       |   15 +-
 .../platform/compute/PlatformFullTask.java      |   18 +-
 .../PlatformStreamReceiverImpl.java             |    3 +
 .../dotnet/PlatformDotNetCacheStore.java        |    6 +-
 .../services/PlatformAbstractService.java       |   25 +-
 .../platform/utils/PlatformFutureUtils.java     |    4 +-
 .../platform/utils/PlatformUtils.java           |    8 +-
 .../util/future/GridCompoundFuture.java         |   56 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |    2 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   14 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |    6 +-
 .../IgniteTxStoreExceptionAbstractSelfTest.java |    1 +
 ...achePartitionedAtomicSequenceTxSelfTest.java |  169 +++
 .../CacheLockReleaseNodeLeaveTest.java          |  135 ++
 ...nabledMultiNodeLongTxTimeoutFullApiTest.java |    2 +-
 ...achePartitionedMultiNodeFullApiSelfTest.java |   37 +-
 ...lockMessageSystemPoolStarvationSelfTest.java |   14 +-
 .../IgniteCacheDataStructuresSelfTestSuite.java |    2 +
 modules/hadoop/pom.xml                          |    7 +
 .../hadoop/io/PartiallyRawComparator.java       |   33 +
 .../org/apache/ignite/hadoop/io/RawMemory.java  |   86 ++
 .../hadoop/io/TextPartiallyRawComparator.java   |  115 ++
 .../apache/ignite/hadoop/io/package-info.java   |   22 +
 .../IgniteHadoopClientProtocolProvider.java     |   70 +-
 .../hadoop/impl/fs/HadoopFileSystemsUtils.java  |   11 +
 .../hadoop/impl/proto/HadoopClientProtocol.java |   55 +-
 ...DelegatingPartiallyOffheapRawComparator.java |   54 +
 .../processors/hadoop/impl/v2/HadoopV2Job.java  |   22 +-
 .../impl/v2/HadoopV2JobResourceManager.java     |   25 +-
 .../hadoop/impl/v2/HadoopV2TaskContext.java     |   21 +
 .../processors/hadoop/io/OffheapRawMemory.java  |  131 ++
 .../hadoop/mapreduce/MapReduceClient.java       |  147 +++
 .../hadoop/shuffle/HadoopShuffleJob.java        |    2 +-
 .../shuffle/collections/HadoopMultimapBase.java |    5 +-
 .../shuffle/collections/HadoopSkipList.java     |   14 +-
 .../hadoop/impl/HadoopAbstractSelfTest.java     |   13 +-
 .../impl/HadoopAbstractWordCountTest.java       |    6 +-
 .../hadoop/impl/HadoopFileSystemsTest.java      |    9 +
 .../hadoop/impl/HadoopJobTrackerSelfTest.java   |    4 +-
 .../impl/HadoopTaskExecutionSelfTest.java       |    4 +-
 .../hadoop/impl/HadoopTeraSortTest.java         |  383 ++++++
 ...opClientProtocolMultipleServersSelfTest.java |   93 +-
 .../client/HadoopClientProtocolSelfTest.java    |  232 ++--
 .../collections/HadoopAbstractMapTest.java      |    6 +
 .../collections/HadoopSkipListSelfTest.java     |   14 +-
 .../HadoopExternalTaskExecutionSelfTest.java    |    2 +
 .../testsuites/IgniteHadoopTestSuite.java       |    3 +
 .../cache/IgniteCacheLargeResultSelfTest.java   |   15 +-
 .../IgniteCacheQuerySelfTestSuite.java          |  130 +-
 .../IgniteCacheQuerySelfTestSuite2.java         |  111 +-
 .../IgniteH2IndexingSpiTestSuite.java           |   16 +-
 .../include/ignite/binary/binary_raw_reader.h   |   21 +
 .../ignite/impl/binary/binary_reader_impl.h     |    9 +-
 .../src/impl/binary/binary_reader_impl.cpp      |   17 +
 .../platforms/cpp/common/include/Makefile.am    |    5 +-
 .../common/include/ignite/common/concurrent.h   |   90 +-
 .../include/ignite/common/reference_impl.h      |  286 ++++
 .../cpp/common/include/ignite/reference.h       |  564 ++++++++
 .../cpp/common/project/vs/common.vcxproj        |    2 +
 .../common/project/vs/common.vcxproj.filters    |    6 +
 modules/platforms/cpp/core-test/Makefile.am     |    7 +-
 .../core-test/config/cache-query-continuous.xml |   87 ++
 .../cpp/core-test/config/cache-test.xml         |    1 +
 .../platforms/cpp/core-test/config/invalid.xml  |   39 +
 .../cpp/core-test/project/vs/core-test.vcxproj  |   13 +-
 .../project/vs/core-test.vcxproj.filters        |   11 +-
 .../cpp/core-test/src/cache_query_test.cpp      |   76 +-
 .../cpp/core-test/src/continuous_query_test.cpp |  611 +++++++++
 .../cpp/core-test/src/handle_registry_test.cpp  |   18 +-
 .../cpp/core-test/src/interop_test.cpp          |   17 +-
 .../cpp/core-test/src/reference_test.cpp        |  412 ++++++
 modules/platforms/cpp/core/Makefile.am          |    1 +
 .../cpp/core/include/ignite/cache/cache.h       |  104 +-
 .../cpp/core/include/ignite/cache/cache_entry.h |   40 +-
 .../ignite/cache/event/cache_entry_event.h      |  139 ++
 .../cache/event/cache_entry_event_listener.h    |   71 +
 .../cache/query/continuous/continuous_query.h   |  239 ++++
 .../query/continuous/continuous_query_handle.h  |  133 ++
 .../core/include/ignite/impl/cache/cache_impl.h |  116 +-
 .../continuous/continuous_query_handle_impl.h   |  101 ++
 .../query/continuous/continuous_query_impl.h    |  351 +++++
 .../core/include/ignite/impl/handle_registry.h  |   62 +-
 .../include/ignite/impl/ignite_environment.h    |   34 +-
 modules/platforms/cpp/core/namespaces.dox       |   74 +-
 .../platforms/cpp/core/project/vs/core.vcxproj  |    7 +
 .../cpp/core/project/vs/core.vcxproj.filters    |   30 +
 modules/platforms/cpp/core/src/ignition.cpp     |   15 +-
 .../cpp/core/src/impl/cache/cache_impl.cpp      |   31 +
 .../continuous/continuous_query_handle_impl.cpp |   96 ++
 .../cpp/core/src/impl/handle_registry.cpp       |  102 +-
 .../cpp/core/src/impl/ignite_environment.cpp    |  146 ++-
 modules/platforms/cpp/examples/Makefile.am      |    1 +
 modules/platforms/cpp/examples/configure.ac     |    1 +
 .../continuous-query-example/Makefile.am        |   58 +
 .../config/continuous-query-example.xml         |   52 +
 .../project/vs/continuous-query-example.vcxproj |  110 ++
 .../vs/continuous-query-example.vcxproj.filters |   35 +
 .../src/continuous_query_example.cpp            |  142 ++
 .../examples/include/ignite/examples/person.h   |    2 +-
 .../cpp/examples/project/vs/ignite-examples.sln |    6 +
 .../platforms/cpp/jni/include/ignite/jni/java.h |   87 +-
 modules/platforms/cpp/jni/project/vs/module.def |    4 +-
 modules/platforms/cpp/jni/src/java.cpp          |  343 +----
 .../cpp/odbc-test/config/queries-test.xml       |   37 +
 .../platforms/cpp/odbc-test/include/Makefile.am |    1 +
 .../cpp/odbc-test/include/complex_type.h        |  122 ++
 .../cpp/odbc-test/project/vs/odbc-test.vcxproj  |    5 +-
 .../project/vs/odbc-test.vcxproj.filters        |    3 +
 .../cpp/odbc-test/src/queries_test.cpp          |  101 +-
 modules/platforms/cpp/odbc/src/column.cpp       |   41 +-
 modules/platforms/cpp/odbc/src/type_traits.cpp  |    3 +
 modules/platforms/cpp/project/vs/ignite.slnrel  |    3 +
 .../platforms/cpp/project/vs/ignite_x86.slnrel  |    3 +
 .../Cache/Query/CacheLinqTest.cs                |   21 +-
 .../Query/CacheQueriesCodeConfigurationTest.cs  |   17 +-
 .../Cache/Query/CacheQueriesTest.cs             |    8 +
 .../Services/ServicesTest.cs                    |    3 +-
 .../Apache.Ignite.Core.Tests/TestUtils.cs       |    3 +-
 .../Apache.Ignite.Core.csproj                   |    1 +
 .../dotnet/Apache.Ignite.Core/Binary/IBinary.cs |    3 +-
 .../Apache.Ignite.Core/Cache/Query/QueryBase.cs |   15 +-
 .../Impl/Binary/BinaryUtils.cs                  |   16 +
 .../Impl/Binary/Io/BinaryStreamBase.cs          |    4 +-
 .../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs  |   29 +-
 .../Impl/Compute/ComputeTaskHolder.cs           |   14 +-
 .../Impl/Unmanaged/UnmanagedCallbackHandlers.cs |   79 +-
 .../Impl/Unmanaged/UnmanagedCallbackOp.cs       |   86 ++
 .../Impl/Unmanaged/UnmanagedCallbacks.cs        | 1229 +++++++++---------
 .../Impl/CacheQueryExpressionVisitor.cs         |   12 +-
 .../Apache.Ignite.Linq/Impl/MethodVisitor.cs    |   34 +-
 modules/platforms/dotnet/Apache.Ignite.sln      |    2 +
 modules/platforms/dotnet/DEVNOTES.txt           |   12 +-
 modules/platforms/dotnet/build.bat              |   14 +
 modules/platforms/dotnet/build.ps1              |  211 +++
 .../yardstick/IgniteAbstractBenchmark.java      |   30 +
 .../yardstick/IgniteBenchmarkArguments.java     |   11 +
 .../ignite/yardstick/IgniteBenchmarkUtils.java  |   42 +-
 .../apache/ignite/yardstick/PreloadLogger.java  |  155 +++
 .../IgniteCacheRandomOperationBenchmark.java    |   22 +-
 190 files changed, 9267 insertions(+), 3803 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 4c62371,74d1553..b89d618
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@@ -487,8 -467,8 +472,8 @@@ public abstract class GridCacheAdapter<
      }
  
      /** {@inheritDoc} */
-     @Override public GridCacheProxyImpl<K, V> forSubjectId(UUID subjId) {
+     @Override public final GridCacheProxyImpl<K, V> forSubjectId(UUID subjId) {
 -        CacheOperationContext opCtx = new CacheOperationContext(false, subjId, false, null, false, null);
 +        CacheOperationContext opCtx = new CacheOperationContext(false, subjId, false, null, false, null, false);
  
          return new GridCacheProxyImpl<>(ctx, this, opCtx);
      }
@@@ -499,15 -479,15 +484,15 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public GridCacheProxyImpl<K, V> setSkipStore(boolean skipStore) {
+     @Override public final GridCacheProxyImpl<K, V> setSkipStore(boolean skipStore) {
 -        CacheOperationContext opCtx = new CacheOperationContext(true, null, false, null, false, null);
 +        CacheOperationContext opCtx = new CacheOperationContext(true, null, false, null, false, null, false);
  
          return new GridCacheProxyImpl<>(ctx, this, opCtx);
      }
  
      /** {@inheritDoc} */
-     @Override public <K1, V1> GridCacheProxyImpl<K1, V1> keepBinary() {
+     @Override public final <K1, V1> GridCacheProxyImpl<K1, V1> keepBinary() {
 -        CacheOperationContext opCtx = new CacheOperationContext(false, null, true, null, false, null);
 +        CacheOperationContext opCtx = new CacheOperationContext(false, null, true, null, false, null, false);
  
          return new GridCacheProxyImpl<>((GridCacheContext<K1, V1>)ctx, (GridCacheAdapter<K1, V1>)this, opCtx);
      }
@@@ -529,8 -509,8 +514,8 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public IgniteInternalCache<K, V> withNoRetries() {
+     @Override public final IgniteInternalCache<K, V> withNoRetries() {
 -        CacheOperationContext opCtx = new CacheOperationContext(false, null, false, null, true, null);
 +        CacheOperationContext opCtx = new CacheOperationContext(false, null, false, null, true, null, false);
  
          return new GridCacheProxyImpl<>(ctx, this, opCtx);
      }
@@@ -635,9 -615,9 +620,9 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public boolean isEmpty() {
+     @Override public final boolean isEmpty() {
          try {
 -            return localSize(CachePeekModes.ONHEAP_ONLY) == 0;
 +            return localSize(null) == 0;
          }
          catch (IgniteCheckedException e) {
              throw new IgniteException(e);
@@@ -682,11 -662,9 +667,11 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public IgniteInternalFuture<Boolean> containsKeysAsync(final Collection<? extends K> keys) {
+     @Override public final IgniteInternalFuture<Boolean> containsKeysAsync(final Collection<? extends K> keys) {
          A.notNull(keys, "keys");
  
 +        CacheOperationContext opCtx = ctx.operationContextPerCall();
 +
          return getAllAsync(
              keys,
              /*force primary*/false,
@@@ -1029,13 -997,8 +1014,13 @@@
          return entrySet((CacheEntryPredicate[])null);
      }
  
 -    /** {@inheritDoc} */
 +    /**
-      * Gets entry set containing internal entries.
-      *
-      * @param filter Filter.
-      * @return Entry set.
-      */
-     private Set<Cache.Entry<K, V>> entrySetx(final CacheEntryPredicate... filter) {
++         * Gets entry set containing internal entries.
++         *
++         * @param filter Filter.
++         * @return Entry set.
++         */
+     @Override public final Set<Cache.Entry<K, V>> entrySetx(final CacheEntryPredicate... filter) {
          boolean keepBinary = ctx.keepBinary();
  
          return new EntrySet(map.entrySet(filter), keepBinary);
@@@ -1333,19 -1296,9 +1318,19 @@@
      }
  
      /** {@inheritDoc} */
 +    @Override public Collection<Integer> lostPartitions() {
 +        if (isLocal())
 +            return Collections.emptyList();
 +
 +        return ctx.topology().lostPartitions();
 +    }
 +
 +    /** {@inheritDoc} */
-     @Override public V getForcePrimary(K key) throws IgniteCheckedException {
+     @Override public final V getForcePrimary(K key) throws IgniteCheckedException {
          String taskName = ctx.kernalContext().job().currentTaskName();
  
 +        CacheOperationContext opCtx = ctx.operationContextPerCall();
 +
          return getAllAsync(
              F.asList(key),
              /*force primary*/true,
@@@ -1361,11 -1313,9 +1346,11 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public IgniteInternalFuture<V> getForcePrimaryAsync(final K key) {
+     @Override public final IgniteInternalFuture<V> getForcePrimaryAsync(final K key) {
          String taskName = ctx.kernalContext().job().currentTaskName();
  
 +        CacheOperationContext opCtx = ctx.operationContextPerCall();
 +
          return getAllAsync(
              Collections.singletonList(key),
              /*force primary*/true,
@@@ -1384,11 -1334,9 +1369,11 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public V getTopologySafe(K key) throws IgniteCheckedException {
 -    public final V getTopologySafe(K key) throws IgniteCheckedException {
++    @Override public final V getTopologySafe(K key) throws IgniteCheckedException {
          String taskName = ctx.kernalContext().job().currentTaskName();
  
 +        CacheOperationContext opCtx = ctx.operationContextPerCall();
 +
          return getAllAsync(
              F.asList(key),
              /*force primary*/false,
@@@ -1409,32 -1356,20 +1394,23 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public IgniteInternalFuture<Map<K, V>> getAllOutTxAsync(Set<? extends K> keys) {
+     @Override public final IgniteInternalFuture<Map<K, V>> getAllOutTxAsync(Set<? extends K> keys) {
          String taskName = ctx.kernalContext().job().currentTaskName();
  
 +        CacheOperationContext opCtx = ctx.operationContextPerCall();
 +
          return getAllAsync(keys,
              !ctx.config().isReadFromBackup(),
              /*skip tx*/true,
              null,
              taskName,
 -            !ctx.keepBinary(),
 -            /*skip values*/false,
 -            /*can remap*/true,
 -            false);
 +            !(opCtx != null && opCtx.isKeepBinary()),
 +            opCtx != null && opCtx.recovery(),
 +            /*skip values*/
 +            /*can remap*/false,
 +            true, false);
      }
  
-     /**
-      * @param key Key.
-      * @param topVer Topology version.
-      * @return Entry.
-      */
-     @Nullable protected GridCacheEntryEx entryExSafe(KeyCacheObject key, AffinityTopologyVersion topVer) {
-         return entryEx(key);
-     }
- 
      /** {@inheritDoc} */
      @Nullable @Override public V get(K key) throws IgniteCheckedException {
          A.notNull(key, "key");

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index 27bc542,ef8c994e..15c060a
--- 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
@@@ -58,8 -56,8 +58,9 @@@ import org.apache.ignite.internal.Ignit
  import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
  import org.apache.ignite.internal.events.DiscoveryCustomEvent;
  import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener;
 +import org.apache.ignite.internal.pagemem.backup.StartFullBackupAckDiscoveryMessage;
  import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+ import org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridClientPartitionTopology;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopology;
@@@ -884,25 -853,30 +885,31 @@@ public class GridCachePartitionExchange
                      ready = cacheCtx.started();
  
                  if (ready) {
-                     GridDhtPartitionFullMap locMap = cacheCtx.topology().partitionMap(true);
+                     GridAffinityAssignmentCache affCache = cacheCtx.affinity().affinityCache();
  
-                     if (useOldApi) {
-                         locMap = new GridDhtPartitionFullMap(locMap.nodeId(),
-                             locMap.nodeOrder(),
-                             locMap.updateSequence(),
-                             locMap,
-                             true);
-                     }
+                     if (affCache != null) {
+                         GridDhtPartitionFullMap locMap = cacheCtx.topology().partitionMap(true);
  
-                     addFullPartitionsMap(m,
-                         dupData,
-                         compress,
-                         cacheCtx.cacheId(),
-                         locMap,
-                         cacheCtx.affinity().affinityCache().similarAffinityKey());
+                         if (useOldApi) {
+                             locMap = new GridDhtPartitionFullMap(locMap.nodeId(),
+                                 locMap.nodeOrder(),
+                                 locMap.updateSequence(),
 -                                locMap);
++                                locMap,
++                                true);
+                         }
  
-                     if (exchId != null)
-                         m.addPartitionUpdateCounters(cacheCtx.cacheId(), cacheCtx.topology().updateCounters(true));
+                         addFullPartitionsMap(m,
+                             dupData,
+                             compress,
+                             cacheCtx.cacheId(),
+                             locMap,
+                             affCache.similarAffinityKey());
+ 
+                         if (exchId != null)
+                             m.addPartitionUpdateCounters(cacheCtx.cacheId(), cacheCtx.topology().updateCounters(true));
+                     }
+                     else
+                         assert cctx.cacheContext(cacheCtx.cacheId()) == null : cacheCtx.name();
                  }
              }
          }

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 0119afa,9487589..58fe61d
mode 100644,100755..100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index be32767,07b9dad..2f2706e
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@@ -461,7 -468,8 +466,7 @@@ public class GridDhtAtomicCache<K, V> e
      }
  
      /** {@inheritDoc} */
-     @Nullable @Override public V get(K key, boolean deserializeBinary, boolean needVer) throws IgniteCheckedException {
 -    @Override protected V get0(K key, String taskName, boolean deserializeBinary, boolean needVer)
 -        throws IgniteCheckedException {
++    @Nullable @Override public V get0(K key, boolean deserializeBinary, boolean needVer) throws IgniteCheckedException {
          ctx.checkSecurity(SecurityPermission.CACHE_READ);
  
          if (keyCheck)
@@@ -554,6 -571,43 +574,44 @@@
          final boolean canRemap,
          final boolean needVer
      ) {
+         return getAllAsyncInternal(keys,
+             forcePrimary,
+             skipTx,
+             subjId,
+             taskName,
+             deserializeBinary,
+             skipVals,
+             canRemap,
+             needVer,
+             true);
+     }
+ 
+     /**
+      * @param keys Keys.
+      * @param forcePrimary Force primary flag.
+      * @param skipTx Skip tx flag.
+      * @param subjId Subject ID.
+      * @param taskName Task name.
+      * @param deserializeBinary Deserialize binary flag.
+      * @param skipVals Skip values flag.
+      * @param canRemap Can remap flag.
+      * @param needVer Need version flag.
+      * @param asyncOp Async operation flag.
+      * @return Future.
+      */
+     private IgniteInternalFuture<Map<K, V>> getAllAsyncInternal(
+         @Nullable final Collection<? extends K> keys,
+         final boolean forcePrimary,
+         boolean skipTx,
+         @Nullable UUID subjId,
+         final String taskName,
+         final boolean deserializeBinary,
++        final boolean recovery,
+         final boolean skipVals,
+         final boolean canRemap,
+         final boolean needVer,
+         boolean asyncOp
+     ) {
          ctx.checkSecurity(SecurityPermission.CACHE_READ);
  
          if (F.isEmpty(keys))
@@@ -572,21 -626,34 +630,34 @@@
  
          final boolean skipStore = opCtx != null && opCtx.skipStore();
  
-         return asyncOp(new CO<IgniteInternalFuture<Map<K, V>>>() {
 -        if (asyncOp) {
 -            return asyncOp(new CO<IgniteInternalFuture<Map<K, V>>>() {
 -                @Override public IgniteInternalFuture<Map<K, V>> apply() {
 -                    return getAllAsync0(ctx.cacheKeysView(keys),
 -                        forcePrimary,
 -                        subjId0,
 -                        taskName,
 -                        deserializeBinary,
 -                        expiryPlc,
 -                        skipVals,
 -                        skipStore,
 -                        canRemap,
 -                        needVer);
 -                }
 -            });
 -        }
++        if (asyncOp) {return asyncOp(new CO<IgniteInternalFuture<Map<K, V>>>() {
 +            @Override public IgniteInternalFuture<Map<K, V>> apply() {
 +                return getAllAsync0(ctx.cacheKeysView(keys),
 +                    forcePrimary,
 +                    subjId0,
 +                    taskName,
 +                    deserializeBinary,
 +                    recovery,
 +                    expiryPlc,
 +                    skipVals,
 +                    skipStore,
 +                    canRemap,
 +                    needVer);
 +            }
-         });
++        });}
+         else {
+             return getAllAsync0(ctx.cacheKeysView(keys),
+                 forcePrimary,
+                 subjId0,
+                 taskName,
+                 deserializeBinary,
++                recovery,
+                 expiryPlc,
+                 skipVals,
+                 skipStore,
+                 canRemap,
+                 needVer);
+         }
      }
  
      /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
index f1ff668,a26d2f3..7aaa476
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
@@@ -399,12 -295,15 +295,14 @@@ public class GridLocalAtomicCache<K, V
      }
  
      /** {@inheritDoc} */
- 
      @SuppressWarnings("unchecked")
-     @Override @Nullable public V get(K key, boolean deserializeBinary, boolean needVer) throws IgniteCheckedException {
-         String taskName = ctx.kernalContext().job().currentTaskName();
- 
+     @Override protected V get0(
+         final K key,
+         String taskName,
+         boolean deserializeBinary,
+         boolean needVer) throws IgniteCheckedException
+     {
          Map<K, V> m = getAllInternal(Collections.singleton(key),
 -            ctx.isSwapOrOffheapEnabled(),
              ctx.readThrough(),
              taskName,
              deserializeBinary,

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheStoreManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
index 18e40bb,8b93afa..253197d
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
@@@ -555,7 -554,7 +555,7 @@@ public abstract class GridCacheStoreMan
      }
  
      /** {@inheritDoc} */
-     @Override public boolean put(@Nullable IgniteInternalTx tx, KeyCacheObject key, CacheObject val, GridCacheVersion ver)
 -    @Override public final boolean put(@Nullable IgniteInternalTx tx, Object key, Object val, GridCacheVersion ver)
++    @Override public final boolean put(@Nullable IgniteInternalTx tx, KeyCacheObject key, CacheObject val, GridCacheVersion ver)
          throws IgniteCheckedException {
          if (store != null) {
              // Never persist internal keys.
@@@ -600,10 -599,7 +600,10 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public boolean putAll(
 -    @Override public final boolean putAll(@Nullable IgniteInternalTx tx, Map map) throws IgniteCheckedException {
++    @Override public final boolean putAll(
 +        @Nullable IgniteInternalTx tx,
 +        Map<? extends KeyCacheObject, IgniteBiTuple<? extends CacheObject, GridCacheVersion>> map
 +    ) throws IgniteCheckedException {
          if (F.isEmpty(map))
              return true;
  
@@@ -662,7 -658,7 +662,7 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public boolean remove(@Nullable IgniteInternalTx tx, KeyCacheObject key) throws IgniteCheckedException {
 -    @Override public final boolean remove(@Nullable IgniteInternalTx tx, Object key) throws IgniteCheckedException {
++    @Override public final boolean remove(@Nullable IgniteInternalTx tx, KeyCacheObject key) throws IgniteCheckedException {
          if (store != null) {
              // Never remove internal key from store as it is never persisted.
              if (key instanceof GridCacheInternal)
@@@ -705,10 -701,7 +705,10 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public boolean removeAll(
 -    @Override public final boolean removeAll(@Nullable IgniteInternalTx tx, Collection keys) throws IgniteCheckedException {
++    @Override public final boolean removeAll(
 +        @Nullable IgniteInternalTx tx,
 +        Collection<? extends KeyCacheObject> keys
 +    ) throws IgniteCheckedException {
          if (F.isEmpty(keys))
              return true;
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxStoreExceptionAbstractSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeFullApiSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheLargeResultSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
index babd332,1e98eb5..b48d253
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
@@@ -43,13 -58,11 +58,12 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cache.IgniteCacheJoinQueryWithAffinityKeyTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheLargeResultSelfTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheMergeSqlQuerySelfTest;
 +import org.apache.ignite.internal.processors.cache.IgniteCacheMultipleIndexedTypesTest;
+ import org.apache.ignite.internal.processors.cache.IgniteCacheNoClassQuerySelfTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheOffheapEvictQueryTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheOffheapIndexScanTest;
- import org.apache.ignite.internal.processors.cache.IgniteCacheOffheapTieredMultithreadedSelfTest;
- import org.apache.ignite.internal.processors.cache.IgniteCachePartitionedQueryMultiThreadedSelfTest;
+ import org.apache.ignite.internal.processors.cache.IgniteCacheP2pUnmarshallingQueryErrorTest;
  import org.apache.ignite.internal.processors.cache.IgniteCachePrimitiveFieldsQuerySelfTest;
- import org.apache.ignite.internal.processors.cache.IgniteCacheQueryEvictsMultiThreadedSelfTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheQueryH2IndexingLeakTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheQueryIndexSelfTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheQueryLoadSelfTest;
@@@ -166,8 -187,58 +188,60 @@@ public class IgniteCacheQuerySelfTestSu
          suite.addTestSuite(IndexingSpiQuerySelfTest.class);
          suite.addTestSuite(IndexingSpiQueryTxSelfTest.class);
  
 +        suite.addTestSuite(IgniteCacheMultipleIndexedTypesTest.class);
 +
+         // Fields queries.
+         suite.addTestSuite(SqlFieldsQuerySelfTest.class);
+         suite.addTestSuite(IgniteCacheLocalFieldsQuerySelfTest.class);
+         suite.addTestSuite(IgniteCacheReplicatedFieldsQuerySelfTest.class);
+         suite.addTestSuite(IgniteCacheReplicatedFieldsQueryP2PEnabledSelfTest.class);
+         suite.addTestSuite(IgniteCachePartitionedFieldsQuerySelfTest.class);
+         suite.addTestSuite(IgniteCacheAtomicFieldsQuerySelfTest.class);
+         suite.addTestSuite(IgniteCacheAtomicNearEnabledFieldsQuerySelfTest.class);
+         suite.addTestSuite(IgniteCachePartitionedFieldsQueryP2PEnabledSelfTest.class);
+         suite.addTestSuite(IgniteCacheFieldsQueryNoDataSelfTest.class);
+ 
+         suite.addTestSuite(GridCacheQueryIndexingDisabledSelfTest.class);
+ 
+         suite.addTestSuite(GridCacheSwapScanQuerySelfTest.class);
+ 
+         suite.addTestSuite(GridOrderedMessageCancelSelfTest.class);
+ 
+         suite.addTestSuite(CacheQueryOffheapEvictDataLostTest.class);
+ 
+         // Ignite cache and H2 comparison.
+         suite.addTestSuite(BaseH2CompareQueryTest.class);
+         suite.addTestSuite(H2CompareBigQueryTest.class);
+ 
+         // Cache query metrics.
+         suite.addTestSuite(CacheLocalQueryMetricsSelfTest.class);
+         suite.addTestSuite(CachePartitionedQueryMetricsDistributedSelfTest.class);
+         suite.addTestSuite(CachePartitionedQueryMetricsLocalSelfTest.class);
+         suite.addTestSuite(CacheReplicatedQueryMetricsDistributedSelfTest.class);
+         suite.addTestSuite(CacheReplicatedQueryMetricsLocalSelfTest.class);
+ 
+         // Cache query metrics.
+         suite.addTestSuite(CacheLocalQueryDetailMetricsSelfTest.class);
+         suite.addTestSuite(CachePartitionedQueryDetailMetricsDistributedSelfTest.class);
+         suite.addTestSuite(CachePartitionedQueryDetailMetricsLocalSelfTest.class);
+         suite.addTestSuite(CacheReplicatedQueryDetailMetricsDistributedSelfTest.class);
+         suite.addTestSuite(CacheReplicatedQueryDetailMetricsLocalSelfTest.class);
+ 
+         // Unmarshalling query test.
+         suite.addTestSuite(IgniteCacheP2pUnmarshallingQueryErrorTest.class);
+         suite.addTestSuite(IgniteCacheNoClassQuerySelfTest.class);
+ 
+         // Cancellation.
+ 
+         suite.addTestSuite(IgniteCacheDistributedQueryCancelSelfTest.class);
+         suite.addTestSuite(IgniteCacheLocalQueryCancelOrTimeoutSelfTest.class);
+         suite.addTestSuite(IgniteCacheQueryStopOnCancelOrTimeoutDistributedJoinSelfTest.class);
+ 
+         // Other.
+         suite.addTestSuite(CacheQueryNewClientSelfTest.class);
+         suite.addTestSuite(CacheOffheapBatchIndexingSingleTypeTest.class);
+         suite.addTestSuite(CacheSqlQueryValueCopySelfTest.class);
+ 
          return suite;
      }
  }

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteAbstractBenchmark.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteBenchmarkArguments.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/2e55963e/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteBenchmarkUtils.java
----------------------------------------------------------------------


[35/50] [abbrv] ignite git commit: Merge remote-tracking branch 'professional/ignite-gg-8.0.2.ea1' into ignite-gg-8.0.2.ea1

Posted by ag...@apache.org.
Merge remote-tracking branch 'professional/ignite-gg-8.0.2.ea1' into ignite-gg-8.0.2.ea1


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

Branch: refs/heads/ignite-3477
Commit: 302a28fad46cbf186ca114ccb8a26ab6450044d5
Parents: 6d45ace bb485f6
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Fri Dec 23 12:28:25 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Fri Dec 23 12:28:25 2016 +0300

----------------------------------------------------------------------
 .../java/org/apache/ignite/internal/visor/VisorMultiNodeTask.java  | 2 +-
 .../java/org/apache/ignite/internal/visor/VisorTaskArgument.java   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------



[03/50] [abbrv] ignite git commit: ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation minor update

Posted by ag...@apache.org.
ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation  minor update


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

Branch: refs/heads/ignite-3477
Commit: a290fddee1333f2a6ec0ec2dfb530f452c63b3ea
Parents: ad29cc9
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Mon Dec 19 20:19:14 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Mon Dec 19 20:19:14 2016 +0300

----------------------------------------------------------------------
 .../preloader/GridDhtPartitionsExchangeFuture.java    |  4 ++--
 .../processors/cluster/GridClusterStateProcessor.java | 14 +-------------
 2 files changed, 3 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/a290fdde/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index 8f4fb9c..dadcda4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -651,6 +651,8 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
     private ExchangeType onCacheChangeRequest(boolean crd) throws IgniteCheckedException {
         assert !F.isEmpty(reqs) : this;
 
+        boolean clientOnly = cctx.affinity().onCacheChangeRequest(this, crd, reqs);
+
         GridClusterStateProcessor stateProc = cctx.kernalContext().state();
 
         if (exchangeOnChangeGlobalState = stateProc.changeGlobalState(reqs, topologyVersion())){
@@ -660,8 +662,6 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
                 changeGlobalStateExceptions.put(cctx.localNodeId(), changeGlobalStateException);
         }
 
-        boolean clientOnly = cctx.affinity().onCacheChangeRequest(this, crd, reqs);
-
         if (clientOnly) {
             boolean clientCacheStarted = false;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/a290fdde/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
index 673ef04..f42a8ba 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
@@ -331,7 +331,7 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
             if (req.globalStateChange()) {
                 ChangeGlobalStateContext cgsCtx = lastCgsCtx;
 
-                assert cgsCtx != null;
+                assert cgsCtx != null : "reqs: " + Arrays.toString(reqs.toArray());
 
                 cgsCtx.topologyVersion(topVer);
 
@@ -427,18 +427,6 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
 
                 sharedCtx.wal().onActivate(ctx);
 
-                if (sharedCtx.pageStore() != null) {
-                    for (DynamicCacheChangeRequest req : cgsCtx.batch.requests()) {
-                        if (req.startCacheConfiguration() != null && CU.isSystemCache(req.startCacheConfiguration().getName()))
-                            sharedCtx.pageStore().initializeForCache(req.startCacheConfiguration());
-                    }
-
-                    for (DynamicCacheChangeRequest req : cgsCtx.batch.requests()) {
-                        if (req.startCacheConfiguration() != null && !CU.isSystemCache(req.startCacheConfiguration().getName()))
-                            sharedCtx.pageStore().initializeForCache(req.startCacheConfiguration());
-                    }
-                }
-
                 sharedCtx.database().onActivate(ctx);
 
                 if (sharedCtx.pageStore() != null)


[28/50] [abbrv] ignite git commit: Merge with master.

Posted by ag...@apache.org.
Merge with master.


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

Branch: refs/heads/ignite-3477
Commit: cecaf7e8f5b581316873d02fbbf623b0496d0d6b
Parents: 842c1b7 88a7eda
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Thu Dec 22 17:50:29 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Thu Dec 22 17:50:29 2016 +0300

----------------------------------------------------------------------
 .gitignore                                      |   35 +-
 README.md                                       |    8 +
 RELEASE_NOTES.txt                               |   22 +
 assembly/dependencies-fabric-lgpl.xml           |    1 +
 assembly/dependencies-fabric.xml                |    1 +
 assembly/release-base.xml                       |    5 +
 assembly/release-fabric-base.xml                |    1 +
 bin/ignite.sh                                   |    9 +
 config/dotnet/default-dotnet.xml                |   45 +
 examples/pom-standalone.xml                     |    6 +
 examples/pom.xml                                |    2 +-
 examples/redis/redis-example.php                |   82 ++
 examples/redis/redis-example.py                 |   62 +
 examples/schema-import/pom.xml                  |    2 +-
 .../ignite/examples/ExampleNodeStartup.java     |    2 +-
 .../examples/datagrid/CachePutGetExample.java   |    2 +-
 .../examples/datagrid/CacheQueryDmlExample.java |  163 +++
 .../scalar/examples/ScalarJvmCloudExample.scala |    2 +-
 .../CacheExamplesMultiNodeSelfTest.java         |    7 +
 .../ignite/examples/CacheExamplesSelfTest.java  |    8 +
 modules/aop/pom.xml                             |    2 +-
 modules/apache-license-gen/pom.xml              |    2 +-
 modules/aws/pom.xml                             |    2 +-
 modules/benchmarks/pom.xml                      |    2 +-
 .../jmh/misc/JmhIncrementBenchmark.java         |   95 ++
 modules/camel/pom.xml                           |    2 +-
 modules/cassandra/pom.xml                       |   16 +-
 modules/cassandra/serializers/README.txt        |    7 +-
 modules/cassandra/serializers/pom.xml           |    4 +-
 modules/cassandra/store/pom.xml                 |    4 +-
 modules/clients/pom.xml                         |   12 +-
 .../clients/src/test/config/jdbc-bin-config.xml |   54 +
 .../jdbc2/JdbcAbstractDmlStatementSelfTest.java |  263 ++++
 .../JdbcAbstractUpdateStatementSelfTest.java    |   37 +
 ...BinaryMarshallerInsertStatementSelfTest.java |   37 +
 ...cBinaryMarshallerMergeStatementSelfTest.java |   37 +
 .../jdbc2/JdbcDeleteStatementSelfTest.java      |   49 +
 .../jdbc2/JdbcInsertStatementSelfTest.java      |  122 ++
 .../jdbc2/JdbcMergeStatementSelfTest.java       |   91 ++
 .../internal/jdbc2/JdbcNoDefaultCacheTest.java  |   40 +-
 .../internal/jdbc2/JdbcResultSetSelfTest.java   |   18 +
 .../rest/ClientMemcachedProtocolSelfTest.java   |    4 +-
 .../rest/RestProcessorMultiStartSelfTest.java   |   48 +-
 .../rest/protocols/tcp/MockNioSession.java      |   11 +
 .../tcp/redis/RedisProtocolSelfTest.java        |  101 +-
 .../jdbc/suite/IgniteJdbcDriverTestSuite.java   |    5 +
 modules/cloud/pom.xml                           |    2 +-
 modules/codegen/pom.xml                         |    2 +-
 modules/core/pom.xml                            |    2 +-
 .../java/org/apache/ignite/IgniteCache.java     |    2 +
 .../apache/ignite/IgniteSystemProperties.java   |   17 +
 .../binary/BinaryAbstractIdentityResolver.java  |   53 +
 .../binary/BinaryArrayIdentityResolver.java     |  224 +++
 .../binary/BinaryFieldIdentityResolver.java     |  307 ++++
 .../ignite/binary/BinaryIdentityResolver.java   |   42 +
 .../ignite/binary/BinaryTypeConfiguration.java  |   27 +-
 .../org/apache/ignite/cache/QueryEntity.java    |   27 +
 .../rendezvous/RendezvousAffinityFunction.java  |   80 +-
 .../ignite/cache/query/SqlFieldsQuery.java      |    2 +-
 .../cache/store/CacheLoadOnlyStoreAdapter.java  |    6 +-
 .../configuration/CacheConfiguration.java       |   19 +-
 .../configuration/IgniteConfiguration.java      |   48 +
 .../internal/GridEventConsumeHandler.java       |    2 +-
 .../ignite/internal/GridJobContextImpl.java     |    4 +-
 .../ignite/internal/GridKernalContext.java      |    9 +
 .../ignite/internal/GridKernalContextImpl.java  |   16 +-
 .../internal/GridPerformanceSuggestions.java    |    2 +-
 .../org/apache/ignite/internal/GridTopic.java   |    4 +-
 .../ignite/internal/IgniteInternalFuture.java   |   11 +
 .../apache/ignite/internal/IgniteKernal.java    |   71 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |   32 +-
 .../internal/binary/BinaryClassDescriptor.java  |   15 +
 .../ignite/internal/binary/BinaryContext.java   |   76 +-
 .../ignite/internal/binary/BinaryFieldImpl.java |   10 +-
 .../internal/binary/BinaryObjectExImpl.java     |   90 +-
 .../internal/binary/BinaryObjectImpl.java       |   48 +-
 .../binary/BinaryObjectOffheapImpl.java         |   42 +-
 .../internal/binary/BinaryPrimitives.java       |   30 +-
 .../binary/BinarySerializedFieldComparator.java |  343 +++++
 .../ignite/internal/binary/BinaryUtils.java     |    2 +-
 .../internal/binary/BinaryWriterExImpl.java     |   47 +-
 .../internal/binary/GridBinaryMarshaller.java   |    2 +-
 .../binary/builder/BinaryBuilderReader.java     |   11 +
 .../binary/builder/BinaryBuilderSerializer.java |    4 +
 .../binary/builder/BinaryObjectBuilderImpl.java |   16 +
 .../streams/BinaryAbstractInputStream.java      |    5 +
 .../streams/BinaryAbstractOutputStream.java     |    5 +
 .../streams/BinaryByteBufferInputStream.java    |   10 +
 .../binary/streams/BinaryHeapInputStream.java   |    9 +-
 .../binary/streams/BinaryHeapOutputStream.java  |    7 +-
 .../streams/BinaryMemoryAllocatorChunk.java     |    3 +-
 .../streams/BinaryOffheapInputStream.java       |   14 +-
 .../streams/BinaryOffheapOutputStream.java      |    8 +-
 .../internal/binary/streams/BinaryStream.java   |   12 +-
 .../GridClientConnectionManagerAdapter.java     |    1 +
 .../router/impl/GridRouterClientImpl.java       |    2 +-
 .../ignite/internal/jdbc2/JdbcConnection.java   |   17 +
 .../internal/jdbc2/JdbcPreparedStatement.java   |   71 +-
 .../ignite/internal/jdbc2/JdbcQueryTask.java    |    5 +-
 .../ignite/internal/jdbc2/JdbcQueryTaskV2.java  |  406 ++++++
 .../ignite/internal/jdbc2/JdbcResultSet.java    |   72 +-
 .../internal/jdbc2/JdbcSqlFieldsQuery.java      |   49 +
 .../ignite/internal/jdbc2/JdbcStatement.java    |  213 ++-
 .../apache/ignite/internal/jdbc2/JdbcUtils.java |   25 +-
 .../managers/communication/GridIoManager.java   |   33 +-
 .../managers/communication/GridIoMessage.java   |   13 +
 .../communication/GridIoMessageFactory.java     |   62 +-
 .../communication/IgniteIoTestMessage.java      |   13 +-
 .../discovery/GridDiscoveryManager.java         |  118 +-
 .../snapshot/SnapshotFinishedMessage.java       |    2 +-
 .../processors/cache/GridCacheAdapter.java      |  741 ++++------
 .../processors/cache/GridCacheEntryEx.java      |    4 +-
 .../processors/cache/GridCacheMapEntry.java     |   41 +-
 .../processors/cache/GridCacheMessage.java      |    7 +
 .../GridCachePartitionExchangeManager.java      |  121 +-
 .../processors/cache/GridCachePreloader.java    |    8 +-
 .../cache/GridCachePreloaderAdapter.java        |    9 +-
 .../processors/cache/GridCacheProcessor.java    |    2 +-
 .../processors/cache/GridCacheProxyImpl.java    |   24 +-
 .../cache/GridCacheSharedTtlCleanupManager.java |    5 +-
 .../processors/cache/GridCacheTtlManager.java   |    4 +
 .../processors/cache/GridCacheUtils.java        |   62 +-
 .../GridChangeGlobalStateMessageResponse.java   |    2 +-
 .../processors/cache/IgniteInternalCache.java   |    8 +
 .../processors/cache/QueryCursorImpl.java       |   31 +-
 .../binary/CacheObjectBinaryProcessorImpl.java  |    3 +-
 .../distributed/GridCacheTxRecoveryFuture.java  |    4 +-
 .../distributed/GridDistributedLockRequest.java |    5 +
 .../GridDistributedUnlockRequest.java           |    5 +
 .../dht/GridClientPartitionTopology.java        |   38 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |    3 +-
 .../cache/distributed/dht/GridDhtGetFuture.java |    2 +-
 .../distributed/dht/GridDhtLockFuture.java      |   27 +-
 .../distributed/dht/GridDhtLockResponse.java    |    9 +-
 .../dht/GridDhtPartitionTopology.java           |   10 +
 .../dht/GridDhtPartitionTopologyImpl.java       |  171 ++-
 .../distributed/dht/GridDhtTxFinishFuture.java  |   74 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |  125 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |    7 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |    4 +-
 .../dht/atomic/GridDhtAtomicCache.java          |  453 +++---
 .../GridDhtAtomicSingleUpdateRequest.java       |    5 +
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |    5 +
 ...idNearAtomicAbstractSingleUpdateRequest.java |   28 +-
 .../atomic/GridNearAtomicFullUpdateRequest.java |   69 +-
 ...GridNearAtomicSingleUpdateInvokeRequest.java |    6 +-
 .../GridNearAtomicSingleUpdateRequest.java      |    5 +
 .../dht/colocated/GridDhtColocatedCache.java    |   13 -
 .../colocated/GridDhtColocatedLockFuture.java   |    4 +-
 .../dht/preloader/GridDhtPartitionDemander.java |  233 +--
 .../dht/preloader/GridDhtPartitionFullMap.java  |   18 +-
 .../dht/preloader/GridDhtPartitionMap2.java     |    4 +
 .../GridDhtPartitionsExchangeFuture.java        |    2 +-
 .../dht/preloader/GridDhtPreloader.java         |   13 +-
 .../distributed/near/GridNearAtomicCache.java   |   65 +-
 .../distributed/near/GridNearGetRequest.java    |    5 +
 .../distributed/near/GridNearLockFuture.java    |    4 +-
 ...arOptimisticSerializableTxPrepareFuture.java |    4 +-
 .../near/GridNearOptimisticTxPrepareFuture.java |   15 +-
 .../GridNearPessimisticTxPrepareFuture.java     |    4 +-
 .../near/GridNearTxFinishFuture.java            |   46 +-
 .../cache/distributed/near/GridNearTxLocal.java |   48 +-
 .../local/atomic/GridLocalAtomicCache.java      |  174 +--
 .../query/GridCacheDistributedQueryManager.java |    2 +-
 .../cache/query/GridCacheQueryManager.java      |   18 +-
 .../cache/query/GridCacheQueryRequest.java      |    6 +-
 .../cache/query/GridCacheTwoStepQuery.java      |  253 ----
 .../cache/query/IgniteQueryErrorCode.java       |   91 ++
 .../cache/store/CacheStoreManager.java          |    4 +-
 .../store/GridCacheStoreManagerAdapter.java     |   34 +-
 .../cache/store/GridCacheWriteBehindStore.java  |    6 +-
 .../cache/transactions/IgniteTxHandler.java     |   17 +-
 .../transactions/IgniteTxLocalAdapter.java      |   38 +-
 .../cache/transactions/IgniteTxManager.java     |   15 +-
 .../datastreamer/DataStreamProcessor.java       |   22 +-
 .../GridCacheAtomicSequenceImpl.java            |   12 +-
 .../processors/hadoop/HadoopClassLoader.java    |   11 +
 .../internal/processors/hadoop/HadoopJobId.java |   79 +-
 .../processors/hadoop/HadoopJobProperty.java    |   64 +-
 .../hadoop/HadoopMapperAwareTaskOutput.java     |   32 +
 .../processors/hadoop/HadoopTaskContext.java    |    8 +
 .../processors/hadoop/HadoopTaskInfo.java       |   43 +
 .../io/PartiallyOffheapRawComparatorEx.java     |   33 +
 .../hadoop/message/HadoopMessage.java           |   27 +
 .../shuffle/HadoopDirectShuffleMessage.java     |  243 ++++
 .../hadoop/shuffle/HadoopShuffleAck.java        |  170 +++
 .../shuffle/HadoopShuffleFinishRequest.java     |  172 +++
 .../shuffle/HadoopShuffleFinishResponse.java    |  142 ++
 .../hadoop/shuffle/HadoopShuffleMessage.java    |  361 +++++
 .../internal/processors/igfs/IgfsContext.java   |    4 +-
 .../processors/igfs/IgfsDataManager.java        |    6 +-
 .../internal/processors/igfs/IgfsImpl.java      |    2 +-
 .../processors/odbc/OdbcMessageParser.java      |   16 +
 .../processors/odbc/OdbcNioListener.java        |    2 +-
 .../odbc/OdbcQueryGetParamsMetaRequest.java     |   60 +
 .../odbc/OdbcQueryGetParamsMetaResult.java      |   40 +
 .../internal/processors/odbc/OdbcRequest.java   |    3 +
 .../processors/odbc/OdbcRequestHandler.java     |  175 ++-
 .../internal/processors/odbc/OdbcUtils.java     |    4 +-
 .../platform/PlatformAbstractTarget.java        |  268 +---
 .../platform/PlatformAsyncTarget.java           |   44 +
 .../platform/PlatformNoopProcessor.java         |   41 +-
 .../processors/platform/PlatformProcessor.java  |   42 +-
 .../platform/PlatformProcessorImpl.java         |   87 +-
 .../processors/platform/PlatformTarget.java     |  103 +-
 .../platform/PlatformTargetProxy.java           |  126 ++
 .../platform/PlatformTargetProxyImpl.java       |  222 +++
 .../binary/PlatformBinaryProcessor.java         |    6 +-
 .../platform/cache/PlatformCache.java           |   15 +-
 .../cache/PlatformCacheEntryFilterImpl.java     |    4 +-
 .../cache/PlatformCacheEntryProcessorImpl.java  |   43 +-
 .../platform/cache/PlatformCacheIterator.java   |    2 +-
 .../cache/affinity/PlatformAffinity.java        |    4 +-
 .../affinity/PlatformAffinityFunction.java      |   59 +-
 .../PlatformAffinityFunctionTarget.java         |    4 +-
 .../query/PlatformAbstractQueryCursor.java      |    4 +-
 .../query/PlatformContinuousQueryProxy.java     |    3 +-
 .../callback/PlatformCallbackGateway.java       |  272 ++--
 .../platform/callback/PlatformCallbackOp.java   |  206 +++
 .../callback/PlatformCallbackUtils.java         |  544 +------
 .../platform/cluster/PlatformClusterGroup.java  |   18 +-
 .../platform/compute/PlatformAbstractJob.java   |    2 +-
 .../platform/compute/PlatformAbstractTask.java  |   15 +-
 .../platform/compute/PlatformClosureJob.java    |   12 +-
 .../platform/compute/PlatformCompute.java       |   21 +-
 .../platform/compute/PlatformFullJob.java       |   15 +-
 .../platform/compute/PlatformFullTask.java      |   18 +-
 .../datastreamer/PlatformDataStreamer.java      |    4 +-
 .../PlatformStreamReceiverImpl.java             |   11 +-
 .../datastructures/PlatformAtomicLong.java      |    4 +-
 .../datastructures/PlatformAtomicReference.java |    8 +-
 .../datastructures/PlatformAtomicSequence.java  |    2 +-
 .../dotnet/PlatformDotNetCacheStore.java        |    6 +-
 .../platform/events/PlatformEvents.java         |   15 +-
 .../memory/PlatformInputStreamImpl.java         |   14 +-
 .../memory/PlatformOutputStreamImpl.java        |   14 +-
 .../platform/messaging/PlatformMessaging.java   |    9 +-
 .../services/PlatformAbstractService.java       |   25 +-
 .../platform/services/PlatformServices.java     |   27 +-
 .../transactions/PlatformTransactions.java      |    8 +-
 .../platform/utils/PlatformFutureUtils.java     |   18 +-
 .../utils/PlatformListenableTarget.java         |   62 +
 .../platform/utils/PlatformUtils.java           |    8 +-
 .../processors/query/GridQueryIndexing.java     |   23 +-
 .../processors/query/GridQueryProcessor.java    |  591 ++++++--
 .../processors/query/GridQueryProperty.java     |   20 +
 .../query/GridQueryTypeDescriptor.java          |   25 +
 .../processors/query/IgniteSQLException.java    |   89 ++
 .../processors/rest/GridRestProcessor.java      |   15 +
 .../redis/GridRedisRestCommandHandler.java      |    1 +
 .../redis/key/GridRedisDelCommandHandler.java   |    7 +-
 .../key/GridRedisExistsCommandHandler.java      |    7 +-
 .../server/GridRedisDbSizeCommandHandler.java   |    7 +-
 .../string/GridRedisAppendCommandHandler.java   |    7 +-
 .../string/GridRedisGetCommandHandler.java      |   34 +-
 .../string/GridRedisGetRangeCommandHandler.java |    7 +-
 .../string/GridRedisGetSetCommandHandler.java   |    7 +-
 .../string/GridRedisIncrDecrCommandHandler.java |   70 +-
 .../string/GridRedisMGetCommandHandler.java     |    7 +-
 .../string/GridRedisMSetCommandHandler.java     |    7 +-
 .../string/GridRedisSetCommandHandler.java      |   31 +-
 .../string/GridRedisSetRangeCommandHandler.java |    7 +-
 .../string/GridRedisStrlenCommandHandler.java   |    7 +-
 .../tcp/GridTcpMemcachedNioListener.java        |   15 +-
 .../protocols/tcp/GridTcpRestNioListener.java   |    2 +-
 .../tcp/redis/GridRedisNioListener.java         |    4 +-
 .../service/GridServiceProcessor.java           |   10 +-
 .../ignite/internal/util/GridHandleTable.java   |   10 +-
 .../apache/ignite/internal/util/GridUnsafe.java |   61 +-
 .../ignite/internal/util/IgniteUtils.java       |  105 +-
 .../ignite/internal/util/StripedExecutor.java   |  667 +++++++++
 .../util/future/GridCompoundFuture.java         |   56 +-
 .../util/future/GridFinishedFuture.java         |   24 +
 .../internal/util/future/GridFutureAdapter.java |   15 +-
 .../util/future/GridFutureChainListener.java    |   30 +-
 .../internal/util/io/GridUnsafeDataInput.java   |   12 +-
 .../internal/util/io/GridUnsafeDataOutput.java  |   12 +-
 .../internal/util/ipc/IpcToNioAdapter.java      |    2 +-
 .../util/lang/IgniteSingletonIterator.java      |   56 +
 .../util/nio/GridCommunicationClient.java       |    4 +-
 .../nio/GridConnectionBytesVerifyFilter.java    |   15 +-
 .../util/nio/GridNioAsyncNotifyFilter.java      |   10 +-
 .../internal/util/nio/GridNioCodecFilter.java   |   17 +-
 .../ignite/internal/util/nio/GridNioFilter.java |   16 +-
 .../internal/util/nio/GridNioFilterAdapter.java |   10 +-
 .../internal/util/nio/GridNioFilterChain.java   |   14 +-
 .../ignite/internal/util/nio/GridNioFuture.java |    4 +-
 .../util/nio/GridNioRecoveryDescriptor.java     |   95 +-
 .../ignite/internal/util/nio/GridNioServer.java | 1343 ++++++++++++++----
 .../internal/util/nio/GridNioSession.java       |   11 +
 .../internal/util/nio/GridNioSessionImpl.java   |   49 +-
 .../ignite/internal/util/nio/GridNioWorker.java |   48 +
 .../util/nio/GridSelectorNioSessionImpl.java    |  157 +-
 .../util/nio/GridTcpNioCommunicationClient.java |   49 +-
 .../internal/util/nio/SessionWriteRequest.java  |   85 ++
 .../internal/util/nio/ssl/GridNioSslFilter.java |   10 +-
 .../util/nio/ssl/GridNioSslHandler.java         |    4 +-
 .../util/offheap/unsafe/GridUnsafeMemory.java   |   10 +-
 .../util/tostring/GridToStringBuilder.java      |    2 +-
 .../internal/visor/query/VisorQueryJob.java     |    2 +-
 .../ignite/marshaller/jdk/JdkMarshaller.java    |    4 +-
 .../optimized/OptimizedMarshaller.java          |    8 +-
 .../optimized/OptimizedObjectOutputStream.java  |   25 +-
 .../communication/tcp/TcpCommunicationSpi.java  |  324 +++--
 .../tcp/TcpCommunicationSpiMBean.java           |   40 +
 .../ignite/spi/discovery/tcp/ServerImpl.java    |   57 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   14 +-
 .../tcp/internal/TcpDiscoveryStatistics.java    |    4 +
 .../org/apache/ignite/stream/StreamAdapter.java |    4 +-
 .../ignite/thread/IgniteThreadFactory.java      |    8 +-
 .../resources/META-INF/classnames.properties    |   69 +-
 .../core/src/main/resources/ignite.properties   |    2 +-
 .../AbstractAffinityFunctionSelfTest.java       |    2 +-
 .../BinaryArrayIdentityResolverSelfTest.java    |  300 ++++
 .../BinaryFieldIdentityResolverSelfTest.java    |  333 +++++
 .../binary/BinaryFieldsOffheapSelfTest.java     |    2 +-
 .../BinaryFooterOffsetsOffheapSelfTest.java     |    2 +-
 ...ryIdentityResolverConfigurationSelfTest.java |  138 ++
 .../binary/BinaryMarshallerSelfTest.java        |    2 +-
 .../BinaryObjectBuilderAdditionalSelfTest.java  |  157 +-
 ...naryObjectBuilderDefaultMappersSelfTest.java |    2 +-
 .../BinarySerialiedFieldComparatorSelfTest.java |  568 ++++++++
 ...unicationBalanceMultipleConnectionsTest.java |   28 +
 .../IgniteCommunicationBalanceTest.java         |  339 +++++
 .../communication/IgniteIoTestMessagesTest.java |   95 ++
 .../IgniteVariousConnectionNumberTest.java      |  166 +++
 .../GridDiscoveryManagerAliveCacheSelfTest.java |    2 +-
 .../cache/CrossCacheTxRandomOperationsTest.java |   30 +-
 ...idAbstractCacheInterceptorRebalanceTest.java |    4 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |    4 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |    6 +-
 ...CacheOffHeapMultiThreadedUpdateSelfTest.java |    6 +-
 .../GridCachePartitionedAffinitySpreadTest.java |    7 +-
 .../processors/cache/GridCacheTestEntryEx.java  |    3 +-
 .../GridCacheTtlManagerEvictionSelfTest.java    |    1 +
 .../IgniteTxStoreExceptionAbstractSelfTest.java |    1 +
 .../GridCacheBinaryObjectsAbstractSelfTest.java |  260 +++-
 ...achePartitionedAtomicSequenceTxSelfTest.java |  169 +++
 .../CacheLockReleaseNodeLeaveTest.java          |  135 ++
 ...eAtomicMessageRecovery10ConnectionsTest.java |   28 +
 ...cMessageRecoveryNoPairedConnectionsTest.java |   47 +
 ...acheConnectionRecovery10ConnectionsTest.java |   35 +
 .../distributed/IgniteCacheCreatePutTest.java   |    2 +-
 .../distributed/dht/GridCacheDhtTestUtils.java  |  232 ---
 .../dht/IgniteCacheMultiTxLockSelfTest.java     |    6 +-
 ...nabledMultiNodeLongTxTimeoutFullApiTest.java |    2 +-
 ...achePartitionedMultiNodeFullApiSelfTest.java |   37 +-
 ...edNoStripedPoolMultiNodeFullApiSelfTest.java |   35 +
 .../GridCacheRebalancingSyncSelfTest.java       |    2 +
 ...eCacheExpiryPolicyWithStoreAbstractTest.java |   40 +
 .../TxDeadlockDetectionNoHangsTest.java         |    2 +-
 .../TxOptimisticDeadlockDetectionTest.java      |   29 +-
 ...lockMessageSystemPoolStarvationSelfTest.java |   14 +-
 .../GridServiceProcessorProxySelfTest.java      |    2 +-
 .../util/future/GridFutureAdapterSelfTest.java  |  122 +-
 .../nio/impl/GridNioFilterChainSelfTest.java    |   18 +-
 .../loadtests/nio/GridNioBenchmarkClient.java   |    4 +-
 .../p2p/GridP2PRecursionTaskSelfTest.java       |    2 +-
 ...mmunicationSpiConcurrentConnectSelfTest.java |   37 +-
 ...cpCommunicationSpiMultithreadedSelfTest.java |    9 +-
 ...dTcpCommunicationSpiRecoveryAckSelfTest.java |    6 +-
 ...ationSpiRecoveryNoPairedConnectionsTest.java |   28 +
 ...GridTcpCommunicationSpiRecoverySelfTest.java |    8 +
 ...CommunicationRecoveryAckClosureSelfTest.java |    6 +-
 .../junits/GridTestKernalContext.java           |    4 +-
 .../IgniteBinaryObjectsTestSuite.java           |   10 +
 .../IgniteCacheDataStructuresSelfTestSuite.java |    5 +-
 .../IgniteCacheFullApiSelfTestSuite.java        |    4 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |   15 +
 .../testsuites/IgniteCacheTestSuite4.java       |    3 +
 .../testsuites/IgniteCacheTestSuite5.java       |    1 +
 .../IgniteSpiCommunicationSelfTestSuite.java    |    2 +
 modules/docker/1.8.0/Dockerfile                 |   46 +
 modules/docker/1.8.0/run.sh                     |   51 +
 modules/docker/Dockerfile                       |    6 +-
 modules/extdata/p2p/pom.xml                     |    2 +-
 .../extdata/uri/modules/uri-dependency/pom.xml  |    2 +-
 modules/extdata/uri/pom.xml                     |    2 +-
 modules/flink/pom.xml                           |    2 +-
 modules/flume/pom.xml                           |    2 +-
 modules/gce/pom.xml                             |    2 +-
 modules/geospatial/pom.xml                      |    2 +-
 modules/hadoop/pom.xml                          |    9 +-
 .../hadoop/io/PartiallyRawComparator.java       |   33 +
 .../org/apache/ignite/hadoop/io/RawMemory.java  |   86 ++
 .../hadoop/io/TextPartiallyRawComparator.java   |  115 ++
 .../apache/ignite/hadoop/io/package-info.java   |   22 +
 .../IgniteHadoopClientProtocolProvider.java     |   70 +-
 .../processors/hadoop/HadoopMapperUtils.java    |   56 +
 .../hadoop/impl/fs/HadoopFileSystemsUtils.java  |   11 +
 .../hadoop/impl/proto/HadoopClientProtocol.java |   55 +-
 .../hadoop/impl/v2/HadoopV2Context.java         |   11 +
 ...DelegatingPartiallyOffheapRawComparator.java |   54 +
 .../processors/hadoop/impl/v2/HadoopV2Job.java  |   22 +-
 .../impl/v2/HadoopV2JobResourceManager.java     |   25 +-
 .../hadoop/impl/v2/HadoopV2MapTask.java         |   10 +
 .../hadoop/impl/v2/HadoopV2TaskContext.java     |   21 +
 .../processors/hadoop/io/OffheapRawMemory.java  |  131 ++
 .../hadoop/jobtracker/HadoopJobTracker.java     |    8 +-
 .../hadoop/mapreduce/MapReduceClient.java       |  147 ++
 .../hadoop/message/HadoopMessage.java           |   27 -
 .../hadoop/shuffle/HadoopShuffle.java           |  112 +-
 .../hadoop/shuffle/HadoopShuffleAck.java        |   92 --
 .../hadoop/shuffle/HadoopShuffleJob.java        |  748 ++++++++--
 .../hadoop/shuffle/HadoopShuffleLocalState.java |   67 +
 .../hadoop/shuffle/HadoopShuffleMessage.java    |  242 ----
 .../shuffle/HadoopShuffleRemoteState.java       |   61 +
 .../shuffle/collections/HadoopMultimapBase.java |    5 +-
 .../shuffle/collections/HadoopSkipList.java     |   14 +-
 .../shuffle/direct/HadoopDirectDataInput.java   |  166 +++
 .../shuffle/direct/HadoopDirectDataOutput.java  |  221 +++
 .../direct/HadoopDirectDataOutputContext.java   |  100 ++
 .../direct/HadoopDirectDataOutputState.java     |   54 +
 .../shuffle/streams/HadoopDataOutStream.java    |    2 +-
 .../child/HadoopChildProcessRunner.java         |   12 +-
 .../HadoopExternalCommunication.java            |    4 +-
 .../communication/HadoopIpcToNioAdapter.java    |    2 +-
 .../communication/HadoopMarshallerFilter.java   |    6 +-
 .../resources/META-INF/classnames.properties    |  114 ++
 .../hadoop/impl/HadoopAbstractSelfTest.java     |   13 +-
 .../impl/HadoopAbstractWordCountTest.java       |    6 +-
 .../hadoop/impl/HadoopFileSystemsTest.java      |    9 +
 .../hadoop/impl/HadoopJobTrackerSelfTest.java   |    4 +-
 .../impl/HadoopMapReduceEmbeddedSelfTest.java   |   22 +-
 .../impl/HadoopTaskExecutionSelfTest.java       |    4 +-
 .../hadoop/impl/HadoopTeraSortTest.java         |  383 +++++
 ...opClientProtocolMultipleServersSelfTest.java |   93 +-
 .../client/HadoopClientProtocolSelfTest.java    |  232 +--
 .../collections/HadoopAbstractMapTest.java      |    6 +
 .../HadoopConcurrentHashMultimapSelftest.java   |    2 +-
 .../collections/HadoopSkipListSelfTest.java     |   16 +-
 .../HadoopExternalTaskExecutionSelfTest.java    |    2 +
 .../testsuites/IgniteHadoopTestSuite.java       |    3 +
 modules/hibernate/pom.xml                       |    2 +-
 modules/indexing/pom.xml                        |    2 +-
 .../cache/query/GridCacheTwoStepQuery.java      |  253 ++++
 .../query/h2/DmlStatementsProcessor.java        | 1083 ++++++++++++++
 .../query/h2/GridH2ResultSetIterator.java       |    3 +-
 .../processors/query/h2/IgniteH2Indexing.java   |  130 +-
 .../query/h2/dml/FastUpdateArgument.java        |   27 +
 .../query/h2/dml/FastUpdateArguments.java       |   53 +
 .../query/h2/dml/KeyValueSupplier.java          |   30 +
 .../processors/query/h2/dml/UpdateMode.java     |   36 +
 .../processors/query/h2/dml/UpdatePlan.java     |  128 ++
 .../query/h2/dml/UpdatePlanBuilder.java         |  486 +++++++
 .../processors/query/h2/dml/package-info.java   |   22 +
 .../query/h2/opt/GridH2RowDescriptor.java       |   23 +
 .../query/h2/opt/GridH2TreeIndex.java           |    2 +-
 .../processors/query/h2/sql/DmlAstUtils.java    |  616 ++++++++
 .../processors/query/h2/sql/GridSqlArray.java   |    8 +
 .../processors/query/h2/sql/GridSqlConst.java   |    6 +
 .../processors/query/h2/sql/GridSqlDelete.java  |   68 +
 .../query/h2/sql/GridSqlFunction.java           |    5 +-
 .../processors/query/h2/sql/GridSqlInsert.java  |  149 ++
 .../processors/query/h2/sql/GridSqlKeyword.java |   46 +
 .../processors/query/h2/sql/GridSqlMerge.java   |  143 ++
 .../processors/query/h2/sql/GridSqlQuery.java   |   44 +-
 .../query/h2/sql/GridSqlQueryParser.java        |  323 ++++-
 .../query/h2/sql/GridSqlQuerySplitter.java      |    6 +-
 .../processors/query/h2/sql/GridSqlSelect.java  |    3 +-
 .../query/h2/sql/GridSqlStatement.java          |   64 +
 .../processors/query/h2/sql/GridSqlUpdate.java  |  105 ++
 .../h2/twostep/GridReduceQueryExecutor.java     |   61 +-
 ...niteCacheAbstractInsertSqlQuerySelfTest.java |  559 ++++++++
 .../IgniteCacheAbstractSqlDmlQuerySelfTest.java |  243 ++++
 .../IgniteCacheDeleteSqlQuerySelfTest.java      |  106 ++
 .../IgniteCacheInsertSqlQuerySelfTest.java      |  203 +++
 .../cache/IgniteCacheLargeResultSelfTest.java   |   15 +-
 .../cache/IgniteCacheMergeSqlQuerySelfTest.java |  153 ++
 .../IgniteCacheUpdateSqlQuerySelfTest.java      |  472 ++++++
 .../IgniteCacheAtomicFieldsQuerySelfTest.java   |   21 -
 .../h2/GridIndexingSpiAbstractSelfTest.java     |   37 +-
 .../query/h2/sql/GridQueryParsingTest.java      |  109 +-
 .../IgniteCacheQuerySelfTestSuite.java          |  143 +-
 .../IgniteCacheQuerySelfTestSuite2.java         |  111 +-
 .../IgniteH2IndexingSpiTestSuite.java           |   16 +-
 modules/jcl/pom.xml                             |    2 +-
 modules/jms11/pom.xml                           |    2 +-
 modules/jta/pom.xml                             |    2 +-
 modules/kafka/pom.xml                           |    2 +-
 .../ignite/stream/kafka/KafkaStreamer.java      |   50 +-
 .../kafka/KafkaIgniteStreamerSelfTest.java      |   36 +-
 modules/log4j/pom.xml                           |    2 +-
 modules/log4j2/pom.xml                          |    2 +-
 modules/mesos/pom.xml                           |    2 +-
 modules/mqtt/pom.xml                            |    2 +-
 modules/osgi-karaf/pom.xml                      |    2 +-
 modules/osgi-paxlogging/pom.xml                 |    2 +-
 modules/osgi/pom.xml                            |    3 +-
 .../include/ignite/binary/binary_raw_reader.h   |   21 +
 .../ignite/impl/binary/binary_reader_impl.h     |    9 +-
 .../src/impl/binary/binary_reader_impl.cpp      |   20 +-
 .../platforms/cpp/common/include/Makefile.am    |    5 +-
 .../common/include/ignite/common/concurrent.h   |   90 +-
 .../include/ignite/common/reference_impl.h      |  286 ++++
 .../cpp/common/include/ignite/reference.h       |  564 ++++++++
 .../cpp/common/project/vs/common.vcxproj        |    2 +
 .../common/project/vs/common.vcxproj.filters    |    6 +
 modules/platforms/cpp/configure.ac              |    2 +-
 modules/platforms/cpp/configure.acrel           |    2 +-
 modules/platforms/cpp/core-test/Makefile.am     |    7 +-
 .../core-test/config/cache-query-continuous.xml |   87 ++
 .../cpp/core-test/config/cache-query.xml        |   10 +
 .../cpp/core-test/config/cache-test.xml         |    1 +
 .../platforms/cpp/core-test/config/invalid.xml  |   39 +
 .../cpp/core-test/project/vs/core-test.vcxproj  |   13 +-
 .../project/vs/core-test.vcxproj.filters        |   11 +-
 .../cpp/core-test/src/cache_query_test.cpp      |   76 +-
 .../cpp/core-test/src/continuous_query_test.cpp |  611 ++++++++
 .../cpp/core-test/src/handle_registry_test.cpp  |   18 +-
 .../cpp/core-test/src/interop_test.cpp          |   17 +-
 .../cpp/core-test/src/reference_test.cpp        |  412 ++++++
 modules/platforms/cpp/core/Makefile.am          |    1 +
 .../cpp/core/include/ignite/cache/cache.h       |  104 +-
 .../cpp/core/include/ignite/cache/cache_entry.h |   40 +-
 .../ignite/cache/event/cache_entry_event.h      |  139 ++
 .../cache/event/cache_entry_event_listener.h    |   71 +
 .../cache/query/continuous/continuous_query.h   |  239 ++++
 .../query/continuous/continuous_query_handle.h  |  133 ++
 .../core/include/ignite/impl/cache/cache_impl.h |  116 +-
 .../continuous/continuous_query_handle_impl.h   |  101 ++
 .../query/continuous/continuous_query_impl.h    |  351 +++++
 .../core/include/ignite/impl/handle_registry.h  |   62 +-
 .../include/ignite/impl/ignite_environment.h    |   34 +-
 modules/platforms/cpp/core/namespaces.dox       |   74 +-
 .../platforms/cpp/core/project/vs/core.vcxproj  |    7 +
 .../cpp/core/project/vs/core.vcxproj.filters    |   30 +
 modules/platforms/cpp/core/src/ignition.cpp     |   15 +-
 .../cpp/core/src/impl/cache/cache_impl.cpp      |   31 +
 .../continuous/continuous_query_handle_impl.cpp |   96 ++
 .../cpp/core/src/impl/handle_registry.cpp       |  102 +-
 .../cpp/core/src/impl/ignite_environment.cpp    |  146 +-
 modules/platforms/cpp/examples/Makefile.am      |    1 +
 modules/platforms/cpp/examples/configure.ac     |    3 +-
 .../continuous-query-example/Makefile.am        |   58 +
 .../config/continuous-query-example.xml         |   52 +
 .../project/vs/continuous-query-example.vcxproj |  110 ++
 .../vs/continuous-query-example.vcxproj.filters |   35 +
 .../src/continuous_query_example.cpp            |  142 ++
 .../examples/include/ignite/examples/person.h   |    2 +-
 .../odbc-example/config/example-odbc.xml        |   38 +-
 .../project/vs/odbc-example.vcxproj             |    7 +-
 .../project/vs/odbc-example.vcxproj.filters     |    8 +
 .../examples/odbc-example/src/odbc_example.cpp  |  514 ++++++-
 .../cpp/examples/project/vs/ignite-examples.sln |    6 +
 .../putget-example/src/putget_example.cpp       |    2 +-
 .../query-example/src/query_example.cpp         |    4 +-
 .../cpp/jni/include/ignite/jni/exports.h        |    3 -
 .../platforms/cpp/jni/include/ignite/jni/java.h |   94 +-
 modules/platforms/cpp/jni/project/vs/module.def |    6 +-
 modules/platforms/cpp/jni/src/exports.cpp       |    8 -
 modules/platforms/cpp/jni/src/java.cpp          |  419 +-----
 .../odbc-test/config/queries-test-noodbc.xml    |    4 +
 .../cpp/odbc-test/config/queries-test.xml       |   41 +
 .../platforms/cpp/odbc-test/include/Makefile.am |    1 +
 .../cpp/odbc-test/include/complex_type.h        |  122 ++
 .../cpp/odbc-test/project/vs/odbc-test.vcxproj  |    5 +-
 .../project/vs/odbc-test.vcxproj.filters        |    3 +
 .../src/application_data_buffer_test.cpp        |    2 +-
 .../cpp/odbc-test/src/queries_test.cpp          |  437 +++++-
 .../platforms/cpp/odbc/include/ignite/odbc.h    |   14 +-
 .../ignite/odbc/app/application_data_buffer.h   |    4 +-
 .../odbc/include/ignite/odbc/app/parameter.h    |    2 +-
 .../cpp/odbc/include/ignite/odbc/common_types.h |    3 +
 .../cpp/odbc/include/ignite/odbc/message.h      |  138 +-
 .../odbc/include/ignite/odbc/query/data_query.h |   12 +-
 .../cpp/odbc/include/ignite/odbc/query/query.h  |   44 +-
 .../cpp/odbc/include/ignite/odbc/statement.h    |   83 +-
 .../cpp/odbc/include/ignite/odbc/type_traits.h  |    2 +-
 .../cpp/odbc/include/ignite/odbc/utility.h      |   11 +-
 .../cpp/odbc/install/ignite-odbc-amd64.wxs      |    2 +-
 .../cpp/odbc/install/ignite-odbc-x86.wxs        |    2 +-
 .../odbc/src/app/application_data_buffer.cpp    |   57 +-
 .../platforms/cpp/odbc/src/app/parameter.cpp    |    3 +-
 modules/platforms/cpp/odbc/src/column.cpp       |   41 +-
 modules/platforms/cpp/odbc/src/connection.cpp   |   23 +-
 modules/platforms/cpp/odbc/src/entry_points.cpp |   32 +-
 modules/platforms/cpp/odbc/src/odbc.cpp         |   25 +-
 .../odbc/src/query/column_metadata_query.cpp    |    2 +-
 .../platforms/cpp/odbc/src/query/data_query.cpp |    6 +-
 .../cpp/odbc/src/query/foreign_keys_query.cpp   |    2 +-
 .../cpp/odbc/src/query/primary_keys_query.cpp   |    2 +-
 .../odbc/src/query/special_columns_query.cpp    |    2 +-
 .../cpp/odbc/src/query/table_metadata_query.cpp |    2 +-
 .../cpp/odbc/src/query/type_info_query.cpp      |    2 +-
 modules/platforms/cpp/odbc/src/statement.cpp    |  230 ++-
 modules/platforms/cpp/odbc/src/type_traits.cpp  |    3 +
 modules/platforms/cpp/odbc/src/utility.cpp      |   22 +-
 modules/platforms/cpp/project/vs/ignite.slnrel  |    3 +
 .../platforms/cpp/project/vs/ignite_x86.slnrel  |    3 +
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Apache.Ignite.AspNet.nuspec                 |    4 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Binary/BinaryCompactFooterInteropTest.cs    |   31 +-
 .../Cache/Query/CacheLinqTest.cs                |   21 +-
 .../Query/CacheQueriesCodeConfigurationTest.cs  |   17 +-
 .../Cache/Query/CacheQueriesTest.cs             |    8 +
 .../Examples/Example.cs                         |    6 +-
 .../Examples/ExamplesTest.cs                    |    7 +-
 .../Apache.Ignite.Core.Tests/ExecutableTest.cs  |   64 +-
 .../Process/IgniteProcess.cs                    |   21 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Apache.Ignite.Core.Tests/ReconnectTest.cs   |    4 +-
 .../Services/ServicesTest.cs                    |   46 +-
 .../Apache.Ignite.Core.Tests/TestUtils.cs       |    3 +-
 .../Apache.Ignite.Core.csproj                   |    2 +
 .../dotnet/Apache.Ignite.Core/Binary/IBinary.cs |    3 +-
 .../Apache.Ignite.Core/Cache/Query/QueryBase.cs |   15 +-
 .../Apache.Ignite.Core/IgniteConfiguration.cs   |    1 +
 .../Impl/Binary/BinaryUtils.cs                  |   16 +
 .../Impl/Binary/Io/BinaryStreamBase.cs          |    4 +-
 .../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs  |   29 +-
 .../Apache.Ignite.Core/Impl/Common/Future.cs    |   13 +-
 .../Impl/Common/Listenable.cs                   |   49 +
 .../Impl/Compute/ComputeImpl.cs                 |    4 +-
 .../Impl/Compute/ComputeTaskHolder.cs           |   14 +-
 .../Apache.Ignite.Core/Impl/PlatformTarget.cs   |    2 +-
 .../Impl/Unmanaged/IgniteJniNativeMethods.cs    |    8 -
 .../Impl/Unmanaged/UnmanagedCallbackHandlers.cs |   79 +-
 .../Impl/Unmanaged/UnmanagedCallbackOp.cs       |   86 ++
 .../Impl/Unmanaged/UnmanagedCallbacks.cs        | 1229 ++++++++--------
 .../Impl/Unmanaged/UnmanagedUtils.cs            |    5 -
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../EntityFrameworkCacheTest.cs                 |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Impl/CacheQueryExpressionVisitor.cs         |   12 +-
 .../Apache.Ignite.Linq/Impl/MethodVisitor.cs    |   34 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 modules/platforms/dotnet/Apache.Ignite.sln      |    7 +
 .../Apache.Ignite/Config/ArgsConfigurator.cs    |    7 +-
 .../dotnet/Apache.Ignite/Config/Configurator.cs |   10 +
 .../Apache.Ignite/Properties/AssemblyInfo.cs    |    6 +-
 modules/platforms/dotnet/DEVNOTES.txt           |   12 +-
 modules/platforms/dotnet/README.md              |  150 ++
 modules/platforms/dotnet/build.bat              |   14 +
 modules/platforms/dotnet/build.ps1              |  211 +++
 .../Datagrid/MultiTieredCacheExample.cs         |    8 +-
 .../Misc/ClientReconnectExample.cs              |   18 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 .../Properties/AssemblyInfo.cs                  |    6 +-
 modules/rest-http/pom.xml                       |    2 +-
 modules/scalar-2.10/pom.xml                     |    2 +-
 modules/scalar/pom.xml                          |    2 +-
 modules/schedule/pom.xml                        |    2 +-
 modules/schema-import-db/pom.xml                |    2 +-
 modules/schema-import/pom.xml                   |    2 +-
 modules/slf4j/pom.xml                           |    2 +-
 modules/spark-2.10/pom.xml                      |    2 +-
 modules/spark/pom.xml                           |    2 +-
 modules/spring/pom.xml                          |    2 +-
 modules/ssh/pom.xml                             |    2 +-
 modules/storm/pom.xml                           |    2 +-
 modules/tools/pom.xml                           |    2 +-
 .../ignite/tools/classgen/ClassesGenerator.java |    8 +-
 modules/twitter/pom.xml                         |    2 +-
 modules/urideploy/pom.xml                       |    2 +-
 modules/visor-console-2.10/pom.xml              |    2 +-
 modules/visor-console/pom.xml                   |    2 +-
 modules/visor-plugins/pom.xml                   |    2 +-
 modules/web-console/backend/app/agent.js        |   32 +-
 modules/web-console/backend/app/browser.js      |   13 +
 modules/web-console/backend/app/mongo.js        |    6 +
 .../backend/config/settings.json.sample         |    7 -
 modules/web-console/backend/index.js            |    6 +-
 modules/web-console/backend/middlewares/host.js |    7 +-
 modules/web-console/backend/routes/agent.js     |    4 +-
 modules/web-console/backend/services/agents.js  |    2 +-
 modules/web-console/backend/services/caches.js  |    2 +
 .../docker/compose/backend/.dockerignore        |    2 +
 .../docker/compose/backend/Dockerfile           |    6 +-
 .../web-console/docker/compose/backend/build.sh |    4 +-
 .../docker/compose/docker-compose.yml           |    5 -
 .../docker/compose/frontend/DockerfileBuild     |    4 +-
 .../docker/compose/frontend/build.sh            |    6 +-
 .../compose/frontend/nginx/web-console.conf     |    9 +
 .../web-console/docker/standalone/.dockerignore |    5 +
 .../web-console/docker/standalone/Dockerfile    |   10 +-
 modules/web-console/docker/standalone/build.sh  |    4 +-
 .../docker/standalone/docker-compose.yml        |    7 +-
 .../docker/standalone/nginx/web-console.conf    |    9 +
 .../frontend/app/data/pom-dependencies.json     |    2 +-
 .../directives/ui-ace-pojos/ui-ace-pojos.jade   |    2 +-
 .../frontend/app/filters/duration.filter.js     |    3 +
 .../helpers/jade/form/form-field-checkbox.jade  |    2 +-
 .../helpers/jade/form/form-field-datalist.jade  |    2 +-
 .../helpers/jade/form/form-field-dropdown.jade  |    2 +-
 .../helpers/jade/form/form-field-number.jade    |    2 +-
 .../helpers/jade/form/form-field-password.jade  |    2 +-
 .../app/helpers/jade/form/form-field-text.jade  |    2 +-
 .../frontend/app/helpers/jade/mixins.jade       |   24 +-
 .../modules/configuration/generator/Beans.js    |    6 +
 .../generator/ConfigurationGenerator.js         |  165 ++-
 .../generator/JavaTransformer.service.js        |   15 +-
 .../generator/Properties.service.js             |   19 +
 .../generator/SpringTransformer.service.js      |   22 +-
 .../generator/defaults/cache.provider.js        |    8 +
 .../generator/defaults/cluster.provider.js      |    2 +-
 .../app/modules/form/field/tooltip.directive.js |    2 +-
 .../app/modules/form/group/tooltip.directive.js |    2 +-
 .../app/modules/form/panel/field.directive.js   |    4 +-
 .../app/modules/sql/scan-filter-input.jade      |    2 +-
 .../frontend/app/modules/sql/sql.controller.js  |    6 +-
 .../configuration/caches/client-near-cache.jade |    2 +-
 .../configuration/caches/concurrency.jade       |    2 +-
 .../states/configuration/caches/general.jade    |    2 +-
 .../states/configuration/caches/memory.jade     |    2 +-
 .../configuration/caches/near-cache-client.jade |    2 +-
 .../configuration/caches/near-cache-server.jade |    2 +-
 .../configuration/caches/node-filter.jade       |    2 +-
 .../states/configuration/caches/query.jade      |    2 +-
 .../states/configuration/caches/rebalance.jade  |    2 +-
 .../states/configuration/caches/statistics.jade |    2 +-
 .../states/configuration/caches/store.jade      |   20 +-
 .../states/configuration/clusters/atomic.jade   |    2 +-
 .../configuration/clusters/attributes.jade      |    2 +-
 .../states/configuration/clusters/binary.jade   |    2 +-
 .../configuration/clusters/cache-key-cfg.jade   |    2 +-
 .../configuration/clusters/checkpoint.jade      |    8 +-
 .../configuration/clusters/checkpoint/fs.jade   |    2 +-
 .../configuration/clusters/checkpoint/jdbc.jade |   41 +-
 .../configuration/clusters/checkpoint/s3.jade   |  229 +--
 .../configuration/clusters/collision.jade       |   12 +-
 .../clusters/collision/custom.jade              |    2 +-
 .../clusters/collision/fifo-queue.jade          |    2 +-
 .../clusters/collision/job-stealing.jade        |    2 +-
 .../clusters/collision/priority-queue.jade      |    2 +-
 .../configuration/clusters/communication.jade   |    2 +-
 .../configuration/clusters/connector.jade       |    2 +-
 .../configuration/clusters/deployment.jade      |    2 +-
 .../configuration/clusters/discovery.jade       |    2 +-
 .../states/configuration/clusters/events.jade   |    2 +-
 .../states/configuration/clusters/failover.jade |    2 +-
 .../states/configuration/clusters/general.jade  |    2 +-
 .../clusters/general/discovery/cloud.jade       |    2 +-
 .../clusters/general/discovery/google.jade      |    2 +-
 .../clusters/general/discovery/jdbc.jade        |    3 +-
 .../clusters/general/discovery/multicast.jade   |    2 +-
 .../clusters/general/discovery/s3.jade          |    2 +-
 .../clusters/general/discovery/shared.jade      |    2 +-
 .../clusters/general/discovery/vm.jade          |    2 +-
 .../clusters/general/discovery/zookeeper.jade   |    2 +-
 .../bounded-exponential-backoff.jade            |    2 +-
 .../discovery/zookeeper/retrypolicy/custom.jade |    2 +-
 .../retrypolicy/exponential-backoff.jade        |    2 +-
 .../zookeeper/retrypolicy/forever.jade          |    2 +-
 .../zookeeper/retrypolicy/n-times.jade          |    2 +-
 .../zookeeper/retrypolicy/one-time.jade         |    2 +-
 .../zookeeper/retrypolicy/until-elapsed.jade    |    2 +-
 .../states/configuration/clusters/igfs.jade     |    2 +-
 .../configuration/clusters/load-balancing.jade  |    2 +-
 .../states/configuration/clusters/logger.jade   |    2 +-
 .../configuration/clusters/logger/custom.jade   |    2 +-
 .../configuration/clusters/logger/log4j.jade    |    2 +-
 .../configuration/clusters/logger/log4j2.jade   |    2 +-
 .../configuration/clusters/marshaller.jade      |    2 +-
 .../states/configuration/clusters/metrics.jade  |    2 +-
 .../states/configuration/clusters/odbc.jade     |    2 +-
 .../states/configuration/clusters/ssl.jade      |    2 +-
 .../states/configuration/clusters/swap.jade     |    2 +-
 .../states/configuration/clusters/thread.jade   |    2 +-
 .../states/configuration/clusters/time.jade     |    2 +-
 .../configuration/clusters/transactions.jade    |    2 +-
 .../states/configuration/domains/general.jade   |    2 +-
 .../states/configuration/domains/query.jade     |   16 +-
 .../states/configuration/domains/store.jade     |   12 +-
 .../modules/states/configuration/igfs/dual.jade |    2 +-
 .../states/configuration/igfs/fragmentizer.jade |    2 +-
 .../states/configuration/igfs/general.jade      |    2 +-
 .../modules/states/configuration/igfs/ipc.jade  |    2 +-
 .../modules/states/configuration/igfs/misc.jade |    6 +-
 .../states/configuration/igfs/secondary.jade    |    2 +-
 .../configuration/summary/summary.controller.js |   12 +-
 .../frontend/controllers/clusters-controller.js |   10 +
 .../frontend/controllers/domains-controller.js  |    8 +-
 .../frontend/gulpfile.babel.js/tasks/jade.js    |    4 +-
 .../frontend/gulpfile.babel.js/tasks/test.js    |   92 --
 .../gulpfile.babel.js/webpack/common.js         |    5 +-
 .../webpack/environments/development.js         |    5 +
 modules/web-console/frontend/package.json       |    2 +-
 .../stylesheets/_font-awesome-custom.scss       |   18 +
 .../frontend/public/stylesheets/style.scss      |   13 +-
 .../frontend/views/configuration/caches.jade    |   22 +-
 .../frontend/views/configuration/clusters.jade  |   50 +-
 .../views/configuration/domains-import.jade     |    4 +-
 .../frontend/views/configuration/domains.jade   |    8 +-
 .../frontend/views/configuration/igfs.jade      |   14 +-
 .../frontend/views/configuration/summary.jade   |    2 +-
 .../frontend/views/includes/header.jade         |   15 +-
 .../frontend/views/settings/profile.jade        |    2 +-
 modules/web-console/frontend/views/sql/sql.jade |    2 +-
 .../views/templates/agent-download.jade         |    2 +-
 .../frontend/views/templates/batch-confirm.jade |    2 +-
 .../frontend/views/templates/clone.jade         |    2 +-
 .../frontend/views/templates/confirm.jade       |    2 +-
 modules/web-console/pom.xml                     |    2 +-
 modules/web-console/web-agent/README.txt        |    4 +-
 .../web-agent/bin/ignite-web-agent.bat          |    7 +-
 .../web-agent/bin/ignite-web-agent.sh           |    6 +-
 modules/web-console/web-agent/pom.xml           |    2 +-
 .../console/agent/AgentConfiguration.java       |    5 +-
 .../ignite/console/agent/AgentLauncher.java     |    6 +-
 .../ignite/console/demo/AgentClusterDemo.java   |    1 +
 modules/web/ignite-appserver-test/pom.xml       |    2 +-
 modules/web/ignite-websphere-test/pom.xml       |    2 +-
 modules/web/pom.xml                             |    2 +-
 .../config/benchmark-bin-identity.properties    |   94 ++
 .../config/benchmark-multicast.properties       |   15 +
 .../config/benchmark-sql-dml.properties         |   72 +
 modules/yardstick/config/ignite-base-config.xml |   71 +-
 .../config/ignite-bin-multicast-config.xml      |   86 ++
 modules/yardstick/pom.xml                       |    2 +-
 .../yardstick/IgniteAbstractBenchmark.java      |   30 +
 .../yardstick/IgniteBenchmarkArguments.java     |   11 +
 .../ignite/yardstick/IgniteBenchmarkUtils.java  |   42 +-
 .../apache/ignite/yardstick/PreloadLogger.java  |  155 ++
 .../yardstick/cache/CacheEntryEventProbe.java   |    2 +-
 .../cache/IgniteBinaryIdentityBenchmark.java    |  108 ++
 .../cache/IgniteBinaryIdentityGetBenchmark.java |   34 +
 .../cache/IgniteBinaryIdentityPutBenchmark.java |   35 +
 .../IgniteFieldsBinaryIdentityGetBenchmark.java |   30 +
 .../IgniteFieldsBinaryIdentityPutBenchmark.java |   30 +
 .../yardstick/cache/IgniteIoTestBenchmark.java  |   73 +
 .../IgniteLegacyBinaryIdentityGetBenchmark.java |   30 +
 .../IgniteLegacyBinaryIdentityPutBenchmark.java |   30 +
 ...IgnitePutIfAbsentIndexedValue1Benchmark.java |   45 +
 .../IgniteReplaceIndexedValue1Benchmark.java    |   79 ++
 .../cache/dml/IgniteSqlDeleteBenchmark.java     |   83 ++
 .../dml/IgniteSqlDeleteFilteredBenchmark.java   |   88 ++
 .../IgniteSqlInsertIndexedValue1Benchmark.java  |   48 +
 .../IgniteSqlInsertIndexedValue2Benchmark.java  |   48 +
 .../IgniteSqlInsertIndexedValue8Benchmark.java  |   48 +
 .../cache/dml/IgniteSqlMergeAllBenchmark.java   |   82 ++
 .../cache/dml/IgniteSqlMergeBenchmark.java      |   42 +
 .../IgniteSqlMergeIndexedValue1Benchmark.java   |   43 +
 .../IgniteSqlMergeIndexedValue2Benchmark.java   |   43 +
 .../IgniteSqlMergeIndexedValue8Benchmark.java   |   43 +
 .../cache/dml/IgniteSqlMergeQueryBenchmark.java |  116 ++
 .../cache/dml/IgniteSqlUpdateBenchmark.java     |   82 ++
 .../dml/IgniteSqlUpdateFilteredBenchmark.java   |   88 ++
 .../IgniteCacheRandomOperationBenchmark.java    |   22 +-
 .../yardstick/cache/model/SampleValue.java      |    2 +
 .../io/IgniteIoTestAbstractBenchmark.java       |   61 +
 .../io/IgniteIoTestSendAllBenchmark.java        |   32 +
 .../io/IgniteIoTestSendRandomBenchmark.java     |   35 +
 modules/yarn/pom.xml                            |    2 +-
 modules/zookeeper/pom.xml                       |    2 +-
 pom.xml                                         |    2 +-
 853 files changed, 34666 insertions(+), 8262 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/cecaf7e8/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index 857c813,2980eb7..979e8db
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@@ -168,12 -173,7 +174,13 @@@ public class GridIoMessageFactory imple
          Message msg = null;
  
          switch (type) {
-             case -39:
++            case -47:
 +                msg = new SnapshotProgressMessage();
 +
 +                break;
 +
-             case -38:
++
+             case -46:
                  msg = new GridChangeGlobalStateMessageResponse();
  
                  break;
@@@ -807,7 -838,7 +845,7 @@@
  
                  break;
  
-             // [-3..119] [124-127] [-23..-29] [-36..-37] - this
 -            // [-3..119] [124..127] [-23..-27] [-36..-45]- this
++            // [-3..119] [124..127] [-23..-27] [-36..-47]- this
              // [120..123] - DR
              // [-4..-22, -30..-35] - SQL
              default:

http://git-wip-us.apache.org/repos/asf/ignite/blob/cecaf7e8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/cecaf7e8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/cecaf7e8/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
----------------------------------------------------------------------


[19/50] [abbrv] ignite git commit: ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation fix join inactive node to active cluster

Posted by ag...@apache.org.
ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation fix join inactive node to active cluster


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

Branch: refs/heads/ignite-3477
Commit: 094a1b8c5d6fe47e642c13b23904714e70cdacbf
Parents: 9f9be20
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Thu Dec 22 15:21:14 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Thu Dec 22 15:21:14 2016 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheProcessor.java    | 117 ++++++++++++++-----
 .../IgniteCacheDatabaseSharedManager.java       |   7 ++
 .../cluster/GridClusterStateProcessor.java      |  11 +-
 .../datastructures/DataStructuresProcessor.java |  11 +-
 .../service/GridServiceProcessor.java           |  42 +------
 5 files changed, 113 insertions(+), 75 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/094a1b8c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 3834189..6514287 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -569,7 +569,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                     "Deployment mode for cache is not CONTINUOUS or SHARED.");
         }
 
-        initializeInternalCachesNames();
+        initializeInternalCacheNames();
 
         sharedCtx = createSharedContext(
             ctx, CU.startStoreSessionListeners(ctx, ctx.config().getCacheStoreSessionListenerFactories()));
@@ -580,12 +580,25 @@ public class GridCacheProcessor extends GridProcessorAdapter {
         for (GridCacheSharedManager mgr : sharedCtx.managers())
             mgr.start(sharedCtx);
 
-        //if inActivate on start then skip start caches
+        //if inActivate on start then skip registrate caches
         if (!activeOnStart)
             return;
 
         CacheConfiguration[] cfgs = ctx.config().getCacheConfiguration();
 
+        registerCacheFromConfig(cfgs);
+
+        registerCacheFromPersistentStore(cfgs);
+
+        if (log.isDebugEnabled())
+            log.debug("Started cache processor.");
+    }
+
+    /**
+     * @param cfgs Cache configurations.
+     * @throws IgniteCheckedException If failed.
+     */
+    private void registerCacheFromConfig(CacheConfiguration[] cfgs) throws IgniteCheckedException {
         for (int i = 0; i < cfgs.length; i++) {
             if (ctx.config().isDaemon() && !CU.isMarshallerCache(cfgs[i].getName()))
                 continue;
@@ -596,7 +609,13 @@ public class GridCacheProcessor extends GridProcessorAdapter {
 
             registerCache(cfg);
         }
+    }
 
+    /**
+     * @param cfgs Cache configurations.
+     * @throws IgniteCheckedException If failed.
+     */
+    private void registerCacheFromPersistentStore(CacheConfiguration[] cfgs) throws IgniteCheckedException {
         if (sharedCtx.pageStore() != null &&
             sharedCtx.database().persistenceEnabled() &&
             !ctx.config().isDaemon()) {
@@ -610,7 +629,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                 savedCacheNames.remove(name);
 
             if (!F.isEmpty(savedCacheNames)) {
-                log.info("Will start persisted dynamic caches: " + savedCacheNames);
+                log.info("Registrate persistent caches: " + savedCacheNames);
 
                 for (String name : savedCacheNames) {
                     CacheConfiguration cfg = sharedCtx.pageStore().readConfiguration(name);
@@ -620,9 +639,6 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                 }
             }
         }
-
-        if (log.isDebugEnabled())
-            log.debug("Started cache processor.");
     }
 
     /**
@@ -664,8 +680,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
 
         boolean template = cfg.getName() != null && cfg.getName().endsWith("*");
 
-        DynamicCacheDescriptor desc = new DynamicCacheDescriptor(ctx, cfg, cacheType, template,
-            IgniteUuid.randomUuid());
+        DynamicCacheDescriptor desc = new DynamicCacheDescriptor(
+            ctx, cfg, cacheType, template, IgniteUuid.randomUuid());
 
         desc.locallyConfigured(true);
         desc.staticallyConfigured(true);
@@ -697,8 +713,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
         }
 
         if (cfg.getName() == null) { // Use cache configuration with null name as template.
-            DynamicCacheDescriptor desc0 =
-                new DynamicCacheDescriptor(ctx, cfg, cacheType, true, IgniteUuid.randomUuid());
+            DynamicCacheDescriptor desc0 = new DynamicCacheDescriptor(
+                ctx, cfg, cacheType, true, IgniteUuid.randomUuid());
 
             desc0.locallyConfigured(true);
             desc0.staticallyConfigured(true);
@@ -710,7 +726,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
     /**
      * Initialize internal cache names
      */
-    private void initializeInternalCachesNames() {
+    private void initializeInternalCacheNames() {
         FileSystemConfiguration[] igfsCfgs = ctx.grid().configuration().getFileSystemConfiguration();
 
         if (igfsCfgs != null) {
@@ -734,13 +750,43 @@ public class GridCacheProcessor extends GridProcessorAdapter {
         try {
             checkConsistency();
 
-            //must be here, because we must start database before start first cache
-            if (activeOnStart) {
+            boolean currentStatus = ctx.state().active();
+
+            //if we start as inactive node, and join to active cluster, we must registrate all caches which
+            //was receive on join
+            if (!ctx.isDaemon() && currentStatus && !activeOnStart) {
+                CacheConfiguration[] cacheCfgs = ctx.config().getCacheConfiguration();
+
+                CacheConfiguration[] newCacheCfg = new CacheConfiguration[cacheCfgs.length];
+
+                for (int i = 0; i < cacheCfgs.length; i++) {
+                    CacheConfiguration conf = cacheCfgs[i];
+
+                    for (DynamicCacheDescriptor desc : registeredCaches.values()) {
+                        CacheConfiguration c = desc.cacheConfiguration();
+                        IgnitePredicate filter = conf.getNodeFilter();
+
+                        if (c.getName().equals(conf.getName()) &&
+                            (desc.receivedOnDiscovery() || CU.isSystemCache(c.getName()))) {
+
+                            newCacheCfg[i] = c;
+
+                            break;
+                        }
+                    }
+                }
+
+                ctx.config().setCacheConfiguration(newCacheCfg);
+
+                activeOnStart = ctx.state().active();
+            }
+
+            if (activeOnStart)
                 if (!ctx.clientNode())
                     sharedCtx.database().lock();
 
-                sharedCtx.database().onKernalStart(false);
-            }
+            //must start database before start first cache
+            sharedCtx.database().onKernalStart(false);
 
             // Start dynamic caches received from collect discovery data.
             for (DynamicCacheDescriptor desc : registeredCaches.values()) {
@@ -783,6 +829,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                 }
             }
         }
+        //todo if in active caches not started on start
         finally {
             cacheStartedLatch.countDown();
         }
@@ -792,6 +839,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             if (sharedCtx.database() != mgr)
                 mgr.onKernalStart(false);
 
+        // Escape if start active on start false
         if (!activeOnStart)
             return;
 
@@ -811,7 +859,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
 
             IgnitePredicate filter = cfg.getNodeFilter();
 
-            if (desc.locallyConfigured() || desc.receivedOnDiscovery() && CU.affinityNode(locNode, filter)) {
+            if (desc.locallyConfigured() || (desc.receivedOnDiscovery() && CU.affinityNode(locNode, filter))) {
                 GridCacheAdapter cache = caches.get(maskNull(cfg.getName()));
 
                 if (cache != null) {
@@ -843,7 +891,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                 DeploymentMode locDepMode = ctx.config().getDeploymentMode();
                 DeploymentMode rmtDepMode = n.attribute(IgniteNodeAttributes.ATTR_DEPLOYMENT_MODE);
 
-                CU.checkAttributeMismatch(log, null, n.id(), "deploymentMode", "Deployment mode",
+                CU.checkAttributeMismatch(
+                    log, null, n.id(), "deploymentMode", "Deployment mode",
                     locDepMode, rmtDepMode, true);
 
                 for (DynamicCacheDescriptor desc : registeredCaches.values()) {
@@ -1784,6 +1833,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             GridCacheContext cacheCtx = createCache(ccfg, null, cacheType, cacheObjCtx, true);
 
             cacheCtx.startTopologyVersion(topVer);
+
             cacheCtx.dynamicDeploymentId(deploymentId);
 
             GridCacheAdapter cache = cacheCtx.cache();
@@ -2024,7 +2074,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             reqs = new ArrayList<>(registeredCaches.size() + registeredTemplates.size() + 1);
 
             for (DynamicCacheDescriptor desc : registeredCaches.values()) {
-                DynamicCacheChangeRequest req = new DynamicCacheChangeRequest(UUID.randomUUID(), desc.cacheConfiguration().getName(), null);
+                DynamicCacheChangeRequest req = new DynamicCacheChangeRequest(
+                    UUID.randomUUID(), desc.cacheConfiguration().getName(), null);
 
                 req.startCacheConfiguration(desc.cacheConfiguration());
 
@@ -2038,7 +2089,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             }
 
             for (DynamicCacheDescriptor desc : registeredTemplates.values()) {
-                DynamicCacheChangeRequest req = new DynamicCacheChangeRequest(UUID.randomUUID(), desc.cacheConfiguration().getName(), null);
+                DynamicCacheChangeRequest req = new DynamicCacheChangeRequest(
+                    UUID.randomUUID(), desc.cacheConfiguration().getName(), null);
 
                 req.startCacheConfiguration(desc.cacheConfiguration());
 
@@ -2551,29 +2603,29 @@ public class GridCacheProcessor extends GridProcessorAdapter {
     public Collection<DynamicCacheChangeRequest> startAllCachesRequests() throws IgniteCheckedException {
         List<DynamicCacheChangeRequest> reqs = new ArrayList<>();
 
-        if (!ctx.config().isDaemon() && sharedCtx.pageStore() != null && sharedCtx.database().persistenceEnabled()) {
+        if (!ctx.config().isDaemon() &&
+            sharedCtx.pageStore() != null &&
+            sharedCtx.database().persistenceEnabled()) {
             Set<String> savedCacheNames = sharedCtx.pageStore().savedCacheNames();
 
             for (String name : savedCacheNames) {
                 CacheConfiguration cfg = sharedCtx.pageStore().readConfiguration(name);
 
                 if (cfg != null)
-                    reqs.add(createRequest(cfg));
+                    reqs.add(createRequest(cfg, false));
             }
 
             for (CacheConfiguration cfg : ctx.config().getCacheConfiguration()) {
                 if (!savedCacheNames.contains(cfg.getName()))
-                    reqs.add(createRequest(cfg));
+                    reqs.add(createRequest(cfg, true));
             }
-
-            return reqs;
         }
         else {
             for (CacheConfiguration cfg : ctx.config().getCacheConfiguration())
-                reqs.add(createRequest(cfg));
-
-            return reqs;
+                reqs.add(createRequest(cfg, true));
         }
+
+        return reqs;
     }
 
     /**
@@ -2601,14 +2653,19 @@ public class GridCacheProcessor extends GridProcessorAdapter {
     /**
      * @param cfg Cache configuration.
      */
-    private DynamicCacheChangeRequest createRequest(CacheConfiguration cfg) throws IgniteCheckedException {
+    private DynamicCacheChangeRequest createRequest(
+        CacheConfiguration cfg,
+        boolean needInit
+    ) throws IgniteCheckedException {
         assert cfg != null;
 
         cloneCheckSerializable(cfg);
 
-        CacheObjectContext cacheObjCtx = ctx.cacheObjects().contextForCache(cfg);
+        if (needInit){
+            CacheObjectContext cacheObjCtx = ctx.cacheObjects().contextForCache(cfg);
 
-        initialize(cfg, cacheObjCtx);
+            initialize(cfg, cacheObjCtx);
+        }
 
         String cacheName = cfg.getName();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/094a1b8c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
index 1fb1543..7c3d06d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
@@ -75,6 +75,13 @@ public class IgniteCacheDatabaseSharedManager extends GridCacheSharedManagerAdap
     }
 
     /**
+     *
+     */
+    public void initDataBase() throws IgniteCheckedException{
+
+    }
+
+    /**
      * @return Node-global free list.
      */
     public FreeList globalFreeList() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/094a1b8c/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
index c1ff5e4..725c9f3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
@@ -128,7 +128,6 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
     @Override public void start(boolean activeOnStart) throws IgniteCheckedException {
         super.start(activeOnStart);
 
-        //todo get file lock if active on start true
         globalState = activeOnStart ? ACTIVE : INACTIVE;
         cacheProc = ctx.cache();
         sharedCtx = cacheProc.context();
@@ -440,8 +439,13 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
             if (!client) {
                 sharedCtx.database().lock();
 
+                if (sharedCtx.pageStore() != null)
+                    sharedCtx.pageStore().onActivate(ctx);
+
                 sharedCtx.wal().onActivate(ctx);
 
+                sharedCtx.database().initDataBase();
+
                 for (CacheConfiguration cfg : cfgs)
                     if (CU.isSystemCache(cfg.getName()))
                         sharedCtx.pageStore().initializeForCache(cfg);
@@ -451,9 +455,6 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
                         sharedCtx.pageStore().initializeForCache(cfg);
 
                 sharedCtx.database().onActivate(ctx);
-
-                if (sharedCtx.pageStore() != null)
-                    sharedCtx.pageStore().onActivate(ctx);
             }
 
             if (log.isInfoEnabled())
@@ -571,6 +572,8 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
                     sharedCtx.pageStore().onDeActivate(ctx);
 
                 sharedCtx.wal().onDeActivate(ctx);
+
+                sharedCtx.affinity().removeAllCacheInfo();
             }
         }
         catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/094a1b8c/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
index 2f6b7ce..77fc295 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
@@ -215,16 +215,19 @@ public final class DataStructuresProcessor extends GridProcessorAdapter implemen
     /** {@inheritDoc} */
     @SuppressWarnings("unchecked")
     @Override public void onKernalStart(boolean activeOnStart) throws IgniteCheckedException {
-        if (ctx.config().isDaemon() || !activeOnStart)
+        if (ctx.config().isDaemon() || !ctx.state().active())
             return;
 
-        onKernalStart0();
+        onKernalStart0(activeOnStart);
     }
 
     /**
      *
      */
-    private void onKernalStart0(){
+    private void onKernalStart0(boolean activeOnStart){
+        if (!activeOnStart && ctx.state().active())
+            ctx.event().addLocalEventListener(lsnr, EVT_NODE_LEFT, EVT_NODE_FAILED);
+
         utilityCache = (IgniteInternalCache)ctx.cache().utilityCache();
 
         utilityDataCache = (IgniteInternalCache)ctx.cache().utilityCache();
@@ -313,7 +316,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter implemen
 
         ctx.event().addLocalEventListener(lsnr, EVT_NODE_LEFT, EVT_NODE_FAILED);
 
-        onKernalStart0();
+        onKernalStart0(true);
 
         for (Map.Entry<GridCacheInternal, GridCacheRemovable> e : dsMap.entrySet()) {
             GridCacheRemovable v = e.getValue();

http://git-wip-us.apache.org/repos/asf/ignite/blob/094a1b8c/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
index b160f95..e65354e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
@@ -153,7 +153,7 @@ public class GridServiceProcessor extends GridProcessorAdapter implements Ignite
     private final List<ComputeJobContext> pendingJobCtxs = new ArrayList<>(0);
 
     /** Deployment executor service. */
-    private final ExecutorService depExe;
+    private volatile ExecutorService depExe;
 
     /** Busy lock. */
     private final GridSpinBusyLock busyLock = new GridSpinBusyLock();
@@ -244,7 +244,7 @@ public class GridServiceProcessor extends GridProcessorAdapter implements Ignite
     /** {@inheritDoc} */
     @SuppressWarnings("unchecked")
     @Override public void onKernalStart(boolean activeOnStart) throws IgniteCheckedException {
-        if (ctx.isDaemon() || !activeOnStart)
+        if (ctx.isDaemon() || !ctx.state().active())
             return;
 
         cache = ctx.cache().utilityCache();
@@ -368,6 +368,8 @@ public class GridServiceProcessor extends GridProcessorAdapter implements Ignite
             log.debug("Activate service processor [nodeId=" + ctx.localNodeId() +
                 " topVer=" + ctx.discovery().topologyVersionEx() + " ]");
 
+        depExe = Executors.newSingleThreadExecutor(new IgniteThreadFactory(ctx.gridName(), "srvc-deploy"));
+
         start(true);
 
         onKernalStart(true);
@@ -379,41 +381,7 @@ public class GridServiceProcessor extends GridProcessorAdapter implements Ignite
             log.debug("DeActivate service processor [nodeId=" + ctx.localNodeId() +
                 " topVer=" + ctx.discovery().topologyVersionEx() + " ]");
 
-        busyLock.block();
-
-        try {
-            if (ctx.isDaemon())
-                return;
-
-            if (!ctx.clientNode())
-                ctx.event().removeLocalEventListener(topLsnr);
-
-            Collection<ServiceContextImpl> ctxs = new ArrayList<>();
-
-            synchronized (locSvcs) {
-                for (Collection<ServiceContextImpl> ctxs0 : locSvcs.values())
-                    ctxs.addAll(ctxs0);
-            }
-
-            for (ServiceContextImpl ctx : ctxs) {
-                ctx.setCancelled(true);
-
-                Service svc = ctx.service();
-
-                if (svc != null)
-                    svc.cancel(ctx);
-            }
-
-            Exception err = new IgniteCheckedException("Operation has been cancelled (node is in active status).");
-
-            cancelFutures(depFuts, err);
-            cancelFutures(undepFuts, err);
-
-            if (log.isDebugEnabled())
-                log.debug("Deactivate service processor.");
-        }finally {
-            busyLock.unblock();
-        }
+        onKernalStop(true);
     }
 
     /** {@inheritDoc} */


[31/50] [abbrv] ignite git commit: GG-11808 Implement deletion of snapshots on platform level

Posted by ag...@apache.org.
GG-11808 Implement deletion of snapshots on platform level


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

Branch: refs/heads/ignite-3477
Commit: 561101f6b644945494be7c23e79d1e40b2aa5bb9
Parents: 9217f3f
Author: EdShangGG <es...@gridgain.com>
Authored: Thu Dec 22 22:07:14 2016 +0300
Committer: EdShangGG <es...@gridgain.com>
Committed: Thu Dec 22 22:07:14 2016 +0300

----------------------------------------------------------------------
 .../pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java   | 7 +++++++
 .../processors/cache/database/tree/io/PageMetaIO.java         | 3 ++-
 2 files changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/561101f6/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java
index 830326e..08e093d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java
@@ -48,8 +48,10 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage
     /** Error. */
     private Exception err;
 
+    /** Full snapshot. */
     private boolean fullSnapshot;
 
+    /** Last full snapshot id for cache. */
     private Map<Integer, Long> lastFullSnapshotIdForCache = new HashMap<>();
 
     /**
@@ -125,6 +127,7 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage
 
     /** {@inheritDoc} */
     @Nullable @Override public DiscoveryCustomMessage ackMessage() {
+        System.out.println("StartFullSnapshotAckDiscoveryMessage - " + fullSnapshot);
         return new StartFullSnapshotAckDiscoveryMessage(globalSnapshotId, fullSnapshot, lastFullSnapshotIdForCache, cacheNames, err, initiatorId);
     }
 
@@ -132,4 +135,8 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage
     @Override public boolean isMutable() {
         return true;
     }
+
+    public void fullSnapshot(boolean b) {
+        fullSnapshot = b;
+    }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/561101f6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
index ee862ee..2c5f7a6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
@@ -80,6 +80,7 @@ public class PageMetaIO extends PageIO {
         setLastSuccessfulFullSnapshotId(buf, 0);
         setLastSuccessfulSnapshotId(buf, 0);
         setNextSnapshotTag(buf, 1);
+        setLastSuccessfulSnapshotTag(buf, 0);
         setLastAllocatedIndex(buf, 0);
         setCandidateAllocatedIndex(buf, 0);
     }
@@ -135,7 +136,7 @@ public class PageMetaIO extends PageIO {
      * @param buf Buffer.
      * @param lastSuccessfulFullSnapshotId Last successful full snapshot id.
      */
-    public void setLastSuccessfulFullSnapshotId(@NotNull ByteBuffer buf, long lastSuccessfulFullSnapshotId) {
+    public void  setLastSuccessfulFullSnapshotId(@NotNull ByteBuffer buf, long lastSuccessfulFullSnapshotId) {
         buf.putLong(LAST_SUCCESSFUL_FULL_SNAPSHOT_ID_OFF, lastSuccessfulFullSnapshotId);
     }
 


[33/50] [abbrv] ignite git commit: GG-11750 First version of snapshot utility. Implemented commands: HELP, LIST, SNAPSHOT, RESTORE.

Posted by ag...@apache.org.
GG-11750 First version of snapshot utility. Implemented commands: HELP, LIST, SNAPSHOT, RESTORE.


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

Branch: refs/heads/ignite-3477
Commit: bb485f67ff0645b5990ec3428be9b09126c6e85e
Parents: c1fd8aa
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Fri Dec 23 11:03:22 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri Dec 23 11:03:22 2016 +0700

----------------------------------------------------------------------
 .../java/org/apache/ignite/internal/visor/VisorMultiNodeTask.java  | 2 +-
 .../java/org/apache/ignite/internal/visor/VisorTaskArgument.java   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/bb485f67/modules/core/src/main/java/org/apache/ignite/internal/visor/VisorMultiNodeTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/VisorMultiNodeTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/VisorMultiNodeTask.java
index 57f1346..ece1a17 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/VisorMultiNodeTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/VisorMultiNodeTask.java
@@ -130,4 +130,4 @@ public abstract class VisorMultiNodeTask<A, R, J> implements ComputeTask<VisorTa
                 logFinish(ignite.log(), getClass(), start);
         }
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/bb485f67/modules/core/src/main/java/org/apache/ignite/internal/visor/VisorTaskArgument.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/VisorTaskArgument.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/VisorTaskArgument.java
index 255bd75..b28ebbe 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/VisorTaskArgument.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/VisorTaskArgument.java
@@ -105,4 +105,4 @@ public class VisorTaskArgument<A> implements Serializable {
     public boolean debug() {
         return debug;
     }
-}
\ No newline at end of file
+}


[50/50] [abbrv] ignite git commit: GG-11764 - refreshPage() assertion fix

Posted by ag...@apache.org.
GG-11764 - refreshPage() assertion fix


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

Branch: refs/heads/ignite-3477
Commit: 9776f3f4925f27d6639a7381c5151ebe8e58b683
Parents: 5c106da
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Thu Dec 29 12:25:09 2016 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Thu Dec 29 12:25:09 2016 +0300

----------------------------------------------------------------------
 .../ignite/internal/pagemem/FullPageId.java     | 29 ++++++++++++++++----
 1 file changed, 24 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9776f3f4/modules/core/src/main/java/org/apache/ignite/internal/pagemem/FullPageId.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/FullPageId.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/FullPageId.java
index 31028cd..20677ea 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/FullPageId.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/FullPageId.java
@@ -77,16 +77,35 @@ public class FullPageId {
      * @return Hash code.
      */
     private static int hashCode0(int cacheId, long effectivePageId) {
-        int pageIdx = (int)PageIdUtils.pageId(effectivePageId);
-        int partId = PageIdUtils.partId(effectivePageId);
+        return (int)(mix64(effectivePageId) ^ mix32(cacheId));
+    }
 
-        // Take a prime number larger than total number of partitions.
-        int res = 65537 * partId + cacheId;
+    /**
+     * MH3's plain finalization step.
+     */
+    private static int mix32(int k) {
+        k = (k ^ (k >>> 16)) * 0x85ebca6b;
+        k = (k ^ (k >>> 13)) * 0xc2b2ae35;
 
-        return res * 31 + pageIdx;
+        return k ^ (k >>> 16);
     }
 
     /**
+     * Computes David Stafford variant 9 of 64bit mix function (MH3 finalization step,
+     * with different shifts and constants).
+     *
+     * Variant 9 is picked because it contains two 32-bit shifts which could be possibly
+     * optimized into better machine code.
+     *
+     * @see "http://zimbry.blogspot.com/2011/09/better-bit-mixing-improving-on.html"
+     */
+    private static long mix64(long z) {
+        z = (z ^ (z >>> 32)) * 0x4cd6944c5cc20b6dL;
+        z = (z ^ (z >>> 29)) * 0xfc12c5b19d3259e9L;
+
+        return z ^ (z >>> 32);
+    }
+    /**
      * @param pageId Page ID.
      * @param cacheId Cache ID.
      */


[48/50] [abbrv] ignite git commit: GG-11805 Logging details about start/finish snapshot operation and provided information from client

Posted by ag...@apache.org.
GG-11805 Logging details about start/finish snapshot operation and provided information from client


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

Branch: refs/heads/ignite-3477
Commit: a38fd00de0a2d2d54b3702f94797639f8aa26dbd
Parents: 893cd90
Author: EdShangGG <es...@gridgain.com>
Authored: Wed Dec 28 22:34:37 2016 +0300
Committer: EdShangGG <es...@gridgain.com>
Committed: Wed Dec 28 22:34:37 2016 +0300

----------------------------------------------------------------------
 .../StartFullSnapshotAckDiscoveryMessage.java   | 21 +++++++++++++++++++-
 .../StartFullSnapshotDiscoveryMessage.java      | 20 +++++++++++++++++--
 .../IgniteCacheDatabaseSharedManager.java       |  3 ++-
 .../GridDhtPartitionsExchangeFuture.java        |  2 +-
 4 files changed, 41 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/a38fd00d/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotAckDiscoveryMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotAckDiscoveryMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotAckDiscoveryMessage.java
index 6393937..0d926b9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotAckDiscoveryMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotAckDiscoveryMessage.java
@@ -32,6 +32,9 @@ public class StartFullSnapshotAckDiscoveryMessage implements DiscoveryCustomMess
     /** */
     private static final long serialVersionUID = 0L;
 
+    /** Message. */
+    private final String msg;
+
     /** Custom message ID. */
     private IgniteUuid id = IgniteUuid.randomUuid();
 
@@ -47,8 +50,10 @@ public class StartFullSnapshotAckDiscoveryMessage implements DiscoveryCustomMess
     /** */
     private UUID initiatorNodeId;
 
+    /** Full snapshot. */
     private boolean fullSnapshot;
 
+    /** Last full snapshot id for cache. */
     private Map<Integer, Long> lastFullSnapshotIdForCache;
 
     /**
@@ -59,13 +64,14 @@ public class StartFullSnapshotAckDiscoveryMessage implements DiscoveryCustomMess
     public StartFullSnapshotAckDiscoveryMessage(long globalSnapshotId, boolean fullSnapshot,
         Map<Integer, Long> lastFullSnapshotIdForCache,
         Collection<String> cacheNames, Exception err,
-        UUID initiatorNodeId) {
+        UUID initiatorNodeId, String msg) {
         this.globalSnapshotId = globalSnapshotId;
         this.fullSnapshot = fullSnapshot;
         this.lastFullSnapshotIdForCache = lastFullSnapshotIdForCache;
         this.err = err;
         this.cacheNames = cacheNames;
         this.initiatorNodeId = initiatorNodeId;
+        this.msg = msg;
     }
 
     /**
@@ -108,10 +114,23 @@ public class StartFullSnapshotAckDiscoveryMessage implements DiscoveryCustomMess
         return globalSnapshotId;
     }
 
+    /**
+     *
+     */
     public boolean fullSnapshot() {
         return fullSnapshot;
     }
 
+    /**
+     *
+     */
+    public String message() {
+        return msg;
+    }
+
+    /**
+     * @param cacheId Cache id.
+     */
     @Nullable public Long lastFullSnapshotId(int cacheId) {
         return lastFullSnapshotIdForCache.get(cacheId);
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/a38fd00d/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java
index b58c247..8d18131 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java
@@ -33,6 +33,9 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage
     /** */
     private static final long serialVersionUID = 0L;
 
+    /** Message. */
+    private final String msg;
+
     /** Custom message ID. */
     private IgniteUuid id = IgniteUuid.randomUuid();
 
@@ -56,12 +59,15 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage
 
     /**
      * @param cacheNames Cache names.
+     * @param msg message to log
      */
-    public StartFullSnapshotDiscoveryMessage(long globalSnapshotId, Collection<String> cacheNames, UUID initiatorId, boolean fullSnapshot) {
+    public StartFullSnapshotDiscoveryMessage(long globalSnapshotId, Collection<String> cacheNames, UUID initiatorId,
+        boolean fullSnapshot, String msg) {
         this.globalSnapshotId = globalSnapshotId;
         this.cacheNames = cacheNames;
         this.initiatorId = initiatorId;
         this.fullSnapshot = fullSnapshot;
+        this.msg = msg;
     }
 
     /**
@@ -113,21 +119,31 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage
         return cacheNames;
     }
 
+    /**
+     *
+     */
     public boolean fullSnapshot() {
         return fullSnapshot;
     }
 
+    /**
+     * @param cacheId Cache id.
+     */
     public Long lastFullSnapshotId(int cacheId) {
         return lastFullSnapshotIdForCache.get(cacheId);
     }
 
+    /**
+     * @param cacheId Cache id.
+     * @param id Id.
+     */
     public void lastFullSnapshotId(int cacheId, long id) {
         lastFullSnapshotIdForCache.put(cacheId, id);
     }
 
     /** {@inheritDoc} */
     @Nullable @Override public DiscoveryCustomMessage ackMessage() {
-        return new StartFullSnapshotAckDiscoveryMessage(globalSnapshotId, fullSnapshot, lastFullSnapshotIdForCache, cacheNames, err, initiatorId);
+        return new StartFullSnapshotAckDiscoveryMessage(globalSnapshotId, fullSnapshot, lastFullSnapshotIdForCache, cacheNames, err, initiatorId, msg);
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/a38fd00d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
index 237ca1a..8f3b88a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
@@ -195,11 +195,12 @@ public class IgniteCacheDatabaseSharedManager extends GridCacheSharedManagerAdap
     /**
      * @param snapshotMsg Snapshot message.
      * @param initiator Initiator node.
+     * @param msg message to log
      * @return Snapshot creation init future or {@code null} if snapshot is not available.
      * @throws IgniteCheckedException If failed.
      */
     @Nullable public IgniteInternalFuture startLocalSnapshotCreation(StartFullSnapshotAckDiscoveryMessage snapshotMsg,
-        ClusterNode initiator)
+        ClusterNode initiator, String msg)
         throws IgniteCheckedException {
         return null;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/a38fd00d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index 3d9a378..eb98fa6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -833,7 +833,7 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
 
                     assert node != null;
 
-                    IgniteInternalFuture fut = cctx.database().startLocalSnapshotCreation(backupMsg, node);
+                    IgniteInternalFuture fut = cctx.database().startLocalSnapshotCreation(backupMsg, node, backupMsg.message());
 
                     if (fut != null)
                         fut.get();


[15/50] [abbrv] ignite git commit: Merge with master - WIP.

Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java
deleted file mode 100644
index e277868..0000000
--- a/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java
+++ /dev/null
@@ -1,1947 +0,0 @@
-/*
- * 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.spi.swapspace.file;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.nio.ByteBuffer;
-import java.nio.channels.AsynchronousCloseException;
-import java.nio.channels.ClosedByInterruptException;
-import java.nio.channels.ClosedChannelException;
-import java.nio.channels.FileChannel;
-import java.util.ArrayDeque;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.Set;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.concurrent.locks.Condition;
-import java.util.concurrent.locks.LockSupport;
-import java.util.concurrent.locks.ReentrantLock;
-import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.IgniteLogger;
-import org.apache.ignite.internal.IgniteInterruptedCheckedException;
-import org.apache.ignite.internal.util.GridAtomicInitializer;
-import org.apache.ignite.internal.util.GridCloseableIteratorAdapter;
-import org.apache.ignite.internal.util.typedef.F;
-import org.apache.ignite.internal.util.typedef.T2;
-import org.apache.ignite.internal.util.typedef.internal.A;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.lang.IgniteBiInClosure;
-import org.apache.ignite.lang.IgniteInClosure;
-import org.apache.ignite.resources.LoggerResource;
-import org.apache.ignite.spi.IgniteSpiAdapter;
-import org.apache.ignite.spi.IgniteSpiCloseableIterator;
-import org.apache.ignite.spi.IgniteSpiConfiguration;
-import org.apache.ignite.spi.IgniteSpiConsistencyChecked;
-import org.apache.ignite.spi.IgniteSpiException;
-import org.apache.ignite.spi.IgniteSpiMultipleInstancesSupport;
-import org.apache.ignite.spi.IgniteSpiThread;
-import org.apache.ignite.spi.swapspace.SwapContext;
-import org.apache.ignite.spi.swapspace.SwapKey;
-import org.apache.ignite.spi.swapspace.SwapSpaceSpi;
-import org.apache.ignite.spi.swapspace.SwapSpaceSpiListener;
-import org.jetbrains.annotations.Nullable;
-import org.jsr166.ConcurrentHashMap8;
-
-import static org.apache.ignite.events.EventType.EVT_SWAP_SPACE_CLEARED;
-import static org.apache.ignite.events.EventType.EVT_SWAP_SPACE_DATA_READ;
-import static org.apache.ignite.events.EventType.EVT_SWAP_SPACE_DATA_REMOVED;
-import static org.apache.ignite.events.EventType.EVT_SWAP_SPACE_DATA_STORED;
-
-/**
- * File-based swap space SPI implementation which holds keys in memory. This SPI is used by default.
- * It is intended for use in cases when value size is bigger than {@code 100} bytes, otherwise it will not
- * have any positive effect.
- * <p>
- * <b>NOTE: This SPI does not support swap eviction currently, manual removes needed to reduce disk space
- * consumption.</b>
- * <p>
- * Every space has a name and when used in combination with in-memory data grid name and local node ID,
- * space name represents the actual cache name associated with this swap space. Default name is {@code null}
- * which is represented by {@link #DFLT_SPACE_NAME}.
- *
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * This SPI has no mandatory configuration parameters.
- * <h2 class="header">Optional SPI configuration.</h2>
- * <ul>
- *     <li>Base directory path (see {@link #setBaseDirectory(String)}).</li>
- *     <li>Maximum sparsity (see {@link #setMaximumSparsity(float)}).</li>
- *     <li>Write buffer size in bytes (see {@link #setWriteBufferSize(int)}).</li>
- *     <li>Max write queue size in bytes (see {@link #setMaxWriteQueueSize(int)}).</li>
- *     <li>Read stripes number. (see {@link #setReadStripesNumber(int)}).</li>
- * </ul>
- *
- * <h2 class="header">Java Example</h2>
- * FileSwapSpaceSpi is configured by default and should be explicitly configured
- * only if some SPI configuration parameters need to be overridden.
- * <pre name="code" class="java">
- * FileSwapSpaceSpi spi = new FileSwapSpaceSpi();
- *
- * // Configure root folder path.
- * spi.setBaseDirectory("/path/to/swap/folder");
- *
- * IgniteConfiguration cfg = new IgniteConfiguration();
- *
- * // Override default swap space SPI.
- * cfg.setSwapSpaceSpi(spi);
- *
- * // Starts grid.
- * G.start(cfg);
- * </pre>
- * <h2 class="header">Spring Example</h2>
- * FileSwapSpaceSpi can be configured from Spring XML configuration file:
- * <pre name="code" class="xml">
- * &lt;bean id=&quot;grid.cfg&quot; class=&quot;org.apache.ignite.configuration.IgniteConfiguration&quot; scope=&quot;singleton&quot;&gt;
- *     ...
- *     &lt;property name=&quot;swapSpaceSpi&quot;&gt;
- *         &lt;bean class=&quot;org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi&quot;&gt;
- *             &lt;property name=&quot;baseDirectory&quot; value=&quot;/path/to/swap/folder&quot;/&gt;
- *         &lt;/bean&gt;
- *     &lt;/property&gt;
- *     ...
- * &lt;/bean&gt;
- * </pre>
- * <p>
- * <img src="http://ignite.apache.org/images/spring-small.png">
- * <br>
- * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
- * @see org.apache.ignite.spi.swapspace.SwapSpaceSpi
- */
-@IgniteSpiMultipleInstancesSupport(true)
-@IgniteSpiConsistencyChecked(optional = false, checkClient = false)
-@SuppressWarnings({"PackageVisibleInnerClass", "PackageVisibleField"})
-public class FileSwapSpaceSpi extends IgniteSpiAdapter implements SwapSpaceSpi, FileSwapSpaceSpiMBean {
-    /**
-     * Default base directory. Note that this path is relative to {@code IGNITE_HOME/work} folder
-     * if {@code IGNITE_HOME} system or environment variable specified, otherwise it is relative to
-     * {@code work} folder under system {@code java.io.tmpdir} folder.
-     *
-     * @see org.apache.ignite.configuration.IgniteConfiguration#getWorkDirectory()
-     */
-    public static final String DFLT_BASE_DIR = "swapspace";
-
-    /** Default maximum sparsity. */
-    public static final float DFLT_MAX_SPARSITY = 0.5f;
-
-    /** Default write buffer size in bytes. */
-    public static final int DFLT_BUF_SIZE = 64 * 1024;
-
-    /** Default write queue size in bytes. */
-    public static final int DFLT_QUE_SIZE = 1024 * 1024;
-
-    /** Name for {@code null} space. */
-    public static final String DFLT_SPACE_NAME = "gg-dflt-space";
-
-    /** Spaces. */
-    private final ConcurrentMap<String, Space> spaces = new ConcurrentHashMap<>();
-
-    /** Base directory. */
-    private String baseDir = DFLT_BASE_DIR;
-
-    /** Maximum sparsity. */
-    private float maxSparsity = DFLT_MAX_SPARSITY;
-
-    /** Eviction listener. */
-    private volatile SwapSpaceSpiListener evictLsnr;
-
-    /** Directory. */
-    private File dir;
-
-    /** Write buffer size. */
-    private int writeBufSize = DFLT_BUF_SIZE;
-
-    /** Max write queue size in bytes. */
-    private int maxWriteQueSize = DFLT_QUE_SIZE;
-
-    /** Read stripes number. */
-    private int readStripesNum = -1;
-
-    /** Logger. */
-    @LoggerResource
-    private IgniteLogger log;
-
-    /** {@inheritDoc} */
-    @Override public String getBaseDirectory() {
-        return baseDir;
-    }
-
-    /**
-     * Sets base directory.
-     *
-     * @param baseDir Base directory.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setBaseDirectory(String baseDir) {
-        this.baseDir = baseDir;
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getMaximumSparsity() {
-        return maxSparsity;
-    }
-
-    /**
-     * Sets maximum sparsity. This property defines maximum acceptable wasted file space to whole file size ratio.
-     * When this ratio becomes higher than specified number compacting thread starts working.
-     *
-     * @param maxSparsity Maximum sparsity. Must be between 0 and 1, default is {@link #DFLT_MAX_SPARSITY}.
-     */
-    public void setMaximumSparsity(float maxSparsity) {
-        this.maxSparsity = maxSparsity;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getWriteBufferSize() {
-        return writeBufSize;
-    }
-
-    /**
-     * Sets write buffer size in bytes. Write to disk occurs only when this buffer is full. Default is
-     * {@link #DFLT_BUF_SIZE}.
-     *
-     * @param writeBufSize Write buffer size in bytes.
-     */
-    public void setWriteBufferSize(int writeBufSize) {
-        this.writeBufSize = writeBufSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getMaxWriteQueueSize() {
-        return maxWriteQueSize;
-    }
-
-    /**
-     * Sets max write queue size in bytes. If there are more values are waiting for being written to disk then specified
-     * size, SPI will block on {@link #store(String, org.apache.ignite.spi.swapspace.SwapKey, byte[], org.apache.ignite.spi.swapspace.SwapContext)} operation. Default is
-     * {@link #DFLT_QUE_SIZE}.
-     *
-     * @param maxWriteQueSize Max write queue size in bytes.
-     */
-    public void setMaxWriteQueueSize(int maxWriteQueSize) {
-        this.maxWriteQueSize = maxWriteQueSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getReadStripesNumber() {
-        return readStripesNum;
-    }
-
-    /**
-     * Sets read stripe size. Defines number of file channels to be used concurrently. Default is equal to number of
-     * CPU cores available to this JVM.
-     *
-     * @param readStripesNum Read stripe number.
-     */
-    public void setReadStripesNumber(int readStripesNum) {
-        A.ensure(readStripesNum == -1 || (readStripesNum & (readStripesNum - 1)) == 0,
-            "readStripesNum must be positive and power of two");
-
-        this.readStripesNum = readStripesNum;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(@Nullable String gridName) throws IgniteSpiException {
-        assertParameter(!F.isEmpty(baseDir), "!F.isEmpty(baseDir)");
-        assertParameter(maxSparsity >= 0 && maxSparsity < 1, "maxSparsity >= 0 && maxSparsity < 1");
-        assertParameter(readStripesNum == -1 || (readStripesNum & (readStripesNum - 1)) == 0,
-            "readStripesNum must be positive and power of two.");
-
-        if (readStripesNum == -1) {
-            // User has not configured the number.
-            int readStripesNum0 = 1;
-            int cpuCnt = Runtime.getRuntime().availableProcessors();
-
-            while (readStripesNum0 <= cpuCnt)
-                readStripesNum0 <<= 1;
-
-            if (readStripesNum0 > cpuCnt)
-                readStripesNum0 >>= 1;
-
-            assert readStripesNum0 > 0 && (readStripesNum0 & readStripesNum0 - 1) == 0;
-
-            readStripesNum = readStripesNum0;
-        }
-
-        startStopwatch();
-
-        registerMBean(gridName, this, FileSwapSpaceSpiMBean.class);
-
-        String path = baseDir + File.separator + gridName + File.separator + ignite.configuration().getNodeId();
-
-        try {
-            dir = U.resolveWorkDirectory(ignite.configuration().getWorkDirectory(), path, true);
-        }
-        catch (IgniteCheckedException e) {
-            throw new IgniteSpiException(e);
-        }
-
-        if (log.isDebugEnabled())
-            log.debug(startInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        unregisterMBean();
-
-        for (Space space : spaces.values()) {
-            space.initialize();
-
-            try {
-                space.stop();
-            }
-            catch (IgniteInterruptedCheckedException e) {
-                U.error(log, "Interrupted.", e);
-            }
-        }
-
-        if (dir != null && dir.exists() && !U.delete(dir))
-            U.warn(log, "Failed to delete swap directory: " + dir.getAbsolutePath());
-
-        if (log.isDebugEnabled())
-            log.debug(stopInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void clear(@Nullable String spaceName) throws IgniteSpiException {
-        destruct(spaceName);
-
-        notifyListener(EVT_SWAP_SPACE_CLEARED, spaceName);
-    }
-
-    /** {@inheritDoc} */
-    @Override public long size(@Nullable String spaceName) throws IgniteSpiException {
-        Space space = space(spaceName, false);
-
-        if (space == null)
-            return 0;
-
-        return space.size();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long count(@Nullable String spaceName) throws IgniteSpiException {
-        Space space = space(spaceName, false);
-
-        if (space == null)
-            return 0;
-
-        return space.count();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long count(@Nullable String spaceName, Set<Integer> parts) throws IgniteSpiException {
-        Space space = space(spaceName, false);
-
-        if (space == null)
-            return 0;
-
-        return space.count(parts);
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public byte[] read(@Nullable String spaceName, SwapKey key, SwapContext ctx)
-        throws IgniteSpiException {
-        assert key != null;
-        assert ctx != null;
-
-        Space space = space(spaceName, false);
-
-        if (space == null)
-            return null;
-
-        byte[] val = space.read(key);
-
-        notifyListener(EVT_SWAP_SPACE_DATA_READ, spaceName);
-
-        return val;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Map<SwapKey, byte[]> readAll(@Nullable String spaceName, Iterable<SwapKey> keys,
-        SwapContext ctx) throws IgniteSpiException {
-        assert keys != null;
-        assert ctx != null;
-
-        Space space = space(spaceName, false);
-
-        if (space == null)
-            return Collections.emptyMap();
-
-        Map<SwapKey, byte[]> res = new HashMap<>();
-
-        for (SwapKey key : keys) {
-            if (key != null) {
-                byte[] val = space.read(key);
-
-                if (val != null)
-                    res.put(key, val);
-
-                notifyListener(EVT_SWAP_SPACE_DATA_READ, spaceName);
-            }
-        }
-
-        return res;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void remove(@Nullable String spaceName, SwapKey key, @Nullable IgniteInClosure<byte[]> c,
-        SwapContext ctx) throws IgniteSpiException {
-        assert key != null;
-        assert ctx != null;
-
-        Space space = space(spaceName, false);
-
-        byte[] val = space == null ? null : space.remove(key, c != null);
-
-        if (c != null)
-            c.apply(val);
-
-        if (space != null)
-             notifyListener(EVT_SWAP_SPACE_DATA_REMOVED, spaceName);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void removeAll(@Nullable String spaceName, Collection<SwapKey> keys,
-        @Nullable IgniteBiInClosure<SwapKey, byte[]> c, SwapContext ctx) throws IgniteSpiException {
-        assert keys != null;
-        assert ctx != null;
-
-        Space space = space(spaceName, false);
-
-        if (space == null)
-            return;
-
-        for (SwapKey key : keys) {
-            if (key != null) {
-                byte[] val = space.remove(key, c != null);
-
-                if (c != null)
-                    c.apply(key, val);
-
-                notifyListener(EVT_SWAP_SPACE_DATA_REMOVED, spaceName);
-            }
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void store(@Nullable String spaceName, SwapKey key, @Nullable byte[] val,
-        SwapContext ctx) throws IgniteSpiException {
-        assert key != null;
-        assert ctx != null;
-
-        Space space = space(spaceName, true);
-
-        assert space != null;
-
-        space.store(key, val);
-
-        notifyListener(EVT_SWAP_SPACE_DATA_STORED, spaceName);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void storeAll(@Nullable String spaceName, Map<SwapKey, byte[]> pairs,
-        SwapContext ctx) throws IgniteSpiException {
-        assert pairs != null;
-        assert ctx != null;
-
-        Space space = space(spaceName, true);
-
-        assert space != null;
-
-        for (Map.Entry<SwapKey, byte[]> pair : pairs.entrySet()) {
-            SwapKey key = pair.getKey();
-
-            if (key != null) {
-                space.store(key, pair.getValue());
-
-                notifyListener(EVT_SWAP_SPACE_DATA_STORED, spaceName);
-            }
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void setListener(@Nullable SwapSpaceSpiListener evictLsnr) {
-        this.evictLsnr = evictLsnr;
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public Collection<Integer> partitions(@Nullable String spaceName)
-        throws IgniteSpiException {
-        Space space = space(spaceName, false);
-
-        if (space == null)
-            return null;
-
-        return space.partitions();
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public <K> IgniteSpiCloseableIterator<K> keyIterator(@Nullable String spaceName,
-        SwapContext ctx) throws IgniteSpiException {
-        final Space space = space(spaceName, false);
-
-        if (space == null)
-            return null;
-
-        final Iterator<Map.Entry<SwapKey, byte[]>> iter = space.entriesIterator();
-
-        return new GridCloseableIteratorAdapter<K>() {
-            @Override protected boolean onHasNext() {
-                return iter.hasNext();
-            }
-
-            @Override protected K onNext() {
-                return (K)iter.next().getKey().key();
-            }
-
-            @Override protected void onRemove() {
-                iter.remove();
-            }
-        };
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public IgniteSpiCloseableIterator<Map.Entry<byte[], byte[]>> rawIterator(
-        @Nullable String spaceName) throws IgniteSpiException {
-        Space space = space(spaceName, false);
-
-        if (space == null)
-            return null;
-
-        return rawIterator(space.entriesIterator());
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public IgniteSpiCloseableIterator<Map.Entry<byte[], byte[]>> rawIterator(
-        @Nullable String spaceName, int part) throws IgniteSpiException {
-        Space space = space(spaceName, false);
-
-        if (space == null)
-            return null;
-
-        return rawIterator(space.entriesIterator(part));
-    }
-
-    /**
-     * Creates raw iterator based on provided entries iterator.
-     *
-     * @param iter Entries iterator.
-     * @return Raw iterator.
-     */
-    private IgniteSpiCloseableIterator<Map.Entry<byte[], byte[]>> rawIterator(
-        final Iterator<Map.Entry<SwapKey, byte[]>> iter) {
-        return new GridCloseableIteratorAdapter<Map.Entry<byte[], byte[]>>() {
-            @Override protected Map.Entry<byte[], byte[]> onNext() {
-                Map.Entry<SwapKey, byte[]> x = iter.next();
-
-                return new T2<>(keyBytes(x.getKey()), x.getValue());
-            }
-
-            @Override protected boolean onHasNext() {
-                return iter.hasNext();
-            }
-
-            @Override protected void onRemove() {
-                iter.remove();
-            }
-        };
-    }
-
-    /**
-     * Gets key bytes.
-     *
-     * @param key Swap key.
-     * @return Key bytes.
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    private byte[] keyBytes(SwapKey key) throws IgniteSpiException {
-        assert key != null;
-
-        byte[] keyBytes = key.keyBytes();
-
-        if (keyBytes == null) {
-            try {
-                keyBytes = U.marshal(ignite.configuration().getMarshaller(), key.key());
-            }
-            catch (IgniteCheckedException e) {
-                throw new IgniteSpiException("Failed to marshal key: " + key.key(), e);
-            }
-
-            key.keyBytes(keyBytes);
-        }
-
-        return keyBytes;
-    }
-
-    /**
-     * Notifies eviction listener.
-     *
-     * @param evtType Event type.
-     * @param spaceName Space name.
-     */
-    private void notifyListener(int evtType, @Nullable String spaceName) {
-        SwapSpaceSpiListener lsnr = evictLsnr;
-
-        if (lsnr != null)
-            lsnr.onSwapEvent(evtType, spaceName, null, null);
-    }
-
-    /**
-     * Gets space by name.
-     *
-     * @param name Space name.
-     * @param create Whether to create space if it doesn't exist.
-     * @return Space.
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    @Nullable private Space space(@Nullable String name, boolean create) throws IgniteSpiException {
-        String masked = maskNull(name);
-
-        assert masked != null;
-
-        Space space = spaces.get(masked);
-
-        if (space == null && create) {
-            validateName(name);
-
-            Space old = spaces.putIfAbsent(masked, space = new Space(masked, log));
-
-            if (old != null)
-                space = old;
-        }
-
-        if (space != null)
-            space.initialize();
-
-        return space;
-    }
-
-    /**
-     * Destructs space.
-     *
-     * @param spaceName space name.
-     * */
-    private void destruct(@Nullable String spaceName) {
-        String masked = maskNull(spaceName);
-
-        Space space = spaces.remove(masked);
-
-        if (space != null) {
-            try {
-                space.stop();
-            }
-            catch (IgniteInterruptedCheckedException e) {
-                U.error(log, "Interrupted.", e);
-            }
-        }
-    }
-
-    /**
-     * Masks null space name with default space name.
-     *
-     * @param spaceName Space name.
-     * @return Space name or default space name if space name is null.
-     * */
-    private static String maskNull(String spaceName) {
-        return spaceName != null ? spaceName : DFLT_SPACE_NAME;
-    }
-
-    /**
-     * Validates space name.
-     *
-     * @param name Space name.
-     * @throws org.apache.ignite.spi.IgniteSpiException If name is invalid.
-     */
-    private void validateName(@Nullable String name) throws IgniteSpiException {
-        if (name == null)
-            return;
-
-        if (name.isEmpty())
-            throw new IgniteSpiException("Space name cannot be empty: " + name);
-        else if (DFLT_SPACE_NAME.equalsIgnoreCase(name))
-            throw new IgniteSpiException("Space name is reserved for default space: " + name);
-        else if (name.contains("/") || name.contains("\\"))
-            throw new IgniteSpiException("Space name contains invalid characters: " + name);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(FileSwapSpaceSpi.class, this);
-    }
-
-    /**
-     * Swap value.
-     */
-    static class SwapValue {
-        /** */
-        private static final int NEW = 0;
-
-        /** */
-        private static final int DELETED = Integer.MIN_VALUE;
-
-        /** */
-        private static final AtomicIntegerFieldUpdater<SwapValue> idxUpdater = AtomicIntegerFieldUpdater.
-            newUpdater(SwapValue.class, "idx");
-
-        /** */
-        private byte[] val;
-
-        /** */
-        private final int len;
-
-        /** */
-        @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
-        private long pos = -1;
-
-        /** */
-        @SuppressWarnings("UnusedDeclaration")
-        private volatile int idx;
-
-        /**
-         * @param val Value.
-         */
-        SwapValue(byte[] val) {
-            assert val != null;
-
-            this.val = val;
-            len = val.length;
-        }
-
-        /**
-         * @param space Space.
-         * @return Value.
-         * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-         */
-        @SuppressWarnings("NonPrivateFieldAccessedInSynchronizedContext")
-        @Nullable public synchronized byte[] value(Space space) throws IgniteSpiException {
-            byte[] v = val;
-
-            if (v == null) { // Read value from file.
-                int i = idx;
-
-                assert i != NEW;
-
-                if (i != DELETED) {
-                    StripedFileChannel ch = i < 0 ? space.left.readCh : space.right.readCh;
-
-                    if (idx != DELETED) // Double check works in pair with striped channel reopening.
-                        v = readValue(ch);
-                }
-            }
-            else if (v.length != len) {
-                int p = (int)pos;
-
-                v = Arrays.copyOfRange(v, p, p + len); // In case of compaction.
-            }
-
-            return v;
-        }
-
-        /**
-         * @param ch File channel.
-         * @return Bytes.
-         * @throws org.apache.ignite.spi.IgniteSpiException if failed.
-         */
-        @Nullable byte[] readValue(StripedFileChannel ch) throws IgniteSpiException {
-            byte[] v = new byte[len];
-
-            int res = 0;
-
-            try {
-                res = ch.read(ByteBuffer.wrap(v), pos);
-            }
-            catch (ClosedByInterruptException e) {
-                throw new IgniteSpiException("Operation was interrupted.", e);
-            }
-            catch (AsynchronousCloseException ignore) {
-                assert idx == DELETED; // We closed it ourselves.
-            }
-            catch (ClosedChannelException e) {
-                throw new IgniteSpiException("File channel was unexpectedly closed.", e);
-            }
-            catch (IOException e) {
-                throw new IgniteSpiException("Failed to read value.", e);
-            }
-
-            if (res < len)
-                return null; // When concurrent compaction occurs this may happen.
-
-            return v;
-        }
-
-        /**
-         * @param pos Position.
-         * @param val Value.
-         */
-        public synchronized void set(long pos, byte[] val) {
-            if (pos != -1)
-                this.pos = pos;
-
-            this.val = val;
-        }
-
-        /**
-         * @param exp Expected.
-         * @param idx New index.
-         * @return {@code true} if succeeded.
-         */
-        public boolean casIdx(int exp, int idx) {
-            return idxUpdater.compareAndSet(this, exp, idx);
-        }
-
-        /**
-         * @return Index in file array.
-         */
-        int idx() {
-            return idx;
-        }
-
-        /** {@inheritDoc} */
-        @Override public String toString() {
-            return pos + " " + len;
-        }
-    }
-
-    /**
-     * Queue of swap values.
-     */
-    private static class SwapValuesQueue {
-        /** */
-        private final ArrayDeque<SwapValue> deq = new ArrayDeque<>();
-
-        /** */
-        @SuppressWarnings("TypeMayBeWeakened")
-        private final ReentrantLock lock = new ReentrantLock();
-
-        /** */
-        private final Condition mayAdd = lock.newCondition();
-
-        /** */
-        private final Condition mayTake = lock.newCondition();
-
-        /** */
-        private int size;
-
-        /** */
-        private final int minTakeSize;
-
-        /** */
-        private final int maxSize;
-
-        /** */
-        private final IgniteLogger log;
-
-        /** */
-        private boolean queueSizeWarn;
-
-        /**
-         * @param minTakeSize Min size.
-         * @param maxSize Max size.
-         * @param log logger
-         */
-        private SwapValuesQueue(int minTakeSize, int maxSize, IgniteLogger log) {
-            this.minTakeSize = minTakeSize;
-            this.maxSize = maxSize;
-            this.log = log;
-        }
-
-        /**
-         * Adds to queue.
-         *
-         * @param val Swap value.
-         * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-         */
-        public void add(SwapValue val) throws IgniteSpiException {
-            lock.lock();
-
-            try {
-                boolean largeVal = val.len > maxSize;
-
-                if (largeVal) {
-                    if (!queueSizeWarn) {
-                        U.warn(log, "Trying to save in swap entry which have size more than write queue size. " +
-                            "You may wish to increase 'maxWriteQueueSize' in FileSwapSpaceSpi configuration " +
-                            "[queueMaxSize=" + maxSize + ", valSize=" + val.len + ']');
-
-                        queueSizeWarn = true;
-                    }
-
-                    while (size >= minTakeSize)
-                        mayAdd.await();
-                }
-                else {
-                    while (size + val.len > maxSize)
-                        mayAdd.await();
-                }
-
-                size += val.len;
-
-                deq.addLast(val);
-
-                if (size >= minTakeSize)
-                    mayTake.signalAll();
-            }
-            catch (InterruptedException e) {
-                throw new IgniteSpiException(e);
-            }
-            finally {
-                lock.unlock();
-            }
-        }
-
-        /**
-         * Takes swap values from queue.
-         *
-         * @return Swap values.
-         * @throws InterruptedException If interrupted.
-         */
-        public SwapValues take() throws InterruptedException {
-            lock.lock();
-
-            try {
-                while (size < minTakeSize)
-                    mayTake.await();
-
-                int size = 0;
-                int cnt = 0;
-
-                for (SwapValue val : deq) {
-                    size += val.len;
-                    cnt++;
-
-                    if (size >= minTakeSize)
-                        break;
-                }
-
-                SwapValue[] vals = new SwapValue[cnt];
-
-                for (int i = 0; i < cnt; i++) {
-                    SwapValue val = deq.pollFirst();
-
-                    vals[i] = val;
-                }
-
-                if ((this.size -= size) < maxSize)
-                    mayAdd.signalAll();
-
-                return new SwapValues(vals, size);
-            }
-            finally {
-                lock.unlock();
-            }
-        }
-    }
-
-    /**
-     * Array of swap values and their size in bytes.
-     */
-    static class SwapValues {
-        /** */
-        private final SwapValue[] vals;
-
-        /** Size in bytes. */
-        private final int size;
-
-        /**
-         * @param vals Values.
-         * @param size Size.
-         */
-        SwapValues(SwapValue[] vals, int size) {
-            this.vals = vals;
-            this.size = size;
-        }
-    }
-
-    /**
-     * Readable striped file channel.
-     */
-    private static class StripedFileChannel {
-        /** */
-        private final AtomicInteger enter = new AtomicInteger();
-
-        /** */
-        private final RandomAccessFile[] rafs;
-
-        /** */
-        private final FileChannel[] chs;
-
-        /**
-         * @param f File.
-         * @param stripes Stripes.
-         * @throws FileNotFoundException If failed.
-         */
-        StripedFileChannel(File f, int stripes) throws FileNotFoundException {
-            assert stripes > 0 && (stripes & (stripes - 1)) == 0 : "stripes must be positive and power of two.";
-
-            rafs = new RandomAccessFile[stripes];
-            chs = new FileChannel[stripes];
-
-            for (int i = 0; i < stripes; i++) {
-                RandomAccessFile raf = new RandomAccessFile(f, "r");
-
-                rafs[i] = raf;
-                chs[i] = raf.getChannel();
-            }
-        }
-
-        /**
-         * Reads data from file channel to buffer.
-         *
-         * @param buf Buffer.
-         * @param pos Position.
-         * @return Read bytes count.
-         * @throws IOException If failed.
-         */
-        int read(ByteBuffer buf, long pos) throws IOException {
-            int i = enter.getAndIncrement() & (chs.length - 1);
-
-            return chs[i].read(buf, pos);
-        }
-
-        /**
-         * Closes channel.
-         */
-        void close() {
-            for (RandomAccessFile raf : rafs)
-                U.closeQuiet(raf);
-        }
-    }
-
-    /**
-     * Swap file.
-     */
-    static class SwapFile {
-        /** */
-        private static final long MIN_TRUNK_SIZE = 10 * 1024 * 1024;
-
-        /** */
-        private final File file;
-
-        /** */
-        private final RandomAccessFile raf;
-
-        /** */
-        private final FileChannel writeCh;
-
-        /** */
-        volatile StripedFileChannel readCh;
-
-        /** */
-        private volatile long len;
-
-        /** */
-        private final FileSwapArray<SwapValue> arr = new FileSwapArray<>();
-
-        /**
-         * @param file File.
-         * @param readerStripes Reader stripes number.
-         * @throws IOException In case of error.
-         */
-        SwapFile(File file, int readerStripes) throws IOException {
-            assert file != null;
-
-            file.delete();
-
-            if (!file.createNewFile())
-                throw new IllegalStateException("Failed to create file: " + file.getAbsolutePath());
-
-            this.file = file;
-
-            raf = new RandomAccessFile(file, "rw");
-
-            writeCh = raf.getChannel();
-
-            readCh = new StripedFileChannel(file, readerStripes);
-        }
-
-        /**
-         * Reopens read channel.
-         *
-         * @throws FileNotFoundException If failed.
-         */
-        void reopenReadChannel() throws FileNotFoundException {
-            readCh.close();
-
-            readCh = new StripedFileChannel(file, readCh.chs.length);
-        }
-
-        /**
-         * @param vals Values.
-         * @param buf Duffer.
-         * @param sign Indicates where should we write value, to the left or to the right.
-         * @throws Exception If failed.
-         */
-        public void write(Iterable<SwapValue> vals, ByteBuffer buf, int sign) throws Exception {
-            for (SwapValue val : vals) {
-                int oldIdx = val.idx;
-
-                if (oldIdx == SwapValue.DELETED)
-                    continue;
-
-                int idx = arr.add(val);
-
-                if (!val.casIdx(oldIdx, sign * idx)) {
-                    assert val.idx == SwapValue.DELETED;
-
-                    boolean res = tryRemove(idx, val);
-
-                    assert res;
-                }
-            }
-
-            final int size = buf.remaining();
-
-            if (size == 0)
-                return;
-
-            long pos = len;
-
-            len = pos + size;
-
-            long res = writeCh.write(buf, pos);
-
-            if (res != size)
-                throw new IllegalStateException(res + " != " + size);
-
-            // Nullify bytes in values ans set pos.
-            for (SwapValue val : vals) {
-                val.set(pos, null);
-
-                pos += val.len;
-            }
-        }
-
-        /**
-         * @param vals Values.
-         * @param sign Sign: 1 or -1.
-         * @throws Exception If failed.
-         */
-        public void write(SwapValues vals, int sign) throws Exception {
-            ByteBuffer buf = ByteBuffer.allocateDirect(vals.size);
-
-            for (int i = 0, len = vals.vals.length; i < len; i++) {
-                SwapValue val = vals.vals[i];
-
-                if (val.idx == SwapValue.DELETED) {
-                    vals.vals[i] = null;
-
-                    continue;
-                }
-
-                int idx = arr.add(val);
-
-                if (!val.casIdx(SwapValue.NEW, sign * idx)) {
-                    assert val.idx == SwapValue.DELETED;
-
-                    tryRemove(idx, val);
-
-                    vals.vals[i] = null;
-                }
-                else
-                    buf.put(val.value(null));
-            }
-
-            buf.flip();
-
-            final int size = buf.remaining();
-
-            if (size == 0)
-                return;
-
-            long pos = len;
-
-            len = pos + size;
-
-            long res = writeCh.write(buf, pos);
-
-            if (res != size)
-                throw new IllegalStateException(res + " != " + size);
-
-            // Nullify bytes in values ans set pos.
-            for (SwapValue val : vals.vals) {
-                if (val == null)
-                    continue;
-
-                val.set(pos, null);
-
-                pos += val.len;
-            }
-        }
-
-        /**
-         * Gets file path.
-         *
-         * @return File path.
-         */
-        public String path() {
-            return file.getAbsolutePath();
-        }
-
-        /**
-         * Gets file length.
-         *
-         * @return File length.
-         */
-        public long length() {
-            return len;
-        }
-
-        /**
-         * Deletes file.
-         *
-         * @return Whether file was actually deleted.
-         */
-        public boolean delete() {
-            U.closeQuiet(raf);
-
-            readCh.close();
-
-            return U.delete(file);
-        }
-
-        /**
-         * @param idx Index.
-         * @param exp Expected value.
-         * @return {@code true} If succeeded.
-         */
-        public boolean tryRemove(int idx, SwapValue exp) {
-            assert idx > 0 : idx;
-
-            FileSwapArray.Slot<SwapValue> s = arr.slot(idx);
-
-            return s != null && s.cas(exp, null);
-        }
-
-        /**
-         * Does compaction for one buffer.
-         *
-         * @param vals Values.
-         * @param bufSize Buffer size.
-         * @return Buffer.
-         * @throws IOException If failed.
-         * @throws InterruptedException If interrupted.
-         */
-        public ByteBuffer compact(ArrayDeque<SwapValue> vals, final int bufSize) throws IOException,
-            InterruptedException {
-            assert vals.isEmpty();
-
-            Compact c = new Compact(vals, bufSize);
-
-            c.doCompact();
-
-            return c.result();
-        }
-
-        /**
-         * Single compaction operation.
-         */
-        private class Compact {
-            /** */
-            private final ArrayDeque<SwapValue> vals;
-
-            /** */
-            private final int bufSize;
-
-            /** */
-            private byte[] bytes;
-
-            /** */
-            private ByteBuffer buf;
-
-            /** */
-            private long beg = -1;
-
-            /** */
-            private long end = -1;
-
-            /** */
-            private int compacted;
-
-            /**
-             * @param vals Values.
-             * @param bufSize Buffer size.
-             */
-            private Compact(ArrayDeque<SwapValue> vals, final int bufSize) {
-                assert vals.isEmpty();
-
-                this.vals = vals;
-                this.bufSize = bufSize;
-            }
-
-            /**
-             * Reads buffer and compacts it.
-             *
-             * @throws IOException if failed.
-             */
-            private void readAndCompact() throws IOException {
-                assert beg != -1;
-
-                if (buf == null) {
-                    bytes = new byte[bufSize];
-
-                    buf = ByteBuffer.wrap(bytes);
-                }
-
-                final int pos = buf.position();
-
-                final int lim = (int)(end - beg + pos);
-
-                assert pos >= 0;
-                assert pos < lim : pos + " " + lim;
-                assert lim <= buf.capacity();
-
-                buf.limit(lim);
-
-                int res = writeCh.read(buf, beg);
-
-                assert res == lim - pos;
-
-                int prevEnd = pos;
-                long delta = beg - pos; // To translate from file based positions to buffer based.
-
-                for (int j = vals.size(); j > compacted; j--) {
-                    SwapValue val = vals.pollFirst();
-
-                    int valPos = (int)(val.pos - delta);
-
-                    if (prevEnd != valPos) {
-                        assert prevEnd < valPos : prevEnd + " " + valPos;
-
-                        U.arrayCopy(bytes, valPos, bytes, prevEnd, val.len);
-                    }
-
-                    prevEnd += val.len;
-
-                    vals.addLast(val); // To have values in the same order as in byte buffer.
-                }
-
-                assert prevEnd > 0 : prevEnd;
-
-                buf.position(prevEnd);
-
-                end = -1;
-
-                compacted = vals.size();
-            }
-
-            /**
-             * Compacts.
-             *
-             * @throws IOException If failed.
-             */
-            private void doCompact() throws IOException {
-                int idx = arr.size();
-
-                while (--idx > 0) {
-                    FileSwapArray.Slot<SwapValue> s = arr.slot(idx);
-
-                    assert s != null;
-
-                    SwapValue v = s.get();
-
-                    if (v == null || v.idx == SwapValue.DELETED)
-                        continue;
-
-                    if (end == -1)
-                        end = v.pos + v.len;
-
-                    long size = end - v.pos;
-
-                    if ((buf == null ? bufSize : buf.remaining()) < size) {
-                        if (vals.isEmpty()) {  // Too big single value.
-                            assert bytes == null && buf == null;
-
-                            bytes = new byte[(int)size];
-
-                            buf = ByteBuffer.wrap(bytes);
-                        }
-                        else if (compacted == vals.size())
-                            break; // Finish current compaction, nothing new collected.
-                        else { // Read region and compact values in buffer.
-                            readAndCompact();
-
-                            // Retry the same value.
-                            idx++;
-
-                            continue;
-                        }
-                    }
-
-                    beg = v.pos;
-
-                    vals.addFirst(v);
-
-                    s.cas(v, null);
-                }
-
-                if (vals.isEmpty()) {
-                    arr.truncate(1);
-
-                    writeCh.truncate(0);
-
-                    len = 0;
-
-                    reopenReadChannel(); // Make sure that value can be read only from right file but not after switch.
-
-                    return;
-                }
-
-                if (compacted != vals.size())
-                    readAndCompact();
-
-                int pos = 0;
-
-                for (SwapValue val : vals) { // The values will share one byte array with different offsets while moving.
-                    val.set(pos, bytes);
-
-                    pos += val.len;
-                }
-
-                buf.flip();
-
-                assert buf.limit() == pos : buf.limit() + " " + pos;
-
-                arr.truncate(idx + 1);
-
-                if (len - beg > MIN_TRUNK_SIZE) {
-                    writeCh.truncate(beg);
-
-                    len = beg;
-                }
-            }
-
-            /**
-             * @return Buffer.
-             */
-            public ByteBuffer result() {
-                return buf;
-            }
-        }
-    }
-
-    /**
-     * Space.
-     */
-    private class Space {
-        /** Space name. */
-        private final String name;
-
-        /** */
-        private final GridAtomicInitializer<Void> initializer = new GridAtomicInitializer<>();
-
-        /** Swap file left. */
-        @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
-        private SwapFile left;
-
-        /** Swap file right. */
-        @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
-        private SwapFile right;
-
-        /** */
-        private final SwapValuesQueue que;
-
-        /** Partitions. */
-        private final ConcurrentMap<Integer, ConcurrentMap<SwapKey, SwapValue>> parts =
-            new ConcurrentHashMap8<>();
-
-        /** Total size. */
-        private final AtomicLong size = new AtomicLong();
-
-        /** Total count. */
-        private final AtomicLong cnt = new AtomicLong();
-
-        /** */
-        private int sign = 1;
-
-        /** Writer thread. */
-        private Thread writer;
-
-        /** */
-        private Thread compactor;
-
-        /**
-         * @param name Space name.
-         * @param log Logger.
-         */
-        private Space(String name, IgniteLogger log) {
-            assert name != null;
-
-            this.name = name;
-            this.que = new SwapValuesQueue(writeBufSize, maxWriteQueSize, log);
-        }
-
-        /**
-         * Initializes space.
-         *
-         * @throws org.apache.ignite.spi.IgniteSpiException If initialization failed.
-         */
-        public void initialize() throws IgniteSpiException {
-            if (initializer.succeeded())
-                return;
-
-            assert dir.exists();
-            assert dir.isDirectory();
-
-            try {
-                initializer.init(new Callable<Void>(){
-                    @Override public Void call() throws Exception {
-                        left = new SwapFile(new File(dir, name + ".left"), readStripesNum);
-
-                        right = new SwapFile(new File(dir, name + ".right"), readStripesNum);
-
-                        final Object mux = new Object();
-
-                        writer = new IgniteSpiThread(gridName,  "Swap writer: " + name, log) {
-                            @Override protected void body() throws InterruptedException {
-                                while (!isInterrupted()) {
-                                    SwapValues vals = que.take();
-
-                                    synchronized (mux) {
-                                        SwapFile f = sign == 1 ? right : left;
-
-                                        try {
-                                            f.write(vals, sign);
-                                        }
-                                        catch (Exception e) {
-                                            throw new IgniteException(e);
-                                        }
-                                    }
-                                }
-                            }
-                        };
-
-                        compactor = new IgniteSpiThread(gridName, "Swap compactor: " + name, log) {
-                            @Override protected void body() throws InterruptedException {
-                                SwapFile w = null;
-                                SwapFile c = null;
-
-                                ArrayDeque<SwapValue> vals = null;
-
-                                while (!isInterrupted()) {
-                                    while(!needCompact()) {
-                                        LockSupport.park();
-
-                                        if (isInterrupted())
-                                            return;
-                                    }
-
-                                    ByteBuffer buf = null;
-
-                                    if (vals == null)
-                                        vals = new ArrayDeque<>();
-                                    else {
-                                        vals.clear();
-
-                                        try {
-                                            buf = c.compact(vals, writeBufSize);
-                                        }
-                                        catch (IOException e) {
-                                            throw new IgniteException(e);
-                                        }
-                                    }
-
-                                    if (vals.isEmpty()) {
-                                        synchronized (mux) {
-                                            sign = -sign;
-
-                                            if (sign == 1) {
-                                                w = right;
-                                                c = left;
-                                            }
-                                            else {
-                                                w = left;
-                                                c = right;
-                                            }
-                                        }
-                                    }
-                                    else {
-                                        assert buf != null && buf.remaining() != 0;
-
-                                        synchronized (mux) {
-                                            try {
-                                                w.write(vals, buf, sign);
-                                            }
-                                            catch (Exception e) {
-                                                throw new IgniteException(e);
-                                            }
-                                        }
-                                    }
-                                }
-                            }
-                        };
-
-                        writer.start();
-                        compactor.start();
-
-                        return null;
-                    }
-                });
-            }
-            catch (IgniteCheckedException e) {
-                throw new IgniteSpiException(e);
-            }
-        }
-
-        /**
-         * Gets total space size in bytes.
-         *
-         * @return Total size.
-         */
-        public long size() {
-            return left.length() + right.length();
-        }
-
-        /**
-         * Gets total space count.
-         *
-         * @return Total count.
-         */
-        public long count() {
-            return cnt.get();
-        }
-
-        /**
-         * @param parts Partitions.
-         * @return Total count of keys for given partitions.
-         */
-        public long count(Set<Integer> parts) {
-            long cnt = 0;
-
-            for (Integer part : parts) {
-                ConcurrentMap<SwapKey, SwapValue> map = partition(part, false);
-
-                if (map != null)
-                    cnt += map.size();
-            }
-
-            return cnt;
-        }
-
-        /**
-         * Stops space.
-         *
-         * @throws org.apache.ignite.internal.IgniteInterruptedCheckedException If interrupted.
-         */
-        public void stop() throws IgniteInterruptedCheckedException {
-            U.interrupt(writer);
-            U.interrupt(compactor);
-
-            U.join(writer);
-            U.join(compactor);
-
-            left.delete();
-            right.delete();
-        }
-
-        /**
-         * Stores value in space.
-         *
-         * @param key Key.
-         * @param val Value.
-         * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-         */
-        public void store(final SwapKey key, @Nullable final byte[] val) throws IgniteSpiException {
-            assert key != null;
-
-            final ConcurrentMap<SwapKey, SwapValue> part = partition(key.partition(), true);
-
-            assert part != null;
-
-            if (val == null) {
-                SwapValue swapVal = part.remove(key);
-
-                if (swapVal != null) {
-                    removeFromFile(swapVal);
-
-                    size.addAndGet(-swapVal.len);
-                    cnt.decrementAndGet();
-                }
-
-                return;
-            }
-
-            final SwapValue swapVal = new SwapValue(val);
-
-            SwapValue old = part.put(key, swapVal);
-
-            if (old != null) {
-                size.addAndGet(val.length - old.len);
-
-                removeFromFile(old);
-            }
-            else {
-                size.addAndGet(val.length);
-                cnt.incrementAndGet();
-            }
-
-            que.add(swapVal);
-        }
-
-        /**
-         * Reads value from space.
-         *
-         * @param key Key.
-         * @return Value.
-         * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-         */
-        @Nullable public byte[] read(SwapKey key) throws IgniteSpiException {
-            assert key != null;
-
-            final Map<SwapKey, SwapValue> part = partition(key.partition(), false);
-
-            if (part == null)
-                return null;
-
-            SwapValue swapVal = part.get(key);
-
-            if (swapVal == null)
-                return null;
-
-            return swapVal.value(this);
-        }
-
-        /**
-         * Removes value from space.
-         *
-         * @param key Key.
-         * @param read If value has to be read.
-         * @return Value.
-         * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-         */
-        @Nullable public byte[] remove(SwapKey key, boolean read) throws IgniteSpiException {
-            assert key != null;
-
-            final Map<SwapKey, SwapValue> part = partition(key.partition(), false);
-
-            if (part == null)
-                return null;
-
-            SwapValue val = part.remove(key);
-
-            if (val == null)
-                return null;
-
-            size.addAndGet(-val.len);
-
-            cnt.decrementAndGet();
-
-            byte[] bytes = null;
-
-            if (read) {
-                bytes = val.value(this);
-
-                assert bytes != null; // Value bytes were read before removal from file, so compaction can't happen.
-            }
-
-            removeFromFile(val);
-
-            return bytes;
-        }
-
-        /**
-         * @param val Value.
-         */
-        private void removeFromFile(SwapValue val) {
-            for (;;) {
-                int idx = val.idx;
-
-                assert idx != SwapValue.DELETED;
-
-                if (val.casIdx(idx, SwapValue.DELETED)) {
-                    if (idx != SwapValue.NEW) {
-                        SwapFile f = idx > 0 ? right : left;
-
-                        f.tryRemove(Math.abs(idx), val);
-                    }
-
-                    break;
-                }
-            }
-
-            if (needCompact())
-                LockSupport.unpark(compactor);
-        }
-
-        /**
-         * @return {@code true} If compaction needed.
-         */
-        private boolean needCompact() {
-            long fileLen = size();
-
-            return fileLen > writeBufSize && (fileLen - size.get()) / (float)fileLen > maxSparsity;
-        }
-
-        /**
-         * Gets numbers of partitioned stored in this space.
-         *
-         * @return Partition numbers.
-         */
-        public Collection<Integer> partitions() {
-            return parts.keySet();
-        }
-
-        /**
-         * Gets partition map by its number.
-         *
-         * @param part Partition number.
-         * @param create Whether to create partition if it doesn't exist.
-         * @return Partition map.
-         */
-        @Nullable private ConcurrentMap<SwapKey, SwapValue> partition(int part, boolean create) {
-            ConcurrentMap<SwapKey, SwapValue> map = parts.get(part);
-
-            if (map == null && create) {
-                ConcurrentMap<SwapKey, SwapValue> old = parts.putIfAbsent(part,
-                    map = new ConcurrentHashMap<>());
-
-                if (old != null)
-                    map = old;
-            }
-
-            return map;
-        }
-
-        /**
-         * @param part Partition.
-         * @return Iterator over partition.
-         */
-        public Iterator<Map.Entry<SwapKey, byte[]>> entriesIterator(int part) {
-            Map<SwapKey, SwapValue> partMap = partition(part, false);
-
-            if (partMap == null)
-                return Collections.<Map.Entry<SwapKey, byte[]>>emptySet().iterator();
-
-            return transform(partMap.entrySet().iterator());
-        }
-
-        /**
-         * @return Iterator over all entries.
-         */
-        public Iterator<Map.Entry<SwapKey, byte[]>> entriesIterator() {
-            final Iterator<ConcurrentMap<SwapKey, SwapValue>> iter = parts.values().iterator();
-
-            return transform(F.concat(new Iterator<Iterator<Map.Entry<SwapKey, SwapValue>>>() {
-                @Override public boolean hasNext() {
-                    return iter.hasNext();
-                }
-
-                @Override public Iterator<Map.Entry<SwapKey, SwapValue>> next() {
-                    return iter.next().entrySet().iterator();
-                }
-
-                @Override public void remove() {
-                    throw new UnsupportedOperationException();
-                }
-            }));
-        }
-
-        /**
-         * Gets iterator for all entries in space.
-         *
-         * @param iter Iterator with {@link SwapValue} to transform.
-         * @return Entries iterator.
-         */
-        private Iterator<Map.Entry<SwapKey, byte[]>> transform(final Iterator<Map.Entry<SwapKey,
-            SwapValue>> iter) {
-            return new Iterator<Map.Entry<SwapKey, byte[]>>() {
-                /** */
-                private Map.Entry<SwapKey, byte[]> next;
-
-                /** */
-                private Map.Entry<SwapKey, byte[]> last;
-
-                {
-                    advance();
-                }
-
-                @Override public boolean hasNext() {
-                    return next != null;
-                }
-
-                /**
-                 * Gets next entry.
-                 */
-                private void advance() {
-                    while (iter.hasNext()) {
-                        Map.Entry<SwapKey, SwapValue> entry = iter.next();
-
-                        byte[] bytes;
-
-                        try {
-                            bytes = entry.getValue().value(Space.this);
-                        }
-                        catch (IgniteSpiException e) {
-                            throw new IgniteException(e);
-                        }
-
-                        if (bytes != null) {
-                            next = new T2<>(entry.getKey(), bytes);
-
-                            break;
-                        }
-                    }
-                }
-
-                @Override public Map.Entry<SwapKey, byte[]> next() {
-                    final Map.Entry<SwapKey, byte[]> res = next;
-
-                    if (res == null)
-                        throw new NoSuchElementException();
-
-                    next = null;
-
-                    advance();
-
-                    last = res;
-
-                    return res;
-                }
-
-                @Override public void remove() {
-                    if (last == null)
-                        throw new IllegalStateException();
-
-                    try {
-                        Space.this.remove(last.getKey(), false);
-                    }
-                    catch (IgniteSpiException e) {
-                        throw new IgniteException(e);
-                    }
-                    finally {
-                        last = null;
-                    }
-                }
-            };
-        }
-    }
-}


[11/50] [abbrv] ignite git commit: Merge with master - WIP.

Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
index bbd2db0,14ce1f9..79358e8
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
@@@ -211,47 -208,34 +216,55 @@@ public interface GridDhtPartitionTopolo
       * @param exchId Exchange ID.
       * @param partMap Update partition map.
       * @param cntrMap Partition update counters.
-      * @return Local partition map if there were evictions or {@code null} otherwise.
+      * @return {@code True} if topology state changed.
       */
-     public GridDhtPartitionMap2 update(@Nullable GridDhtPartitionExchangeId exchId,
+     public boolean update(@Nullable GridDhtPartitionExchangeId exchId,
          GridDhtPartitionFullMap partMap,
 -        @Nullable Map<Integer, Long> cntrMap);
 +        @Nullable Map<Integer, T2<Long, Long>> cntrMap);
  
      /**
       * @param exchId Exchange ID.
       * @param parts Partitions.
       * @param cntrMap Partition update counters.
-      * @return Local partition map if there were evictions or {@code null} otherwise.
+      * @param checkEvictions Check evictions flag.
+      * @return {@code True} if topology state changed.
       */
-     @Nullable public GridDhtPartitionMap2 update(@Nullable GridDhtPartitionExchangeId exchId,
+     @Nullable public boolean update(@Nullable GridDhtPartitionExchangeId exchId,
          GridDhtPartitionMap2 parts,
-         @Nullable Map<Integer, T2<Long, Long>> cntrMap);
 -        @Nullable Map<Integer, Long> cntrMap,
++        @Nullable Map<Integer, T2<Long, Long>> cntrMap,
+         boolean checkEvictions);
  
      /**
 +     * Checks if there is at least one owner for each partition in the cache topology.
 +     * If not, marks such a partition as LOST.
 +     * <p>
 +     * This method should be called on topology coordinator after all partition messages are received.
 +     *
 +     * @param discoEvt Discovery event for which we detect lost partitions.
 +     * @return {@code True} if partitons state got updated.
 +     */
 +    public boolean detectLostPartitions(DiscoveryEvent discoEvt);
 +
 +    /**
 +     * Resets the state of all LOST partitions to OWNING.
 +     */
 +    public void resetLostPartitions();
 +
 +    /**
 +     * @return Collection of lost partitions, if any.
 +     */
 +    public Collection<Integer> lostPartitions();
 +
 +    /**
+      *
+      */
+     public void checkEvictions();
+ 
+     /**
+      * @param skipZeros If {@code true} then filters out zero counters.
       * @return Partition update counters.
       */
-     public Map<Integer, T2<Long, Long>> updateCounters();
+     public Map<Integer, Long> updateCounters(boolean skipZeros);
  
      /**
       * @param part Partition to own.

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
index 05c5c2d,1b4dcc9..5bda0bf
--- 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
@@@ -30,18 -30,14 +30,19 @@@ import java.util.Set
  import java.util.UUID;
  import java.util.concurrent.atomic.AtomicReferenceArray;
  import org.apache.ignite.IgniteCheckedException;
 +import org.apache.ignite.IgniteException;
  import org.apache.ignite.IgniteLogger;
  import org.apache.ignite.IgniteSystemProperties;
 +import org.apache.ignite.cache.PartitionLossPolicy;
  import org.apache.ignite.cluster.ClusterNode;
  import org.apache.ignite.events.DiscoveryEvent;
 +import org.apache.ignite.events.EventType;
  import org.apache.ignite.internal.IgniteFutureTimeoutCheckedException;
  import org.apache.ignite.internal.IgniteInterruptedCheckedException;
+ import org.apache.ignite.internal.processors.affinity.AffinityAssignment;
  import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 +import org.apache.ignite.internal.processors.affinity.GridAffinityAssignment;
 +import org.apache.ignite.internal.processors.cache.CacheState;
  import org.apache.ignite.internal.processors.cache.GridCacheContext;
  import org.apache.ignite.internal.processors.cache.GridCacheMapEntryFactory;
  import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionExchangeId;
@@@ -593,12 -539,8 +591,10 @@@ import static org.apache.ignite.interna
  
      /** {@inheritDoc} */
      @Override public boolean afterExchange(GridDhtPartitionsExchangeFuture exchFut) throws IgniteCheckedException {
 +        treatAllPartitionAsLocal = false;
 +
          boolean changed = waitForRent();
  
-         ClusterNode loc = cctx.localNode();
- 
          int num = cctx.affinity().partitions();
  
          AffinityTopologyVersion topVer = exchFut.topologyVersion();
@@@ -676,10 -618,10 +672,10 @@@
                      if (locPart != null) {
                          GridDhtPartitionState state = locPart.state();
  
 -                        if (state == MOVING) {
 +                        if (state == MOVING && cctx.shared().cache().globalState() == CacheState.ACTIVE) {
                              locPart.rent(false);
  
-                             updateLocal(p, loc.id(), locPart.state(), updateSeq);
+                             updateSeq = updateLocal(p, locPart.state(), updateSeq);
  
                              changed = true;
  
@@@ -1067,9 -979,9 +1066,9 @@@
  
      /** {@inheritDoc} */
      @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"})
-     @Nullable @Override public GridDhtPartitionMap2 update(@Nullable GridDhtPartitionExchangeId exchId,
+     @Nullable @Override public boolean update(@Nullable GridDhtPartitionExchangeId exchId,
          GridDhtPartitionFullMap partMap,
 -        @Nullable Map<Integer, Long> cntrMap) {
 +        @Nullable Map<Integer, T2<Long, Long>> cntrMap) {
          if (log.isDebugEnabled())
              log.debug("Updating full partition map [exchId=" + exchId + ", parts=" + fullMapString() + ']');
  
@@@ -1079,13 -991,13 +1078,13 @@@
  
          try {
              if (stopping)
-                 return null;
+                 return false;
  
              if (cntrMap != null) {
 -                for (Map.Entry<Integer, Long> e : cntrMap.entrySet()) {
 -                    Long cntr = this.cntrMap.get(e.getKey());
 +                for (Map.Entry<Integer, T2<Long, Long>> e : cntrMap.entrySet()) {
 +                    T2<Long, Long> cntr = this.cntrMap.get(e.getKey());
  
 -                    if (cntr == null || cntr < e.getValue())
 +                    if (cntr == null || cntr.get2() < e.getValue().get2())
                          this.cntrMap.put(e.getKey(), e.getValue());
                  }
  
@@@ -1240,10 -1104,7 +1239,10 @@@
              if (log.isDebugEnabled())
                  log.debug("Partition map after full update: " + fullMapString());
  
 +            if (changed)
 +                cctx.shared().exchange().scheduleResendPartitions();
 +
-             return changed ? localPartitionMap() : null;
+             return changed;
          }
          finally {
              lock.writeLock().unlock();
@@@ -1251,10 -1112,10 +1250,10 @@@
      }
  
      /** {@inheritDoc} */
-     @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"})
-     @Nullable @Override public GridDhtPartitionMap2 update(@Nullable GridDhtPartitionExchangeId exchId,
+     @Nullable @Override public boolean update(@Nullable GridDhtPartitionExchangeId exchId,
          GridDhtPartitionMap2 parts,
-         @Nullable Map<Integer, T2<Long, Long>> cntrMap) {
 -        @Nullable Map<Integer, Long> cntrMap,
++        @Nullable Map<Integer, T2<Long, Long>> cntrMap,
+         boolean checkEvictions) {
          if (log.isDebugEnabled())
              log.debug("Updating single partition map [exchId=" + exchId + ", parts=" + mapString(parts) + ']');
  
@@@ -1270,26 -1131,21 +1269,26 @@@
  
          try {
              if (stopping)
-                 return null;
+                 return false;
  
              if (cntrMap != null) {
 -                for (Map.Entry<Integer, Long> e : cntrMap.entrySet()) {
 -                    Integer p = e.getKey();
 -
 -                    Long cntr = this.cntrMap.get(p);
 +                for (Map.Entry<Integer, T2<Long, Long>> e : cntrMap.entrySet()) {
 +                    T2<Long, Long> cntr = this.cntrMap.get(e.getKey());
  
 -                    if (cntr == null || cntr < e.getValue())
 -                        this.cntrMap.put(p, e.getValue());
 +                    if (cntr == null || cntr.get2() < e.getValue().get2())
 +                        this.cntrMap.put(e.getKey(), e.getValue());
 +                }
  
-                 for (int i = 0; i < locParts.length(); i++) {
-                     GridDhtLocalPartition part = locParts.get(i);
++                for (int p = 0; p < locParts.length(); p++) {
+                     GridDhtLocalPartition part = locParts.get(p);
  
 -                    if (part != null)
 -                        part.updateCounter(e.getValue());
 +                    if (part == null)
 +                        continue;
 +
 +                    T2<Long, Long> cntr = cntrMap.get(part.id());
 +
 +                    if (cntr != null && cntr.get2() > part.updateCounter())
 +                        part.updateCounter(cntr.get2());
                  }
              }
  
@@@ -1320,58 -1176,86 +1319,97 @@@
  
              long updateSeq = this.updateSeq.incrementAndGet();
  
-             node2part = new GridDhtPartitionFullMap(node2part, updateSeq);
+             node2part.newUpdateSequence(updateSeq);
  
-             boolean changed = false;
+             boolean changed = cur == null || !cur.equals(parts);
  
-             if (cur == null || !cur.equals(parts))
-                 changed = true;
+             if (changed) {
+                 node2part.put(parts.nodeId(), parts);
  
-             node2part.put(parts.nodeId(), parts);
+                 // Add new mappings.
+                 for (Integer p : parts.keySet()) {
+                     Set<UUID> ids = part2node.get(p);
  
-             part2node = new HashMap<>(part2node);
+                     if (ids == null)
+                         // Initialize HashSet to size 3 in anticipation that there won't be
+                         // more than 3 nodes per partition.
+                         part2node.put(p, ids = U.newHashSet(3));
  
-             // Add new mappings.
-             for (Integer p : parts.keySet()) {
-                 Set<UUID> ids = part2node.get(p);
+                     ids.add(parts.nodeId());
+                 }
  
-                 if (ids == null)
-                     // Initialize HashSet to size 3 in anticipation that there won't be
-                     // more than 3 nodes per partition.
-                     part2node.put(p, ids = U.newHashSet(3));
+                 // Remove obsolete mappings.
+                 if (cur != null) {
+                     for (Integer p : cur.keySet()) {
+                         if (parts.containsKey(p))
+                             continue;
  
-                 changed |= ids.add(parts.nodeId());
-             }
+                         Set<UUID> ids = part2node.get(p);
  
-             // Remove obsolete mappings.
-             if (cur != null) {
-                 for (Integer p : F.view(cur.keySet(), F0.notIn(parts.keySet()))) {
-                     Set<UUID> ids = part2node.get(p);
- 
-                     if (ids != null)
-                         changed |= ids.remove(parts.nodeId());
+                         if (ids != null)
+                             ids.remove(parts.nodeId());
+                     }
                  }
              }
+             else
+                 cur.updateSequence(parts.updateSequence(), parts.topologyVersion());
  
 -            if (checkEvictions)
 -                changed |= checkEvictions(updateSeq);
 +            AffinityTopologyVersion affVer = cctx.affinity().affinityTopologyVersion();
 +
 +            if (!affVer.equals(AffinityTopologyVersion.NONE) && affVer.compareTo(topVer) >= 0) {
 +                List<List<ClusterNode>> aff = cctx.affinity().assignments(topVer);
 +
-                 changed |= checkEvictions(updateSeq, aff);
++                if (checkEvictions)
++                    changed |= checkEvictions(updateSeq, aff);
 +
 +                updateRebalanceVersion(aff);
 +            }
  
              consistencyCheck();
  
              if (log.isDebugEnabled())
                  log.debug("Partition map after single update: " + fullMapString());
  
 +            if (changed)
 +                cctx.shared().exchange().scheduleResendPartitions();
 +
-             return changed ? localPartitionMap() : null;
+             return changed;
+         }
+         finally {
+             lock.writeLock().unlock();
+         }
+     }
+ 
+     /**
+      * @param updateSeq Update sequence.
+      * @return {@code True} if state changed.
+      */
+     private boolean checkEvictions(long updateSeq) {
+         AffinityTopologyVersion affVer = cctx.affinity().affinityTopologyVersion();
+ 
+         boolean changed = false;
+ 
+         if (!affVer.equals(AffinityTopologyVersion.NONE) && affVer.compareTo(topVer) >= 0) {
+             List<List<ClusterNode>> aff = cctx.affinity().assignments(topVer);
+ 
+             changed = checkEvictions(updateSeq, aff);
+ 
+             updateRebalanceVersion(aff);
+         }
+ 
+         return changed;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public void checkEvictions() {
+         lock.writeLock().lock();
+ 
+         try {
+             long updateSeq = this.updateSeq.incrementAndGet();
+ 
+             node2part.newUpdateSequence(updateSeq);
+ 
+             checkEvictions(updateSeq);
          }
          finally {
              lock.writeLock().unlock();
@@@ -1698,24 -1387,32 +1748,34 @@@
              }
          }
  
 -        UUID locNodeId = cctx.localNodeId();
 +        if (node2part != null) {
-             GridDhtPartitionMap2 map = node2part.get(nodeId);
++            UUID locNodeId = cctx.localNodeId();
+ 
 -        GridDhtPartitionMap2 map = node2part.get(locNodeId);
++            GridDhtPartitionMap2 map = node2part.get(locNodeId);
  
-             if (map == null)
-                 node2part.put(nodeId, map = new GridDhtPartitionMap2(nodeId, updateSeq, topVer,
-                     Collections.<Integer, GridDhtPartitionState>emptyMap(), false));
 -        if (map == null) {
 -            map = new GridDhtPartitionMap2(locNodeId,
 -                updateSeq,
 -                topVer,
 -                Collections.<Integer, GridDhtPartitionState>emptyMap(),
 -                false);
++            if (map == null) {
++                map = new GridDhtPartitionMap2(locNodeId,
++                    updateSeq,
++                    topVer,
++                    Collections.<Integer, GridDhtPartitionState>emptyMap(),
++                    false);
+ 
 -            node2part.put(locNodeId, map);
 -        }
++                node2part.put(locNodeId, map);
++            }
  
 -        map.updateSequence(updateSeq, topVer);
 +            map.updateSequence(updateSeq, topVer);
  
 -        map.put(p, state);
 +            map.put(p, state);
  
 -        Set<UUID> ids = part2node.get(p);
 +            Set<UUID> ids = part2node.get(p);
  
 -        if (ids == null)
 -            part2node.put(p, ids = U.newHashSet(3));
 +            if (ids == null)
 +                part2node.put(p, ids = U.newHashSet(3));
  
-             ids.add(nodeId);
 -        ids.add(locNodeId);
++            ids.add(locNodeId);
 +        }
+ 
+         return updateSeq;
      }
  
      /**
@@@ -1807,23 -1500,26 +1863,24 @@@
      }
  
      /** {@inheritDoc} */
-     @Nullable @Override public GridDhtPartitionMap2 partitions(UUID nodeId) {
 -    @Override public Map<Integer, Long> updateCounters(boolean skipZeros) {
++    @Override public Map<Integer, T2<Long, Long>> updateCounters(boolean skipZeros) {
          lock.readLock().lock();
  
          try {
-             return node2part.get(nodeId);
-         }
-         finally {
-             lock.readLock().unlock();
-         }
-     }
 -            Map<Integer, Long> res;
++            Map<Integer, T2<Long, Long>> res;
  
-     /** {@inheritDoc} */
-     @Override public Map<Integer, T2<Long, Long>> updateCounters() {
-         lock.readLock().lock();
+             if (skipZeros) {
+                 res = U.newHashMap(cntrMap.size());
  
-         try {
-             Map<Integer, T2<Long, Long>> res = new HashMap<>(cntrMap);
 -                for (Map.Entry<Integer, Long> e : cntrMap.entrySet()) {
 -                    Long cntr = e.getValue();
 -
 -                    if (ZERO.equals(cntr))
++                for (Map.Entry<Integer, T2<Long, Long>> e : cntrMap.entrySet()) {
++                    if (ZERO.equals(e.getValue().get1()) && ZERO.equals(e.getValue().get2()))
+                         continue;
+ 
 -                    res.put(e.getKey(), cntr);
++                    res.put(e.getKey(), e.getValue());
+                 }
+             }
+             else
+                 res = new HashMap<>(cntrMap);
  
              for (int i = 0; i < locParts.length(); i++) {
                  GridDhtLocalPartition part = locParts.get(i);
@@@ -1831,11 -1527,14 +1888,14 @@@
                  if (part == null)
                      continue;
  
 -                Long cntr0 = res.get(part.id());
 -                long cntr1 = part.updateCounter();
 +                T2<Long, Long> cntr0 = res.get(part.id());
 +                Long cntr1 = part.initialUpdateCounter();
  
+                 if (skipZeros && cntr1 == 0L)
+                     continue;
+ 
 -                if (cntr0 == null || cntr1 > cntr0)
 -                    res.put(part.id(), cntr1);
 +                if (cntr0 == null || cntr1 > cntr0.get1())
 +                    res.put(part.id(), new T2<Long, Long>(cntr1, part.updateCounter()));
              }
  
              return res;

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index 8096950,8aeecf8..b04dc30
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@@ -365,8 -361,12 +365,13 @@@ public final class GridDhtTxPrepareFutu
  
                  boolean hasFilters = !F.isEmptyOrNulls(txEntry.filters()) && !F.isAlwaysTrue(txEntry.filters());
  
-                 if (hasFilters || retVal || txEntry.op() == DELETE || txEntry.op() == TRANSFORM ||
-                     tx.nearOnOriginatingNode() || tx.hasInterceptor()) {
+                 CacheObject val;
+                 CacheObject oldVal = null;
+ 
 -                boolean readOld = hasFilters || retVal || txEntry.op() == DELETE || txEntry.op() == TRANSFORM;
++                boolean readOld = hasFilters || retVal || txEntry.op() == DELETE || txEntry.op() == TRANSFORM ||
++                    tx.nearOnOriginatingNode() || tx.hasInterceptor();
+ 
+                 if (readOld) {
                      cached.unswap(retVal);
  
                      boolean readThrough = !txEntry.skipStore() &&
@@@ -381,9 -381,10 +386,9 @@@
  
                      final boolean keepBinary = txEntry.keepBinary();
  
-                     CacheObject val = cached.innerGet(
+                     val = oldVal = cached.innerGet(
                          null,
                          tx,
 -                        /*swap*/true,
                          readThrough,
                          /*metrics*/retVal,
                          /*event*/evt,

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index f750840,b291bd2..be32767
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@@ -2779,12 -2809,10 +2819,12 @@@ public class GridDhtAtomicCache<K, V> e
       *      locks are released.
       */
      @SuppressWarnings("ForLoopReplaceableByForEach")
-     private List<GridDhtCacheEntry> lockEntries(List<KeyCacheObject> keys, AffinityTopologyVersion topVer)
+     private List<GridDhtCacheEntry> lockEntries(GridNearAtomicAbstractUpdateRequest req, AffinityTopologyVersion topVer)
          throws GridDhtInvalidPartitionException {
 +        ctx.shared().database().checkpointReadLock();
 +
-         if (keys.size() == 1) {
-             KeyCacheObject key = keys.get(0);
+         if (req.size() == 1) {
+             KeyCacheObject key = req.key(0);
  
              while (true) {
                  try {

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
index 058d4aa,efb35c4..98ab764
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
@@@ -23,18 -23,9 +23,14 @@@ import java.util.HashMap
  import java.util.List;
  import java.util.Map;
  import java.util.UUID;
 +import java.util.concurrent.atomic.AtomicReference;
 +import javax.cache.processor.EntryProcessor;
 +import org.apache.ignite.IgniteCheckedException;
 +import org.apache.ignite.IgniteLogger;
 +import org.apache.ignite.IgniteSystemProperties;
  import org.apache.ignite.cache.CacheWriteSynchronizationMode;
  import org.apache.ignite.cluster.ClusterNode;
- import org.apache.ignite.internal.IgniteInternalFuture;
- import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
  import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
- import org.apache.ignite.internal.processors.cache.CacheObject;
- import org.apache.ignite.internal.processors.cache.GridCacheAtomicFuture;
  import org.apache.ignite.internal.processors.cache.GridCacheContext;
  import org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException;
  import org.apache.ignite.internal.processors.cache.KeyCacheObject;
@@@ -48,12 -35,9 +40,12 @@@ import org.apache.ignite.internal.util.
  import org.apache.ignite.internal.util.typedef.F;
  import org.apache.ignite.internal.util.typedef.internal.S;
  import org.apache.ignite.internal.util.typedef.internal.U;
- import org.apache.ignite.lang.IgniteUuid;
+ import org.jetbrains.annotations.NotNull;
  import org.jetbrains.annotations.Nullable;
  
 +import static org.apache.ignite.IgniteSystemProperties.IGNITE_ATOMIC_CACHE_MAX_CONCURRENT_DHT_UPDATES;
 +import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
 +
  /**
   * DHT atomic cache backup update future.
   */

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicFullUpdateRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicFullUpdateRequest.java
index 0000000,87d9225..84c2109
mode 000000,100644..100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicFullUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicFullUpdateRequest.java
@@@ -1,0 -1,1025 +1,1046 @@@
+ /*
+  * 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.dht.atomic;
+ 
+ import java.io.Externalizable;
+ import java.nio.ByteBuffer;
+ import java.util.ArrayList;
+ import java.util.Arrays;
+ import java.util.List;
+ import java.util.UUID;
+ import javax.cache.expiry.ExpiryPolicy;
+ import javax.cache.processor.EntryProcessor;
+ import org.apache.ignite.IgniteCheckedException;
+ import org.apache.ignite.IgniteLogger;
+ import org.apache.ignite.cache.CacheWriteSynchronizationMode;
+ import org.apache.ignite.internal.GridDirectCollection;
+ import org.apache.ignite.internal.GridDirectTransient;
+ import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+ import org.apache.ignite.internal.processors.cache.CacheEntryPredicate;
+ import org.apache.ignite.internal.processors.cache.CacheObject;
+ import org.apache.ignite.internal.processors.cache.GridCacheContext;
+ import org.apache.ignite.internal.processors.cache.GridCacheOperation;
+ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+ import org.apache.ignite.internal.processors.cache.KeyCacheObject;
+ import org.apache.ignite.internal.processors.cache.distributed.IgniteExternalizableExpiryPolicy;
+ import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
+ import org.apache.ignite.internal.util.GridLongList;
+ import org.apache.ignite.internal.util.tostring.GridToStringInclude;
+ import org.apache.ignite.internal.util.typedef.F;
+ import org.apache.ignite.internal.util.typedef.internal.CU;
+ import org.apache.ignite.internal.util.typedef.internal.S;
+ import org.apache.ignite.internal.util.typedef.internal.U;
+ import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType;
+ import org.apache.ignite.plugin.extensions.communication.MessageReader;
+ import org.apache.ignite.plugin.extensions.communication.MessageWriter;
+ import org.jetbrains.annotations.NotNull;
+ import org.jetbrains.annotations.Nullable;
+ 
+ import static org.apache.ignite.internal.processors.cache.GridCacheOperation.DELETE;
+ import static org.apache.ignite.internal.processors.cache.GridCacheOperation.TRANSFORM;
+ import static org.apache.ignite.internal.processors.cache.GridCacheOperation.UPDATE;
+ 
+ /**
+  * Lite DHT cache update request sent from near node to primary node.
+  */
+ public class GridNearAtomicFullUpdateRequest extends GridNearAtomicAbstractUpdateRequest {
+     /** */
+     private static final long serialVersionUID = 0L;
+ 
+     /** Target node ID. */
+     @GridDirectTransient
+     private UUID nodeId;
+ 
+     /** Future version. */
+     private GridCacheVersion futVer;
+ 
+     /** Update version. Set to non-null if fastMap is {@code true}. */
+     private GridCacheVersion updateVer;
+ 
+     /** Topology version. */
+     private AffinityTopologyVersion topVer;
+ 
+     /** Write synchronization mode. */
+     private CacheWriteSynchronizationMode syncMode;
+ 
+     /** Update operation. */
+     private GridCacheOperation op;
+ 
+     /** Subject ID. */
+     protected UUID subjId;
+ 
+     /** Task name hash. */
+     protected int taskNameHash;
+ 
+     /** */
+     @GridDirectTransient
+     private GridNearAtomicUpdateResponse res;
+ 
+     /** Fast map flag. */
+     protected boolean fastMap;
+ 
+     /** Topology locked flag. Set if atomic update is performed inside TX or explicit lock. */
+     protected boolean topLocked;
+ 
+     /** Flag indicating whether request contains primary keys. */
+     protected boolean hasPrimary;
+ 
+     /** Skip write-through to a persistent storage. */
+     protected boolean skipStore;
+ 
+     /** */
+     protected boolean clientReq;
+ 
+     /** Keep binary flag. */
+     protected boolean keepBinary;
+ 
+     /** Return value flag. */
+     protected boolean retval;
+ 
++    /** */
++    protected boolean recovery;
++
+     /** Keys to update. */
+     @GridToStringInclude
+     @GridDirectCollection(KeyCacheObject.class)
+     private List<KeyCacheObject> keys;
+ 
+     /** Values to update. */
+     @GridDirectCollection(CacheObject.class)
+     private List<CacheObject> vals;
+ 
+     /** Partitions of keys. */
+     @GridDirectCollection(int.class)
+     private List<Integer> partIds;
+ 
+     /** Entry processors. */
+     @GridDirectTransient
+     private List<EntryProcessor<Object, Object, Object>> entryProcessors;
+ 
+     /** Entry processors bytes. */
+     @GridDirectCollection(byte[].class)
+     private List<byte[]> entryProcessorsBytes;
+ 
+     /** Conflict versions. */
+     @GridDirectCollection(GridCacheVersion.class)
+     private List<GridCacheVersion> conflictVers;
+ 
+     /** Conflict TTLs. */
+     private GridLongList conflictTtls;
+ 
+     /** Conflict expire times. */
+     private GridLongList conflictExpireTimes;
 -
+     /** Optional arguments for entry processor. */
+     @GridDirectTransient
+     private Object[] invokeArgs;
+ 
+     /** Entry processor arguments bytes. */
+     private byte[][] invokeArgsBytes;
+ 
+     /** Expiry policy. */
+     @GridDirectTransient
+     private ExpiryPolicy expiryPlc;
+ 
+     /** Expiry policy bytes. */
+     private byte[] expiryPlcBytes;
+ 
+     /** Filter. */
+     private CacheEntryPredicate[] filter;
+ 
+     /** Maximum possible size of inner collections. */
+     @GridDirectTransient
+     private int initSize;
+ 
+     /**
+      * Empty constructor required by {@link Externalizable}.
+      */
+     public GridNearAtomicFullUpdateRequest() {
+         // No-op.
+     }
+ 
+     /**
+      * Constructor.
+      *
+      * @param cacheId Cache ID.
+      * @param nodeId Node ID.
+      * @param futVer Future version.
+      * @param fastMap Fast map scheme flag.
+      * @param updateVer Update version set if fast map is performed.
+      * @param topVer Topology version.
+      * @param topLocked Topology locked flag.
+      * @param syncMode Synchronization mode.
+      * @param op Cache update operation.
+      * @param retval Return value required flag.
+      * @param expiryPlc Expiry policy.
+      * @param invokeArgs Optional arguments for entry processor.
+      * @param filter Optional filter for atomic check.
+      * @param subjId Subject ID.
+      * @param taskNameHash Task name hash code.
+      * @param skipStore Skip write-through to a persistent storage.
+      * @param keepBinary Keep binary flag.
+      * @param clientReq Client node request flag.
+      * @param addDepInfo Deployment info flag.
+      * @param maxEntryCnt Maximum entries count.
+      */
+     GridNearAtomicFullUpdateRequest(
+         int cacheId,
+         UUID nodeId,
+         GridCacheVersion futVer,
+         boolean fastMap,
+         @Nullable GridCacheVersion updateVer,
+         @NotNull AffinityTopologyVersion topVer,
+         boolean topLocked,
+         CacheWriteSynchronizationMode syncMode,
+         GridCacheOperation op,
+         boolean retval,
+         @Nullable ExpiryPolicy expiryPlc,
+         @Nullable Object[] invokeArgs,
+         @Nullable CacheEntryPredicate[] filter,
+         @Nullable UUID subjId,
+         int taskNameHash,
+         boolean skipStore,
+         boolean keepBinary,
++        boolean recovery,
+         boolean clientReq,
+         boolean addDepInfo,
+         int maxEntryCnt
+     ) {
+         assert futVer != null;
+ 
+         this.cacheId = cacheId;
+         this.nodeId = nodeId;
+         this.futVer = futVer;
+         this.fastMap = fastMap;
+         this.updateVer = updateVer;
+ 
+         this.topVer = topVer;
+         this.topLocked = topLocked;
+         this.syncMode = syncMode;
+         this.op = op;
+         this.retval = retval;
+         this.expiryPlc = expiryPlc;
+         this.invokeArgs = invokeArgs;
+         this.filter = filter;
+         this.subjId = subjId;
+         this.taskNameHash = taskNameHash;
+         this.skipStore = skipStore;
+         this.keepBinary = keepBinary;
++        this.recovery = recovery;
+         this.clientReq = clientReq;
+         this.addDepInfo = addDepInfo;
+ 
+         // By default ArrayList expands to array of 10 elements on first add. We cannot guess how many entries
+         // will be added to request because of unknown affinity distribution. However, we DO KNOW how many keys
+         // participate in request. As such, we know upper bound of all collections in request. If this bound is lower
+         // than 10, we use it.
+         initSize = Math.min(maxEntryCnt, 10);
+ 
+         keys = new ArrayList<>(initSize);
+ 
+         partIds = new ArrayList<>(initSize);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public int lookupIndex() {
+         return CACHE_MSG_IDX;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public UUID nodeId() {
+         return nodeId;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public void nodeId(UUID nodeId) {
+         this.nodeId = nodeId;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public UUID subjectId() {
+         return subjId;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public int taskNameHash() {
+         return taskNameHash;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public GridCacheVersion futureVersion() {
+         return futVer;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public GridCacheVersion updateVersion() {
+         return updateVer;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public AffinityTopologyVersion topologyVersion() {
+         return topVer;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public CacheWriteSynchronizationMode writeSynchronizationMode() {
+         return syncMode;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public GridCacheOperation operation() {
+         return op;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean onResponse(GridNearAtomicUpdateResponse res) {
+         if (this.res == null) {
+             this.res = res;
+ 
+             return true;
+         }
+ 
+         return false;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override @Nullable public GridNearAtomicUpdateResponse response() {
+         return res;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean addDeploymentInfo() {
+         return addDepInfo;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public IgniteLogger messageLogger(GridCacheSharedContext ctx) {
+         return ctx.atomicMessageLogger();
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public void addUpdateEntry(KeyCacheObject key,
+         @Nullable Object val,
+         long conflictTtl,
+         long conflictExpireTime,
+         @Nullable GridCacheVersion conflictVer,
+         boolean primary) {
+         EntryProcessor<Object, Object, Object> entryProcessor = null;
+ 
+         if (op == TRANSFORM) {
+             assert val instanceof EntryProcessor : val;
+ 
+             entryProcessor = (EntryProcessor<Object, Object, Object>)val;
+         }
+ 
+         assert val != null || op == DELETE;
+ 
+         keys.add(key);
+         partIds.add(key.partition());
+ 
+         if (entryProcessor != null) {
+             if (entryProcessors == null)
+                 entryProcessors = new ArrayList<>(initSize);
+ 
+             entryProcessors.add(entryProcessor);
+         }
+         else if (val != null) {
+             assert val instanceof CacheObject : val;
+ 
+             if (vals == null)
+                 vals = new ArrayList<>(initSize);
+ 
+             vals.add((CacheObject)val);
+         }
+ 
+         hasPrimary |= primary;
+ 
+         // In case there is no conflict, do not create the list.
+         if (conflictVer != null) {
+             if (conflictVers == null) {
+                 conflictVers = new ArrayList<>(initSize);
+ 
+                 for (int i = 0; i < keys.size() - 1; i++)
+                     conflictVers.add(null);
+             }
+ 
+             conflictVers.add(conflictVer);
+         }
+         else if (conflictVers != null)
+             conflictVers.add(null);
+ 
+         if (conflictTtl >= 0) {
+             if (conflictTtls == null) {
+                 conflictTtls = new GridLongList(keys.size());
+ 
+                 for (int i = 0; i < keys.size() - 1; i++)
+                     conflictTtls.add(CU.TTL_NOT_CHANGED);
+             }
+ 
+             conflictTtls.add(conflictTtl);
+         }
+ 
+         if (conflictExpireTime >= 0) {
+             if (conflictExpireTimes == null) {
+                 conflictExpireTimes = new GridLongList(keys.size());
+ 
+                 for (int i = 0; i < keys.size() - 1; i++)
+                     conflictExpireTimes.add(CU.EXPIRE_TIME_CALCULATE);
+             }
+ 
+             conflictExpireTimes.add(conflictExpireTime);
+         }
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public List<KeyCacheObject> keys() {
+         return keys;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public int size() {
+         return keys != null ? keys.size() : 0;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public KeyCacheObject key(int idx) {
+         return keys.get(idx);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public List<?> values() {
+         return op == TRANSFORM ? entryProcessors : vals;
+     }
+ 
+     /** {@inheritDoc} */
+     @SuppressWarnings("unchecked")
+     @Override public CacheObject value(int idx) {
+         assert op == UPDATE : op;
+ 
+         return vals.get(idx);
+     }
+ 
+     /** {@inheritDoc} */
+     @SuppressWarnings("unchecked")
+     @Override public EntryProcessor<Object, Object, Object> entryProcessor(int idx) {
+         assert op == TRANSFORM : op;
+ 
+         return entryProcessors.get(idx);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public CacheObject writeValue(int idx) {
+         if (vals != null)
+             return vals.get(idx);
+ 
+         return null;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override @Nullable public List<GridCacheVersion> conflictVersions() {
+         return conflictVers;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override @Nullable public GridCacheVersion conflictVersion(int idx) {
+         if (conflictVers != null) {
+             assert idx >= 0 && idx < conflictVers.size();
+ 
+             return conflictVers.get(idx);
+         }
+ 
+         return null;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public long conflictTtl(int idx) {
+         if (conflictTtls != null) {
+             assert idx >= 0 && idx < conflictTtls.size();
+ 
+             return conflictTtls.get(idx);
+         }
+ 
+         return CU.TTL_NOT_CHANGED;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public long conflictExpireTime(int idx) {
+         if (conflictExpireTimes != null) {
+             assert idx >= 0 && idx < conflictExpireTimes.size();
+ 
+             return conflictExpireTimes.get(idx);
+         }
+ 
+         return CU.EXPIRE_TIME_CALCULATE;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override @Nullable public Object[] invokeArguments() {
+         return invokeArgs;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean fastMap() {
+         return fastMap;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean topologyLocked() {
+         return topLocked;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean clientRequest() {
+         return clientReq;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean returnValue() {
+         return retval;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean skipStore() {
+         return skipStore;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean keepBinary() {
+         return keepBinary;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean hasPrimary() {
+         return hasPrimary;
+     }
+ 
+     /** {@inheritDoc} */
++    @Override public boolean recovery() {
++        return recovery;
++    }
++
++    /** {@inheritDoc} */
+     @Override @Nullable public CacheEntryPredicate[] filter() {
+         return filter;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public ExpiryPolicy expiry() {
+         return expiryPlc;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public void prepareMarshal(GridCacheSharedContext ctx) throws IgniteCheckedException {
+         super.prepareMarshal(ctx);
+ 
+         GridCacheContext cctx = ctx.cacheContext(cacheId);
+ 
+         if (expiryPlc != null && expiryPlcBytes == null)
+             expiryPlcBytes = CU.marshal(cctx, new IgniteExternalizableExpiryPolicy(expiryPlc));
+ 
+         prepareMarshalCacheObjects(keys, cctx);
+ 
+         if (filter != null) {
+             boolean hasFilter = false;
+ 
+             for (CacheEntryPredicate p : filter) {
+                 if (p != null) {
+                     hasFilter = true;
+ 
+                     p.prepareMarshal(cctx);
+                 }
+             }
+ 
+             if (!hasFilter)
+                 filter = null;
+         }
+ 
+         if (op == TRANSFORM) {
+             // force addition of deployment info for entry processors if P2P is enabled globally.
+             if (!addDepInfo && ctx.deploymentEnabled())
+                 addDepInfo = true;
+ 
+             if (entryProcessorsBytes == null)
+                 entryProcessorsBytes = marshalCollection(entryProcessors, cctx);
+ 
+             if (invokeArgsBytes == null)
+                 invokeArgsBytes = marshalInvokeArguments(invokeArgs, cctx);
+         }
+         else
+             prepareMarshalCacheObjects(vals, cctx);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public void finishUnmarshal(GridCacheSharedContext ctx, ClassLoader ldr) throws IgniteCheckedException {
+         super.finishUnmarshal(ctx, ldr);
+ 
+         GridCacheContext cctx = ctx.cacheContext(cacheId);
+ 
+         if (expiryPlcBytes != null && expiryPlc == null)
+             expiryPlc = U.unmarshal(ctx, expiryPlcBytes, U.resolveClassLoader(ldr, ctx.gridConfig()));
+ 
+         finishUnmarshalCacheObjects(keys, cctx, ldr);
+ 
+         if (filter != null) {
+             for (CacheEntryPredicate p : filter) {
+                 if (p != null)
+                     p.finishUnmarshal(cctx, ldr);
+             }
+         }
+ 
+         if (op == TRANSFORM) {
+             if (entryProcessors == null)
+                 entryProcessors = unmarshalCollection(entryProcessorsBytes, ctx, ldr);
+ 
+             if (invokeArgs == null)
+                 invokeArgs = unmarshalInvokeArguments(invokeArgsBytes, ctx, ldr);
+         }
+         else
+             finishUnmarshalCacheObjects(vals, cctx, ldr);
+ 
+         if (partIds != null && !partIds.isEmpty()) {
+             assert partIds.size() == keys.size();
+ 
+             for (int i = 0; i < keys.size(); i++)
+                 keys.get(i).partition(partIds.get(i));
+         }
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public int partition() {
+         return partIds != null && !partIds.isEmpty() ? partIds.get(0) : -1;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
+         writer.setBuffer(buf);
+ 
+         if (!super.writeTo(buf, writer))
+             return false;
+ 
+         if (!writer.isHeaderWritten()) {
+             if (!writer.writeHeader(directType(), fieldsCount()))
+                 return false;
+ 
+             writer.onHeaderWritten();
+         }
+ 
+         switch (writer.state()) {
+             case 3:
+                 if (!writer.writeBoolean("clientReq", clientReq))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 4:
+                 if (!writer.writeMessage("conflictExpireTimes", conflictExpireTimes))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 5:
+                 if (!writer.writeMessage("conflictTtls", conflictTtls))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 6:
+                 if (!writer.writeCollection("conflictVers", conflictVers, MessageCollectionItemType.MSG))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 7:
+                 if (!writer.writeCollection("entryProcessorsBytes", entryProcessorsBytes, MessageCollectionItemType.BYTE_ARR))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 8:
+                 if (!writer.writeByteArray("expiryPlcBytes", expiryPlcBytes))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 9:
+                 if (!writer.writeBoolean("fastMap", fastMap))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 10:
+                 if (!writer.writeObjectArray("filter", filter, MessageCollectionItemType.MSG))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 11:
+                 if (!writer.writeMessage("futVer", futVer))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 12:
+                 if (!writer.writeBoolean("hasPrimary", hasPrimary))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 13:
+                 if (!writer.writeObjectArray("invokeArgsBytes", invokeArgsBytes, MessageCollectionItemType.BYTE_ARR))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 14:
+                 if (!writer.writeBoolean("keepBinary", keepBinary))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 15:
+                 if (!writer.writeCollection("keys", keys, MessageCollectionItemType.MSG))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 16:
+                 if (!writer.writeByte("op", op != null ? (byte)op.ordinal() : -1))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 17:
+                 if (!writer.writeCollection("partIds", partIds, MessageCollectionItemType.INT))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 18:
 -                if (!writer.writeBoolean("retval", retval))
++                if (!writer.writeBoolean("recovery", recovery))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 19:
 -                if (!writer.writeBoolean("skipStore", skipStore))
++                if (!writer.writeBoolean("retval", retval))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 20:
 -                if (!writer.writeUuid("subjId", subjId))
++                if (!writer.writeBoolean("skipStore", skipStore))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 21:
 -                if (!writer.writeByte("syncMode", syncMode != null ? (byte)syncMode.ordinal() : -1))
++                if (!writer.writeUuid("subjId", subjId))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 22:
 -                if (!writer.writeInt("taskNameHash", taskNameHash))
++                if (!writer.writeByte("syncMode", syncMode != null ? (byte)syncMode.ordinal() : -1))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 23:
 -                if (!writer.writeBoolean("topLocked", topLocked))
++                if (!writer.writeInt("taskNameHash", taskNameHash))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 24:
 -                if (!writer.writeMessage("topVer", topVer))
++                if (!writer.writeBoolean("topLocked", topLocked))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 25:
 -                if (!writer.writeMessage("updateVer", updateVer))
++                if (!writer.writeMessage("topVer", topVer))
+                     return false;
+ 
+                 writer.incrementState();
+ 
+             case 26:
 -                if (!writer.writeCollection("vals", vals, MessageCollectionItemType.MSG))
++                if (!writer.writeMessage("updateVer", updateVer))
+                     return false;
+ 
+                 writer.incrementState();
+ 
++            case 27:
++                if (!writer.writeCollection("vals", vals, MessageCollectionItemType.MSG))
++                    return false;
++
++                writer.incrementState();
+         }
+ 
+         return true;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
+         reader.setBuffer(buf);
+ 
+         if (!reader.beforeMessageRead())
+             return false;
+ 
+         if (!super.readFrom(buf, reader))
+             return false;
+ 
+         switch (reader.state()) {
+             case 3:
+                 clientReq = reader.readBoolean("clientReq");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 4:
+                 conflictExpireTimes = reader.readMessage("conflictExpireTimes");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 5:
+                 conflictTtls = reader.readMessage("conflictTtls");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 6:
+                 conflictVers = reader.readCollection("conflictVers", MessageCollectionItemType.MSG);
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 7:
+                 entryProcessorsBytes = reader.readCollection("entryProcessorsBytes", MessageCollectionItemType.BYTE_ARR);
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 8:
+                 expiryPlcBytes = reader.readByteArray("expiryPlcBytes");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 9:
+                 fastMap = reader.readBoolean("fastMap");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 10:
+                 filter = reader.readObjectArray("filter", MessageCollectionItemType.MSG, CacheEntryPredicate.class);
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 11:
+                 futVer = reader.readMessage("futVer");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 12:
+                 hasPrimary = reader.readBoolean("hasPrimary");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 13:
+                 invokeArgsBytes = reader.readObjectArray("invokeArgsBytes", MessageCollectionItemType.BYTE_ARR, byte[].class);
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 14:
+                 keepBinary = reader.readBoolean("keepBinary");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 15:
+                 keys = reader.readCollection("keys", MessageCollectionItemType.MSG);
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 16:
+                 byte opOrd;
+ 
+                 opOrd = reader.readByte("op");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 op = GridCacheOperation.fromOrdinal(opOrd);
+ 
+                 reader.incrementState();
+ 
+             case 17:
+                 partIds = reader.readCollection("partIds", MessageCollectionItemType.INT);
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 18:
 -                retval = reader.readBoolean("retval");
++                recovery = reader.readBoolean("recovery");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 19:
 -                skipStore = reader.readBoolean("skipStore");
++                retval = reader.readBoolean("retval");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 20:
 -                subjId = reader.readUuid("subjId");
++                skipStore = reader.readBoolean("skipStore");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
+             case 21:
++                subjId = reader.readUuid("subjId");
++
++                if (!reader.isLastRead())
++                    return false;
++
++                reader.incrementState();
++
++            case 22:
+                 byte syncModeOrd;
+ 
+                 syncModeOrd = reader.readByte("syncMode");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 syncMode = CacheWriteSynchronizationMode.fromOrdinal(syncModeOrd);
+ 
+                 reader.incrementState();
+ 
 -            case 22:
++            case 23:
+                 taskNameHash = reader.readInt("taskNameHash");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
 -            case 23:
++            case 24:
+                 topLocked = reader.readBoolean("topLocked");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
 -            case 24:
++            case 25:
+                 topVer = reader.readMessage("topVer");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
 -            case 25:
++            case 26:
+                 updateVer = reader.readMessage("updateVer");
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
+ 
 -            case 26:
++            case 27:
+                 vals = reader.readCollection("vals", MessageCollectionItemType.MSG);
+ 
+                 if (!reader.isLastRead())
+                     return false;
+ 
+                 reader.incrementState();
 -
+         }
+ 
+         return reader.afterMessageRead(GridNearAtomicFullUpdateRequest.class);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public void cleanup(boolean clearKeys) {
+         vals = null;
+         entryProcessors = null;
+         entryProcessorsBytes = null;
+         invokeArgs = null;
+         invokeArgsBytes = null;
+ 
+         if (clearKeys)
+             keys = null;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public byte directType() {
+         return 40;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public byte fieldsCount() {
 -        return 27;
++        return 28;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public String toString() {
+         return S.toString(GridNearAtomicFullUpdateRequest.class, this, "filter", Arrays.toString(filter),
+             "parent", super.toString());
+     }
+ }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
index 4860eb4,bd231cf..fd2479c
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
@@@ -561,28 -563,94 +565,97 @@@ public class GridNearAtomicSingleUpdate
              throw new ClusterTopologyServerNotFoundException("Failed to map keys for cache (all partition nodes " +
                  "left the grid).");
  
-         GridNearAtomicUpdateRequest req = new GridNearAtomicUpdateRequest(
-             cctx.cacheId(),
-             primary.id(),
-             futVer,
-             false,
-             updVer,
-             topVer,
-             topLocked,
-             syncMode,
-             op,
-             retval,
-             expiryPlc,
-             invokeArgs,
-             filter,
-             subjId,
-             taskNameHash,
-             skipStore,
-             keepBinary,
-             recovery,
-             cctx.kernalContext().clientNode(),
-             cctx.deploymentEnabled(),
-             1);
+         GridNearAtomicAbstractUpdateRequest req;
+ 
+         if (canUseSingleRequest(primary)) {
+             if (op == TRANSFORM) {
+                 req = new GridNearAtomicSingleUpdateInvokeRequest(
+                     cctx.cacheId(),
+                     primary.id(),
+                     futVer,
+                     false,
+                     updVer,
+                     topVer,
+                     topLocked,
+                     syncMode,
+                     op,
+                     retval,
+                     invokeArgs,
+                     subjId,
+                     taskNameHash,
+                     skipStore,
+                     keepBinary,
+                     cctx.kernalContext().clientNode(),
+                     cctx.deploymentEnabled());
+             }
+             else {
+                 if (filter == null || filter.length == 0) {
+                     req = new GridNearAtomicSingleUpdateRequest(
+                         cctx.cacheId(),
+                         primary.id(),
+                         futVer,
+                         false,
+                         updVer,
+                         topVer,
+                         topLocked,
+                         syncMode,
+                         op,
+                         retval,
+                         subjId,
+                         taskNameHash,
+                         skipStore,
+                         keepBinary,
++                        recovery,
+                         cctx.kernalContext().clientNode(),
+                         cctx.deploymentEnabled());
+                 }
+                 else {
+                     req = new GridNearAtomicSingleUpdateFilterRequest(
+                         cctx.cacheId(),
+                         primary.id(),
+                         futVer,
+                         false,
+                         updVer,
+                         topVer,
+                         topLocked,
+                         syncMode,
+                         op,
+                         retval,
+                         filter,
+                         subjId,
+                         taskNameHash,
+                         skipStore,
+                         keepBinary,
++                        recovery,
+                         cctx.kernalContext().clientNode(),
+                         cctx.deploymentEnabled());
+                 }
+             }
+         }
+         else {
+             req = new GridNearAtomicFullUpdateRequest(
+                 cctx.cacheId(),
+                 primary.id(),
+                 futVer,
+                 false,
+                 updVer,
+                 topVer,
+                 topLocked,
+                 syncMode,
+                 op,
+                 retval,
+                 expiryPlc,
+                 invokeArgs,
+                 filter,
+                 subjId,
+                 taskNameHash,
+                 skipStore,
+                 keepBinary,
++                recovery,
+                 cctx.kernalContext().clientNode(),
+                 cctx.deploymentEnabled(),
+                 1);
+         }
  
          req.addUpdateEntry(cacheKey,
              val,

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandMessage.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionFullMap.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionMap2.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
index 345e0d1,6e69161..f1e2c01
--- 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
@@@ -19,11 -19,10 +19,12 @@@ package org.apache.ignite.internal.proc
  
  import java.io.Externalizable;
  import java.nio.ByteBuffer;
 +import java.util.Map;
  import org.apache.ignite.internal.processors.cache.GridCacheMessage;
  import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
 +import org.apache.ignite.internal.util.typedef.T2;
  import org.apache.ignite.internal.util.typedef.internal.S;
+ import org.apache.ignite.lang.IgniteProductVersion;
  import org.apache.ignite.plugin.extensions.communication.MessageReader;
  import org.apache.ignite.plugin.extensions.communication.MessageWriter;
  import org.jetbrains.annotations.Nullable;

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index 6282d03,4f34401..d2b893f
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@@ -1101,8 -984,10 +1068,8 @@@ public class GridDhtPartitionsExchangeF
       * @throws IgniteCheckedException If failed.
       */
      private void sendAllPartitions(Collection<ClusterNode> nodes) throws IgniteCheckedException {
-         GridDhtPartitionsFullMessage m = createPartitionsMessage();
+         GridDhtPartitionsFullMessage m = createPartitionsMessage(nodes, true);
  
 -        assert !nodes.contains(cctx.localNode());
 -
          if (log.isDebugEnabled())
              log.debug("Sending full partition map [nodeIds=" + F.viewReadOnly(nodes, F.node2id()) +
                  ", exchId=" + exchId + ", msg=" + m + ']');
@@@ -1553,32 -1265,15 +1557,37 @@@
              if (!crd.equals(cctx.discovery().serverNodes(topologyVersion()).get(0))) {
                  for (GridCacheContext cacheCtx : cctx.cacheContexts()) {
                      if (!cacheCtx.isLocal())
 -                        cacheCtx.topology().beforeExchange(GridDhtPartitionsExchangeFuture.this, !centralizedAff);
 +                        cacheCtx.topology().beforeExchange(this, !centralizedAff);
 +                }
 +            }
 +
 +            if (discoEvt.type() == EVT_NODE_JOINED) {
 +                if (cctx.cache().globalState() != CacheState.INACTIVE)
 +                    assignPartitionsStates();
 +            }
 +            else if (discoEvt.type() == EVT_DISCOVERY_CUSTOM_EVT) {
 +                assert discoEvt instanceof DiscoveryCustomEvent;
 +
 +                if (((DiscoveryCustomEvent)discoEvt).customMessage() instanceof DynamicCacheChangeBatch) {
 +                    DynamicCacheChangeBatch batch = (DynamicCacheChangeBatch)((DiscoveryCustomEvent)discoEvt)
 +                        .customMessage();
 +
 +                    for (DynamicCacheChangeRequest req : batch.requests()) {
 +                        if (req.resetLostPartitions())
 +                            resetLostPartitions();
 +                        else if (req.globalStateChange() && req.state() != CacheState.INACTIVE)
 +                            assignPartitionsStates();
 +                    }
                  }
              }
 +            else if (discoEvt.type() == EVT_NODE_LEFT || discoEvt.type() == EVT_NODE_FAILED)
 +                detectLostPartitions();
  
+             for (GridCacheContext cacheCtx : cctx.cacheContexts()) {
+                 if (!cacheCtx.isLocal())
+                     cacheCtx.topology().checkEvictions();
+             }
+ 
              updateLastVersion(cctx.versions().last());
  
              cctx.versions().onExchange(lastVer.get().order());
@@@ -1944,7 -1613,9 +1953,9 @@@
  
                          if (crd0.isLocal()) {
                              if (allReceived) {
+                                 awaitSingleMapUpdates();
+ 
 -                                onAllReceived(true);
 +                                onAllReceived();
  
                                  return;
                              }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java
index 3d91468,90d6242..5a30f95
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java
@@@ -26,11 -29,12 +29,13 @@@ import org.apache.ignite.internal.GridD
  import org.apache.ignite.internal.GridDirectTransient;
  import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
  import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState;
  import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
  import org.apache.ignite.internal.util.tostring.GridToStringInclude;
 +import org.apache.ignite.internal.util.typedef.T2;
  import org.apache.ignite.internal.util.typedef.internal.S;
  import org.apache.ignite.internal.util.typedef.internal.U;
+ import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType;
  import org.apache.ignite.plugin.extensions.communication.MessageReader;
  import org.apache.ignite.plugin.extensions.communication.MessageWriter;
  import org.jetbrains.annotations.NotNull;

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java
index 5e4b1c4,bf08f0a..0975a07
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java
@@@ -23,13 -23,16 +23,17 @@@ import java.util.Collections
  import java.util.HashMap;
  import java.util.Map;
  import org.apache.ignite.IgniteCheckedException;
+ import org.apache.ignite.internal.GridDirectMap;
  import org.apache.ignite.internal.GridDirectTransient;
  import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState;
  import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
  import org.apache.ignite.internal.util.tostring.GridToStringInclude;
 +import org.apache.ignite.internal.util.typedef.T2;
+ import org.apache.ignite.internal.util.typedef.F;
  import org.apache.ignite.internal.util.typedef.internal.S;
  import org.apache.ignite.internal.util.typedef.internal.U;
+ import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType;
  import org.apache.ignite.plugin.extensions.communication.MessageReader;
  import org.apache.ignite.plugin.extensions.communication.MessageWriter;
  import org.jetbrains.annotations.Nullable;

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java
index deb1731,41bc2fc..cf02071
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java
@@@ -35,10 -34,9 +34,10 @@@ import org.apache.ignite.internal.Ignit
  import org.apache.ignite.internal.NodeStoppingException;
  import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
  import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener;
+ import org.apache.ignite.internal.processors.affinity.AffinityAssignment;
  import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
- import org.apache.ignite.internal.processors.affinity.GridAffinityAssignment;
  import org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager;
 +import org.apache.ignite.internal.processors.cache.CacheState;
  import org.apache.ignite.internal.processors.cache.GridCacheContext;
  import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
  import org.apache.ignite.internal.processors.cache.GridCacheEntryInfo;
@@@ -412,9 -412,12 +413,13 @@@ public class GridDhtPreloader extends G
      }
  
      /** {@inheritDoc} */
-     @Override public Callable<Boolean> addAssignments(GridDhtPreloaderAssignments assignments,
-         boolean forcePreload, Collection<String> caches, int cnt, @Nullable GridFutureAdapter<Boolean> forcedRebFut) {
-         return demander.addAssignments(assignments, forcePreload, caches, cnt, forcedRebFut);
+     @Override public Runnable addAssignments(GridDhtPreloaderAssignments assignments,
+         boolean forceRebalance,
++        Collection<String> caches,
+         int cnt,
+         Runnable next,
+         @Nullable GridFutureAdapter<Boolean> forcedRebFut) {
+         return demander.addAssignments(assignments, forceRebalance, cnt, next, forcedRebFut);
      }
  
      /**
@@@ -763,12 -790,23 +787,27 @@@
                          try {
                              GridDhtLocalPartition part = partsToEvict.poll();
  
 -                            if (part != null)
 +                            if (part != null) {
-                                 part.tryEvict();
+                                 try {
+                                     part.tryEvict();
+                                 }
+                                 catch (Throwable ex) {
+                                     if (cctx.kernalContext().isStopping()) {
+                                         LT.warn(log, ex, "Partition eviction failed (current node is stopping).",
+                                             false,
+                                             true);
+ 
+                                         partsToEvict.clear();
+ 
+                                         return true;
+                                     }
+                                     else
+                                         LT.error(log, ex, "Partition eviction failed, this can cause grid hang.");
+                                 }
 +
 +                                if (part.state() != EVICTED)
 +                                    partsToEvict.push(part);
 +                            }
                          }
                          finally {
                              if (!partsToEvict.isEmptyx())

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetRequest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
index b4eeb11,d4decb4..e62bf60
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
@@@ -26,8 -26,10 +26,9 @@@ import java.util.ArrayDeque
  import java.util.ArrayList;
  import java.util.Collection;
  import java.util.Collections;
+ import java.util.Comparator;
  import java.util.HashMap;
  import java.util.HashSet;
 -import java.util.Iterator;
  import java.util.LinkedHashMap;
  import java.util.LinkedList;
  import java.util.List;
@@@ -52,9 -55,9 +54,10 @@@ import org.apache.ignite.events.Event
  import org.apache.ignite.internal.GridKernalContext;
  import org.apache.ignite.internal.IgniteInternalFuture;
  import org.apache.ignite.internal.IgniteKernal;
 +import org.apache.ignite.internal.NodeStoppingException;
  import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener;
  import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+ import org.apache.ignite.internal.processors.cache.CacheEntryImpl;
  import org.apache.ignite.internal.processors.cache.CacheMetricsImpl;
  import org.apache.ignite.internal.processors.cache.CacheObject;
  import org.apache.ignite.internal.processors.cache.GridCacheAdapter;
@@@ -80,8 -83,10 +83,9 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.query.GridQueryProcessor;
  import org.apache.ignite.internal.processors.query.GridQueryTypeDescriptor;
  import org.apache.ignite.internal.processors.task.GridInternal;
+ import org.apache.ignite.internal.util.GridBoundedPriorityQueue;
  import org.apache.ignite.internal.util.GridCloseableIteratorAdapter;
  import org.apache.ignite.internal.util.GridEmptyCloseableIterator;
 -import org.apache.ignite.internal.util.GridEmptyIterator;
  import org.apache.ignite.internal.util.GridLeanMap;
  import org.apache.ignite.internal.util.GridSpiCloseableIteratorWrapper;
  import org.apache.ignite.internal.util.GridSpinBusyLock;

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java
index 31ad653,bb769c9..56cf271
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java
@@@ -155,17 -157,17 +156,17 @@@ public class GridCacheSqlQuery implemen
          assert paramsBytes != null;
  
          try {
-         final ClassLoader ldr = U.resolveClassLoader(ctx.config());
+             final ClassLoader ldr = U.resolveClassLoader(ctx.config());
  
-         if (m instanceof BinaryMarshaller)
-             // To avoid deserializing of enum types.
-             params = ((BinaryMarshaller)m).binaryMarshaller().unmarshal(paramsBytes, ldr);
-         else
-             params = m.unmarshal(paramsBytes, ldr);
-     }
+             if (m instanceof BinaryMarshaller)
+                 // To avoid deserializing of enum types.
+                 params = ((BinaryMarshaller)m).binaryMarshaller().unmarshal(paramsBytes, ldr);
+             else
+                 params = U.unmarshal(m, paramsBytes, ldr);
+         }
          catch (IgniteCheckedException e) {
 -            throw new IgniteException(e);
 -        }
 +        throw new IgniteException(e);
 +    }
      }
  
      /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryManager.java
index 064b725,e2fbf52..d2828e0
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryManager.java
@@@ -56,8 -56,7 +56,8 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
  import org.apache.ignite.internal.processors.cache.GridCacheManagerAdapter;
  import org.apache.ignite.internal.processors.cache.KeyCacheObject;
 +import org.apache.ignite.internal.processors.cache.database.CacheDataRow;
- import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateFuture;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicAbstractUpdateFuture;
  import org.apache.ignite.internal.processors.continuous.GridContinuousHandler;
  import org.apache.ignite.internal.processors.continuous.GridContinuousProcessor;
  import org.apache.ignite.internal.util.tostring.GridToStringInclude;

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 762bf13,2706d4d..662a905
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@@ -1410,20 -1495,19 +1504,20 @@@ public class IgniteTxHandler 
                                          /*expiryPlc*/null,
                                          /*keepBinary*/true);
  
 -                                    if (val == null)
 -                                        val = cacheCtx.toCacheObject(cacheCtx.store().load(null, entry.key()));
 +                                        if (val == null)
 +                                            val = cacheCtx.toCacheObject(cacheCtx.store().load(null, entry.key()));
  
 -                                    if (val != null)
 -                                        entry.readValue(val);
 +                                        if (val != null)
 +                                            entry.readValue(val);
  
 -                                    break;
 -                                }
 -                                catch (GridCacheEntryRemovedException e) {
 -                                    if (log.isDebugEnabled())
 -                                        log.debug("Got entry removed exception, will retry: " + entry.txKey());
 +                                        break;
 +                                    }
 +                                    catch (GridCacheEntryRemovedException ignore) {
 +                                        if (log.isDebugEnabled())
 +                                            log.debug("Got entry removed exception, will retry: " + entry.txKey());
  
-                                         entry.cached(null);
 -                                    entry.cached(cacheCtx.cache().entryEx(entry.key(), req.topologyVersion()));
++                                        entry.cached(cacheCtx.cache().entryEx(entry.key(), req.topologyVersion()));
 +                                    }
                                  }
                              }
                          }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index 86994b5,ba44655..95fa006
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@@ -2458,11 -2418,11 +2449,14 @@@ public abstract class IgniteTxLocalAdap
                          }
                      }
                      else
 -                        old = retval ? entry.rawGetOrUnmarshal(false) : entry.rawGet();
 +                        old = entry.rawGet();
 +
 +                    final GridCacheOperation op = lockOnly ? NOOP : rmv ? DELETE :
 +                        entryProcessor != null ? TRANSFORM : old != null ? UPDATE : CREATE;
  
+                     final GridCacheOperation op = lockOnly ? NOOP : rmv ? DELETE :
+                         entryProcessor != null ? TRANSFORM : old != null ? UPDATE : CREATE;
+ 
                      if (old != null && hasFilters && !filter(entry.context(), cacheKey, old, filter)) {
                          ret.set(cacheCtx, old, false, keepBinary);
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessorImpl.java
----------------------------------------------------------------------


[16/50] [abbrv] ignite git commit: Merge with master - WIP.

Posted by ag...@apache.org.
Merge with master - WIP.


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

Branch: refs/heads/ignite-3477
Commit: d068fb757e21121cb14ced3e688337e3c5be1621
Parents: 8483e8f
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Thu Dec 22 14:52:42 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Thu Dec 22 14:52:42 2016 +0300

----------------------------------------------------------------------
 .../apache/ignite/IgniteSystemProperties.java   |   16 -
 .../communication/GridIoMessageFactory.java     |   12 +-
 .../pagemem/backup/BackupFinishedMessage.java   |    2 +-
 .../GridCachePartitionExchangeManager.java      |   17 +-
 .../processors/cache/GridCacheProcessor.java    |   15 +-
 .../cache/GridCacheSharedTtlCleanupManager.java |    5 +-
 .../dht/GridClientPartitionTopology.java        |   17 +-
 .../dht/GridDhtPartitionTopology.java           |    2 +-
 .../dht/GridDhtPartitionTopologyImpl.java       |    6 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |    2 -
 ...idNearAtomicAbstractSingleUpdateRequest.java |   12 +
 .../GridNearAtomicAbstractUpdateRequest.java    |    2 +
 ...GridNearAtomicSingleUpdateFilterRequest.java |    2 +
 .../GridNearAtomicSingleUpdateRequest.java      |    2 +
 .../dht/preloader/GridDhtPartitionMap2.java     |    4 +
 .../GridDhtPartitionsExchangeFuture.java        |    4 +-
 .../transactions/IgniteTxLocalAdapter.java      |    3 -
 .../utils/PlatformConfigurationUtils.java       |   39 -
 .../ignite/internal/util/nio/GridNioServer.java |   17 -
 .../spi/swapspace/file/FileSwapSpaceSpi.java    | 1947 ------------------
 20 files changed, 63 insertions(+), 2063 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
index cb19875..d72d041 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
@@ -521,22 +521,6 @@ public final class IgniteSystemProperties {
     public static final String IGNITE_MEMORY_PER_BYTE_COPY_THRESHOLD = "IGNITE_MEMORY_PER_BYTE_COPY_THRESHOLD";
 
     /**
-     * When set to {@code true} fields are written by BinaryMarshaller in sorted order. Otherwise
-     * the natural order is used.
-     * <p>
-     * @deprecated Should be removed in Apache Ignite 2.0.
-     */
-    @Deprecated
-    public static final String IGNITE_BINARY_SORT_OBJECT_FIELDS = "IGNITE_BINARY_SORT_OBJECT_FIELDS";
-
-    /**
-     * Whether Ignite can access unaligned memory addresses.
-     * <p>
-     * Defaults to {@code} false, meaning that unaligned access will be performed only on x86 architecture.
-     */
-    public static final String IGNITE_MEMORY_UNALIGNED_ACCESS = "IGNITE_MEMORY_UNALIGNED_ACCESS";
-
-    /**
      * Enforces singleton.
      */
     private IgniteSystemProperties() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index 63d84c4..4599fd7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@ -172,6 +172,11 @@ public class GridIoMessageFactory implements MessageFactory {
         Message msg = null;
 
         switch (type) {
+            case -45:
+                msg = new BackupFinishedMessage();
+
+                break;
+
             case -44:
                 msg = new TcpCommunicationSpi.HandshakeMessage2();
 
@@ -222,11 +227,6 @@ public class GridIoMessageFactory implements MessageFactory {
 
                 break;
 
-            case -27:
-                msg = new BackupFinishedMessage();
-
-                break;
-
             case -26:
                 msg = new TxLockList();
 
@@ -832,13 +832,11 @@ public class GridIoMessageFactory implements MessageFactory {
 
                 break;
 
-            // [-3..119] [124..127] [-36..-44]- this
             case 125:
                 msg = new TcpCommunicationSpi.HandshakeMessage2();
 
                 break;
 
-            // [-3..119] [124-125] - this
             case 126:
                 msg = new IgniteIoTestMessage();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/pagemem/backup/BackupFinishedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/backup/BackupFinishedMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/backup/BackupFinishedMessage.java
index 2eb57a9..708a73d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/backup/BackupFinishedMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/backup/BackupFinishedMessage.java
@@ -118,7 +118,7 @@ public class BackupFinishedMessage implements Message {
 
     /** {@inheritDoc} */
     @Override public byte directType() {
-        return -27;
+        return -45;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/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 40035c0..27bc542 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
@@ -30,9 +30,11 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.NavigableMap;
+import java.util.Queue;
 import java.util.TreeMap;
 import java.util.UUID;
 import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.Callable;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ConcurrentSkipListMap;
 import java.util.concurrent.LinkedBlockingDeque;
@@ -96,6 +98,7 @@ import org.apache.ignite.lang.IgniteUuid;
 import org.apache.ignite.thread.IgniteThread;
 import org.jetbrains.annotations.Nullable;
 import org.jsr166.ConcurrentHashMap8;
+import org.jsr166.ConcurrentLinkedDeque8;
 
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static org.apache.ignite.IgniteSystemProperties.IGNITE_PRELOAD_RESEND_TIMEOUT;
@@ -804,13 +807,13 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
             if (!cacheCtx.isLocal() && cacheCtx.started()) {
                 GridDhtPartitionFullMap locMap = cacheCtx.topology().partitionMap(true);
 
-                m.addFullPartitionsMap(cacheCtx.cacheId(), locMap);
+                m.addFullPartitionsMap(cacheCtx.cacheId(), locMap, null);
             }
         }
 
         // It is important that client topologies be added after contexts.
         for (GridClientPartitionTopology top : cctx.exchange().clientTopologies())
-            m.addFullPartitionsMap(top.cacheId(), top.partitionMap(true));
+            m.addFullPartitionsMap(top.cacheId(), top.partitionMap(true), null);
 
         if (log.isDebugEnabled())
             log.debug("Sending all partitions [nodeIds=" + U.nodeIds(nodes) + ", msg=" + m + ']');
@@ -887,7 +890,8 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
                         locMap = new GridDhtPartitionFullMap(locMap.nodeId(),
                             locMap.nodeOrder(),
                             locMap.updateSequence(),
-                            locMap);
+                            locMap,
+                            true);
                     }
 
                     addFullPartitionsMap(m,
@@ -973,14 +977,14 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
             if (!cacheCtx.isLocal()) {
                 GridDhtPartitionMap2 locMap = cacheCtx.topology().localPartitionMap();
 
-                m.addLocalPartitionMap(cacheCtx.cacheId(), locMap);
+                m.addLocalPartitionMap(cacheCtx.cacheId(), locMap, null);
             }
         }
 
         for (GridClientPartitionTopology top : clientTops.values()) {
             GridDhtPartitionMap2 locMap = top.localPartitionMap();
 
-            m.addLocalPartitionMap(top.cacheId(), locMap);
+            m.addLocalPartitionMap(top.cacheId(), locMap, null);
         }
 
         if (log.isDebugEnabled())
@@ -1025,9 +1029,6 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
             if (!cacheCtx.isLocal()) {
                 GridDhtPartitionMap2 locMap = cacheCtx.topology().localPartitionMap();
 
-                if (targetNode.version().compareTo(GridDhtPartitionMap2.SINCE) < 0)
-                    locMap = new GridDhtPartitionMap(locMap.nodeId(), locMap.updateSequence(), locMap.map());
-
                 addPartitionMap(m,
                     dupData,
                     compress,

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 881d257..0119afa 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -2475,7 +2475,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
         List<DynamicCacheChangeRequest> reqs = new ArrayList<>(cacheNames.size());
 
         for (String cacheName : cacheNames) {
-            DynamicCacheChangeRequest t = new DynamicCacheChangeRequest(cacheName, ctx.localNodeId());
+            DynamicCacheChangeRequest t = new DynamicCacheChangeRequest(UUID.randomUUID(), cacheName, ctx.localNodeId());
 
             t.stop(true);
 
@@ -3700,7 +3700,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
     ) throws IgniteCheckedException {
         DynamicCacheDescriptor desc = registeredCaches.get(maskNull(cacheName));
 
-        DynamicCacheChangeRequest req = new DynamicCacheChangeRequest(cacheName, ctx.localNodeId());
+        DynamicCacheChangeRequest req = new DynamicCacheChangeRequest(UUID.randomUUID(), cacheName, ctx.localNodeId());
 
         req.failIfExists(failIfExists);
 
@@ -3744,7 +3744,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
 
                 CacheObjectContext cacheObjCtx = ctx.cacheObjects().contextForCache(cfg);
 
-                initialize(false, cfg, cacheObjCtx);
+                initialize(cfg, cacheObjCtx);
 
                 req.startCacheConfiguration(cfg);
             }
@@ -3768,15 +3768,6 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             req.startCacheConfiguration(ccfg);
         }
 
-        // Fail cache with swap enabled creation on grid without swap space SPI.
-        if (ccfg.isSwapEnabled())
-            for (ClusterNode n : ctx.discovery().allNodes())
-                if (!GridCacheUtils.clientNode(n) && !GridCacheUtils.isSwapEnabled(n)) {
-                    throw new IgniteCheckedException("Failed to start cache " +
-                        cacheName + " with swap enabled: Remote Node with ID " + n.id().toString().toUpperCase() +
-                        " has not swap SPI configured");
-                }
-
         if (nearCfg != null)
             req.nearCacheConfiguration(nearCfg);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedTtlCleanupManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedTtlCleanupManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedTtlCleanupManager.java
index d7d2cad..eda21d3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedTtlCleanupManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedTtlCleanupManager.java
@@ -117,8 +117,9 @@ public class GridCacheSharedTtlCleanupManager extends GridCacheSharedManagerAdap
                 boolean expiredRemains = false;
 
                 for (GridCacheTtlManager mgr : mgrs) {
-                    if (mgr.expire(CLEANUP_WORKER_ENTRIES_PROCESS_LIMIT))
-                        expiredRemains = true;
+                    // TODO
+//                    if (mgr.expire(CLEANUP_WORKER_ENTRIES_PROCESS_LIMIT))
+//                        expiredRemains = true;
 
                     if (isCancelled())
                         return;

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
index 88cd16b..d2f81d7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java
@@ -925,12 +925,23 @@ public class GridClientPartitionTopology implements GridDhtPartitionTopology {
     }
 
     /** {@inheritDoc} */
-    @Override public Map<Integer, T2<Long, Long>> updateCounters() {
+    @Override public Map<Integer, T2<Long, Long>> updateCounters(boolean skipZeros) {
         lock.readLock().lock();
 
         try {
-            return new HashMap<>(cntrMap);
-        }
+            if (skipZeros) {
+                Map<Integer, T2<Long, Long>> res = U.newHashMap(cntrMap.size());
+
+                for (Map.Entry<Integer, T2<Long, Long>> e : cntrMap.entrySet()) {
+                    if (!e.getValue().get1().equals(ZERO) || !e.getValue().get2().equals(ZERO))
+                        res.put(e.getKey(), e.getValue());
+                }
+
+                return res;
+            }
+            else
+                return new HashMap<>(cntrMap);
+}
         finally {
             lock.readLock().unlock();
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
index 79358e8..5918da8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
@@ -264,7 +264,7 @@ public interface GridDhtPartitionTopology {
      * @param skipZeros If {@code true} then filters out zero counters.
      * @return Partition update counters.
      */
-    public Map<Integer, Long> updateCounters(boolean skipZeros);
+    public Map<Integer, T2<Long, Long>> updateCounters(boolean skipZeros);
 
     /**
      * @param part Partition to own.

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/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 5bda0bf..47a8103 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
@@ -450,7 +450,7 @@ import static org.apache.ignite.internal.processors.cache.distributed.dht.GridDh
 
                     locPart.own();
 
-                    updateLocal(p, loc.id(), locPart.state(), updateSeq);
+                    updateLocal(p, locPart.state(), updateSeq);
                 }
             }
         }
@@ -1469,7 +1469,7 @@ import static org.apache.ignite.internal.processors.cache.distributed.dht.GridDh
                         boolean marked = plc == PartitionLossPolicy.IGNORE ? locPart.own() : locPart.markLost();
 
                         if (marked)
-                            updateLocal(locPart.id(), cctx.localNodeId(), locPart.state(), updSeq);
+                            updateLocal(locPart.id(), locPart.state(), updSeq);
 
                         changed |= marked;
                     }
@@ -1534,7 +1534,7 @@ import static org.apache.ignite.internal.processors.cache.distributed.dht.GridDh
                             boolean marked = locPart.own();
 
                             if (marked)
-                                updateLocal(locPart.id(), cctx.localNodeId(), locPart.state(), updSeq);
+                                updateLocal(locPart.id(), locPart.state(), updSeq);
                         }
 
                         for (UUID nodeId : nodeIds) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index b04dc30..fa847b2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@ -488,11 +488,9 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
                         oldVal = cached.innerGet(
                             null,
                             tx,
-                            /*swap*/true,
                             /*readThrough*/false,
                             /*metrics*/false,
                             /*event*/false,
-                            /*tmp*/false,
                             /*subjectId*/tx.subjectId(),
                             /*transformClo*/null,
                             /*taskName*/null,

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractSingleUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractSingleUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractSingleUpdateRequest.java
index 61deeee..c3cceae 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractSingleUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractSingleUpdateRequest.java
@@ -65,6 +65,8 @@ public abstract class GridNearAtomicAbstractSingleUpdateRequest extends GridNear
     /** Return value flag. */
     private static final int RET_VAL_FLAG_MASK = 0x40;
 
+    private static final int RECOVERY_FLAG_MASK = 0x80;
+
     /** Target node ID. */
     @GridDirectTransient
     protected UUID nodeId;
@@ -139,6 +141,7 @@ public abstract class GridNearAtomicAbstractSingleUpdateRequest extends GridNear
         int taskNameHash,
         boolean skipStore,
         boolean keepBinary,
+        boolean recovery,
         boolean clientReq,
         boolean addDepInfo
     ) {
@@ -161,6 +164,7 @@ public abstract class GridNearAtomicAbstractSingleUpdateRequest extends GridNear
         skipStore(skipStore);
         keepBinary(keepBinary);
         clientRequest(clientReq);
+        recovery(recovery);
     }
 
     /** {@inheritDoc} */
@@ -374,6 +378,14 @@ public abstract class GridNearAtomicAbstractSingleUpdateRequest extends GridNear
         setFlag(val, HAS_PRIMARY_FLAG_MASK);
     }
 
+    @Override public boolean recovery() {
+        return isFlag(RECOVERY_FLAG_MASK);
+    }
+
+    public void recovery(boolean val) {
+        setFlag(val, RECOVERY_FLAG_MASK);
+    }
+
     /** {@inheritDoc} */
     @Nullable @Override public CacheEntryPredicate[] filter() {
         return NO_FILTER;

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
index bee2ecd..ca3cc5f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateRequest.java
@@ -128,6 +128,8 @@ public abstract class GridNearAtomicAbstractUpdateRequest extends GridCacheMessa
      */
     public abstract boolean hasPrimary();
 
+    public abstract boolean recovery();
+
     /**
      * @param res Response.
      * @return {@code True} if current response was {@code null}.

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFilterRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFilterRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFilterRequest.java
index e0c24b2..39b6ab2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFilterRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFilterRequest.java
@@ -90,6 +90,7 @@ public class GridNearAtomicSingleUpdateFilterRequest extends GridNearAtomicSingl
         int taskNameHash,
         boolean skipStore,
         boolean keepBinary,
+        boolean recovery,
         boolean clientReq,
         boolean addDepInfo
     ) {
@@ -108,6 +109,7 @@ public class GridNearAtomicSingleUpdateFilterRequest extends GridNearAtomicSingl
             taskNameHash,
             skipStore,
             keepBinary,
+            recovery,
             clientReq,
             addDepInfo
         );

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
index c3e9fbe..18b6118 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
@@ -102,6 +102,7 @@ public class GridNearAtomicSingleUpdateRequest extends GridNearAtomicAbstractSin
         int taskNameHash,
         boolean skipStore,
         boolean keepBinary,
+        boolean recovery,
         boolean clientReq,
         boolean addDepInfo
     ) {
@@ -120,6 +121,7 @@ public class GridNearAtomicSingleUpdateRequest extends GridNearAtomicAbstractSin
             taskNameHash,
             skipStore,
             keepBinary,
+            recovery,
             clientReq,
             addDepInfo
         );

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionMap2.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionMap2.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionMap2.java
index 2b369ca..9837f69 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionMap2.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionMap2.java
@@ -30,6 +30,7 @@ import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.lang.IgniteProductVersion;
 
 import static org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState.MOVING;
 
@@ -40,6 +41,9 @@ public class GridDhtPartitionMap2 implements Comparable<GridDhtPartitionMap2>, E
     /** */
     private static final long serialVersionUID = 0L;
 
+    /** Used since. */
+    public static final IgniteProductVersion SINCE = IgniteProductVersion.fromString("1.5.0");
+
     /** Node ID. */
     protected UUID nodeId;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index d2b893f..89ce0cf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -1383,7 +1383,7 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
 
         if (updateSingleMap) {
             try {
-                updatePartitionSingleMap(msg);
+                updatePartitionSingleMap(node, msg);
             }
             finally {
                 synchronized (mux) {
@@ -1400,7 +1400,7 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
         if (allReceived) {
             awaitSingleMapUpdates();
 
-            onAllReceived(false);
+            onAllReceived();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index 95fa006..25ef401 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@ -2454,9 +2454,6 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter implements Ig
                     final GridCacheOperation op = lockOnly ? NOOP : rmv ? DELETE :
                         entryProcessor != null ? TRANSFORM : old != null ? UPDATE : CREATE;
 
-                    final GridCacheOperation op = lockOnly ? NOOP : rmv ? DELETE :
-                        entryProcessor != null ? TRANSFORM : old != null ? UPDATE : CREATE;
-
                     if (old != null && hasFilters && !filter(entry.context(), cacheKey, old, filter)) {
                         ret.set(cacheCtx, old, false, keepBinary);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java
index d668009..04676c2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java
@@ -64,7 +64,6 @@ import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
-import org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi;
 import org.apache.ignite.transactions.TransactionConcurrency;
 import org.apache.ignite.transactions.TransactionIsolation;
 
@@ -590,27 +589,6 @@ public class PlatformConfigurationUtils {
 
             cfg.setTransactionConfiguration(tx);
         }
-
-        byte swapType = in.readByte();
-
-        switch (swapType) {
-            case SWAP_TYP_FILE: {
-                FileSwapSpaceSpi swap = new FileSwapSpaceSpi();
-
-                swap.setBaseDirectory(in.readString());
-                swap.setMaximumSparsity(in.readFloat());
-                swap.setMaxWriteQueueSize(in.readInt());
-                swap.setReadStripesNumber(in.readInt());
-                swap.setWriteBufferSize(in.readInt());
-
-                cfg.setSwapSpaceSpi(swap);
-
-                break;
-            }
-
-            default:
-                assert swapType == SWAP_TYP_NONE;
-        }
     }
 
     /**
@@ -999,23 +977,6 @@ public class PlatformConfigurationUtils {
         else
             w.writeBoolean(false);
 
-        SwapSpaceSpi swap = cfg.getSwapSpaceSpi();
-
-        if (swap instanceof FileSwapSpaceSpiMBean) {
-            w.writeByte(SWAP_TYP_FILE);
-
-            FileSwapSpaceSpiMBean fileSwap = (FileSwapSpaceSpiMBean)swap;
-
-            w.writeString(fileSwap.getBaseDirectory());
-            w.writeFloat(fileSwap.getMaximumSparsity());
-            w.writeInt(fileSwap.getMaxWriteQueueSize());
-            w.writeInt(fileSwap.getReadStripesNumber());
-            w.writeInt(fileSwap.getWriteBufferSize());
-        }
-        else {
-            w.writeByte(SWAP_TYP_NONE);
-        }
-
         w.writeString(cfg.getIgniteHome());
 
         w.writeLong(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getInit());

http://git-wip-us.apache.org/repos/asf/ignite/blob/d068fb75/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
index 82225bc..bc1f173 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
@@ -667,13 +667,6 @@ public class GridNioServer<T> {
     }
 
     /**
-     * @return Sessions.
-     */
-    public Collection<? extends GridNioSession> sessions() {
-        return sessions;
-    }
-
-    /**
      * @param ses Session.
      * @param op Operation.
      * @return Future for operation.
@@ -3247,16 +3240,6 @@ public class GridNioServer<T> {
         }
 
         /**
-         * @param srvName Logical server name for threads identification.
-         * @return This for chaining.
-         */
-        public Builder<T> serverName(@Nullable String srvName) {
-            this.srvName = srvName;
-
-            return this;
-        }
-
-        /**
          * @param selectorSpins Defines how many non-blocking {@code selector.selectNow()} should be made before
          *      falling into {@code selector.select(long)} in NIO server. Long value. Default is {@code 0}.
          *      Can be set to {@code Long.MAX_VALUE} so selector threads will never block.


[08/50] [abbrv] ignite git commit: Merge branches 'ignite-gg-11729' and 'ignite-gg-8.0.2.ea1' of https://github.com/gridgain/apache-ignite into ignite-gg-11729

Posted by ag...@apache.org.
Merge branches 'ignite-gg-11729' and 'ignite-gg-8.0.2.ea1' of https://github.com/gridgain/apache-ignite into ignite-gg-11729

# Conflicts:
#	modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java

Merge branches 'ignite-gg-11729' and 'ignite-gg-8.0.2.ea1' of https://github.com/ggprivate/ggprivate into ignite-gg-11729

# Conflicts:
#	modules/pds/src/main/java/org/gridgain/grid/internal/processors/cache/database/GridCacheDatabaseSharedManager.java


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

Branch: refs/heads/ignite-3477
Commit: dffee01c54081d5a74ef50ec73bee1add0e8429e
Parents: d4f3071 cbb9b9e
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Tue Dec 20 23:32:15 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Tue Dec 20 23:32:15 2016 +0300

----------------------------------------------------------------------
 .gitignore                                      |  34 +-
 bin/control.bat                                 | 229 +++++
 bin/control.sh                                  | 180 ++++
 .../rest/ChangeStateCommandHandlerTest.java     | 125 +++
 .../ignite/codegen/MessageCodeGenerator.java    |   2 +
 .../src/main/java/org/apache/ignite/Ignite.java |   8 +-
 .../apache/ignite/IgniteCheckedException.java   |  12 +
 .../apache/ignite/IgniteSystemProperties.java   |   6 +
 .../apache/ignite/internal/GridComponent.java   |   7 +-
 .../ignite/internal/GridKernalContext.java      |   8 +
 .../ignite/internal/GridKernalContextImpl.java  |  12 +
 .../ignite/internal/GridPluginComponent.java    |   4 +-
 .../apache/ignite/internal/IgniteKernal.java    | 116 ++-
 .../org/apache/ignite/internal/IgnitionEx.java  |   2 +-
 .../ignite/internal/MarshallerContextImpl.java  |  10 +-
 .../ignite/internal/client/GridClient.java      |   9 +
 .../internal/client/GridClientClusterState.java |  33 +
 .../client/impl/GridClientClusterStateImpl.java |  75 ++
 .../internal/client/impl/GridClientImpl.java    |  11 +
 .../impl/connection/GridClientConnection.java   |  17 +
 .../connection/GridClientNioTcpConnection.java  |  21 +
 .../router/impl/GridRouterClientImpl.java       |   6 +
 .../internal/commandline/CommandHandler.java    |  89 ++
 .../internal/managers/GridManagerAdapter.java   |   2 +-
 .../checkpoint/GridCheckpointManager.java       |   2 +-
 .../collision/GridCollisionManager.java         |   2 +-
 .../managers/communication/GridIoManager.java   |   2 +-
 .../communication/GridIoMessageFactory.java     |   7 +-
 .../deployment/GridDeploymentManager.java       |   2 +-
 .../discovery/GridDiscoveryManager.java         |   7 +-
 .../eventstorage/GridEventStorageManager.java   |   2 +-
 .../managers/failover/GridFailoverManager.java  |   2 +-
 .../managers/indexing/GridIndexingManager.java  |   2 +-
 .../loadbalancer/GridLoadBalancerManager.java   |   2 +-
 .../pagemem/store/IgnitePageStoreManager.java   |   3 +-
 .../pagemem/wal/IgniteWriteAheadLogManager.java |   3 +-
 .../wal/IgniteWriteAheadLogNoopManager.java     |  11 +
 .../internal/pagemem/wal/record/WALRecord.java  |   5 +-
 .../processors/GridProcessorAdapter.java        |   4 +-
 .../affinity/GridAffinityProcessor.java         |   2 +-
 .../cache/CacheAffinitySharedManager.java       |   9 +
 .../internal/processors/cache/CacheState.java   |  36 -
 .../cache/ChangeGlobalStateMessage.java         | 120 +++
 .../internal/processors/cache/ClusterState.java |  38 +
 .../cache/DynamicCacheChangeRequest.java        |  23 +-
 .../GridCachePartitionExchangeManager.java      |  18 +-
 .../processors/cache/GridCacheProcessor.java    | 373 +++++---
 .../GridChangeGlobalStateMessageResponse.java   | 177 ++++
 .../binary/CacheObjectBinaryProcessorImpl.java  |   6 +-
 .../IgniteCacheDatabaseSharedManager.java       |  28 +-
 .../cache/database/tree/io/TrackingPageIO.java  |  19 +-
 .../distributed/dht/GridDhtLocalPartition.java  |   3 +-
 .../dht/GridDhtPartitionTopologyImpl.java       |  17 +-
 .../GridDhtPartitionsExchangeFuture.java        | 122 ++-
 .../preloader/GridDhtPartitionsFullMessage.java |  72 +-
 .../GridDhtPartitionsSingleMessage.java         |  70 +-
 .../dht/preloader/GridDhtPreloader.java         |   3 +-
 .../clock/GridClockSyncProcessor.java           |   8 +-
 .../closure/GridClosureProcessor.java           |   2 +-
 .../processors/cluster/ClusterProcessor.java    |   2 +-
 .../cluster/GridClusterStateProcessor.java      | 933 +++++++++++++++++++
 .../cluster/IgniteChangeGlobalStateSupport.java |  40 +
 .../continuous/GridContinuousProcessor.java     |   2 +-
 .../datastreamer/DataStreamProcessor.java       |   2 +-
 .../datastructures/DataStructuresProcessor.java | 129 ++-
 .../datastructures/GridCacheAtomicLongImpl.java |  14 +-
 .../GridCacheAtomicReferenceImpl.java           |  16 +-
 .../GridCacheAtomicSequenceImpl.java            |  14 +-
 .../GridCacheAtomicStampedImpl.java             |  14 +-
 .../GridCacheCountDownLatchImpl.java            |  14 +-
 .../datastructures/GridCacheLockImpl.java       |  17 +-
 .../datastructures/GridCacheSemaphoreImpl.java  |  14 +-
 .../internal/processors/igfs/IgfsProcessor.java |   4 +-
 .../processors/job/GridJobProcessor.java        |   2 +-
 .../jobmetrics/GridJobMetricsProcessor.java     |   2 +-
 .../internal/processors/odbc/OdbcProcessor.java |  11 +-
 .../platform/PlatformProcessorImpl.java         |   2 +-
 .../plugin/IgnitePluginProcessor.java           |   2 +-
 .../processors/port/GridPortProcessor.java      |   2 +-
 .../processors/query/GridQueryProcessor.java    |   4 +-
 .../resource/GridResourceProcessor.java         |   2 +-
 .../processors/rest/GridRestCommand.java        |  11 +-
 .../processors/rest/GridRestProcessor.java      |   7 +-
 .../client/message/GridClientStateRequest.java  |  80 ++
 .../cluster/GridChangeStateCommandHandler.java  |  89 ++
 .../protocols/tcp/GridTcpRestNioListener.java   |  20 +
 .../request/GridRestChangeStateRequest.java     |  57 ++
 .../service/GridServiceProcessor.java           | 149 ++-
 .../session/GridTaskSessionProcessor.java       |   2 +-
 .../processors/task/GridTaskProcessor.java      |   4 +-
 .../timeout/GridTimeoutProcessor.java           |   2 +-
 .../ignite/internal/util/IgniteUtils.java       |  16 +-
 .../internal/util/OffheapReadWriteLock.java     |   4 +
 .../org/apache/ignite/mxbean/IgniteMXBean.java  |  21 +
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   8 +-
 .../tcp/internal/TcpDiscoveryNode.java          |   5 +-
 .../resources/META-INF/classnames.properties    |   4 +-
 ...GridManagerLocalMessageListenerSelfTest.java |   8 +-
 .../managers/GridNoopManagerSelfTest.java       |   2 +-
 .../pagemem/impl/PageMemoryNoLoadSelfTest.java  |   2 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |   7 +-
 ...idCacheNearOnlyMultiNodeFullApiSelfTest.java |   2 +-
 ...cpCommunicationSpiMultithreadedSelfTest.java |   4 +-
 .../junits/GridTestKernalContext.java           |   2 +-
 .../processors/hadoop/HadoopProcessor.java      |   6 +-
 modules/platforms/.gitignore                    |  31 +
 .../schedule/IgniteScheduleProcessor.java       |   2 +-
 107 files changed, 3502 insertions(+), 505 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/dffee01c/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index 8391f99,8c6cfa6..857c813
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@@ -34,8 -34,8 +34,9 @@@ import org.apache.ignite.internal.manag
  import org.apache.ignite.internal.managers.deployment.GridDeploymentResponse;
  import org.apache.ignite.internal.managers.eventstorage.GridEventStorageMessage;
  import org.apache.ignite.internal.pagemem.snapshot.SnapshotFinishedMessage;
 +import org.apache.ignite.internal.pagemem.snapshot.SnapshotProgressMessage;
  import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+ import org.apache.ignite.internal.processors.cache.GridChangeGlobalStateMessageResponse;
  import org.apache.ignite.internal.processors.cache.CacheEntryInfoCollection;
  import org.apache.ignite.internal.processors.cache.CacheEntryPredicateContainsValue;
  import org.apache.ignite.internal.processors.cache.CacheEntrySerializablePredicate;
@@@ -167,11 -167,10 +168,15 @@@ public class GridIoMessageFactory imple
          Message msg = null;
  
          switch (type) {
-             case -38:
++            case -39:
 +                msg = new SnapshotProgressMessage();
 +
 +                break;
 +
+             case -38:
+                 msg = new GridChangeGlobalStateMessageResponse();
+ 
+                 break;
              case -37:
                  msg = new GridDhtAtomicSingleUpdateRequest();
  


[38/50] [abbrv] ignite git commit: GG-11750 Implemented DELETE command and minor refactorings.

Posted by ag...@apache.org.
GG-11750 Implemented DELETE command and minor refactorings.


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

Branch: refs/heads/ignite-3477
Commit: cf67df2a4d08df90d365f8da602a9ce786cc3725
Parents: dc086bf
Author: AKuznetsov <ak...@gridgain.com>
Authored: Sat Dec 24 21:20:12 2016 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Sat Dec 24 21:20:12 2016 +0700

----------------------------------------------------------------------
 .../resources/META-INF/classnames.properties    | 96 ++++++++++++--------
 1 file changed, 56 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/cf67df2a/modules/core/src/main/resources/META-INF/classnames.properties
----------------------------------------------------------------------
diff --git a/modules/core/src/main/resources/META-INF/classnames.properties b/modules/core/src/main/resources/META-INF/classnames.properties
index 5df5aea..ab518e5 100644
--- a/modules/core/src/main/resources/META-INF/classnames.properties
+++ b/modules/core/src/main/resources/META-INF/classnames.properties
@@ -296,6 +296,10 @@ org.apache.ignite.internal.jdbc2.JdbcDatabaseMetadata$UpdateMetadataTask
 org.apache.ignite.internal.jdbc2.JdbcQueryTask
 org.apache.ignite.internal.jdbc2.JdbcQueryTask$1
 org.apache.ignite.internal.jdbc2.JdbcQueryTask$QueryResult
+org.apache.ignite.internal.jdbc2.JdbcQueryTaskV2
+org.apache.ignite.internal.jdbc2.JdbcQueryTaskV2$1
+org.apache.ignite.internal.jdbc2.JdbcQueryTaskV2$QueryResult
+org.apache.ignite.internal.jdbc2.JdbcSqlFieldsQuery
 org.apache.ignite.internal.managers.GridManagerAdapter$1$1
 org.apache.ignite.internal.managers.checkpoint.GridCheckpointManager$CheckpointSet
 org.apache.ignite.internal.managers.checkpoint.GridCheckpointRequest
@@ -321,10 +325,11 @@ org.apache.ignite.internal.managers.indexing.GridIndexingManager$1
 org.apache.ignite.internal.managers.loadbalancer.GridLoadBalancerAdapter
 org.apache.ignite.internal.managers.loadbalancer.GridLoadBalancerManager$1
 org.apache.ignite.internal.mem.OutOfMemoryException
-org.apache.ignite.internal.pagemem.backup.BackupFinishedMessage
-org.apache.ignite.internal.pagemem.backup.StartFullBackupAckDiscoveryMessage
-org.apache.ignite.internal.pagemem.backup.StartFullBackupDiscoveryMessage
 org.apache.ignite.internal.pagemem.impl.PageMemoryNoStoreImpl$Segment
+org.apache.ignite.internal.pagemem.snapshot.SnapshotFinishedMessage
+org.apache.ignite.internal.pagemem.snapshot.SnapshotProgressMessage
+org.apache.ignite.internal.pagemem.snapshot.StartFullSnapshotAckDiscoveryMessage
+org.apache.ignite.internal.pagemem.snapshot.StartFullSnapshotDiscoveryMessage
 org.apache.ignite.internal.pagemem.wal.StorageException
 org.apache.ignite.internal.pagemem.wal.WALIterator
 org.apache.ignite.internal.pagemem.wal.record.StoreOperationRecord$StoreOperationType
@@ -376,12 +381,13 @@ org.apache.ignite.internal.processors.cache.CacheObjectImpl
 org.apache.ignite.internal.processors.cache.CacheOperationContext
 org.apache.ignite.internal.processors.cache.CacheOperationFilter
 org.apache.ignite.internal.processors.cache.CachePartialUpdateCheckedException
-org.apache.ignite.internal.processors.cache.ClusterState
 org.apache.ignite.internal.processors.cache.CacheStorePartialUpdateException
 org.apache.ignite.internal.processors.cache.CacheType
 org.apache.ignite.internal.processors.cache.CacheWeakQueryIteratorsHolder$WeakQueryCloseableIterator
 org.apache.ignite.internal.processors.cache.CacheWeakQueryIteratorsHolder$WeakQueryFutureIterator
 org.apache.ignite.internal.processors.cache.CacheWeakQueryIteratorsHolder$WeakReferenceCloseableIterator
+org.apache.ignite.internal.processors.cache.ChangeGlobalStateMessage
+org.apache.ignite.internal.processors.cache.ClusterState
 org.apache.ignite.internal.processors.cache.DynamicCacheChangeBatch
 org.apache.ignite.internal.processors.cache.DynamicCacheChangeRequest
 org.apache.ignite.internal.processors.cache.EntryProcessorResourceInjectorProxy
@@ -403,20 +409,20 @@ org.apache.ignite.internal.processors.cache.GridCacheAdapter$3
 org.apache.ignite.internal.processors.cache.GridCacheAdapter$30
 org.apache.ignite.internal.processors.cache.GridCacheAdapter$32
 org.apache.ignite.internal.processors.cache.GridCacheAdapter$4
+org.apache.ignite.internal.processors.cache.GridCacheAdapter$48
+org.apache.ignite.internal.processors.cache.GridCacheAdapter$49
+org.apache.ignite.internal.processors.cache.GridCacheAdapter$50
+org.apache.ignite.internal.processors.cache.GridCacheAdapter$51
+org.apache.ignite.internal.processors.cache.GridCacheAdapter$52
+org.apache.ignite.internal.processors.cache.GridCacheAdapter$53
+org.apache.ignite.internal.processors.cache.GridCacheAdapter$54
+org.apache.ignite.internal.processors.cache.GridCacheAdapter$55
+org.apache.ignite.internal.processors.cache.GridCacheAdapter$57
+org.apache.ignite.internal.processors.cache.GridCacheAdapter$58
+org.apache.ignite.internal.processors.cache.GridCacheAdapter$58$1
+org.apache.ignite.internal.processors.cache.GridCacheAdapter$59
 org.apache.ignite.internal.processors.cache.GridCacheAdapter$6
 org.apache.ignite.internal.processors.cache.GridCacheAdapter$60
-org.apache.ignite.internal.processors.cache.GridCacheAdapter$61
-org.apache.ignite.internal.processors.cache.GridCacheAdapter$62
-org.apache.ignite.internal.processors.cache.GridCacheAdapter$63
-org.apache.ignite.internal.processors.cache.GridCacheAdapter$64
-org.apache.ignite.internal.processors.cache.GridCacheAdapter$65
-org.apache.ignite.internal.processors.cache.GridCacheAdapter$66
-org.apache.ignite.internal.processors.cache.GridCacheAdapter$67
-org.apache.ignite.internal.processors.cache.GridCacheAdapter$69
-org.apache.ignite.internal.processors.cache.GridCacheAdapter$70
-org.apache.ignite.internal.processors.cache.GridCacheAdapter$70$1
-org.apache.ignite.internal.processors.cache.GridCacheAdapter$71
-org.apache.ignite.internal.processors.cache.GridCacheAdapter$72
 org.apache.ignite.internal.processors.cache.GridCacheAdapter$9
 org.apache.ignite.internal.processors.cache.GridCacheAdapter$AsyncOp$1
 org.apache.ignite.internal.processors.cache.GridCacheAdapter$AsyncOp$1$1
@@ -534,6 +540,8 @@ org.apache.ignite.internal.processors.cache.GridCacheUtils$8
 org.apache.ignite.internal.processors.cache.GridCacheUtils$9
 org.apache.ignite.internal.processors.cache.GridCacheValueCollection
 org.apache.ignite.internal.processors.cache.GridCacheValueCollection$1
+org.apache.ignite.internal.processors.cache.GridChangeGlobalStateMessageResponse
+org.apache.ignite.internal.processors.cache.GridDeferredAckMessageSender$DeferredAckMessageBuffer
 org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$1
 org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$2
 org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$3
@@ -542,7 +550,6 @@ org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$5
 org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$6
 org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$7
 org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$8
-org.apache.ignite.internal.processors.cache.GridDeferredAckMessageSender$DeferredAckMessageBuffer
 org.apache.ignite.internal.processors.cache.IgniteCacheProxy
 org.apache.ignite.internal.processors.cache.IgniteCacheProxy$1
 org.apache.ignite.internal.processors.cache.IgniteCacheProxy$10
@@ -561,9 +568,6 @@ org.apache.ignite.internal.processors.cache.affinity.GridCacheAffinityProxy
 org.apache.ignite.internal.processors.cache.binary.BinaryMetadataKey
 org.apache.ignite.internal.processors.cache.binary.CacheDefaultBinaryAffinityKeyMapper
 org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$4
-org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$1
-org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$5
-org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$6
 org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$MetaDataEntryFilter
 org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$MetaDataPredicate
 org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$MetadataProcessor
@@ -701,8 +705,8 @@ org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomic
 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicSingleUpdateRequest
 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateRequest
 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateResponse
-org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture$1
 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractSingleUpdateRequest
+org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture$1
 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateRequest
 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicFullUpdateRequest
 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFilterRequest
@@ -713,8 +717,6 @@ org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomi
 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture$1
 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture$2
 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture$3
-org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture$4
-org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateRequest
 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse
 org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache
 org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache$2
@@ -735,8 +737,11 @@ org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtFor
 org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtForceKeysResponse
 org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemandMessage
 org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemander$1
+org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemander$1$1
 org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemander$2
+org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemander$3
 org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemander$4$1
+org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemander$5$1
 org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemander$DemandWorker$1
 org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemander$DemandWorker$2
 org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionExchangeId
@@ -849,19 +854,10 @@ org.apache.ignite.internal.processors.cache.query.GridCacheQueryAdapter$ScanQuer
 org.apache.ignite.internal.processors.cache.query.GridCacheQueryDetailMetricsAdapter
 org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter$1
 org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter$2
-org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$1$1
-org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$1$2
-org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$10$1
-org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$2
-org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$3
-org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$4
+org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$10
 org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$11
 org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$12
-org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$14
-org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$15
-org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$16
-org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$17
-org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$18$1
+org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$13$1
 org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$4$1
 org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$4$2
 org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5
@@ -1013,6 +1009,11 @@ org.apache.ignite.internal.processors.closure.GridClosureProcessor$T8
 org.apache.ignite.internal.processors.closure.GridClosureProcessor$T9
 org.apache.ignite.internal.processors.closure.GridClosureProcessor$TaskNoReduceAdapter
 org.apache.ignite.internal.processors.closure.GridPeerDeployAwareTaskAdapter
+org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor$1$1
+org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor$2
+org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor$4
+org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor$6
+org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor$ClientChangeGlobalStateComputeRequest
 org.apache.ignite.internal.processors.continuous.AbstractContinuousMessage
 org.apache.ignite.internal.processors.continuous.GridContinuousHandler
 org.apache.ignite.internal.processors.continuous.GridContinuousHandler$RegisterStatus
@@ -1128,6 +1129,12 @@ org.apache.ignite.internal.processors.hadoop.HadoopJobStatus
 org.apache.ignite.internal.processors.hadoop.HadoopMapReducePlan
 org.apache.ignite.internal.processors.hadoop.HadoopTaskInfo
 org.apache.ignite.internal.processors.hadoop.HadoopTaskType
+org.apache.ignite.internal.processors.hadoop.message.HadoopMessage
+org.apache.ignite.internal.processors.hadoop.shuffle.HadoopDirectShuffleMessage
+org.apache.ignite.internal.processors.hadoop.shuffle.HadoopShuffleAck
+org.apache.ignite.internal.processors.hadoop.shuffle.HadoopShuffleFinishRequest
+org.apache.ignite.internal.processors.hadoop.shuffle.HadoopShuffleFinishResponse
+org.apache.ignite.internal.processors.hadoop.shuffle.HadoopShuffleMessage
 org.apache.ignite.internal.processors.igfs.IgfsAckMessage
 org.apache.ignite.internal.processors.igfs.IgfsAttributes
 org.apache.ignite.internal.processors.igfs.IgfsBlockKey
@@ -1216,7 +1223,6 @@ org.apache.ignite.internal.processors.platform.PlatformExtendedException
 org.apache.ignite.internal.processors.platform.PlatformJavaObjectFactoryProxy
 org.apache.ignite.internal.processors.platform.PlatformNativeException
 org.apache.ignite.internal.processors.platform.PlatformNoCallbackException
-org.apache.ignite.internal.processors.platform.cache.PlatformCache$3
 org.apache.ignite.internal.processors.platform.PlatformProcessorImpl$1
 org.apache.ignite.internal.processors.platform.cache.PlatformCache$5
 org.apache.ignite.internal.processors.platform.cache.PlatformCacheEntryFilter
@@ -1226,6 +1232,7 @@ org.apache.ignite.internal.processors.platform.cache.PlatformCacheEntryProcessor
 org.apache.ignite.internal.processors.platform.cache.PlatformCachePartialUpdateException
 org.apache.ignite.internal.processors.platform.cache.affinity.PlatformAffinity$1
 org.apache.ignite.internal.processors.platform.cache.affinity.PlatformAffinityFunction
+org.apache.ignite.internal.processors.platform.cache.expiry.PlatformExpiryPolicyFactory
 org.apache.ignite.internal.processors.platform.cache.query.PlatformContinuousQuery
 org.apache.ignite.internal.processors.platform.cache.query.PlatformContinuousQueryFilter
 org.apache.ignite.internal.processors.platform.cache.query.PlatformContinuousQueryImpl
@@ -1262,6 +1269,9 @@ org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetCacheStore$9
 org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetConfigurationClosure
 org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetService
 org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetServiceImpl
+org.apache.ignite.internal.processors.platform.entityframework.PlatformDotNetEntityFrameworkCacheExtension$CleanupCompletionListener
+org.apache.ignite.internal.processors.platform.entityframework.PlatformDotNetEntityFrameworkCacheExtension$RemoveOldEntriesRunnable
+org.apache.ignite.internal.processors.platform.entityframework.PlatformDotNetEntityFrameworkIncreaseVersionProcessor
 org.apache.ignite.internal.processors.platform.events.PlatformEventFilterListenerImpl
 org.apache.ignite.internal.processors.platform.message.PlatformMessageFilter
 org.apache.ignite.internal.processors.platform.messaging.PlatformMessageFilterImpl
@@ -1284,6 +1294,7 @@ org.apache.ignite.internal.processors.query.GridQueryProcessor$6
 org.apache.ignite.internal.processors.query.GridQueryProcessor$7
 org.apache.ignite.internal.processors.query.GridQueryProcessor$8
 org.apache.ignite.internal.processors.query.GridQueryProcessor$IndexType
+org.apache.ignite.internal.processors.query.IgniteSQLException
 org.apache.ignite.internal.processors.query.h2.twostep.messages.GridQueryCancelRequest
 org.apache.ignite.internal.processors.query.h2.twostep.messages.GridQueryFailResponse
 org.apache.ignite.internal.processors.query.h2.twostep.messages.GridQueryNextPageRequest
@@ -1307,10 +1318,10 @@ org.apache.ignite.internal.processors.rest.client.message.GridClientNodeBean
 org.apache.ignite.internal.processors.rest.client.message.GridClientNodeMetricsBean
 org.apache.ignite.internal.processors.rest.client.message.GridClientPingPacket
 org.apache.ignite.internal.processors.rest.client.message.GridClientResponse
+org.apache.ignite.internal.processors.rest.client.message.GridClientStateRequest
 org.apache.ignite.internal.processors.rest.client.message.GridClientTaskRequest
 org.apache.ignite.internal.processors.rest.client.message.GridClientTaskResultBean
 org.apache.ignite.internal.processors.rest.client.message.GridClientTopologyRequest
-org.apache.ignite.internal.processors.rest.client.message.GridClientStateRequest
 org.apache.ignite.internal.processors.rest.client.message.GridRouterRequest
 org.apache.ignite.internal.processors.rest.client.message.GridRouterResponse
 org.apache.ignite.internal.processors.rest.handlers.cache.GridCacheCommandHandler$2
@@ -1350,6 +1361,9 @@ org.apache.ignite.internal.processors.rest.handlers.datastructures.DataStructure
 org.apache.ignite.internal.processors.rest.handlers.query.CacheQueryFieldsMetaResult
 org.apache.ignite.internal.processors.rest.handlers.query.CacheQueryResult
 org.apache.ignite.internal.processors.rest.handlers.query.QueryCommandHandler$QueryCursorIterator
+org.apache.ignite.internal.processors.rest.handlers.redis.GridRedisRestCommandHandler$1
+org.apache.ignite.internal.processors.rest.handlers.redis.exception.GridRedisGenericException
+org.apache.ignite.internal.processors.rest.handlers.redis.exception.GridRedisTypeException
 org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler$2
 org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler$ExeCallable
 org.apache.ignite.internal.processors.rest.handlers.task.GridTaskResultRequest
@@ -1361,6 +1375,9 @@ org.apache.ignite.internal.processors.rest.protocols.tcp.GridTcpMemcachedNioList
 org.apache.ignite.internal.processors.rest.protocols.tcp.GridTcpMemcachedNioListener$2
 org.apache.ignite.internal.processors.rest.protocols.tcp.GridTcpRestNioListener$1
 org.apache.ignite.internal.processors.rest.protocols.tcp.GridTcpRestNioListener$1$1
+org.apache.ignite.internal.processors.rest.protocols.tcp.redis.GridRedisCommand
+org.apache.ignite.internal.processors.rest.protocols.tcp.redis.GridRedisMessage
+org.apache.ignite.internal.processors.rest.protocols.tcp.redis.GridRedisNioListener$1
 org.apache.ignite.internal.processors.rest.request.RestQueryRequest$QueryType
 org.apache.ignite.internal.processors.service.GridServiceAssignments
 org.apache.ignite.internal.processors.service.GridServiceAssignmentsKey
@@ -1381,7 +1398,6 @@ org.apache.ignite.internal.processors.task.GridTaskThreadContextKey
 org.apache.ignite.internal.processors.task.GridTaskWorker$3
 org.apache.ignite.internal.processors.task.GridTaskWorker$5
 org.apache.ignite.internal.processors.task.GridTaskWorker$State
-org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor$ClientChangeGlobalStateComputeRequest
 org.apache.ignite.internal.transactions.IgniteTxHeuristicCheckedException
 org.apache.ignite.internal.transactions.IgniteTxOptimisticCheckedException
 org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException
@@ -1609,10 +1625,13 @@ org.apache.ignite.internal.util.lang.IgniteReducer2X
 org.apache.ignite.internal.util.lang.IgniteReducer3
 org.apache.ignite.internal.util.lang.IgniteReducer3X
 org.apache.ignite.internal.util.lang.IgniteReducerX
+org.apache.ignite.internal.util.lang.IgniteSingletonIterator
 org.apache.ignite.internal.util.nio.GridNioEmbeddedFuture$1
 org.apache.ignite.internal.util.nio.GridNioException
 org.apache.ignite.internal.util.nio.GridNioMessageTracker
 org.apache.ignite.internal.util.nio.GridNioServer$NioOperation
+org.apache.ignite.internal.util.nio.GridNioServer$RandomBalancer
+org.apache.ignite.internal.util.nio.GridNioServer$SizeBasedBalancer
 org.apache.ignite.internal.util.nio.GridNioSessionMetaKey
 org.apache.ignite.internal.util.nio.ssl.GridNioSslHandler
 org.apache.ignite.internal.util.offheap.GridOffHeapEvent
@@ -1697,7 +1716,6 @@ org.apache.ignite.internal.visor.cache.VisorCachePartitions
 org.apache.ignite.internal.visor.cache.VisorCachePartitionsTask
 org.apache.ignite.internal.visor.cache.VisorCachePartitionsTask$VisorCachePartitionsJob
 org.apache.ignite.internal.visor.cache.VisorCacheQueryConfiguration
-org.apache.ignite.internal.visor.cache.VisorCacheQueryConfigurationV2
 org.apache.ignite.internal.visor.cache.VisorCacheQueryDetailMetrics
 org.apache.ignite.internal.visor.cache.VisorCacheQueryDetailMetricsCollectorTask
 org.apache.ignite.internal.visor.cache.VisorCacheQueryDetailMetricsCollectorTask$VisorCacheQueryDetailMetricsCollectorJob
@@ -1717,8 +1735,6 @@ org.apache.ignite.internal.visor.cache.VisorCacheStartTask$VisorCacheStartJob
 org.apache.ignite.internal.visor.cache.VisorCacheStopTask
 org.apache.ignite.internal.visor.cache.VisorCacheStopTask$VisorCacheStopJob
 org.apache.ignite.internal.visor.cache.VisorCacheStoreConfiguration
-org.apache.ignite.internal.visor.cache.VisorCacheSwapBackupsTask
-org.apache.ignite.internal.visor.cache.VisorCacheSwapBackupsTask$VisorCachesSwapBackupsJob
 org.apache.ignite.internal.visor.cache.VisorCacheTypeFieldMetadata
 org.apache.ignite.internal.visor.cache.VisorCacheTypeMetadata
 org.apache.ignite.internal.visor.compute.VisorComputeCancelSessionsTask


[17/50] [abbrv] ignite git commit: Merge with master - WIP.

Posted by ag...@apache.org.
Merge with master - WIP.


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

Branch: refs/heads/ignite-3477
Commit: d5e9a3b0fbf0f5b02ddc2bcec588306c64fc52b3
Parents: d068fb7
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Thu Dec 22 15:02:46 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Thu Dec 22 15:02:46 2016 +0300

----------------------------------------------------------------------
 .../managers/communication/GridIoMessageFactory.java    | 12 +-----------
 .../dht/atomic/GridNearAtomicSingleUpdateFuture.java    |  1 +
 .../atomic/GridNearAtomicSingleUpdateInvokeRequest.java |  2 ++
 3 files changed, 4 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d5e9a3b0/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index 4599fd7..81b7312 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@ -832,17 +832,7 @@ public class GridIoMessageFactory implements MessageFactory {
 
                 break;
 
-            case 125:
-                msg = new TcpCommunicationSpi.HandshakeMessage2();
-
-                break;
-
-            case 126:
-                msg = new IgniteIoTestMessage();
-
-                break;
-
-            // [-3..119] [124-126] - this
+            // [-3..119] [124..127] [-36..-45]- this
             // [120..123] - DR
             // [-4..-22, -30..-35] - SQL
             default:

http://git-wip-us.apache.org/repos/asf/ignite/blob/d5e9a3b0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
index fd2479c..d840c35 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
@@ -585,6 +585,7 @@ public class GridNearAtomicSingleUpdateFuture extends GridNearAtomicAbstractUpda
                     taskNameHash,
                     skipStore,
                     keepBinary,
+                    recovery,
                     cctx.kernalContext().clientNode(),
                     cctx.deploymentEnabled());
             }

http://git-wip-us.apache.org/repos/asf/ignite/blob/d5e9a3b0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateInvokeRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateInvokeRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateInvokeRequest.java
index 6582063..02cfd91 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateInvokeRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateInvokeRequest.java
@@ -108,6 +108,7 @@ public class GridNearAtomicSingleUpdateInvokeRequest extends GridNearAtomicSingl
         int taskNameHash,
         boolean skipStore,
         boolean keepBinary,
+        boolean recovery,
         boolean clientReq,
         boolean addDepInfo
     ) {
@@ -126,6 +127,7 @@ public class GridNearAtomicSingleUpdateInvokeRequest extends GridNearAtomicSingl
             taskNameHash,
             skipStore,
             keepBinary,
+            recovery,
             clientReq,
             addDepInfo
         );


[40/50] [abbrv] ignite git commit: IGNITE-4109 - BinaryType.isEnum() throws an exception if typeId==0

Posted by ag...@apache.org.
IGNITE-4109 - BinaryType.isEnum() throws an exception if typeId==0

(cherry picked from commit 2ccae40)


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

Branch: refs/heads/ignite-3477
Commit: 8070da317fec537b130164cac03a0b56e2bf388f
Parents: 7677f5f
Author: dkarachentsev <dk...@gridgain.com>
Authored: Fri Dec 23 17:51:49 2016 +0300
Committer: dkarachentsev <dk...@gridgain.com>
Committed: Mon Dec 26 13:21:52 2016 +0300

----------------------------------------------------------------------
 .../ignite/internal/binary/BinaryContext.java     |  4 ++--
 .../ignite/internal/binary/BinaryTypeProxy.java   | 15 ++++++++++++---
 .../ignite/internal/binary/BinaryUtils.java       |  4 +++-
 .../internal/binary/BinaryEnumsSelfTest.java      | 18 ++++++++++++++++++
 4 files changed, 35 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/8070da31/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
index b132db3..4616f11 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
@@ -923,7 +923,7 @@ public class BinaryContext {
      * @param typeId Type ID.
      * @return Instance of ID mapper.
      */
-    public BinaryInternalMapper userTypeMapper(int typeId) {
+    BinaryInternalMapper userTypeMapper(int typeId) {
         BinaryInternalMapper mapper = typeId2Mapper.get(typeId);
 
         return mapper != null ? mapper : SIMPLE_NAME_LOWER_CASE_MAPPER;
@@ -933,7 +933,7 @@ public class BinaryContext {
      * @param clsName Type name.
      * @return Instance of ID mapper.
      */
-    private BinaryInternalMapper userTypeMapper(String clsName) {
+    BinaryInternalMapper userTypeMapper(String clsName) {
         BinaryInternalMapper mapper = cls2Mappers.get(clsName);
 
         if (mapper != null)

http://git-wip-us.apache.org/repos/asf/ignite/blob/8070da31/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryTypeProxy.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryTypeProxy.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryTypeProxy.java
index 17b0bc6..df9901e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryTypeProxy.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryTypeProxy.java
@@ -24,6 +24,7 @@ import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 import org.apache.ignite.internal.util.typedef.internal.S;
 
 import java.util.Collection;
+import org.jetbrains.annotations.Nullable;
 
 /**
  * Binary type proxy. Is used to delay or completely avoid metadata lookup.
@@ -34,21 +35,26 @@ public class BinaryTypeProxy implements BinaryType {
     private final BinaryContext ctx;
 
     /** Type ID. */
-    private final int typeId;
+    private int typeId;
+
+    /** Raw data. */
+    private final String clsName;
 
     /** Target type. */
     @GridToStringExclude
     private volatile BinaryType target;
 
     /**
-     * Constrcutor.
+     * Constructor.
      *
      * @param ctx Context.
      * @param typeId Type ID.
+     * @param clsName Class name.
      */
-    public BinaryTypeProxy(BinaryContext ctx, int typeId) {
+    public BinaryTypeProxy(BinaryContext ctx, int typeId, @Nullable String clsName) {
         this.ctx = ctx;
         this.typeId = typeId;
+        this.clsName = clsName;
     }
 
     /** {@inheritDoc} */
@@ -93,6 +99,9 @@ public class BinaryTypeProxy implements BinaryType {
         if (target == null) {
             synchronized (this) {
                 if (target == null) {
+                    if (typeId == GridBinaryMarshaller.UNREGISTERED_TYPE_ID && clsName != null)
+                        typeId = ctx.typeId(clsName);
+
                     target = ctx.metadata(typeId);
 
                     if (target == null)

http://git-wip-us.apache.org/repos/asf/ignite/blob/8070da31/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
index cb6e641..bc4260f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
@@ -2222,7 +2222,9 @@ public class BinaryUtils {
         if (ctx == null)
             throw new BinaryObjectException("BinaryContext is not set for the object.");
 
-        return new BinaryTypeProxy(ctx, obj.typeId());
+        String clsName = obj instanceof BinaryEnumObjectImpl ? ((BinaryEnumObjectImpl)obj).className() : null;
+
+        return new BinaryTypeProxy(ctx, obj.typeId(), clsName);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/8070da31/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryEnumsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryEnumsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryEnumsSelfTest.java
index fb7e618..91add0d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryEnumsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryEnumsSelfTest.java
@@ -28,6 +28,7 @@ import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.BinaryConfiguration;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl;
 import org.apache.ignite.marshaller.Marshaller;
@@ -389,6 +390,23 @@ public class BinaryEnumsSelfTest extends GridCommonAbstractTest {
     }
 
     /**
+     * Check ability to resolve typeId from class name.
+     *
+     * @throws Exception If failed.
+     */
+    public void testZeroTypeId() throws Exception {
+        startUp(true);
+
+        final BinaryContext ctx =
+            ((CacheObjectBinaryProcessorImpl)((IgniteEx)node1).context().cacheObjects()).binaryContext();
+
+        final BinaryObject enumObj =
+            new BinaryEnumObjectImpl(ctx, 0, EnumType.class.getName(), EnumType.ONE.ordinal());
+
+        assert enumObj.type().isEnum();
+    }
+
+    /**
      * Validate simple array.
      *
      * @param registered Registered flag.


[47/50] [abbrv] ignite git commit: ignite-gg-11836 fix issue.

Posted by ag...@apache.org.
ignite-gg-11836 fix issue.


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

Branch: refs/heads/ignite-3477
Commit: 9b006b26231948caff8f179b83de3dcd9a259f2c
Parents: 4668808
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Wed Dec 28 19:08:38 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Wed Dec 28 19:08:38 2016 +0300

----------------------------------------------------------------------
 .../cache/distributed/dht/atomic/GridDhtAtomicCache.java     | 8 +++++++-
 .../processors/cacheobject/IgniteCacheObjectProcessor.java   | 2 +-
 2 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9b006b26/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index 476abc4..c4ea7dc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@ -465,7 +465,13 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
         return near;
     }
 
-    /** {@inheritDoc} */
+    /**
+     *  @param key Key.
+     *  @param deserializeBinary Deserialize binary.
+     *  @param needVer Need version.
+     *  @return Value.
+     *  @throws IgniteCheckedException If failed.
+     */
     @Nullable public V get0(K key, boolean deserializeBinary, boolean needVer) throws IgniteCheckedException {
         ctx.checkSecurity(SecurityPermission.CACHE_READ);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/9b006b26/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessor.java
index 01fafc9..eafb420 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessor.java
@@ -43,7 +43,7 @@ public interface IgniteCacheObjectProcessor extends GridProcessor {
     public void onContinuousProcessorStarted(GridKernalContext ctx) throws IgniteCheckedException;
 
     /**
-     * @see GridComponent#onKernalStart()
+     * @see GridComponent#onKernalStart(boolean)
      * @throws IgniteCheckedException If failed.
      */
     public void onUtilityCacheStarted() throws IgniteCheckedException;


[23/50] [abbrv] ignite git commit: Merge with master - WIP.

Posted by ag...@apache.org.
Merge with master - WIP.


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

Branch: refs/heads/ignite-3477
Commit: f7d89fdb311761fd5a4a4b8594001fb6cae13e88
Parents: 2e55963
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Thu Dec 22 16:23:55 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Thu Dec 22 16:23:55 2016 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheProxyImpl.java    | 24 ++++++++++----
 .../processors/cache/GridCacheTtlManager.java   |  3 +-
 .../processors/cache/IgniteInternalCache.java   |  8 +++++
 .../dht/atomic/GridDhtAtomicCache.java          |  6 +++-
 .../GridDhtPartitionsSingleMessage.java         |  1 -
 .../apache/ignite/internal/util/GridUnsafe.java | 11 ++++++
 .../ignite/internal/util/IgniteUtils.java       |  3 ++
 .../query/h2/DmlStatementsProcessor.java        |  2 +-
 .../h2/twostep/GridReduceQueryExecutor.java     | 35 ++++++--------------
 9 files changed, 59 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/f7d89fdb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
index a3f32a8..8c73026 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
@@ -209,7 +209,8 @@ public class GridCacheProxyImpl<K, V> implements IgniteInternalCache<K, V>, Exte
     }
 
     /** {@inheritDoc} */
-    @Override public void localLoadCache(IgniteBiPredicate<K, V> p, @Nullable Object[] args) throws IgniteCheckedException {
+    @Override public void localLoadCache(IgniteBiPredicate<K, V> p,
+        @Nullable Object[] args) throws IgniteCheckedException {
         CacheOperationContext prev = gate.enter(opCtx);
 
         try {
@@ -915,6 +916,18 @@ public class GridCacheProxyImpl<K, V> implements IgniteInternalCache<K, V>, Exte
     }
 
     /** {@inheritDoc} */
+    @Override public Set<Cache.Entry<K, V>> entrySetx(CacheEntryPredicate... filter) {
+        CacheOperationContext prev = gate.enter(opCtx);
+
+        try {
+            return delegate.entrySetx(filter);
+        }
+        finally {
+            gate.leave(prev);
+        }
+    }
+
+    /** {@inheritDoc} */
     @Override public Iterator<Cache.Entry<K, V>> scanIterator(boolean keepBinary,
         @Nullable IgniteBiPredicate<Object, Object> p) throws IgniteCheckedException {
         CacheOperationContext prev = gate.enter(opCtx);
@@ -981,8 +994,7 @@ public class GridCacheProxyImpl<K, V> implements IgniteInternalCache<K, V>, Exte
     @Nullable @Override public V localPeek(K key,
         CachePeekMode[] peekModes,
         @Nullable IgniteCacheExpiryPolicy plc)
-        throws IgniteCheckedException
-    {
+        throws IgniteCheckedException {
         CacheOperationContext prev = gate.enter(opCtx);
 
         try {
@@ -1190,8 +1202,7 @@ public class GridCacheProxyImpl<K, V> implements IgniteInternalCache<K, V>, Exte
 
     /** {@inheritDoc} */
     @Override public IgniteInternalFuture<?> removeAllConflictAsync(Map<KeyCacheObject, GridCacheVersion> drMap)
-        throws IgniteCheckedException
-    {
+        throws IgniteCheckedException {
         CacheOperationContext prev = gate.enter(opCtx);
 
         try {
@@ -1341,7 +1352,8 @@ public class GridCacheProxyImpl<K, V> implements IgniteInternalCache<K, V>, Exte
     }
 
     /** {@inheritDoc} */
-    @Override public boolean lockAll(@Nullable Collection<? extends K> keys, long timeout) throws IgniteCheckedException {
+    @Override public boolean lockAll(@Nullable Collection<? extends K> keys,
+        long timeout) throws IgniteCheckedException {
         CacheOperationContext prev = gate.enter(opCtx);
 
         try {

http://git-wip-us.apache.org/repos/asf/ignite/blob/f7d89fdb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManager.java
index 7ccf890..abe1b45 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManager.java
@@ -125,7 +125,8 @@ public class GridCacheTtlManager extends GridCacheManagerAdapter {
         U.cancel(cleanupWorker);
         U.join(cleanupWorker, log);
 
-        pendingEntries.clear();
+        if (pendingEntries != null)
+            pendingEntries.clear();
 
         cctx.shared().ttl().unregister(this);
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/f7d89fdb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java
index 568f92e..c2790db 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java
@@ -940,6 +940,14 @@ public interface IgniteInternalCache<K, V> extends Iterable<Cache.Entry<K, V>> {
     @Nullable public Set<Cache.Entry<K, V>> entrySet(int part);
 
     /**
+     * Gets entry set containing internal entries.
+     *
+     * @param filter Filter.
+     * @return Entry set.
+     */
+    public Set<Cache.Entry<K, V>> entrySetx(CacheEntryPredicate... filter);
+
+    /**
      * Starts new transaction with the specified concurrency and isolation.
      *
      * @param concurrency Concurrency.

http://git-wip-us.apache.org/repos/asf/ignite/blob/f7d89fdb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index 2f2706e..e2bd45b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@ -466,7 +466,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
     }
 
     /** {@inheritDoc} */
-    @Nullable @Override public V get0(K key, boolean deserializeBinary, boolean needVer) throws IgniteCheckedException {
+    @Nullable public V get0(K key, boolean deserializeBinary, boolean needVer) throws IgniteCheckedException {
         ctx.checkSecurity(SecurityPermission.CACHE_READ);
 
         if (keyCheck)
@@ -549,12 +549,15 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
     /** {@inheritDoc} */
     @Override protected Map<K, V> getAll0(Collection<? extends K> keys, boolean deserializeBinary, boolean needVer)
         throws IgniteCheckedException {
+        CacheOperationContext opCtx = ctx.operationContextPerCall();
+
         return getAllAsyncInternal(keys,
             !ctx.config().isReadFromBackup(),
             true,
             null,
             ctx.kernalContext().job().currentTaskName(),
             deserializeBinary,
+            opCtx != null && opCtx.recovery(),
             false,
             true,
             needVer,
@@ -580,6 +583,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
             subjId,
             taskName,
             deserializeBinary,
+            recovery,
             skipVals,
             canRemap,
             needVer,

http://git-wip-us.apache.org/repos/asf/ignite/blob/f7d89fdb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java
index 0975a07..b380d9b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java
@@ -221,7 +221,6 @@ public class GridDhtPartitionsSingleMessage extends GridDhtPartitionsAbstractMes
                 GridDhtPartitionMap2 map1 = parts.get(e.getKey());
 
                 assert map1 != null : e.getKey();
-                assert F.isEmpty(map1.map());
                 assert !map1.hasMovingPartitions();
 
                 GridDhtPartitionMap2 map2 = parts.get(e.getValue());

http://git-wip-us.apache.org/repos/asf/ignite/blob/f7d89fdb/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
index 6e9efdb..783ab96 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
@@ -1081,6 +1081,17 @@ public abstract class GridUnsafe {
     }
 
     /**
+     * Copies memory.
+     *
+     * @param src Source.
+     * @param dst Dst.
+     * @param len Length.
+     */
+    public static void copyMemory(long src, long dst, long len) {
+        UNSAFE.copyMemory(src, dst, len);
+    }
+
+    /**
      * Sets all bytes in a given block of memory to a copy of another block.
      *
      * @param srcBase Source base.

http://git-wip-us.apache.org/repos/asf/ignite/blob/f7d89fdb/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index 4a8a33c..c418acc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -9183,6 +9183,9 @@ public abstract class IgniteUtils {
      * @throws IgniteCheckedException If failed.
      */
     public static File resolveWorkDirectory(String path, boolean delIfExist) throws IgniteCheckedException {
+        if (1 == 1)
+            return resolveWorkDirectory(defaultWorkDirectory(), path, delIfExist);
+
         if (path == null) {
             String ggWork0 = igniteWork;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/f7d89fdb/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java
index 4030758..9d1bbd8 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java
@@ -145,7 +145,7 @@ public class DmlStatementsProcessor {
 
                 if (opCtx == null)
                     // Mimics behavior of GridCacheAdapter#keepBinary and GridCacheProxyImpl#keepBinary
-                    newOpCtx = new CacheOperationContext(false, null, true, null, false, null);
+                    newOpCtx = new CacheOperationContext(false, null, true, null, false, null, false);
                 else if (!opCtx.isKeepBinary())
                     newOpCtx = opCtx.keepBinary();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/f7d89fdb/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
index 333908f..51f8bef 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
@@ -586,7 +586,6 @@ public class GridReduceQueryExecutor {
 
                 IgniteProductVersion minNodeVer = cctx.shared().exchange().minimumNodeVersion(topVer);
 
-                final boolean oldStyle = minNodeVer.compareToIgnoreTimestamp(DISTRIBUTED_JOIN_SINCE) < 0;
                 final boolean distributedJoins = qry.distributedJoins();
 
                 cancel.set(new Runnable() {
@@ -597,30 +596,18 @@ public class GridReduceQueryExecutor {
 
                 boolean retry = false;
 
-                if (oldStyle && distributedJoins)
-                    throw new CacheException("Failed to enable distributed joins. Topology contains older data nodes.");
-
                 if (send(nodes,
-                    oldStyle ?
-                        new GridQueryRequest(qryReqId,
-                            r.pageSize,
-                            space,
-                            mapQrys,
-                            topVer,
-                            extraSpaces(space, qry.spaces()),
-                            null,
-                            timeoutMillis) :
-                        new GridH2QueryRequest()
-                            .requestId(qryReqId)
-                            .topologyVersion(topVer)
-                            .pageSize(r.pageSize)
-                            .caches(qry.caches())
-                            .tables(distributedJoins ? qry.tables() : null)
-                            .partitions(convert(partsMap))
-                            .queries(mapQrys)
-                            .flags(distributedJoins ? GridH2QueryRequest.FLAG_DISTRIBUTED_JOINS : 0)
-                            .timeout(timeoutMillis),
-                    oldStyle && partsMap != null ? new ExplicitPartitionsSpecializer(partsMap) : null,
+                    new GridH2QueryRequest()
+                        .requestId(qryReqId)
+                        .topologyVersion(topVer)
+                        .pageSize(r.pageSize)
+                        .caches(qry.caches())
+                        .tables(distributedJoins ? qry.tables() : null)
+                        .partitions(convert(partsMap))
+                        .queries(mapQrys)
+                        .flags(distributedJoins ? GridH2QueryRequest.FLAG_DISTRIBUTED_JOINS : 0)
+                        .timeout(timeoutMillis),
+                    null,
                     distributedJoins)
                     ) {
                     awaitAllReplies(r, nodes);


[13/50] [abbrv] ignite git commit: Merge with master - WIP.

Posted by ag...@apache.org.
Merge with master - WIP.


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

Branch: refs/heads/ignite-3477
Commit: 8483e8faeb7282d2a1483b1f51b4b1e9b7a0851e
Parents: 893ddf0 08606bd
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Wed Dec 21 19:43:36 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Wed Dec 21 19:43:36 2016 +0300

----------------------------------------------------------------------
 README.md                                       |     8 +
 RELEASE_NOTES.txt                               |    22 +
 assembly/dependencies-fabric-lgpl.xml           |     1 +
 assembly/dependencies-fabric.xml                |     1 +
 assembly/release-fabric-base.xml                |     1 +
 bin/ignite.bat                                  |     5 +
 bin/include/setenv.bat                          |     8 -
 bin/include/setenv.sh                           |    31 -
 examples/pom-standalone-lgpl.xml                |     6 +
 examples/pom.xml                                |     8 +-
 examples/redis/redis-example.php                |    82 +
 examples/redis/redis-example.py                 |    62 +
 examples/schema-import/pom.xml                  |     2 +-
 .../examples/datagrid/SpatialQueryExample.java  |   106 +
 .../ignite/examples/ExampleNodeStartup.java     |     2 +-
 .../examples/datagrid/CachePutGetExample.java   |     2 +-
 .../examples/datagrid/CacheQueryDmlExample.java |   163 +
 .../scalar/examples/ScalarJvmCloudExample.scala |     2 +-
 .../SpatialQueryExampleMultiNodeSelfTest.java   |    31 +
 .../examples/SpatialQueryExampleSelfTest.java   |    33 +
 .../IgniteLgplExamplesSelfTestSuite.java        |     4 +
 .../CacheExamplesMultiNodeSelfTest.java         |     7 +
 .../ignite/examples/CacheExamplesSelfTest.java  |     8 +
 modules/aop/pom.xml                             |     2 +-
 modules/apache-license-gen/pom.xml              |     2 +-
 modules/aws/pom.xml                             |     2 +-
 .../s3/S3CheckpointManagerSelfTest.java         |     3 +
 .../checkpoint/s3/S3CheckpointSpiSelfTest.java  |     4 +
 .../s3/S3CheckpointSpiStartStopSelfTest.java    |     7 +
 .../s3/S3SessionCheckpointSelfTest.java         |     2 +
 .../s3/TcpDiscoveryS3IpFinderSelfTest.java      |     7 +
 .../ignite/testsuites/IgniteS3TestSuite.java    |    15 +-
 modules/benchmarks/pom.xml                      |     2 +-
 .../jmh/misc/JmhIncrementBenchmark.java         |    95 +
 modules/camel/pom.xml                           |     2 +-
 modules/cassandra/README.txt                    |     8 +-
 modules/cassandra/licenses/apache-2.0.txt       |   202 -
 modules/cassandra/pom.xml                       |   331 +-
 modules/cassandra/serializers/README.txt        |    34 +
 .../serializers/licenses/apache-2.0.txt         |   202 +
 modules/cassandra/serializers/pom.xml           |   129 +
 .../cassandra/serializer/KryoSerializer.java    |    95 +
 .../apache/ignite/tests/KryoSerializerTest.java |    70 +
 .../java/org/apache/ignite/tests/MyPojo.java    |   102 +
 .../store/cassandra/CassandraCacheStore.java    |   409 -
 .../cassandra/CassandraCacheStoreFactory.java   |   200 -
 .../store/cassandra/common/CassandraHelper.java |   133 -
 .../cassandra/common/PropertyMappingHelper.java |   220 -
 .../store/cassandra/common/RandomSleeper.java   |   104 -
 .../store/cassandra/common/SystemHelper.java    |    46 -
 .../store/cassandra/common/package-info.java    |    21 -
 .../store/cassandra/datasource/Credentials.java |    37 -
 .../store/cassandra/datasource/DataSource.java  |   550 -
 .../cassandra/datasource/PlainCredentials.java  |    50 -
 .../cassandra/datasource/package-info.java      |    21 -
 .../cache/store/cassandra/package-info.java     |    21 -
 .../persistence/KeyPersistenceSettings.java     |   274 -
 .../KeyValuePersistenceSettings.java            |   478 -
 .../persistence/PersistenceController.java      |   421 -
 .../persistence/PersistenceSettings.java        |   335 -
 .../persistence/PersistenceStrategy.java        |    62 -
 .../store/cassandra/persistence/PojoField.java  |   219 -
 .../cassandra/persistence/PojoKeyField.java     |    91 -
 .../cassandra/persistence/PojoValueField.java   |   152 -
 .../persistence/ValuePersistenceSettings.java   |   107 -
 .../cassandra/persistence/package-info.java     |    21 -
 .../cassandra/serializer/JavaSerializer.java    |    81 -
 .../cassandra/serializer/KryoSerializer.java    |    93 -
 .../store/cassandra/serializer/Serializer.java  |    43 -
 .../cassandra/serializer/package-info.java      |    21 -
 .../session/BatchExecutionAssistant.java        |    95 -
 .../cassandra/session/BatchLoaderAssistant.java |    47 -
 .../cassandra/session/CassandraSession.java     |    60 -
 .../cassandra/session/CassandraSessionImpl.java |   832 --
 .../cassandra/session/ExecutionAssistant.java   |    77 -
 .../session/GenericBatchExecutionAssistant.java |    71 -
 .../session/LoadCacheCustomQueryWorker.java     |   105 -
 .../store/cassandra/session/package-info.java   |    21 -
 .../cassandra/session/pool/SessionPool.java     |   173 -
 .../cassandra/session/pool/SessionWrapper.java  |    71 -
 .../cassandra/session/pool/package-info.java    |    21 -
 .../store/cassandra/utils/DDLGenerator.java     |    64 -
 .../store/cassandra/utils/package-info.java     |    21 -
 .../cassandra/src/test/bootstrap/aws/README.txt |    13 -
 .../aws/cassandra/cassandra-bootstrap.sh        |   336 -
 .../bootstrap/aws/cassandra/cassandra-env.sh    |   287 -
 .../bootstrap/aws/cassandra/cassandra-start.sh  |   217 -
 .../aws/cassandra/cassandra-template.yaml       |   888 --
 .../cassandra/src/test/bootstrap/aws/common.sh  |  1481 --
 modules/cassandra/src/test/bootstrap/aws/env.sh |   113 -
 .../test/bootstrap/aws/ganglia/agent-start.sh   |    75 -
 .../bootstrap/aws/ganglia/ganglia-bootstrap.sh  |   417 -
 .../bootstrap/aws/ignite/ignite-bootstrap.sh    |   336 -
 .../ignite/ignite-cassandra-server-template.xml |   190 -
 .../src/test/bootstrap/aws/ignite/ignite-env.sh |    29 -
 .../test/bootstrap/aws/ignite/ignite-start.sh   |   266 -
 .../src/test/bootstrap/aws/logs-collector.sh    |   173 -
 .../tests/ignite-cassandra-client-template.xml  |   192 -
 .../test/bootstrap/aws/tests/tests-bootstrap.sh |   317 -
 .../test/bootstrap/aws/tests/tests-manager.sh   |   458 -
 .../test/bootstrap/aws/tests/tests-report.sh    |   499 -
 .../CassandraDirectPersistenceLoadTest.java     |   107 -
 .../tests/CassandraDirectPersistenceTest.java   |   371 -
 .../apache/ignite/tests/DDLGeneratorTest.java   |    43 -
 .../tests/IgnitePersistentStoreLoadTest.java    |   111 -
 .../ignite/tests/IgnitePersistentStoreTest.java |   369 -
 .../LoadTestsCassandraArtifactsCreator.java     |   104 -
 .../org/apache/ignite/tests/load/Generator.java |    27 -
 .../apache/ignite/tests/load/IntGenerator.java  |    33 -
 .../ignite/tests/load/LoadTestDriver.java       |   238 -
 .../apache/ignite/tests/load/LongGenerator.java |    28 -
 .../ignite/tests/load/PersonGenerator.java      |    43 -
 .../ignite/tests/load/PersonIdGenerator.java    |    31 -
 .../ignite/tests/load/StringGenerator.java      |    28 -
 .../org/apache/ignite/tests/load/Worker.java    |   429 -
 .../tests/load/cassandra/BulkReadWorker.java    |    63 -
 .../tests/load/cassandra/BulkWriteWorker.java   |    52 -
 .../ignite/tests/load/cassandra/ReadWorker.java |    51 -
 .../tests/load/cassandra/WriteWorker.java       |    51 -
 .../tests/load/cassandra/package-info.java      |    21 -
 .../tests/load/ignite/BulkReadWorker.java       |    52 -
 .../tests/load/ignite/BulkWriteWorker.java      |    52 -
 .../ignite/tests/load/ignite/ReadWorker.java    |    51 -
 .../ignite/tests/load/ignite/WriteWorker.java   |    51 -
 .../ignite/tests/load/ignite/package-info.java  |    21 -
 .../apache/ignite/tests/load/package-info.java  |    21 -
 .../org/apache/ignite/tests/package-info.java   |    21 -
 .../org/apache/ignite/tests/pojos/Person.java   |   246 -
 .../org/apache/ignite/tests/pojos/PersonId.java |   110 -
 .../apache/ignite/tests/pojos/package-info.java |    21 -
 .../ignite/tests/utils/CacheStoreHelper.java    |    64 -
 .../tests/utils/CassandraAdminCredentials.java  |    36 -
 .../ignite/tests/utils/CassandraHelper.java     |   358 -
 .../tests/utils/CassandraLifeCycleBean.java     |   149 -
 .../utils/CassandraRegularCredentials.java      |    36 -
 .../ignite/tests/utils/TestCacheSession.java    |    91 -
 .../apache/ignite/tests/utils/TestsHelper.java  |   375 -
 .../apache/ignite/tests/utils/package-info.java |    21 -
 .../src/test/resources/log4j.properties         |   119 -
 .../tests/cassandra/connection-settings.xml     |    52 -
 .../tests/cassandra/connection.properties       |    17 -
 .../tests/cassandra/credentials.properties      |    22 -
 .../tests/cassandra/embedded-cassandra.yaml     |   119 -
 .../ignite/tests/cassandra/keyspaces.properties |    17 -
 .../tests/persistence/blob/ignite-config.xml    |    94 -
 .../persistence/blob/persistence-settings-1.xml |    21 -
 .../persistence/blob/persistence-settings-2.xml |    21 -
 .../persistence/blob/persistence-settings-3.xml |    29 -
 .../tests/persistence/pojo/ignite-config.xml    |   113 -
 .../persistence/pojo/persistence-settings-1.xml |    21 -
 .../persistence/pojo/persistence-settings-2.xml |    21 -
 .../persistence/pojo/persistence-settings-3.xml |   173 -
 .../persistence/primitive/ignite-config.xml     |    94 -
 .../primitive/ignite-remote-client-config.xml   |    99 -
 .../primitive/ignite-remote-server-config.xml   |   110 -
 .../primitive/persistence-settings-1.xml        |    21 -
 .../primitive/persistence-settings-2.xml        |    21 -
 .../src/test/resources/tests.properties         |    50 -
 .../src/test/scripts/cassandra-load-tests.bat   |    41 -
 .../src/test/scripts/cassandra-load-tests.sh    |    39 -
 .../src/test/scripts/ignite-load-tests.bat      |    41 -
 .../src/test/scripts/ignite-load-tests.sh       |    39 -
 modules/cassandra/src/test/scripts/jvm-opt.sh   |    21 -
 modules/cassandra/src/test/scripts/jvm-opts.bat |    24 -
 .../scripts/recreate-cassandra-artifacts.bat    |    41 -
 .../scripts/recreate-cassandra-artifacts.sh     |    39 -
 modules/cassandra/store/README.txt              |    32 +
 modules/cassandra/store/licenses/apache-2.0.txt |   202 +
 modules/cassandra/store/pom.xml                 |   305 +
 .../store/cassandra/CassandraCacheStore.java    |   519 +
 .../cassandra/CassandraCacheStoreFactory.java   |   200 +
 .../store/cassandra/common/CassandraHelper.java |   176 +
 .../cassandra/common/PropertyMappingHelper.java |   219 +
 .../store/cassandra/common/RandomSleeper.java   |   104 +
 .../store/cassandra/common/SystemHelper.java    |    46 +
 .../store/cassandra/common/package-info.java    |    21 +
 .../store/cassandra/datasource/Credentials.java |    39 +
 .../store/cassandra/datasource/DataSource.java  |   647 +
 .../cassandra/datasource/PlainCredentials.java  |    53 +
 .../cassandra/datasource/package-info.java      |    21 +
 .../cache/store/cassandra/package-info.java     |    21 +
 .../persistence/KeyPersistenceSettings.java     |   305 +
 .../KeyValuePersistenceSettings.java            |   526 +
 .../persistence/PersistenceController.java      |   462 +
 .../persistence/PersistenceSettings.java        |   446 +
 .../persistence/PersistenceStrategy.java        |    62 +
 .../store/cassandra/persistence/PojoField.java  |   245 +
 .../cassandra/persistence/PojoKeyField.java     |    87 +
 .../cassandra/persistence/PojoValueField.java   |   143 +
 .../persistence/ValuePersistenceSettings.java   |   120 +
 .../cassandra/persistence/package-info.java     |    21 +
 .../cassandra/serializer/JavaSerializer.java    |    80 +
 .../store/cassandra/serializer/Serializer.java  |    43 +
 .../cassandra/serializer/package-info.java      |    21 +
 .../session/BatchExecutionAssistant.java        |   102 +
 .../cassandra/session/BatchLoaderAssistant.java |    47 +
 .../cassandra/session/CassandraSession.java     |    70 +
 .../cassandra/session/CassandraSessionImpl.java |   943 ++
 .../cassandra/session/ExecutionAssistant.java   |    84 +
 .../session/GenericBatchExecutionAssistant.java |    71 +
 .../session/LoadCacheCustomQueryWorker.java     |   105 +
 .../store/cassandra/session/package-info.java   |    21 +
 .../cassandra/session/pool/SessionPool.java     |   173 +
 .../cassandra/session/pool/SessionWrapper.java  |    71 +
 .../cassandra/session/pool/package-info.java    |    21 +
 .../session/transaction/BaseMutation.java       |    68 +
 .../session/transaction/DeleteMutation.java     |    57 +
 .../cassandra/session/transaction/Mutation.java |    63 +
 .../session/transaction/WriteMutation.java      |    60 +
 .../session/transaction/package-info.java       |    21 +
 .../store/cassandra/utils/DDLGenerator.java     |    76 +
 .../store/cassandra/utils/package-info.java     |    21 +
 .../store/src/test/bootstrap/aws/README.txt     |    13 +
 .../aws/cassandra/cassandra-bootstrap.sh        |   336 +
 .../bootstrap/aws/cassandra/cassandra-env.sh    |   287 +
 .../bootstrap/aws/cassandra/cassandra-start.sh  |   217 +
 .../aws/cassandra/cassandra-template.yaml       |   888 ++
 .../store/src/test/bootstrap/aws/common.sh      |  1481 ++
 .../store/src/test/bootstrap/aws/env.sh         |   113 +
 .../test/bootstrap/aws/ganglia/agent-start.sh   |    75 +
 .../bootstrap/aws/ganglia/ganglia-bootstrap.sh  |   417 +
 .../bootstrap/aws/ignite/ignite-bootstrap.sh    |   336 +
 .../ignite/ignite-cassandra-server-template.xml |   190 +
 .../src/test/bootstrap/aws/ignite/ignite-env.sh |    29 +
 .../test/bootstrap/aws/ignite/ignite-start.sh   |   266 +
 .../src/test/bootstrap/aws/logs-collector.sh    |   173 +
 .../tests/ignite-cassandra-client-template.xml  |   192 +
 .../test/bootstrap/aws/tests/tests-bootstrap.sh |   317 +
 .../test/bootstrap/aws/tests/tests-manager.sh   |   458 +
 .../test/bootstrap/aws/tests/tests-report.sh    |   499 +
 .../CassandraDirectPersistenceLoadTest.java     |   107 +
 .../tests/CassandraDirectPersistenceTest.java   |   696 +
 .../ignite/tests/CassandraLocalServer.java      |    59 +
 .../apache/ignite/tests/DDLGeneratorTest.java   |    57 +
 .../tests/DatasourceSerializationTest.java      |   158 +
 .../tests/IgnitePersistentStoreLoadTest.java    |   111 +
 .../ignite/tests/IgnitePersistentStoreTest.java |   666 +
 .../LoadTestsCassandraArtifactsCreator.java     |   104 +
 .../org/apache/ignite/tests/load/Generator.java |    27 +
 .../apache/ignite/tests/load/IntGenerator.java  |    33 +
 .../ignite/tests/load/LoadTestDriver.java       |   238 +
 .../apache/ignite/tests/load/LongGenerator.java |    28 +
 .../ignite/tests/load/PersonGenerator.java      |    43 +
 .../ignite/tests/load/PersonIdGenerator.java    |    31 +
 .../ignite/tests/load/StringGenerator.java      |    28 +
 .../org/apache/ignite/tests/load/Worker.java    |   429 +
 .../tests/load/cassandra/BulkReadWorker.java    |    63 +
 .../tests/load/cassandra/BulkWriteWorker.java   |    52 +
 .../ignite/tests/load/cassandra/ReadWorker.java |    51 +
 .../tests/load/cassandra/WriteWorker.java       |    51 +
 .../tests/load/cassandra/package-info.java      |    21 +
 .../tests/load/ignite/BulkReadWorker.java       |    52 +
 .../tests/load/ignite/BulkWriteWorker.java      |    52 +
 .../ignite/tests/load/ignite/ReadWorker.java    |    51 +
 .../ignite/tests/load/ignite/WriteWorker.java   |    51 +
 .../ignite/tests/load/ignite/package-info.java  |    21 +
 .../apache/ignite/tests/load/package-info.java  |    21 +
 .../org/apache/ignite/tests/package-info.java   |    21 +
 .../org/apache/ignite/tests/pojos/Person.java   |   279 +
 .../org/apache/ignite/tests/pojos/PersonId.java |   110 +
 .../org/apache/ignite/tests/pojos/Product.java  |   123 +
 .../apache/ignite/tests/pojos/ProductOrder.java |   148 +
 .../apache/ignite/tests/pojos/package-info.java |    21 +
 .../ignite/tests/utils/CacheStoreHelper.java    |    77 +
 .../tests/utils/CassandraAdminCredentials.java  |    38 +
 .../ignite/tests/utils/CassandraHelper.java     |   358 +
 .../tests/utils/CassandraLifeCycleBean.java     |   149 +
 .../utils/CassandraRegularCredentials.java      |    38 +
 .../ignite/tests/utils/TestCacheSession.java    |    95 +
 .../ignite/tests/utils/TestTransaction.java     |   132 +
 .../apache/ignite/tests/utils/TestsHelper.java  |   660 +
 .../apache/ignite/tests/utils/package-info.java |    21 +
 .../store/src/test/resources/log4j.properties   |   119 +
 .../tests/cassandra/connection-settings.xml     |    52 +
 .../tests/cassandra/connection.properties       |    17 +
 .../tests/cassandra/credentials.properties      |    22 +
 .../tests/cassandra/embedded-cassandra.yaml     |   119 +
 .../ignite/tests/cassandra/keyspaces.properties |    17 +
 .../tests/persistence/blob/ignite-config.xml    |    94 +
 .../persistence/blob/persistence-settings-1.xml |    21 +
 .../persistence/blob/persistence-settings-2.xml |    21 +
 .../persistence/blob/persistence-settings-3.xml |    29 +
 .../tests/persistence/pojo/ignite-config.xml    |   169 +
 .../ignite/tests/persistence/pojo/order.xml     |    21 +
 .../persistence/pojo/persistence-settings-1.xml |    21 +
 .../persistence/pojo/persistence-settings-2.xml |    21 +
 .../persistence/pojo/persistence-settings-3.xml |   175 +
 .../persistence/pojo/persistence-settings-4.xml |   175 +
 .../ignite/tests/persistence/pojo/product.xml   |    21 +
 .../persistence/primitive/ignite-config.xml     |    94 +
 .../primitive/ignite-remote-client-config.xml   |    99 +
 .../primitive/ignite-remote-server-config.xml   |   110 +
 .../primitive/persistence-settings-1.xml        |    21 +
 .../primitive/persistence-settings-2.xml        |    21 +
 .../store/src/test/resources/tests.properties   |    65 +
 .../src/test/scripts/cassandra-load-tests.bat   |    41 +
 .../src/test/scripts/cassandra-load-tests.sh    |    39 +
 .../src/test/scripts/ignite-load-tests.bat      |    41 +
 .../store/src/test/scripts/ignite-load-tests.sh |    39 +
 .../cassandra/store/src/test/scripts/jvm-opt.sh |    21 +
 .../store/src/test/scripts/jvm-opts.bat         |    24 +
 .../scripts/recreate-cassandra-artifacts.bat    |    41 +
 .../scripts/recreate-cassandra-artifacts.sh     |    39 +
 modules/clients/pom.xml                         |     9 +-
 .../clients/src/test/config/jdbc-bin-config.xml |    54 +
 .../client/ClientReconnectionSelfTest.java      |     4 +-
 .../client/router/TcpSslRouterSelfTest.java     |     7 +-
 .../client/suite/IgniteClientTestSuite.java     |    75 +-
 .../jdbc2/JdbcAbstractDmlStatementSelfTest.java |   263 +
 .../JdbcAbstractUpdateStatementSelfTest.java    |    37 +
 ...BinaryMarshallerInsertStatementSelfTest.java |    37 +
 ...cBinaryMarshallerMergeStatementSelfTest.java |    37 +
 .../jdbc2/JdbcDeleteStatementSelfTest.java      |    49 +
 .../jdbc2/JdbcInsertStatementSelfTest.java      |   122 +
 .../jdbc2/JdbcMergeStatementSelfTest.java       |    91 +
 .../internal/jdbc2/JdbcNoDefaultCacheTest.java  |    40 +-
 .../internal/jdbc2/JdbcResultSetSelfTest.java   |   109 +-
 .../rest/ClientMemcachedProtocolSelfTest.java   |     4 +-
 .../rest/RestProcessorMultiStartSelfTest.java   |    48 +-
 .../rest/protocols/tcp/MockNioSession.java      |    11 +
 .../tcp/redis/RedisProtocolSelfTest.java        |   559 +
 .../jdbc/suite/IgniteJdbcDriverTestSuite.java   |     5 +
 modules/cloud/pom.xml                           |     2 +-
 .../TcpDiscoveryCloudIpFinderSelfTest.java      |     6 +-
 .../ignite/testsuites/IgniteCloudTestSuite.java |     5 +-
 modules/codegen/pom.xml                         |     2 +-
 modules/core/pom.xml                            |     2 +-
 .../src/main/java/org/apache/ignite/Ignite.java |    77 +-
 .../java/org/apache/ignite/IgniteCache.java     |    21 +
 .../org/apache/ignite/IgniteDataStreamer.java   |     2 +-
 .../java/org/apache/ignite/IgniteScheduler.java |    13 +
 .../java/org/apache/ignite/IgniteServices.java  |    48 +-
 .../apache/ignite/IgniteSystemProperties.java   |    49 +
 .../binary/BinaryAbstractIdentityResolver.java  |    53 +
 .../binary/BinaryArrayIdentityResolver.java     |   224 +
 .../binary/BinaryFieldIdentityResolver.java     |   307 +
 .../ignite/binary/BinaryIdentityResolver.java   |    42 +
 .../ignite/binary/BinaryTypeConfiguration.java  |    27 +-
 .../org/apache/ignite/cache/QueryEntity.java    |    27 +
 .../affinity/fair/FairAffinityFunction.java     |     2 +-
 .../rendezvous/RendezvousAffinityFunction.java  |    82 +-
 .../cache/query/QueryCancelledException.java    |    35 +
 .../apache/ignite/cache/query/QueryCursor.java  |     8 +-
 .../ignite/cache/query/QueryDetailMetrics.java  |    98 +
 .../apache/ignite/cache/query/QueryMetrics.java |     2 +-
 .../org/apache/ignite/cache/query/SpiQuery.java |     8 +-
 .../ignite/cache/query/SqlFieldsQuery.java      |    28 +-
 .../org/apache/ignite/cache/query/SqlQuery.java |    25 +
 .../cache/store/CacheLoadOnlyStoreAdapter.java  |     6 +-
 .../store/jdbc/CacheAbstractJdbcStore.java      |   209 +-
 .../cache/store/jdbc/CacheJdbcBlobStore.java    |     4 +-
 .../cache/store/jdbc/CacheJdbcPojoStore.java    |    26 +-
 .../store/jdbc/CacheJdbcPojoStoreFactory.java   |    45 +-
 .../ignite/cache/store/jdbc/JdbcType.java       |     2 +-
 .../store/jdbc/dialect/BasicJdbcDialect.java    |    12 +-
 .../cache/store/jdbc/dialect/DB2Dialect.java    |    14 +-
 .../cache/store/jdbc/dialect/H2Dialect.java     |     5 +-
 .../cache/store/jdbc/dialect/JdbcDialect.java   |    18 +-
 .../cache/store/jdbc/dialect/MySQLDialect.java  |     9 +-
 .../cache/store/jdbc/dialect/OracleDialect.java |    13 +-
 .../store/jdbc/dialect/SQLServerDialect.java    |    22 +-
 .../apache/ignite/compute/ComputeTaskSpis.java  |     8 +-
 .../configuration/CacheConfiguration.java       |    97 +-
 .../configuration/FileSystemConfiguration.java  |     2 +-
 .../configuration/IgniteConfiguration.java      |    66 +-
 .../ignite/configuration/OdbcConfiguration.java |    98 +-
 .../java/org/apache/ignite/igfs/IgfsPath.java   |    14 +-
 .../org/apache/ignite/igfs/IgfsPathSummary.java |     3 +-
 .../local/LocalIgfsSecondaryFileSystem.java     |   131 +-
 .../internal/ComputeTaskInternalFuture.java     |    11 +
 .../internal/GridEventConsumeHandler.java       |    15 +-
 .../ignite/internal/GridJobContextImpl.java     |     4 +-
 .../internal/GridJobSiblingsResponse.java       |     3 +-
 .../ignite/internal/GridKernalContext.java      |    40 +
 .../ignite/internal/GridKernalContextImpl.java  |    68 +-
 .../apache/ignite/internal/GridLoggerProxy.java |     3 +-
 .../internal/GridMessageListenHandler.java      |    13 +-
 .../internal/GridPerformanceSuggestions.java    |     2 +-
 .../ignite/internal/GridTaskSessionImpl.java    |    15 +-
 .../org/apache/ignite/internal/GridTopic.java   |     7 +-
 .../ignite/internal/IgniteComponentType.java    |    11 +-
 .../ignite/internal/IgniteInternalFuture.java   |    11 +
 .../apache/ignite/internal/IgniteKernal.java    |   182 +-
 .../ignite/internal/IgniteSchedulerImpl.java    |    18 +
 .../ignite/internal/IgniteServicesImpl.java     |     4 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |   223 +-
 .../ignite/internal/MarshallerContextImpl.java  |    12 +-
 .../internal/binary/BinaryClassDescriptor.java  |    37 +-
 .../ignite/internal/binary/BinaryContext.java   |    90 +-
 .../internal/binary/BinaryEnumObjectImpl.java   |     8 +-
 .../ignite/internal/binary/BinaryFieldImpl.java |    10 +-
 .../internal/binary/BinaryMarshaller.java       |    23 +-
 .../ignite/internal/binary/BinaryObjectEx.java  |     8 +
 .../internal/binary/BinaryObjectExImpl.java     |   247 +-
 .../internal/binary/BinaryObjectImpl.java       |    68 +-
 .../binary/BinaryObjectOffheapImpl.java         |    69 +-
 .../internal/binary/BinaryPrimitives.java       |    30 +-
 .../internal/binary/BinaryReaderExImpl.java     |    24 +
 .../internal/binary/BinaryReaderHandles.java    |     2 +-
 .../binary/BinarySerializedFieldComparator.java |   343 +
 .../ignite/internal/binary/BinaryUtils.java     |     5 +-
 .../internal/binary/BinaryWriterExImpl.java     |    93 +-
 .../internal/binary/GridBinaryMarshaller.java   |     2 +-
 .../binary/builder/BinaryBuilderReader.java     |    11 +
 .../binary/builder/BinaryBuilderSerializer.java |     4 +
 .../binary/builder/BinaryObjectBuilderImpl.java |    29 +-
 .../streams/BinaryAbstractInputStream.java      |     5 +
 .../streams/BinaryAbstractOutputStream.java     |     5 +
 .../binary/streams/BinaryHeapInputStream.java   |     9 +-
 .../binary/streams/BinaryHeapOutputStream.java  |     7 +-
 .../streams/BinaryMemoryAllocatorChunk.java     |     3 +-
 .../streams/BinaryOffheapInputStream.java       |    14 +-
 .../streams/BinaryOffheapOutputStream.java      |     8 +-
 .../internal/binary/streams/BinaryStream.java   |    12 +-
 .../client/GridClientConfiguration.java         |     1 -
 .../GridClientConnectionManagerAdapter.java     |     1 +
 .../GridClientOptimizedMarshaller.java          |     5 +-
 .../GridClientZipOptimizedMarshaller.java       |     5 +-
 .../internal/cluster/ClusterGroupAdapter.java   |     2 +-
 .../cluster/ClusterNodeLocalMapImpl.java        |     3 +-
 .../igfs/common/IgfsControlResponse.java        |    19 +-
 .../internal/igfs/common/IgfsMarshaller.java    |    14 +-
 .../ignite/internal/jdbc/JdbcResultSet.java     |    10 +-
 .../apache/ignite/internal/jdbc/JdbcUtils.java  |     4 +-
 .../ignite/internal/jdbc2/JdbcConnection.java   |    17 +
 .../internal/jdbc2/JdbcPreparedStatement.java   |    71 +-
 .../ignite/internal/jdbc2/JdbcQueryTask.java    |     5 +-
 .../ignite/internal/jdbc2/JdbcQueryTaskV2.java  |   406 +
 .../ignite/internal/jdbc2/JdbcResultSet.java    |    81 +-
 .../internal/jdbc2/JdbcSqlFieldsQuery.java      |    49 +
 .../ignite/internal/jdbc2/JdbcStatement.java    |   213 +-
 .../apache/ignite/internal/jdbc2/JdbcUtils.java |    25 +-
 .../internal/managers/GridManagerAdapter.java   |    15 +
 .../checkpoint/GridCheckpointManager.java       |     6 +-
 .../managers/communication/GridIoManager.java   |   224 +-
 .../managers/communication/GridIoMessage.java   |    13 +
 .../communication/GridIoMessageFactory.java     |    81 +-
 .../communication/IgniteIoTestMessage.java      |    13 +-
 .../deployment/GridDeploymentCommunication.java |     4 +-
 .../GridDeploymentPerVersionStore.java          |     2 +-
 .../discovery/GridDiscoveryManager.java         |   192 +-
 .../eventstorage/GridEventStorageManager.java   |    18 +-
 .../loadbalancer/GridLoadBalancerManager.java   |    10 +-
 .../processors/affinity/AffinityAssignment.java |    88 +
 .../affinity/GridAffinityAssignment.java        |     8 +-
 .../affinity/GridAffinityAssignmentCache.java   |    35 +-
 .../affinity/GridAffinityProcessor.java         |    89 +-
 .../processors/affinity/GridAffinityUtils.java  |    12 +-
 .../affinity/HistoryAffinityAssignment.java     |   169 +
 .../cache/CacheAffinitySharedManager.java       |    57 +-
 .../cache/CacheEntrySerializablePredicate.java  |     4 +-
 .../cache/CacheInvokeDirectResult.java          |     4 +-
 .../cache/DynamicCacheChangeBatch.java          |     7 +
 .../processors/cache/GridCacheAdapter.java      |    42 +-
 .../cache/GridCacheAffinityManager.java         |     6 +-
 .../processors/cache/GridCacheContext.java      |     2 +-
 .../cache/GridCacheDeploymentManager.java       |     4 +-
 .../processors/cache/GridCacheEntryEx.java      |    16 +-
 .../processors/cache/GridCacheEventManager.java |    10 +-
 .../processors/cache/GridCacheIoManager.java    |    89 +-
 .../processors/cache/GridCacheMapEntry.java     |    59 +-
 .../processors/cache/GridCacheMessage.java      |    11 +-
 .../processors/cache/GridCacheMvccManager.java  |    77 +
 .../GridCachePartitionExchangeManager.java      |   387 +-
 .../processors/cache/GridCachePreloader.java    |    19 +-
 .../cache/GridCachePreloaderAdapter.java        |    16 +-
 .../processors/cache/GridCacheProcessor.java    |   306 +-
 .../GridCacheReturnCompletableWrapper.java      |   101 +
 .../cache/GridCacheSharedContext.java           |    25 +-
 .../cache/GridCacheSharedTtlCleanupManager.java |   132 +
 .../processors/cache/GridCacheTtlManager.java   |     6 +
 .../processors/cache/GridCacheUtilityKey.java   |     6 +-
 .../processors/cache/GridCacheUtils.java        |   126 +-
 .../cache/GridDeferredAckMessageSender.java     |   219 +
 .../processors/cache/IgniteCacheProxy.java      |    98 +-
 .../processors/cache/QueryCursorImpl.java       |   117 +-
 .../binary/CacheObjectBinaryProcessorImpl.java  |    43 +-
 .../distributed/GridDistributedLockRequest.java |     5 +
 .../GridDistributedLockResponse.java            |     4 +-
 .../GridDistributedTxFinishResponse.java        |     6 +
 .../GridDistributedTxPrepareRequest.java        |     4 +-
 .../GridDistributedTxPrepareResponse.java       |     4 +-
 .../GridDistributedTxRemoteAdapter.java         |    32 +-
 .../GridDistributedUnlockRequest.java           |     5 +
 .../dht/GridClientPartitionTopology.java        |   136 +-
 .../dht/GridDhtAffinityAssignmentRequest.java   |     2 +-
 .../dht/GridDhtAffinityAssignmentResponse.java  |    12 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |     3 +-
 .../distributed/dht/GridDhtLocalPartition.java  |     2 +-
 .../distributed/dht/GridDhtLockFuture.java      |    23 +-
 .../distributed/dht/GridDhtLockResponse.java    |     9 +-
 .../dht/GridDhtPartitionTopology.java           |    31 +-
 .../dht/GridDhtPartitionTopologyImpl.java       |   282 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |    12 +-
 .../distributed/dht/GridDhtTxFinishRequest.java |    33 +-
 .../dht/GridDhtTxFinishResponse.java            |    56 +-
 .../dht/GridDhtTxOnePhaseCommitAckRequest.java  |   134 +
 .../distributed/dht/GridDhtTxPrepareFuture.java |    44 +-
 .../dht/GridDhtTxPrepareRequest.java            |    93 +-
 .../cache/distributed/dht/GridDhtTxRemote.java  |     6 +-
 .../GridDhtAtomicAbstractUpdateFuture.java      |   471 +
 .../GridDhtAtomicAbstractUpdateRequest.java     |   287 +
 .../dht/atomic/GridDhtAtomicCache.java          |   374 +-
 .../atomic/GridDhtAtomicSingleUpdateFuture.java |   190 +
 .../GridDhtAtomicSingleUpdateRequest.java       |   683 +
 .../dht/atomic/GridDhtAtomicUpdateFuture.java   |   443 +-
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |   317 +-
 .../dht/atomic/GridDhtAtomicUpdateResponse.java |     4 +-
 ...idNearAtomicAbstractSingleUpdateRequest.java |   562 +
 .../GridNearAtomicAbstractUpdateFuture.java     |    15 +-
 .../GridNearAtomicAbstractUpdateRequest.java    |   226 +
 .../atomic/GridNearAtomicFullUpdateRequest.java |  1046 ++
 ...GridNearAtomicSingleUpdateFilterRequest.java |   226 +
 .../GridNearAtomicSingleUpdateFuture.java       |   143 +-
 ...GridNearAtomicSingleUpdateInvokeRequest.java |   307 +
 .../GridNearAtomicSingleUpdateRequest.java      |   360 +
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |    42 +-
 .../dht/atomic/GridNearAtomicUpdateRequest.java |  1119 --
 .../atomic/GridNearAtomicUpdateResponse.java    |     4 +-
 .../dht/preloader/GridDhtForceKeysResponse.java |     4 +-
 .../GridDhtPartitionDemandMessage.java          |     4 +-
 .../dht/preloader/GridDhtPartitionDemander.java |   233 +-
 .../dht/preloader/GridDhtPartitionFullMap.java  |    36 +-
 .../dht/preloader/GridDhtPartitionMap2.java     |    53 +-
 .../GridDhtPartitionsAbstractMessage.java       |    40 +-
 .../GridDhtPartitionsExchangeFuture.java        |   129 +-
 .../preloader/GridDhtPartitionsFullMessage.java |   150 +-
 .../GridDhtPartitionsSingleMessage.java         |   132 +-
 .../GridDhtPartitionsSingleRequest.java         |     4 +-
 .../dht/preloader/GridDhtPreloader.java         |    55 +-
 .../distributed/near/GridNearAtomicCache.java   |    18 +-
 .../distributed/near/GridNearCacheAdapter.java  |     7 +
 .../distributed/near/GridNearGetRequest.java    |     5 +
 .../distributed/near/GridNearGetResponse.java   |     4 +-
 ...arOptimisticSerializableTxPrepareFuture.java |     4 +-
 .../near/GridNearOptimisticTxPrepareFuture.java |     9 +-
 .../GridNearPessimisticTxPrepareFuture.java     |     4 +-
 .../near/GridNearSingleGetResponse.java         |     4 +-
 .../near/GridNearTxFinishFuture.java            |   112 +-
 .../near/GridNearTxFinishResponse.java          |     4 +-
 .../local/atomic/GridLocalAtomicCache.java      |     3 +
 .../processors/cache/query/CacheQuery.java      |     1 -
 .../processors/cache/query/CacheQueryType.java  |     2 +-
 .../query/GridCacheDistributedQueryManager.java |     2 +-
 .../cache/query/GridCacheLocalQueryFuture.java  |     4 +-
 .../cache/query/GridCacheQueryAdapter.java      |    10 -
 .../GridCacheQueryDetailMetricsAdapter.java     |   248 +
 .../query/GridCacheQueryDetailMetricsKey.java   |    82 +
 .../query/GridCacheQueryFutureAdapter.java      |     2 -
 .../cache/query/GridCacheQueryManager.java      |   178 +-
 .../query/GridCacheQueryMetricsAdapter.java     |    37 +-
 .../cache/query/GridCacheQueryRequest.java      |    18 +-
 .../cache/query/GridCacheQueryResponse.java     |     4 +-
 .../cache/query/GridCacheSqlQuery.java          |    17 +-
 .../cache/query/GridCacheTwoStepQuery.java      |   253 -
 .../cache/query/IgniteQueryErrorCode.java       |    91 +
 .../continuous/CacheContinuousQueryHandler.java |    21 +-
 .../CacheContinuousQueryListener.java           |     4 +-
 .../continuous/CacheContinuousQueryManager.java |     6 +-
 .../jdbc/GridCacheQueryJdbcMetadataTask.java    |     4 +-
 .../query/jdbc/GridCacheQueryJdbcTask.java      |     6 +-
 .../store/GridCacheStoreManagerAdapter.java     |     2 +-
 .../cache/store/GridCacheWriteBehindStore.java  |     2 +-
 .../cache/transactions/IgniteTxAdapter.java     |    46 +-
 .../cache/transactions/IgniteTxEntry.java       |    49 +-
 .../cache/transactions/IgniteTxHandler.java     |   167 +-
 .../transactions/IgniteTxLocalAdapter.java      |    38 +-
 .../cache/transactions/IgniteTxManager.java     |   156 +-
 .../GridCacheLazyPlainVersionedEntry.java       |     6 +
 .../version/GridCachePlainVersionedEntry.java   |     5 +-
 .../version/GridCacheRawVersionedEntry.java     |     8 +-
 .../IgniteCacheObjectProcessorImpl.java         |     3 +-
 .../clock/GridClockSyncProcessor.java           |     2 +-
 .../closure/GridClosureProcessor.java           |    77 +-
 .../processors/cluster/ClusterProcessor.java    |     2 +-
 .../processors/cluster/GridUpdateNotifier.java  |   108 +-
 .../continuous/GridContinuousHandler.java       |     8 -
 .../continuous/GridContinuousProcessor.java     |    49 +-
 .../processors/continuous/StartRequestData.java |     4 +-
 .../datastreamer/DataStreamProcessor.java       |   118 +-
 .../datastreamer/DataStreamerImpl.java          |   691 +-
 .../datastructures/GridCacheQueueAdapter.java   |     2 +-
 .../processors/hadoop/HadoopClassLoader.java    |   487 +
 .../processors/hadoop/HadoopClasspathUtils.java |   424 +
 .../processors/hadoop/HadoopDefaultJobInfo.java |   156 +
 .../processors/hadoop/HadoopHelper.java         |    62 +
 .../internal/processors/hadoop/HadoopJob.java   |     5 +
 .../internal/processors/hadoop/HadoopJobId.java |    79 +-
 .../processors/hadoop/HadoopJobInfo.java        |     4 +-
 .../processors/hadoop/HadoopJobProperty.java    |    50 +-
 .../processors/hadoop/HadoopLocations.java      |   123 +
 .../hadoop/HadoopMapReducePlanner.java          |     1 +
 .../hadoop/HadoopMapperAwareTaskOutput.java     |    32 +
 .../processors/hadoop/HadoopNoopHelper.java     |    71 +
 .../processors/hadoop/HadoopNoopProcessor.java  |     4 +-
 .../processors/hadoop/HadoopTaskInfo.java       |    43 +
 .../hadoop/message/HadoopMessage.java           |    27 +
 .../shuffle/HadoopDirectShuffleMessage.java     |   243 +
 .../hadoop/shuffle/HadoopShuffleAck.java        |   170 +
 .../shuffle/HadoopShuffleFinishRequest.java     |   172 +
 .../shuffle/HadoopShuffleFinishResponse.java    |   142 +
 .../hadoop/shuffle/HadoopShuffleMessage.java    |   361 +
 .../igfs/IgfsAbstractOutputStream.java          |   266 +
 .../processors/igfs/IgfsAckMessage.java         |     5 +-
 .../internal/processors/igfs/IgfsAsyncImpl.java |    12 +-
 .../internal/processors/igfs/IgfsContext.java   |    64 +-
 .../processors/igfs/IgfsDataManager.java        |   148 +-
 .../processors/igfs/IgfsDeleteMessage.java      |     5 +-
 .../ignite/internal/processors/igfs/IgfsEx.java |    18 -
 .../internal/processors/igfs/IgfsFileImpl.java  |     5 +-
 .../igfs/IgfsFragmentizerManager.java           |    29 +-
 .../internal/processors/igfs/IgfsImpl.java      |   601 +-
 .../processors/igfs/IgfsInputStreamAdapter.java |    51 -
 .../processors/igfs/IgfsInputStreamImpl.java    |   215 +-
 .../processors/igfs/IgfsIpcHandler.java         |     7 +-
 .../processors/igfs/IgfsKernalContextAware.java |    32 +
 .../processors/igfs/IgfsMetaManager.java        |     1 -
 .../processors/igfs/IgfsModeResolver.java       |     3 +-
 .../processors/igfs/IgfsOutputStreamImpl.java   |   319 +-
 .../igfs/IgfsOutputStreamProxyImpl.java         |   163 +
 .../internal/processors/igfs/IgfsPathIds.java   |     2 +-
 .../internal/processors/igfs/IgfsPaths.java     |     9 +-
 .../internal/processors/igfs/IgfsProcessor.java |    31 +-
 .../igfs/IgfsSecondaryFileSystemImpl.java       |     2 +-
 .../internal/processors/igfs/IgfsServer.java    |     5 +-
 .../processors/igfs/IgfsThreadFactory.java      |    61 +
 .../internal/processors/igfs/IgfsUtils.java     |    21 +-
 .../local/LocalFileSystemIgfsFile.java          |     9 +-
 .../local/LocalFileSystemSizeVisitor.java       |    60 +
 .../secondary/local/LocalFileSystemUtils.java   |   142 +
 .../processors/job/GridJobProcessor.java        |    21 +-
 .../internal/processors/job/GridJobWorker.java  |    16 +-
 .../OsDiscoveryNodeValidationProcessor.java     |     2 +-
 .../processors/odbc/OdbcMessageParser.java      |    26 +-
 .../processors/odbc/OdbcNioListener.java        |     2 +-
 .../internal/processors/odbc/OdbcProcessor.java |    54 +-
 .../odbc/OdbcQueryGetParamsMetaRequest.java     |    60 +
 .../odbc/OdbcQueryGetParamsMetaResult.java      |    40 +
 .../internal/processors/odbc/OdbcRequest.java   |     3 +
 .../processors/odbc/OdbcRequestHandler.java     |   206 +-
 .../internal/processors/odbc/OdbcUtils.java     |     4 +-
 .../processors/odbc/escape/OdbcEscapeType.java  |    13 +-
 .../processors/odbc/escape/OdbcEscapeUtils.java |    58 +-
 .../offheap/GridOffHeapProcessor.java           |    18 +-
 .../platform/PlatformAbstractTarget.java        |   290 +-
 .../platform/PlatformAsyncTarget.java           |    44 +
 .../platform/PlatformConfigurationEx.java       |     8 +
 .../platform/PlatformContextImpl.java           |     3 -
 .../platform/PlatformNoopProcessor.java         |    44 +-
 .../processors/platform/PlatformProcessor.java  |    51 +-
 .../platform/PlatformProcessorImpl.java         |   172 +-
 .../processors/platform/PlatformTarget.java     |   123 +-
 .../platform/PlatformTargetProxy.java           |   126 +
 .../platform/PlatformTargetProxyImpl.java       |   222 +
 .../binary/PlatformBinaryProcessor.java         |    96 +
 .../platform/cache/PlatformCache.java           |   980 +-
 .../platform/cache/PlatformCacheExtension.java  |    47 +
 .../platform/cache/PlatformCacheIterator.java   |     2 +-
 .../cache/affinity/PlatformAffinity.java        |    18 +-
 .../affinity/PlatformAffinityFunction.java      |    14 +-
 .../PlatformAffinityFunctionTarget.java         |     4 +-
 .../cache/expiry/PlatformExpiryPolicy.java      |    93 +
 .../expiry/PlatformExpiryPolicyFactory.java     |    76 +
 .../query/PlatformAbstractQueryCursor.java      |    55 +-
 .../query/PlatformContinuousQueryProxy.java     |    55 +
 .../cache/query/PlatformFieldsQueryCursor.java  |     6 +
 .../cache/store/PlatformCacheStoreCallback.java |    61 -
 .../callback/PlatformCallbackGateway.java       |    11 +-
 .../callback/PlatformCallbackUtils.java         |     9 +-
 .../platform/cluster/PlatformClusterGroup.java  |   167 +-
 .../platform/compute/PlatformCompute.java       |   116 +-
 .../cpp/PlatformCppConfigurationClosure.java    |    13 +-
 .../cpp/PlatformCppConfigurationEx.java         |     7 +
 .../datastreamer/PlatformDataStreamer.java      |   107 +-
 .../PlatformStreamReceiverImpl.java             |     8 +-
 .../datastructures/PlatformAtomicLong.java      |   174 +-
 .../datastructures/PlatformAtomicReference.java |    44 +-
 .../datastructures/PlatformAtomicSequence.java  |   126 +-
 .../dotnet/PlatformDotNetCacheStore.java        |   117 +-
 .../PlatformDotNetConfigurationClosure.java     |    13 +-
 .../dotnet/PlatformDotNetConfigurationEx.java   |    15 +
 ...PlatformDotNetEntityFrameworkCacheEntry.java |   102 +
 ...formDotNetEntityFrameworkCacheExtension.java |   353 +
 .../PlatformDotNetEntityFrameworkCacheKey.java  |   164 +
 ...EntityFrameworkIncreaseVersionProcessor.java |    45 +
 .../platform/events/PlatformEvents.java         |   205 +-
 .../memory/PlatformInputStreamImpl.java         |    14 +-
 .../memory/PlatformOutputStreamImpl.java        |    14 +-
 .../platform/messaging/PlatformMessaging.java   |    90 +-
 .../platform/services/PlatformServices.java     |   249 +-
 .../transactions/PlatformTransactions.java      |   222 +-
 .../utils/PlatformConfigurationUtils.java       |   111 +-
 .../platform/utils/PlatformFutureUtils.java     |    14 +-
 .../utils/PlatformListenableTarget.java         |    62 +
 .../platform/utils/PlatformUtils.java           |     8 +-
 .../PlatformDotNetSessionCacheExtension.java    |   144 +
 .../websession/PlatformDotNetSessionData.java   |   260 +
 .../PlatformDotNetSessionLockProcessor.java     |    84 +
 .../PlatformDotNetSessionLockResult.java        |   106 +
 ...tformDotNetSessionSetAndUnlockProcessor.java |   179 +
 .../internal/processors/pool/PoolProcessor.java |   154 +
 .../processors/query/GridQueryCancel.java       |    83 +
 .../processors/query/GridQueryFieldsResult.java |     3 +-
 .../query/GridQueryFieldsResultAdapter.java     |     3 +-
 .../processors/query/GridQueryIndexing.java     |    32 +-
 .../processors/query/GridQueryProcessor.java    |   796 +-
 .../processors/query/GridQueryProperty.java     |    20 +
 .../query/GridQueryTypeDescriptor.java          |    25 +
 .../processors/query/IgniteSQLException.java    |    89 +
 .../twostep/messages/GridQueryFailResponse.java |    36 +-
 .../h2/twostep/messages/GridQueryRequest.java   |    31 +-
 .../processors/rest/GridRestProcessor.java      |    15 +
 .../handlers/redis/GridRedisCommandHandler.java |    39 +
 .../GridRedisConnectionCommandHandler.java      |    74 +
 .../redis/GridRedisRestCommandHandler.java      |   102 +
 .../exception/GridRedisGenericException.java    |    37 +
 .../redis/exception/GridRedisTypeException.java |    37 +
 .../redis/key/GridRedisDelCommandHandler.java   |    95 +
 .../key/GridRedisExistsCommandHandler.java      |    94 +
 .../server/GridRedisDbSizeCommandHandler.java   |    80 +
 .../string/GridRedisAppendCommandHandler.java   |   118 +
 .../string/GridRedisGetCommandHandler.java      |   107 +
 .../string/GridRedisGetRangeCommandHandler.java |   128 +
 .../string/GridRedisGetSetCommandHandler.java   |    94 +
 .../string/GridRedisIncrDecrCommandHandler.java |   193 +
 .../string/GridRedisMGetCommandHandler.java     |    94 +
 .../string/GridRedisMSetCommandHandler.java     |    91 +
 .../string/GridRedisSetCommandHandler.java      |   156 +
 .../string/GridRedisSetRangeCommandHandler.java |   149 +
 .../string/GridRedisStrlenCommandHandler.java   |    89 +
 .../handlers/task/GridTaskCommandHandler.java   |    10 +-
 .../protocols/tcp/GridClientPacketType.java     |     3 +
 .../tcp/GridTcpMemcachedNioListener.java        |    15 +-
 .../protocols/tcp/GridTcpRestNioListener.java   |    16 +-
 .../rest/protocols/tcp/GridTcpRestParser.java   |    43 +-
 .../protocols/tcp/redis/GridRedisCommand.java   |    80 +
 .../protocols/tcp/redis/GridRedisMessage.java   |   219 +
 .../tcp/redis/GridRedisNioListener.java         |   146 +
 .../tcp/redis/GridRedisProtocolParser.java      |   314 +
 .../service/GridServiceProcessor.java           |    80 +-
 .../session/GridTaskSessionProcessor.java       |     9 +-
 .../processors/task/GridTaskProcessor.java      |    11 +-
 .../processors/task/GridTaskWorker.java         |    20 +-
 .../util/GridBoundedConcurrentOrderedMap.java   |     5 +
 .../internal/util/GridBoundedPriorityQueue.java |    68 +
 .../ignite/internal/util/GridHandleTable.java   |    10 +-
 .../ignite/internal/util/GridLogThrottle.java   |    66 +-
 .../apache/ignite/internal/util/GridUnsafe.java |    60 +-
 .../ignite/internal/util/IgniteUtils.java       |   521 +-
 .../internal/util/SerializableTransient.java    |    58 +
 .../ignite/internal/util/StripedExecutor.java   |   667 +
 .../util/future/GridFinishedFuture.java         |    24 +
 .../internal/util/future/GridFutureAdapter.java |    27 +-
 .../util/future/GridFutureChainListener.java    |    30 +-
 .../internal/util/io/GridUnsafeDataInput.java   |    12 +-
 .../internal/util/io/GridUnsafeDataOutput.java  |    12 +-
 .../internal/util/ipc/IpcToNioAdapter.java      |     2 +-
 .../ipc/shmem/IpcSharedMemoryNativeLoader.java  |     2 +-
 .../shmem/IpcSharedMemoryServerEndpoint.java    |    19 +-
 .../util/lang/IgniteSingletonIterator.java      |    56 +
 .../util/nio/GridCommunicationClient.java       |     4 +-
 .../nio/GridConnectionBytesVerifyFilter.java    |    17 +-
 .../util/nio/GridNioAsyncNotifyFilter.java      |    10 +-
 .../internal/util/nio/GridNioCodecFilter.java   |    19 +-
 .../ignite/internal/util/nio/GridNioFilter.java |    16 +-
 .../internal/util/nio/GridNioFilterAdapter.java |    10 +-
 .../internal/util/nio/GridNioFilterChain.java   |    16 +-
 .../ignite/internal/util/nio/GridNioFuture.java |     4 +-
 .../util/nio/GridNioRecoveryDescriptor.java     |    95 +-
 .../ignite/internal/util/nio/GridNioServer.java |  1360 +-
 .../internal/util/nio/GridNioSession.java       |    11 +
 .../internal/util/nio/GridNioSessionImpl.java   |    49 +-
 .../util/nio/GridNioSessionMetaKey.java         |     7 +-
 .../ignite/internal/util/nio/GridNioWorker.java |    48 +
 .../util/nio/GridSelectorNioSessionImpl.java    |   158 +-
 .../util/nio/GridTcpNioCommunicationClient.java |    49 +-
 .../internal/util/nio/SessionWriteRequest.java  |    85 +
 .../util/nio/ssl/BlockingSslHandler.java        |    61 +-
 .../internal/util/nio/ssl/GridNioSslFilter.java |    73 +-
 .../util/nio/ssl/GridNioSslHandler.java         |    21 +-
 .../internal/util/nio/ssl/GridSslMeta.java      |    94 +
 .../util/offheap/unsafe/GridUnsafeMemory.java   |    43 +-
 .../util/tostring/GridToStringBuilder.java      |     2 +-
 .../cache/VisorCacheQueryDetailMetrics.java     |   167 +
 ...sorCacheQueryDetailMetricsCollectorTask.java |   146 +
 .../VisorCacheResetQueryDetailMetricsTask.java  |    71 +
 .../cache/VisorCacheResetQueryMetricsTask.java  |    69 +
 .../visor/cache/VisorCacheTypeMetadata.java     |    70 +-
 .../visor/event/VisorGridDiscoveryEventV2.java  |    80 +
 .../visor/misc/VisorResolveHostNameTask.java    |     4 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |    19 +-
 .../internal/visor/query/VisorQueryJob.java     |     2 +-
 .../internal/visor/util/VisorEventMapper.java   |    96 +-
 .../internal/visor/util/VisorTaskUtils.java     |    48 +-
 .../apache/ignite/logger/java/JavaLogger.java   |    14 +-
 .../logger/java/JavaLoggerFileHandler.java      |    10 +-
 .../ignite/marshaller/AbstractMarshaller.java   |    41 +-
 .../AbstractNodeNameAwareMarshaller.java        |   142 +
 .../ignite/marshaller/MarshallerUtils.java      |    80 +
 .../ignite/marshaller/jdk/JdkMarshaller.java    |    52 +-
 .../optimized/OptimizedClassDescriptor.java     |    90 +-
 .../optimized/OptimizedMarshaller.java          |    34 +-
 .../optimized/OptimizedObjectOutputStream.java  |    25 +-
 .../dotnet/PlatformDotNetAffinityFunction.java  |     9 +-
 .../security/SecurityBasicPermissionSet.java    |   107 +
 .../security/SecurityPermissionSetBuilder.java  |   222 +
 .../org/apache/ignite/services/Service.java     |    12 +-
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |    11 +
 .../org/apache/ignite/spi/IgniteSpiContext.java |    26 +-
 .../sharedfs/SharedFsCheckpointSpi.java         |    10 +-
 .../spi/checkpoint/sharedfs/SharedFsUtils.java  |     4 +-
 .../communication/tcp/TcpCommunicationSpi.java  |   382 +-
 .../tcp/TcpCommunicationSpiMBean.java           |    40 +
 .../ignite/spi/discovery/tcp/ClientImpl.java    |    72 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |   626 +-
 .../spi/discovery/tcp/TcpDiscoveryImpl.java     |    61 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |    28 +-
 .../tcp/internal/TcpDiscoveryStatistics.java    |     4 +
 .../TcpDiscoveryMulticastIpFinder.java          |    11 +-
 .../sharedfs/TcpDiscoverySharedFsIpFinder.java  |     2 +-
 .../messages/TcpDiscoveryAbstractMessage.java   |     7 +
 .../messages/TcpDiscoveryClientAckResponse.java |     5 +
 .../TcpDiscoveryClientHeartbeatMessage.java     |     7 +-
 .../TcpDiscoveryConnectionCheckMessage.java     |     5 +
 .../TcpDiscoveryCustomEventMessage.java         |     3 +-
 .../messages/TcpDiscoveryHeartbeatMessage.java  |     5 +
 .../TcpDiscoveryNodeAddFinishedMessage.java     |    11 +
 .../messages/TcpDiscoveryNodeAddedMessage.java  |    33 +-
 .../RoundRobinGlobalLoadBalancer.java           |    16 +-
 .../spi/swapspace/file/FileSwapSpaceSpi.java    |  1947 +++
 .../org/apache/ignite/stream/StreamAdapter.java |     4 +-
 .../ignite/stream/socket/SocketStreamer.java    |    19 +-
 .../ignite/thread/IgniteThreadFactory.java      |     8 +-
 .../resources/META-INF/classnames.properties    |    68 +-
 .../core/src/main/resources/ignite.properties   |     2 +-
 .../AbstractAffinityFunctionSelfTest.java       |     2 +-
 .../CacheJdbcPojoStoreAbstractSelfTest.java     |   161 +-
 ...heJdbcPojoStoreBinaryMarshallerSelfTest.java |    26 +-
 ...reBinaryMarshallerWithSqlEscapeSelfTest.java |    28 +
 ...dbcPojoStoreOptimizedMarshallerSelfTest.java |     2 +-
 ...ptimizedMarshallerWithSqlEscapeSelfTest.java |    28 +
 .../apache/ignite/igfs/IgfsPathSelfTest.java    |     6 -
 .../ignite/internal/ClusterGroupSelfTest.java   |     2 +-
 .../internal/GridEventStorageSelfTest.java      |    97 +-
 .../IgniteClientReconnectCacheTest.java         |    35 +
 ...RoundRobinErrorAfterClientReconnectTest.java |    99 +
 .../MarshallerContextLockingSelfTest.java       |     2 +-
 .../BinaryArrayIdentityResolverSelfTest.java    |   300 +
 .../BinaryFieldIdentityResolverSelfTest.java    |   333 +
 .../binary/BinaryFieldsOffheapSelfTest.java     |     2 +-
 .../BinaryFooterOffsetsOffheapSelfTest.java     |     2 +-
 ...ryIdentityResolverConfigurationSelfTest.java |   138 +
 .../binary/BinaryMarshallerSelfTest.java        |   434 +-
 .../BinaryObjectBuilderAdditionalSelfTest.java  |   171 +-
 ...naryObjectBuilderDefaultMappersSelfTest.java |     2 +-
 .../binary/BinaryObjectToStringSelfTest.java    |    92 +
 .../BinarySerialiedFieldComparatorSelfTest.java |   568 +
 ...GridManagerLocalMessageListenerSelfTest.java |   222 +
 .../managers/GridManagerStopSelfTest.java       |     2 +
 ...unicationBalanceMultipleConnectionsTest.java |    28 +
 .../IgniteCommunicationBalanceTest.java         |   339 +
 .../communication/IgniteIoTestMessagesTest.java |    95 +
 .../IgniteVariousConnectionNumberTest.java      |   166 +
 .../GridDiscoveryManagerAliveCacheSelfTest.java |     6 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |     6 +-
 .../CacheAtomicSingleMessageCountSelfTest.java  |   259 +
 ...CacheExchangeMessageDuplicatedStateTest.java |   393 +
 .../cache/CacheGetEntryAbstractTest.java        |     4 +-
 .../CacheSwapUnswapGetTestSmallQueueSize.java   |    35 +
 .../cache/CrossCacheTxRandomOperationsTest.java |    30 +-
 ...idAbstractCacheInterceptorRebalanceTest.java |   358 +
 .../cache/GridCacheAbstractFullApiSelfTest.java |    53 +-
 .../GridCacheAtomicMessageCountSelfTest.java    |    24 +-
 ...heInterceptorAtomicOffheapRebalanceTest.java |    30 +
 ...GridCacheInterceptorAtomicRebalanceTest.java |    36 +
 ...ceptorTransactionalOffheapRebalanceTest.java |    35 +
 ...heInterceptorTransactionalRebalanceTest.java |    36 +
 .../cache/GridCacheOffHeapCleanupTest.java      |   169 +
 ...CacheOffHeapMultiThreadedUpdateSelfTest.java |     6 +-
 .../GridCachePartitionedAffinitySpreadTest.java |     7 +-
 ...ridCacheStoreManagerDeserializationTest.java |     1 +
 .../cache/GridCacheSwapCleanupTest.java         |    99 +
 .../processors/cache/GridCacheTestEntryEx.java  |    11 +-
 .../GridCacheTtlManagerEvictionSelfTest.java    |   160 +
 .../GridCacheTtlManagerNotificationTest.java    |   107 +-
 .../cache/GridCacheUtilsSelfTest.java           |    64 +-
 ...calCacheStoreManagerDeserializationTest.java |     2 +-
 .../cache/GridLocalIgniteSerializationTest.java |   378 +
 .../IgniteCacheAtomicStopBusySelfTest.java      |    10 +-
 .../IgniteCacheConfigVariationsFullApiTest.java |     7 +-
 .../cache/IgniteCacheDynamicStopSelfTest.java   |    48 +-
 ...niteCacheExpireAndUpdateConsistencyTest.java |     7 +
 .../IgniteCacheInterceptorSelfTestSuite.java    |     5 +
 .../IgniteCacheP2pUnmarshallingErrorTest.java   |     2 +-
 .../cache/IgniteCachePeekModesAbstractTest.java |     2 +-
 .../cache/IgniteDynamicCacheStartSelfTest.java  |   217 +-
 .../MarshallerCacheJobRunNodeRestartTest.java   |     2 +-
 .../cache/OffheapCacheOnClientsTest.java        |   143 +
 .../cache/WithKeepBinaryCacheFullApiTest.java   |    10 +-
 .../GridCacheBinaryObjectsAbstractSelfTest.java |   297 +-
 .../GridCacheQueueApiSelfAbstractTest.java      |    66 +
 ...SemaphoreFailoverSafeReleasePermitsTest.java |   129 +
 ...CacheLoadingConcurrentGridStartSelfTest.java |   255 +-
 ...ncurrentGridStartSelfTestAllowOverwrite.java |    30 +
 ...eAtomicMessageRecovery10ConnectionsTest.java |    28 +
 ...cMessageRecoveryNoPairedConnectionsTest.java |    47 +
 ...niteCacheClientNodeChangingTopologyTest.java |    22 +-
 ...acheConnectionRecovery10ConnectionsTest.java |    35 +
 .../distributed/IgniteCacheCreatePutTest.java   |     2 +-
 .../distributed/IgniteCacheGetRestartTest.java  |     3 +
 .../distributed/dht/GridCacheDhtTestUtils.java  |   232 -
 .../dht/IgniteCacheMultiTxLockSelfTest.java     |     6 +-
 ...artitionedBackupNodeFailureRecoveryTest.java |   193 +
 .../IgniteCachePutRetryAbstractSelfTest.java    |    38 +-
 ...gniteCachePutRetryTransactionalSelfTest.java |    75 +-
 ...eAtomicInvalidPartitionHandlingSelfTest.java |     2 +-
 ...tomicClientOnlyMultiNodeFullApiSelfTest.java |    17 +-
 ...eAtomicNearOnlyMultiNodeFullApiSelfTest.java |    17 +-
 ...erNoStripedPoolMultiNodeFullApiSelfTest.java |    35 +
 ...edNoStripedPoolMultiNodeFullApiSelfTest.java |    35 +
 ...cingDelayedPartitionMapExchangeSelfTest.java |     8 +-
 .../GridCacheRebalancingSyncSelfTest.java       |    20 +-
 .../GridCacheSyncReplicatedPreloadSelfTest.java |     3 -
 .../IgniteCacheSyncRebalanceModeSelfTest.java   |     2 +-
 .../IgniteCacheExpiryPolicyAbstractTest.java    |    14 +-
 .../IgniteCacheExpiryPolicyTestSuite.java       |     2 +
 ...eCacheExpiryPolicyWithStoreAbstractTest.java |    40 +
 ...eCacheOnlyOneTtlCleanupThreadExistsTest.java |   102 +
 .../cache/query/IndexingSpiQuerySelfTest.java   |   218 +
 .../cache/query/IndexingSpiQueryTxSelfTest.java |   162 +
 ...eContinuousQueryAsyncFailoverTxSelfTest.java |     5 +
 ...ContinuousQueryFailoverAbstractSelfTest.java |   326 +-
 .../CacheContinuousQueryFailoverTxSelfTest.java |     5 +
 ...eEntryProcessorExternalizableFailedTest.java |   588 +
 ...eContinuousQueryMultiNodesFilteringTest.java |   161 +
 .../TxDeadlockDetectionNoHangsTest.java         |     2 +-
 .../TxOptimisticDeadlockDetectionTest.java      |    29 +-
 ...ComputeJobExecutionErrorToLogManualTest.java |    88 +
 .../IgniteNoCustomEventsOnNodeStart.java        |     7 +
 .../DataStreamProcessorSelfTest.java            |     4 +-
 .../datastreamer/DataStreamerImplSelfTest.java  |   170 +-
 .../DataStreamerMultiThreadedSelfTest.java      |     2 -
 .../datastreamer/DataStreamerTimeoutTest.java   |    92 +-
 .../igfs/IgfsAbstractBaseSelfTest.java          |    40 +-
 .../processors/igfs/IgfsAbstractSelfTest.java   |   215 +-
 .../IgfsAtomicPrimaryMultiNodeSelfTest.java     |    39 +
 .../IgfsAtomicPrimaryOffheapTieredSelfTest.java |    39 +
 .../IgfsAtomicPrimaryOffheapValuesSelfTest.java |    39 +
 .../igfs/IgfsAtomicPrimarySelfTest.java         |    39 +
 .../igfs/IgfsDataManagerSelfTest.java           |     6 +-
 .../igfs/IgfsDualAbstractSelfTest.java          |    70 +-
 .../processors/igfs/IgfsIgniteMock.java         |    19 +
 ...SecondaryFileSystemDualAbstractSelfTest.java |    92 +-
 ...lSecondaryFileSystemProxyClientSelfTest.java |    28 +
 ...fsLocalSecondaryFileSystemProxySelfTest.java |   267 +
 ...IgfsLocalSecondaryFileSystemTestAdapter.java |    27 +-
 .../processors/igfs/IgfsMaxSizeSelfTest.java    |   122 +
 .../igfs/IgfsMetaManagerSelfTest.java           |     4 +-
 .../processors/igfs/IgfsMetricsSelfTest.java    |    21 +-
 .../internal/processors/igfs/IgfsMock.java      |    15 +-
 .../igfs/IgfsModeResolverSelfTest.java          |     4 +-
 .../processors/igfs/IgfsProcessorSelfTest.java  |    11 +-
 .../igfs/IgfsProcessorValidationSelfTest.java   |    30 +
 .../processors/igfs/IgfsProxySelfTest.java      |    32 +
 ...IpcEndpointRegistrationAbstractSelfTest.java |    76 +-
 ...dpointRegistrationOnLinuxAndMacSelfTest.java |    11 +-
 .../processors/igfs/IgfsStreamsSelfTest.java    |     4 +-
 .../igfs/benchmark/IgfsBenchmark.java           |   561 +
 .../odbc/OdbcEscapeSequenceSelfTest.java        |   210 +-
 .../odbc/OdbcProcessorValidationSelfTest.java   |    37 +-
 .../handlers/log/GridLogCommandHandlerTest.java |     5 +-
 .../GridServiceProcessorProxySelfTest.java      |     2 +-
 ...artupWithSpecifiedWorkDirectorySelfTest.java |   166 -
 .../util/future/GridFutureAdapterSelfTest.java  |   123 +-
 .../ipc/shmem/IgfsSharedMemoryTestServer.java   |     4 +-
 .../IpcSharedMemoryCrashDetectionSelfTest.java  |     9 +-
 .../IpcSharedMemoryBenchmarkReader.java         |     2 +-
 .../nio/impl/GridNioFilterChainSelfTest.java    |    18 +-
 .../utils/GridBoundedPriorityQueueSelfTest.java |   114 +
 .../loadtests/hashmap/GridCacheTestContext.java |     2 +
 .../loadtests/nio/GridNioBenchmarkClient.java   |     4 +-
 .../ignite/logger/java/JavaLoggerTest.java      |     3 +-
 .../marshaller/MarshallerContextSelfTest.java   |    90 +
 .../marshaller/MarshallerContextTestImpl.java   |    28 +-
 .../OptimizedMarshallerNodeFailoverTest.java    |     4 -
 .../p2p/GridP2PRecursionTaskSelfTest.java       |     2 +-
 .../platform/PlatformCacheWriteMetricsTask.java |   463 +
 .../SecurityPermissionSetBuilderTest.java       |   110 +
 ...heckpointSpiMultipleDirectoriesSelfTest.java |     6 +-
 .../GridAbstractCommunicationSelfTest.java      |     2 -
 ...mmunicationSpiConcurrentConnectSelfTest.java |    47 +-
 ...nicationSpiConcurrentConnectSslSelfTest.java |    35 +
 ...cpCommunicationSpiMultithreadedSelfTest.java |    11 +-
 ...dTcpCommunicationSpiRecoveryAckSelfTest.java |     6 +-
 ...ationSpiRecoveryNoPairedConnectionsTest.java |    28 +
 ...GridTcpCommunicationSpiRecoverySelfTest.java |    22 +
 ...dTcpCommunicationSpiRecoverySslSelfTest.java |    35 +
 ...CommunicationSpiSslSmallBuffersSelfTest.java |    43 +
 .../tcp/IgniteCacheSslStartStopSelfTest.java    |     1 -
 ...CommunicationRecoveryAckClosureSelfTest.java |     6 +-
 .../tcp/TcpClientDiscoverySpiMulticastTest.java |     2 +-
 .../spi/discovery/tcp/TcpDiscoverySelfTest.java |   138 +-
 .../tcp/TcpDiscoverySnapshotHistoryTest.java    |    14 +-
 .../TcpDiscoveryMulticastIpFinderSelfTest.java  |     6 +-
 .../GridInternalTasksLoadBalancingSelfTest.java |   201 +
 .../testframework/GridSpiTestContext.java       |   115 +-
 .../ignite/testframework/GridTestUtils.java     |    39 +-
 .../ignite/testframework/IgniteTestSuite.java   |   316 +-
 .../testframework/junits/GridAbstractTest.java  |    55 +-
 .../junits/GridTestKernalContext.java           |     6 +-
 .../ignite/testframework/junits/IgniteMock.java |    25 +
 .../junits/IgniteTestResources.java             |     2 -
 .../junits/common/GridCommonAbstractTest.java   |    31 +-
 .../multijvm/IgniteCacheProcessProxy.java       |    16 +
 .../junits/multijvm/IgniteProcessProxy.java     |    15 +
 .../junits/spi/GridSpiAbstractTest.java         |     2 -
 .../ignite/testsuites/IgniteBasicTestSuite.java |     7 +
 .../testsuites/IgniteBinaryBasicTestSuite.java  |     2 -
 .../IgniteBinaryObjectsTestSuite.java           |    12 +
 .../IgniteCacheDataStructuresSelfTestSuite.java |     3 +
 .../IgniteCacheFullApiSelfTestSuite.java        |     6 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |    25 +
 .../testsuites/IgniteCacheTestSuite2.java       |     9 +
 .../testsuites/IgniteCacheTestSuite4.java       |     6 +
 .../testsuites/IgniteCacheTestSuite5.java       |     8 +-
 .../testsuites/IgniteComputeGridTestSuite.java  |     2 +
 .../ignite/testsuites/IgniteIgfsTestSuite.java  |    19 +
 .../apache/ignite/testsuites/IgniteIgnore.java  |     9 +-
 .../testsuites/IgniteIgnoredTestSuite.java      |    63 -
 .../testsuites/IgniteKernalSelfTestSuite.java   |     4 +-
 .../testsuites/IgniteLangSelfTestSuite.java     |     4 +-
 .../IgniteSpiCommunicationSelfTestSuite.java    |    13 +-
 .../IgniteSpiLoadBalancingSelfTestSuite.java    |    34 +-
 .../ignite/testsuites/IgniteSpiTestSuite.java   |     6 +-
 .../testsuites/IgniteUtilSelfTestSuite.java     |     2 +
 .../ignite/thread/IgniteThreadPoolSizeTest.java |   131 +
 .../apache/ignite/util/GridLogThrottleTest.java |    27 +-
 modules/docker/1.8.0/Dockerfile                 |    46 +
 modules/docker/1.8.0/run.sh                     |    51 +
 modules/docker/Dockerfile                       |     6 +-
 modules/extdata/p2p/pom.xml                     |     2 +-
 .../CacheNoValueClassOnServerTestClient.java    |     2 -
 .../CacheConfigurationP2PTestClient.java        |     2 -
 .../extdata/uri/modules/uri-dependency/pom.xml  |     2 +-
 modules/extdata/uri/pom.xml                     |     2 +-
 modules/flink/pom.xml                           |     2 +-
 .../apache/ignite/sink/flink/IgniteSink.java    |     2 +-
 modules/flume/README.txt                        |     2 +-
 modules/flume/pom.xml                           |     2 +-
 modules/gce/pom.xml                             |     2 +-
 modules/geospatial/pom.xml                      |     2 +-
 .../h2/GridBinaryH2IndexingGeoSelfTest.java     |    35 +
 .../query/h2/GridH2IndexingGeoSelfTest.java     |     2 +-
 .../testsuites/GeoSpatialIndexingTestSuite.java |     2 +
 modules/hadoop/pom.xml                          |    51 +-
 .../hadoop/fs/BasicHadoopFileSystemFactory.java |   132 +-
 .../fs/CachingHadoopFileSystemFactory.java      |    54 +-
 .../hadoop/fs/HadoopFileSystemFactory.java      |    11 +-
 .../fs/IgniteHadoopFileSystemCounterWriter.java |    79 +-
 .../fs/IgniteHadoopIgfsSecondaryFileSystem.java |   402 +-
 .../fs/KerberosHadoopFileSystemFactory.java     |    77 +-
 .../hadoop/fs/v1/IgniteHadoopFileSystem.java    |    47 +-
 .../hadoop/fs/v2/IgniteHadoopFileSystem.java    |    47 +-
 .../IgniteHadoopClientProtocolProvider.java     |    46 +-
 .../mapreduce/IgniteHadoopMapReducePlanner.java |    22 +-
 .../IgniteHadoopWeightedMapReducePlanner.java   |     4 +-
 .../ignite/hadoop/util/UserNameMapper.java      |     4 +-
 .../processors/hadoop/HadoopClassLoader.java    |   966 --
 .../processors/hadoop/HadoopClasspathMain.java  |    44 -
 .../processors/hadoop/HadoopClasspathUtils.java |   295 -
 .../processors/hadoop/HadoopCommonUtils.java    |   154 +
 .../processors/hadoop/HadoopContext.java        |     1 -
 .../processors/hadoop/HadoopDefaultJobInfo.java |   157 -
 .../processors/hadoop/HadoopExternalSplit.java  |    96 +
 .../processors/hadoop/HadoopHelperImpl.java     |   133 +
 .../processors/hadoop/HadoopLocations.java      |   123 -
 .../hadoop/HadoopMapReduceCounterGroup.java     |   123 -
 .../hadoop/HadoopMapReduceCounters.java         |   228 -
 .../processors/hadoop/HadoopMapperUtils.java    |    56 +
 .../processors/hadoop/HadoopProcessor.java      |    32 +-
 .../processors/hadoop/HadoopSplitWrapper.java   |   128 +
 .../internal/processors/hadoop/HadoopUtils.java |   436 -
 .../hadoop/counter/HadoopCounterAdapter.java    |     1 +
 .../counter/HadoopPerformanceCounter.java       |    12 +-
 .../hadoop/delegate/HadoopDelegateUtils.java    |   138 +
 .../HadoopFileSystemCounterWriterDelegate.java  |    36 +
 .../HadoopFileSystemFactoryDelegate.java        |    36 +
 .../HadoopIgfsSecondaryFileSystemDelegate.java  |    28 +
 .../hadoop/fs/HadoopFileSystemCacheUtils.java   |   242 -
 .../hadoop/fs/HadoopFileSystemsUtils.java       |    51 -
 .../hadoop/fs/HadoopLazyConcurrentMap.java      |   212 -
 .../hadoop/fs/HadoopLocalFileSystemV1.java      |    39 -
 .../hadoop/fs/HadoopLocalFileSystemV2.java      |    88 -
 .../processors/hadoop/fs/HadoopParameters.java  |    94 -
 .../hadoop/fs/HadoopRawLocalFileSystem.java     |   314 -
 .../processors/hadoop/igfs/HadoopIgfs.java      |   202 -
 .../igfs/HadoopIgfsCommunicationException.java  |    57 -
 .../processors/hadoop/igfs/HadoopIgfsEx.java    |    93 -
 .../hadoop/igfs/HadoopIgfsFuture.java           |    97 -
 .../hadoop/igfs/HadoopIgfsInProc.java           |   510 -
 .../hadoop/igfs/HadoopIgfsInputStream.java      |   629 -
 .../processors/hadoop/igfs/HadoopIgfsIo.java    |    76 -
 .../processors/hadoop/igfs/HadoopIgfsIpcIo.java |   624 -
 .../hadoop/igfs/HadoopIgfsIpcIoListener.java    |    36 -
 .../hadoop/igfs/HadoopIgfsJclLogger.java        |   116 -
 .../hadoop/igfs/HadoopIgfsOutProc.java          |   524 -
 .../hadoop/igfs/HadoopIgfsOutputStream.java     |   201 -
 .../hadoop/igfs/HadoopIgfsProperties.java       |    86 -
 .../hadoop/igfs/HadoopIgfsProxyInputStream.java |   337 -
 .../igfs/HadoopIgfsProxyOutputStream.java       |   165 -
 ...fsSecondaryFileSystemPositionedReadable.java |   105 -
 .../hadoop/igfs/HadoopIgfsStreamDelegate.java   |    96 -
 .../igfs/HadoopIgfsStreamEventListener.java     |    39 -
 .../processors/hadoop/igfs/HadoopIgfsUtils.java |   174 -
 .../hadoop/igfs/HadoopIgfsWrapper.java          |   552 -
 .../impl/HadoopMapReduceCounterGroup.java       |   124 +
 .../hadoop/impl/HadoopMapReduceCounters.java    |   229 +
 .../processors/hadoop/impl/HadoopUtils.java     |   331 +
 .../HadoopBasicFileSystemFactoryDelegate.java   |   178 +
 .../HadoopCachingFileSystemFactoryDelegate.java |    75 +
 .../HadoopDefaultFileSystemFactoryDelegate.java |    62 +
 ...doopFileSystemCounterWriterDelegateImpl.java |   108 +
 ...doopIgfsSecondaryFileSystemDelegateImpl.java |   470 +
 ...HadoopKerberosFileSystemFactoryDelegate.java |   117 +
 .../impl/fs/HadoopFileSystemCacheUtils.java     |   243 +
 .../hadoop/impl/fs/HadoopFileSystemsUtils.java  |    51 +
 .../hadoop/impl/fs/HadoopLazyConcurrentMap.java |   210 +
 .../hadoop/impl/fs/HadoopLocalFileSystemV1.java |    40 +
 .../hadoop/impl/fs/HadoopLocalFileSystemV2.java |    89 +
 .../hadoop/impl/fs/HadoopParameters.java        |    94 +
 .../impl/fs/HadoopRawLocalFileSystem.java       |   315 +
 .../processors/hadoop/impl/igfs/HadoopIgfs.java |   203 +
 .../igfs/HadoopIgfsCommunicationException.java  |    57 +
 .../hadoop/impl/igfs/HadoopIgfsEx.java          |    94 +
 .../hadoop/impl/igfs/HadoopIgfsFuture.java      |    97 +
 .../hadoop/impl/igfs/HadoopIgfsInProc.java      |   511 +
 .../hadoop/impl/igfs/HadoopIgfsInputStream.java |   630 +
 .../hadoop/impl/igfs/HadoopIgfsIo.java          |    76 +
 .../hadoop/impl/igfs/HadoopIgfsIpcIo.java       |   625 +
 .../impl/igfs/HadoopIgfsIpcIoListener.java      |    36 +
 .../hadoop/impl/igfs/HadoopIgfsJclLogger.java   |   116 +
 .../hadoop/impl/igfs/HadoopIgfsOutProc.java     |   525 +
 .../impl/igfs/HadoopIgfsOutputStream.java       |   202 +
 .../hadoop/impl/igfs/HadoopIgfsProperties.java  |    90 +
 .../impl/igfs/HadoopIgfsProxyInputStream.java   |   338 +
 .../impl/igfs/HadoopIgfsProxyOutputStream.java  |   166 +
 ...fsSecondaryFileSystemPositionedReadable.java |   106 +
 .../impl/igfs/HadoopIgfsStreamDelegate.java     |    96 +
 .../igfs/HadoopIgfsStreamEventListener.java     |    39 +
 .../hadoop/impl/igfs/HadoopIgfsUtils.java       |   175 +
 .../hadoop/impl/igfs/HadoopIgfsWrapper.java     |   554 +
 .../hadoop/impl/proto/HadoopClientProtocol.java |   354 +
 .../hadoop/impl/v1/HadoopV1CleanupTask.java     |    65 +
 .../hadoop/impl/v1/HadoopV1Counter.java         |   107 +
 .../hadoop/impl/v1/HadoopV1MapTask.java         |   122 +
 .../hadoop/impl/v1/HadoopV1OutputCollector.java |   138 +
 .../hadoop/impl/v1/HadoopV1Partitioner.java     |    44 +
 .../hadoop/impl/v1/HadoopV1ReduceTask.java      |   101 +
 .../hadoop/impl/v1/HadoopV1Reporter.java        |    81 +
 .../hadoop/impl/v1/HadoopV1SetupTask.java       |    57 +
 .../hadoop/impl/v1/HadoopV1Splitter.java        |   103 +
 .../processors/hadoop/impl/v1/HadoopV1Task.java |    98 +
 .../processors/hadoop/impl/v2/HadoopDaemon.java |   126 +
 .../impl/v2/HadoopSerializationWrapper.java     |   139 +
 .../impl/v2/HadoopShutdownHookManager.java      |    98 +
 .../hadoop/impl/v2/HadoopV2CleanupTask.java     |    73 +
 .../hadoop/impl/v2/HadoopV2Context.java         |   255 +
 .../hadoop/impl/v2/HadoopV2Counter.java         |    89 +
 .../processors/hadoop/impl/v2/HadoopV2Job.java  |   457 +
 .../impl/v2/HadoopV2JobResourceManager.java     |   324 +
 .../hadoop/impl/v2/HadoopV2MapTask.java         |   109 +
 .../hadoop/impl/v2/HadoopV2Partitioner.java     |    44 +
 .../hadoop/impl/v2/HadoopV2ReduceTask.java      |    91 +
 .../hadoop/impl/v2/HadoopV2SetupTask.java       |    66 +
 .../hadoop/impl/v2/HadoopV2Splitter.java        |   112 +
 .../processors/hadoop/impl/v2/HadoopV2Task.java |   186 +
 .../hadoop/impl/v2/HadoopV2TaskContext.java     |   563 +
 .../impl/v2/HadoopWritableSerialization.java    |    76 +
 .../hadoop/jobtracker/HadoopJobTracker.java     |    92 +-
 .../hadoop/message/HadoopMessage.java           |    27 -
 .../planner/HadoopDefaultMapReducePlan.java     |     7 +-
 .../hadoop/proto/HadoopClientProtocol.java      |   349 -
 .../hadoop/shuffle/HadoopShuffle.java           |   112 +-
 .../hadoop/shuffle/HadoopShuffleAck.java        |    92 -
 .../hadoop/shuffle/HadoopShuffleJob.java        |   748 +-
 .../hadoop/shuffle/HadoopShuffleLocalState.java |    67 +
 .../hadoop/shuffle/HadoopShuffleMessage.java    |   242 -
 .../shuffle/HadoopShuffleRemoteState.java       |    61 +
 .../shuffle/direct/HadoopDirectDataInput.java   |   166 +
 .../shuffle/direct/HadoopDirectDataOutput.java  |   221 +
 .../direct/HadoopDirectDataOutputContext.java   |   100 +
 .../direct/HadoopDirectDataOutputState.java     |    54 +
 .../shuffle/streams/HadoopDataOutStream.java    |     2 +-
 .../external/HadoopExternalTaskExecutor.java    |    13 +-
 .../child/HadoopChildProcessRunner.java         |    28 +-
 .../child/HadoopExternalProcessStarter.java     |    10 +-
 .../HadoopExternalCommunication.java            |    20 +-
 .../communication/HadoopIpcToNioAdapter.java    |     2 +-
 .../communication/HadoopMarshallerFilter.java   |    17 +-
 .../hadoop/v1/HadoopV1CleanupTask.java          |    64 -
 .../processors/hadoop/v1/HadoopV1Counter.java   |   106 -
 .../processors/hadoop/v1/HadoopV1MapTask.java   |   122 -
 .../hadoop/v1/HadoopV1OutputCollector.java      |   137 -
 .../hadoop/v1/HadoopV1Partitioner.java          |    44 -
 .../hadoop/v1/HadoopV1ReduceTask.java           |   101 -
 .../processors/hadoop/v1/HadoopV1Reporter.java  |    81 -
 .../processors/hadoop/v1/HadoopV1SetupTask.java |    56 -
 .../processors/hadoop/v1/HadoopV1Splitter.java  |   102 -
 .../processors/hadoop/v1/HadoopV1Task.java      |    97 -
 .../processors/hadoop/v2/HadoopDaemon.java      |   126 -
 .../hadoop/v2/HadoopExternalSplit.java          |    89 -
 .../hadoop/v2/HadoopSerializationWrapper.java   |   138 -
 .../hadoop/v2/HadoopShutdownHookManager.java    |    98 -
 .../hadoop/v2/HadoopSplitWrapper.java           |   119 -
 .../hadoop/v2/HadoopV2CleanupTask.java          |    72 -
 .../processors/hadoop/v2/HadoopV2Context.java   |   243 -
 .../processors/hadoop/v2/HadoopV2Counter.java   |    88 -
 .../processors/hadoop/v2/HadoopV2Job.java       |   443 -
 .../hadoop/v2/HadoopV2JobResourceManager.java   |   322 -
 .../processors/hadoop/v2/HadoopV2MapTask.java   |    99 -
 .../hadoop/v2/HadoopV2Partitioner.java          |    44 -
 .../hadoop/v2/HadoopV2ReduceTask.java           |    91 -
 .../processors/hadoop/v2/HadoopV2SetupTask.java |    65 -
 .../processors/hadoop/v2/HadoopV2Splitter.java  |   111 -
 .../processors/hadoop/v2/HadoopV2Task.java      |   185 -
 .../hadoop/v2/HadoopV2TaskContext.java          |   559 -
 .../hadoop/v2/HadoopWritableSerialization.java  |    75 -
 .../resources/META-INF/classnames.properties    |   114 +
 .../HadoopClientProtocolEmbeddedSelfTest.java   |    35 -
 .../hadoop/HadoopClientProtocolSelfTest.java    |   654 -
 .../hadoop/cache/HadoopTxConfigCacheTest.java   |    42 -
 ...KerberosHadoopFileSystemFactorySelfTest.java |   121 -
 .../util/BasicUserNameMapperSelfTest.java       |   133 -
 .../util/ChainedUserNameMapperSelfTest.java     |   107 -
 .../util/KerberosUserNameMapperSelfTest.java    |    99 -
 .../ignite/igfs/Hadoop1DualAbstractTest.java    |   158 -
 .../igfs/Hadoop1OverIgfsDualAsyncTest.java      |    30 -
 .../igfs/Hadoop1OverIgfsDualSyncTest.java       |    30 -
 .../igfs/HadoopFIleSystemFactorySelfTest.java   |   327 -
 .../HadoopIgfs20FileSystemAbstractSelfTest.java |  2040 ---
 ...Igfs20FileSystemLoopbackPrimarySelfTest.java |    74 -
 ...oopIgfs20FileSystemShmemPrimarySelfTest.java |    74 -
 .../igfs/HadoopIgfsDualAbstractSelfTest.java    |   321 -
 .../igfs/HadoopIgfsDualAsyncSelfTest.java       |    32 -
 .../ignite/igfs/HadoopIgfsDualSyncSelfTest.java |    32 -
 ...adoopIgfsSecondaryFileSystemTestAdapter.java |   149 -
 ...oopSecondaryFileSystemConfigurationTest.java |   575 -
 .../apache/ignite/igfs/IgfsEventsTestSuite.java |   285 -
 .../igfs/IgfsNearOnlyMultiNodeSelfTest.java     |   223 -
 .../IgniteHadoopFileSystemAbstractSelfTest.java |  2432 ---
 .../IgniteHadoopFileSystemClientSelfTest.java   |   212 -
 ...IgniteHadoopFileSystemHandshakeSelfTest.java |   389 -
 .../IgniteHadoopFileSystemIpcCacheSelfTest.java |   214 -
 .../IgniteHadoopFileSystemLoggerSelfTest.java   |   298 -
 ...niteHadoopFileSystemLoggerStateSelfTest.java |   329 -
 ...adoopFileSystemLoopbackAbstractSelfTest.java |    46 -
 ...SystemLoopbackEmbeddedDualAsyncSelfTest.java |    33 -
 ...eSystemLoopbackEmbeddedDualSyncSelfTest.java |    33 -
 ...leSystemLoopbackEmbeddedPrimarySelfTest.java |    33 -
 ...SystemLoopbackEmbeddedSecondarySelfTest.java |    34 -
 ...SystemLoopbackExternalDualAsyncSelfTest.java |    33 -
 ...eSystemLoopbackExternalDualSyncSelfTest.java |    33 -
 ...leSystemLoopbackExternalPrimarySelfTest.java |    33 -
 ...SystemLoopbackExternalSecondarySelfTest.java |    34 -
 ...condaryFileSystemInitializationSelfTest.java |   214 -
 ...teHadoopFileSystemShmemAbstractSelfTest.java |    91 -
 ...ileSystemShmemEmbeddedDualAsyncSelfTest.java |    33 -
 ...FileSystemShmemEmbeddedDualSyncSelfTest.java |    33 -
 ...pFileSystemShmemEmbeddedPrimarySelfTest.java |    33 -
 ...ileSystemShmemEmbeddedSecondarySelfTest.java |    33 -
 ...ileSystemShmemExternalDualAsyncSelfTest.java |    33 -
 ...FileSystemShmemExternalDualSyncSelfTest.java |    33 -
 ...pFileSystemShmemExternalPrimarySelfTest.java |    33 -
 ...ileSystemShmemExternalSecondarySelfTest.java |    33 -
 .../hadoop/HadoopAbstractMapReduceTest.java     |   429 -
 .../hadoop/HadoopAbstractSelfTest.java          |   239 -
 .../hadoop/HadoopAbstractWordCountTest.java     |   175 -
 .../hadoop/HadoopClassLoaderTest.java           |   110 -
 .../hadoop/HadoopCommandLineTest.java           |   474 -
 .../HadoopDefaultMapReducePlannerSelfTest.java  |   615 -
 .../processors/hadoop/HadoopErrorSimulator.java |   326 -
 .../hadoop/HadoopFileSystemsTest.java           |   155 -
 .../processors/hadoop/HadoopGroupingTest.java   |   307 -
 .../hadoop/HadoopJobTrackerSelfTest.java        |   345 -
 .../hadoop/HadoopMapReduceEmbeddedSelfTest.java |   253 -
 .../HadoopMapReduceErrorResilienceTest.java     |   154 -
 .../processors/hadoop/HadoopMapReduceTest.java  |    66 -
 .../hadoop/HadoopNoHadoopMapReduceTest.java     |    47 -
 .../processors/hadoop/HadoopPlannerMockJob.java |   168 -
 .../hadoop/HadoopPopularWordsTest.java          |   298 -
 .../HadoopSerializationWrapperSelfTest.java     |    79 -
 .../processors/hadoop/HadoopSharedMap.java      |     1 +
 .../hadoop/HadoopSnappyFullMapReduceTest.java   |    36 -
 .../processors/hadoop/HadoopSnappyTest.java     |   102 -
 .../hadoop/HadoopSortingExternalTest.java       |    46 -
 .../processors/hadoop/HadoopSortingTest.java    |   303 -
 .../hadoop/HadoopSplitWrapperSelfTest.java      |    72 -
 .../processors/hadoop/HadoopStartup.java        |    54 -
 .../hadoop/HadoopTaskExecutionSelfTest.java     |   567 -
 .../hadoop/HadoopTasksAllVersionsTest.java      |   260 -
 .../processors/hadoop/HadoopTasksV1Test.java    |    58 -
 .../processors/hadoop/HadoopTasksV2Test.java    |    77 -
 .../hadoop/HadoopTestClassLoader.java           |   106 +
 .../hadoop/HadoopTestRoundRobinMrPlanner.java   |    71 -
 .../hadoop/HadoopTestTaskContext.java           |   228 -
 .../processors/hadoop/HadoopTestUtils.java      |   107 -
 .../processors/hadoop/HadoopV2JobSelfTest.java  |   100 -
 .../hadoop/HadoopValidationSelfTest.java        |    53 -
 .../HadoopWeightedMapReducePlannerTest.java     |   599 -
 .../HadoopWeightedPlannerMapReduceTest.java     |    38 -
 .../hadoop/books/alice-in-wonderland.txt        |  3735 -----
 .../processors/hadoop/books/art-of-war.txt      |  6982 ---------
 .../hadoop/books/huckleberry-finn.txt           | 11733 ---------------
 .../processors/hadoop/books/sherlock-holmes.txt | 13052 -----------------
 .../processors/hadoop/books/tom-sawyer.txt      |  8858 -----------
 .../hadoop/deps/CircularWIthHadoop.java         |    32 -
 .../hadoop/deps/CircularWithoutHadoop.java      |    27 -
 .../processors/hadoop/deps/WithCast.java        |    41 -
 .../hadoop/deps/WithClassAnnotation.java        |    28 -
 .../hadoop/deps/WithConstructorInvocation.java  |    31 -
 .../processors/hadoop/deps/WithExtends.java     |    27 -
 .../processors/hadoop/deps/WithField.java       |    29 -
 .../processors/hadoop/deps/WithImplements.java  |    36 -
 .../hadoop/deps/WithIndirectField.java          |    27 -
 .../processors/hadoop/deps/WithInitializer.java |    33 -
 .../processors/hadoop/deps/WithInnerClass.java  |    31 -
 .../hadoop/deps/WithLocalVariable.java          |    38 -
 .../hadoop/deps/WithMethodAnnotation.java       |    32 -
 .../hadoop/deps/WithMethodArgument.java         |    31 -
 .../hadoop/deps/WithMethodCheckedException.java |    31 -
 .../hadoop/deps/WithMethodInvocation.java       |    31 -
 .../hadoop/deps/WithMethodReturnType.java       |    31 -
 .../hadoop/deps/WithMethodRuntimeException.java |    31 -
 .../processors/hadoop/deps/WithOuterClass.java  |    38 -
 .../hadoop/deps/WithParameterAnnotation.java    |    31 -
 .../processors/hadoop/deps/WithStaticField.java |    29 -
 .../hadoop/deps/WithStaticInitializer.java      |    34 -
 .../processors/hadoop/deps/Without.java         |    25 -
 .../hadoop/examples/HadoopWordCount1.java       |    94 -
 .../hadoop/examples/HadoopWordCount1Map.java    |    79 -
 .../hadoop/examples/HadoopWordCount1Reduce.java |    61 -
 .../hadoop/examples/HadoopWordCount2.java       |   111 -
 .../examples/HadoopWordCount2Combiner.java      |    45 -
 .../hadoop/examples/HadoopWordCount2Mapper.java |    88 -
 .../examples/HadoopWordCount2Reducer.java       |   113 -
 .../impl/HadoopAbstractMapReduceTest.java       |   430 +
 .../hadoop/impl/HadoopAbstractSelfTest.java     |   239 +
 .../impl/HadoopAbstractWordCountTest.java       |   175 +
 .../hadoop/impl/HadoopCommandLineTest.java      |   476 +
 .../HadoopDefaultMapReducePlannerSelfTest.java  |   619 +
 .../hadoop/impl/HadoopErrorSimulator.java       |   326 +
 .../hadoop/impl/HadoopFileSystemsTest.java      |   155 +
 .../hadoop/impl/HadoopGroupingTest.java         |   302 +
 .../hadoop/impl/HadoopJobTrackerSelfTest.java   |   334 +
 .../impl/HadoopMapReduceEmbeddedSelfTest.java   |   269 +
 .../HadoopMapReduceErrorResilienceTest.java     |   154 +
 .../hadoop/impl/HadoopMapReduceTest.java        |    66 +
 .../impl/HadoopNoHadoopMapReduceTest.java       |    47 +
 .../hadoop/impl/HadoopPlannerMockJob.java       |   182 +
 .../hadoop/impl/HadoopPopularWordsTest.java     |   298 +
 .../HadoopSerializationWrapperSelfTest.java     |    80 +
 .../impl/HadoopSnappyFullMapReduceTest.java     |    36 +
 .../hadoop/impl/HadoopSnappyTest.java           |   104 +
 .../hadoop/impl/HadoopSortingExternalTest.java  |    46 +
 .../hadoop/impl/HadoopSortingTest.java          |   304 +
 .../hadoop/impl/HadoopSplitWrapperSelfTest.java |    72 +
 .../processors/hadoop/impl/HadoopStartup.java   |    54 +
 .../impl/HadoopTaskExecutionSelfTest.java       |   550 +
 .../hadoop/impl/HadoopTasksAllVersionsTest.java |   264 +
 .../hadoop/impl/HadoopTasksV1Test.java          |    62 +
 .../hadoop/impl/HadoopTasksV2Test.java          |    81 +
 .../impl/HadoopTestRoundRobinMrPlanner.java     |    75 +
 .../hadoop/impl/HadoopTestTaskContext.java      |   233 +
 .../processors/hadoop/impl/HadoopTestUtils.java |   178 +
 .../hadoop/impl/HadoopTxConfigCacheTest.java    |    42 +
 .../hadoop/impl/HadoopUserLibsSelfTest.java     |   261 +
 .../hadoop/impl/HadoopV2JobSelfTest.java        |   108 +
 .../hadoop/impl/HadoopValidationSelfTest.java   |    53 +
 .../HadoopWeightedMapReducePlannerTest.java     |   602 +
 .../HadoopWeightedPlannerMapReduceTest.java     |    38 +
 .../hadoop/impl/books/alice-in-wonderland.txt   |  3735 +++++
 .../processors/hadoop/impl/books/art-of-war.txt |  6982 +++++++++
 .../hadoop/impl/books/huckleberry-finn.txt      | 11733 +++++++++++++++
 .../hadoop/impl/books/sherlock-holmes.txt       | 13052 +++++++++++++++++
 .../processors/hadoop/impl/books/tom-sawyer.txt |  8858 +++++++++++
 .../HadoopClientProtocolEmbeddedSelfTest.java   |    35 +
 ...opClientProtocolMultipleServersSelfTest.java |   340 +
 .../client/HadoopClientProtocolSelfTest.java    |   654 +
 .../hadoop/impl/examples/HadoopWordCount1.java  |    94 +
 .../impl/examples/HadoopWordCount1Map.java      |    79 +
 .../impl/examples/HadoopWordCount1Reduce.java   |    61 +
 .../hadoop/impl/examples/HadoopWordCount2.java  |   111 +
 .../impl/examples/HadoopWordCount2Combiner.java |    45 +
 .../impl/examples/HadoopWordCount2Mapper.java   |    88 +
 .../impl/examples/HadoopWordCount2Reducer.java  |   113 +
 ...KerberosHadoopFileSystemFactorySelfTest.java |   127 +
 .../impl/igfs/Hadoop1DualAbstractTest.java      |   163 +
 .../impl/igfs/Hadoop1OverIgfsDualAsyncTest.java |    32 +
 .../impl/igfs/Hadoop1OverIgfsDualSyncTest.java  |    32 +
 .../igfs/HadoopFIleSystemFactorySelfTest.java   |   345 +
 .../HadoopIgfs20FileSystemAbstractSelfTest.java |  2047 +++
 ...Igfs20FileSystemLoopbackPrimarySelfTest.java |    77 +
 ...oopIgfs20FileSystemShmemPrimarySelfTest.java |    77 +
 .../igfs/HadoopIgfsDualAbstractSelfTest.java    |   328 +
 .../impl/igfs/HadoopIgfsDualAsyncSelfTest.java  |    32 +
 .../impl/igfs/HadoopIgfsDualSyncSelfTest.java   |    32 +
 ...adoopIgfsSecondaryFileSystemTestAdapter.java |   152 +
 ...oopSecondaryFileSystemConfigurationTest.java |   595 +
 .../hadoop/impl/igfs/IgfsEventsTestSuite.java   |   289 +
 .../igfs/IgfsNearOnlyMultiNodeSelfTest.java     |   226 +
 .../IgniteHadoopFileSystemAbstractSelfTest.java |  2435 +++
 .../IgniteHadoopFileSystemClientSelfTest.java   |   216 +
 ...IgniteHadoopFileSystemHandshakeSelfTest.java |   393 +
 .../IgniteHadoopFileSystemIpcCacheSelfTest.java |   215 +
 .../IgniteHadoopFileSystemLoggerSelfTest.java   |   299 +
 ...niteHadoopFileSystemLoggerStateSelfTest.java |   332 +
 ...adoopFileSystemLoopbackAbstractSelfTest.java |    50 +
 ...SystemLoopbackEmbeddedDualAsyncSelfTest.java |    33 +
 ...eSystemLoopbackEmbeddedDualSyncSelfTest.java |    33 +
 ...leSystemLoopbackEmbeddedPrimarySelfTest.java |    33 +
 ...SystemLoopbackEmbeddedSecondarySelfTest.java |    34 +
 ...SystemLoopbackExternalDualAsyncSelfTest.java |    33 +
 ...eSystemLoopbackExternalDualSyncSelfTest.java |    33 +
 ...leSystemLoopbackExternalPrimarySelfTest.java |    33 +
 ...SystemLoopbackExternalSecondarySelfTest.java |    34 +
 ...condaryFileSystemInitializationSelfTest.java |   217 +
 ...teHadoopFileSystemShmemAbstractSelfTest.java |    94 +
 ...ileSystemShmemEmbeddedDualAsyncSelfTest.java |    33 +
 ...FileSystemShmemEmbeddedDualSyncSelfTest.java |    33 +
 ...pFileSystemShmemEmbeddedPrimarySelfTest.java |    33 +
 ...ileSystemShmemEmbeddedSecondarySelfTest.java |    33 +
 ...ileSystemShmemExternalDualAsyncSelfTest.java |    33 +
 ...FileSystemShmemExternalDualSyncSelfTest.java |    33 +
 ...pFileSystemShmemExternalPrimarySelfTest.java |    33 +
 ...ileSystemShmemExternalSecondarySelfTest.java |    33 +
 .../collections/HadoopAbstractMapTest.java      |   175 +
 .../HadoopConcurrentHashMultimapSelftest.java   |   280 +
 .../collections/HadoopHashMapSelfTest.java      |   133 +
 .../collections/HadoopSkipListSelfTest.java     |   320 +
 .../streams/HadoopDataStreamSelfTest.java       |   153 +
 .../taskexecutor/HadoopExecutorServiceTest.java |   119 +
 .../HadoopExternalTaskExecutionSelfTest.java    |   232 +
 .../HadoopExternalCommunicationSelfTest.java    |   222 +
 .../impl/util/BasicUserNameMapperSelfTest.java  |   134 +
 .../util/ChainedUserNameMapperSelfTest.java     |   111 +
 .../util/KerberosUserNameMapperSelfTest.java    |   100 +
 .../collections/HadoopAbstractMapTest.java      |   174 -
 .../HadoopConcurrentHashMultimapSelftest.java   |   278 -
 .../collections/HadoopHashMapSelfTest.java      |   131 -
 .../collections/HadoopSkipListSelfTest.java     |   318 -
 .../streams/HadoopDataStreamSelfTest.java       |   150 -
 .../hadoop/state/HadoopGroupingTestState.java   |    40 +
 .../state/HadoopJobTrackerSelfTestState.java    |    45 +
 .../HadoopMapReduceEmbeddedSelfTestState.java   |    32 +
 .../HadoopTaskExecutionSelfTestValues.java      |    51 +
 .../taskexecutor/HadoopExecutorServiceTest.java |   118 -
 .../HadoopExternalTaskExecutionSelfTest.java    |   232 -
 .../HadoopExternalCommunicationSelfTest.java    |   220 -
 .../testsuites/IgniteHadoopTestSuite.java       |   117 +-
 .../IgniteIgfsLinuxAndMacOSTestSuite.java       |    25 +-
 modules/hibernate/pom.xml                       |     2 +-
 .../hibernate/CacheHibernateBlobStore.java      |     4 +-
 modules/ignored-tests/README.txt                |     4 +
 modules/ignored-tests/pom.xml                   |   241 +
 ...gniteIgnoredBinarySimpleMapperTestSuite.java |    41 +
 .../IgniteIgnoredBinaryTestSuite.java           |    42 +
 .../testsuites/IgniteIgnoredTestSuite.java      |    61 +
 .../apache/ignite/testsuites/package-info.java  |    22 +
 modules/indexing/pom.xml                        |     2 +-
 .../cache/query/GridCacheTwoStepQuery.java      |   253 +
 .../query/h2/DmlStatementsProcessor.java        |  1083 ++
 .../query/h2/GridH2ResultSetIterator.java       |     3 +-
 .../processors/query/h2/IgniteH2Indexing.java   |   294 +-
 .../query/h2/dml/FastUpdateArgument.java        |    27 +
 .../query/h2/dml/FastUpdateArguments.java       |    53 +
 .../query/h2/dml/KeyValueSupplier.java          |    30 +
 .../processors/query/h2/dml/UpdateMode.java     |    36 +
 .../processors/query/h2/dml/UpdatePlan.java     |   128 +
 .../query/h2/dml/UpdatePlanBuilder.java         |   486 +
 .../processors/query/h2/dml/package-info.java   |    22 +
 .../query/h2/opt/GridH2RowDescriptor.java       |    23 +
 .../query/h2/opt/GridH2TreeIndex.java           |     2 +-
 .../query/h2/opt/GridH2ValueCacheObject.java    |     1 -
 .../processors/query/h2/sql/DmlAstUtils.java    |   616 +
 .../processors/query/h2/sql/GridSqlArray.java   |     8 +
 .../processors/query/h2/sql/GridSqlConst.java   |     6 +
 .../processors/query/h2/sql/GridSqlDelete.java  |    68 +
 .../query/h2/sql/GridSqlFunction.java           |     5 +-
 .../processors/query/h2/sql/GridSqlInsert.java  |   149 +
 .../processors/query/h2/sql/GridSqlKeyword.java |    46 +
 .../processors/query/h2/sql/GridSqlMerge.java   |   143 +
 .../processors/query/h2/sql/GridSqlQuery.java   |    44 +-
 .../query/h2/sql/GridSqlQueryParser.java        |   323 +-
 .../query/h2/sql/GridSqlQuerySplitter.java      |   149 +-
 .../processors/query/h2/sql/GridSqlSelect.java  |     3 +-
 .../query/h2/sql/GridSqlStatement.java          |    64 +
 .../processors/query/h2/sql/GridSqlUpdate.java  |   105 +
 .../query/h2/twostep/GridMapQueryExecutor.java  |    66 +-
 .../query/h2/twostep/GridMergeIndex.java        |    61 +-
 .../h2/twostep/GridReduceQueryExecutor.java     |   212 +-
 .../h2/twostep/msg/GridH2QueryRequest.java      |    42 +-
 ...CacheAbstractQueryDetailMetricsSelfTest.java |   572 +
 .../CacheAbstractQueryMetricsSelfTest.java      |   307 +-
 .../cache/CacheConfigurationP2PTestServer.java  |     2 -
 .../CacheLocalQueryDetailMetricsSelfTest.java   |    33 +
 ...edQueryDetailMetricsDistributedSelfTest.java |    33 +
 ...titionedQueryDetailMetricsLocalSelfTest.java |    33 +
 ...edQueryDetailMetricsDistributedSelfTest.java |    33 +
 ...plicatedQueryDetailMetricsLocalSelfTest.java |    33 +
 ...niteCacheAbstractInsertSqlQuerySelfTest.java |   559 +
 .../IgniteCacheAbstractSqlDmlQuerySelfTest.java |   243 +
 .../IgniteCacheDeleteSqlQuerySelfTest.java      |   106 +
 .../IgniteCacheInsertSqlQuerySelfTest.java      |   203 +
 .../cache/IgniteCacheMergeSqlQuerySelfTest.java |   153 +
 .../cache/IgniteCacheOffheapEvictQueryTest.java |     9 +-
 .../IgniteCacheQueryMultiThreadedSelfTest.java  |    59 +
 .../IgniteCacheUpdateSqlQuerySelfTest.java      |   472 +
 .../IgniteCacheAtomicFieldsQuerySelfTest.java   |    21 -
 ...lientQueryReplicatedNodeRestartSelfTest.java |     7 +
 ...niteCacheDistributedQueryCancelSelfTest.java |   176 +
 ...butedQueryStopOnCancelOrTimeoutSelfTest.java |   262 +
 ...cheQueryAbstractDistributedJoinSelfTest.java |   290 +
 ...QueryNodeRestartDistributedJoinSelfTest.java |   262 +-
 .../IgniteCacheQueryNodeRestartSelfTest2.java   |   125 +-
 ...nCancelOrTimeoutDistributedJoinSelfTest.java |   140 +
 ...gniteCacheReplicatedFieldsQuerySelfTest.java |    13 +-
 .../IgniteCacheReplicatedQuerySelfTest.java     |     6 +-
 ...eCacheLocalQueryCancelOrTimeoutSelfTest.java |   158 +
 .../query/IgniteSqlSplitterSelfTest.java        |   330 +
 .../h2/GridIndexingSpiAbstractSelfTest.java     |    50 +-
 .../query/h2/sql/BaseH2CompareQueryTest.java    |     3 +-
 .../query/h2/sql/GridQueryParsingTest.java      |   120 +-
 ...narySimpleNameMapperCacheQueryTestSuite.java |     2 -
 .../IgniteCacheQuerySelfTestSuite.java          |    23 +-
 .../IgniteCacheQuerySelfTestSuite2.java         |    25 +-
 modules/jcl/pom.xml                             |     2 +-
 modules/jms11/pom.xml                           |     2 +-
 .../stream/jms11/IgniteJmsStreamerTest.java     |   206 +-
 .../jms11/IgniteJmsStreamerTestSuite.java       |     2 +-
 modules/jta/pom.xml                             |     2 +-
 ...titionedCacheJtaLookupClassNameSelfTest.java |     4 +-
 .../ignite/testsuites/IgniteJtaTestSuite.java   |     3 +-
 modules/kafka/README.txt                        |     4 +
 modules/kafka/pom.xml                           |     2 +-
 .../ignite/stream/kafka/KafkaStreamer.java      |    50 +-
 .../kafka/connect/IgniteSinkConnector.java      |     9 +
 .../kafka/connect/IgniteSinkConstants.java      |     3 +
 .../stream/kafka/connect/IgniteSinkTask.java    |    47 +-
 .../kafka/connect/IgniteSourceConnector.java    |     9 +
 .../serialization/CacheEventDeserializer.java   |     3 +-
 .../serialization/CacheEventSerializer.java     |     3 +-
 .../kafka/KafkaIgniteStreamerSelfTest.java      |    36 +-
 .../kafka/connect/IgniteSinkConnectorMock.java  |    30 +
 .../kafka/connect/IgniteSinkConnectorTest.java  |    99 +-
 .../kafka/connect/IgniteSinkTaskMock.java       |    29 +
 .../connect/IgniteSourceConnectorTest.java      |    14 +-
 modules/log4j/pom.xml                           |     2 +-
 modules/log4j2/pom.xml                          |     2 +-
 modules/mesos/pom.xml                           |     2 +-
 modules/mqtt/pom.xml                            |     2 +-
 modules/osgi-karaf/pom.xml                      |     2 +-
 .../osgi-karaf/src/main/resources/features.xml  |    12 +-
 modules/osgi-paxlogging/pom.xml                 |     2 +-
 modules/osgi/pom.xml                            |     2 +-
 modules/platforms/cpp/DEVNOTES.txt              |    23 +-
 modules/platforms/cpp/README.txt                |    10 +-
 modules/platforms/cpp/binary/Makefile.am        |     4 +-
 .../ignite/impl/binary/binary_reader_impl.h     |     2 +-
 .../ignite/impl/binary/binary_type_manager.h    |    14 +-
 .../cpp/binary/project/vs/binary.vcxproj        |     2 -
 .../src/impl/binary/binary_reader_impl.cpp      |     3 +-
 modules/platforms/cpp/common/Makefile.am        |     4 +-
 .../common/include/ignite/common/concurrent.h   |    10 +-
 .../cpp/common/include/ignite/ignite_error.h    |    15 +-
 .../cpp/common/project/vs/common.vcxproj        |     1 -
 .../platforms/cpp/common/src/ignite_error.cpp   |     6 +-
 modules/platforms/cpp/configure.ac              |     2 +-
 modules/platforms/cpp/configure.acrel           |     2 +-
 modules/platforms/cpp/core-test/Makefile.am     |    10 +-
 .../cpp/core-test/config/cache-query.xml        |     4 +-
 .../cpp/core-test/src/cache_query_test.cpp      |   300 +-
 .../cpp/core-test/src/decimal_test.cpp          |     2 +-
 .../cpp/core-test/src/interop_memory_test.cpp   |     5 +-
 modules/platforms/cpp/core/Makefile.am          |     5 +-
 modules/platforms/cpp/core/include/Makefile.am  |     1 +
 .../cpp/core/include/ignite/cache/cache.h       |    15 +-
 .../include/ignite/cache/query/query_cursor.h   |     6 +-
 .../ignite/cache/query/query_fields_cursor.h    |     4 +-
 .../impl/binary/binary_type_updater_impl.h      |    12 +-
 .../core/include/ignite/impl/cache/cache_impl.h |    41 +-
 .../ignite/impl/cache/query/query_batch.h       |   148 +
 .../impl/cache/query/query_fields_row_impl.h    |    30 +-
 .../ignite/impl/cache/query/query_impl.h        |    30 +-
 .../include/ignite/impl/ignite_environment.h    |    49 +-
 .../ignite/impl/interop/interop_target.h        |    18 +
 .../platforms/cpp/core/project/vs/core.vcxproj  |     4 +-
 .../cpp/core/project/vs/core.vcxproj.filters    |     6 +
 modules/platforms/cpp/core/src/ignition.cpp     |     8 +-
 .../impl/binary/binary_type_updater_impl.cpp    |    13 +-
 .../cpp/core/src/impl/cache/cache_impl.cpp      |    48 +-
 .../core/src/impl/cache/query/query_batch.cpp   |    52 +
 .../core/src/impl/cache/query/query_impl.cpp    |   193 +-
 .../cpp/core/src/impl/ignite_environment.cpp    |    45 +-
 .../core/src/impl/interop/interop_target.cpp    |    29 +-
 .../src/impl/transactions/transactions_impl.cpp |   135 +-
 modules/platforms/cpp/examples/README.txt       |     9 +-
 modules/platforms/cpp/examples/configure.ac     |    44 +-
 .../cpp/examples/odbc-example/Makefile.am       |     4 +-
 .../odbc-example/config/example-odbc.xml        |    38 +-
 .../project/vs/odbc-example.vcxproj             |     7 +-
 .../project/vs/odbc-example.vcxproj.filters     |     8 +
 .../examples/odbc-example/src/odbc_example.cpp  |   514 +-
 .../cpp/examples/putget-example/Makefile.am     |     4 +-
 .../putget-example/src/putget_example.cpp       |     2 +-
 .../cpp/examples/query-example/Makefile.am      |     4 +-
 .../query-example/src/query_example.cpp         |    58 +-
 modules/platforms/cpp/ignite/Makefile.am        |     4 +-
 .../cpp/ignite/project/vs/ignite.vcxproj        |     4 +-
 modules/platforms/cpp/jni/Makefile.am           |     4 +-
 .../cpp/jni/include/ignite/jni/exports.h        |   112 +-
 .../platforms/cpp/jni/include/ignite/jni/java.h |   242 +-
 .../cpp/jni/include/ignite/jni/utils.h          |    91 +-
 .../platforms/cpp/jni/project/vs/jni.vcxproj    |     1 -
 modules/platforms/cpp/jni/project/vs/module.def |    96 +-
 modules/platforms/cpp/jni/src/exports.cpp       |   375 +-
 modules/platforms/cpp/jni/src/java.cpp          |  1485 +-
 modules/platforms/cpp/odbc-test/Makefile.am     |     7 +-
 .../odbc-test/config/queries-test-noodbc.xml    |     4 +
 .../cpp/odbc-test/config/queries-test.xml       |     4 +
 .../odbc-test/include/sql_test_suite_fixture.h  |     6 +
 .../platforms/cpp/odbc-test/include/test_type.h |    42 +-
 .../cpp/odbc-test/include/test_utils.h          |     8 +
 .../cpp/odbc-test/project/vs/odbc-test.vcxproj  |     3 +
 .../project/vs/odbc-test.vcxproj.filters        |     9 +
 .../cpp/odbc-test/src/api_robustness_test.cpp   |  1114 ++
 .../src/application_data_buffer_test.cpp        |   129 +-
 .../platforms/cpp/odbc-test/src/column_test.cpp |    10 +-
 .../cpp/odbc-test/src/configuration_test.cpp    |    14 +-
 .../cpp/odbc-test/src/queries_test.cpp          |   631 +-
 .../platforms/cpp/odbc-test/src/row_test.cpp    |     4 +-
 .../src/sql_date_time_functions_test.cpp        |   213 +
 .../cpp/odbc-test/src/sql_outer_join_test.cpp   |   498 +
 .../odbc-test/src/sql_string_functions_test.cpp |    63 +
 .../odbc-test/src/sql_test_suite_fixture.cpp    |    25 +-
 modules/platforms/cpp/odbc/Makefile.am          |     7 +-
 modules/platforms/cpp/odbc/README.txt           |    23 +-
 .../platforms/cpp/odbc/include/ignite/odbc.h    |    28 +-
 .../ignite/odbc/app/application_data_buffer.h   |    58 +-
 .../odbc/include/ignite/odbc/app/parameter.h    |    29 +-
 .../cpp/odbc/include/ignite/odbc/common_types.h |    29 +-
 .../include/ignite/odbc/config/configuration.h  |    59 +-
 .../ignite/odbc/diagnostic/diagnosable.h        |     7 +
 .../odbc/diagnostic/diagnosable_adapter.h       |    10 +
 .../ignite/odbc/diagnostic/diagnostic_record.h  |    19 +
 .../odbc/diagnostic/diagnostic_record_storage.h |    16 +
 .../cpp/odbc/include/ignite/odbc/message.h      |   138 +-
 .../odbc/include/ignite/odbc/query/data_query.h |    12 +-
 .../cpp/odbc/include/ignite/odbc/query/query.h  |    44 +-
 .../cpp/odbc/include/ignite/odbc/result_page.h  |     3 -
 .../cpp/odbc/include/ignite/odbc/statement.h    |   183 +-
 .../odbc/system/ui/dsn_configuration_window.h   |     8 +
 .../cpp/odbc/include/ignite/odbc/type_traits.h  |     2 +-
 .../cpp/odbc/include/ignite/odbc/utility.h      |    11 +-
 .../cpp/odbc/install/ignite-odbc-amd64.wxs      |   114 +
 .../cpp/odbc/install/ignite-odbc-install.ini    |     1 +
 .../cpp/odbc/install/ignite-odbc-x86.wxs        |   114 +
 .../cpp/odbc/install/install_amd64.cmd          |    22 +-
 .../platforms/cpp/odbc/install/install_x86.cmd  |    11 +-
 .../odbc/os/win/src/system/socket_client.cpp    |     4 +-
 .../src/system/ui/dsn_configuration_window.cpp  |    23 +-
 .../cpp/odbc/os/win/src/system/ui/window.cpp    |     2 +-
 .../platforms/cpp/odbc/project/vs/module.def    |     1 -
 .../platforms/cpp/odbc/project/vs/odbc.vcxproj  |     6 +-
 .../odbc/src/app/application_data_buffer.cpp    |   382 +-
 .../platforms/cpp/odbc/src/app/parameter.cpp    |   129 +-
 modules/platforms/cpp/odbc/src/column.cpp       |    14 +-
 modules/platforms/cpp/odbc/src/common_types.cpp |     3 +
 .../cpp/odbc/src/config/configuration.cpp       |    49 +-
 .../cpp/odbc/src/config/connection_info.cpp     |    59 +-
 modules/platforms/cpp/odbc/src/connection.cpp   |    25 +-
 .../odbc/src/diagnostic/diagnostic_record.cpp   |    34 +-
 .../diagnostic/diagnostic_record_storage.cpp    |    18 +
 modules/platforms/cpp/odbc/src/dsn_config.cpp   |    14 +-
 modules/platforms/cpp/odbc/src/entry_points.cpp |    99 +-
 modules/platforms/cpp/odbc/src/odbc.cpp         |   434 +-
 .../odbc/src/query/column_metadata_query.cpp    |     2 +-
 .../platforms/cpp/odbc/src/query/data_query.cpp |     8 +-
 .../cpp/odbc/src/query/foreign_keys_query.cpp   |     2 +-
 .../cpp/odbc/src/query/primary_keys_query.cpp   |     2 +-
 .../odbc/src/query/special_columns_query.cpp    |     2 +-
 .../cpp/odbc/src/query/table_metadata_query.cpp |     2 +-
 .../cpp/odbc/src/query/type_info_query.cpp      |     2 +-
 modules/platforms/cpp/odbc/src/statement.cpp    |   531 +-
 modules/platforms/cpp/odbc/src/utility.cpp      |    22 +-
 .../Apache.Ignite.AspNet.Tests.csproj           |    77 +
 .../Apache.Ignite.AspNet.Tests.snk              |   Bin 0 -> 596 bytes
 .../Apache.Ignite.AspNet.Tests/App.config       |    73 +
 .../ExpiryCacheHolderTest.cs                    |   503 +
 .../IgniteOutputCacheProviderTest.cs            |   172 +
 .../IgniteSessionStateItemCollectionTest.cs     |   267 +
 .../IgniteSessionStateStoreDataTest.cs          |   117 +
 .../IgniteSessionStateStoreProviderTest.cs      |   488 +
 .../Properties/AssemblyInfo.cs                  |    42 +
 .../Apache.Ignite.AspNet.Tests/packages.config  |    22 +
 .../Apache.Ignite.AspNet.csproj                 |     9 +-
 .../Apache.Ignite.AspNet.nuspec                 |     4 +-
 .../Apache.Ignite.AspNet.ruleset                |     3 +
 .../IgniteOutputCacheProvider.cs                |   120 +-
 .../IgniteSessionStateStoreProvider.cs          |   509 +
 .../Apache.Ignite.AspNet/Impl/ConfigUtil.cs     |   115 +
 .../Impl/ExpiryCacheHolder.cs                   |   113 +
 .../Impl/IgniteSessionStateItemCollection.cs    |   534 +
 .../Impl/IgniteSessionStateStoreData.cs         |   116 +
 .../Impl/SessionStateLockResult.cs              |    91 +
 .../Properties/AssemblyInfo.cs                  |    13 +-
 .../Properties/AssemblyInfo.cs                  |    40 +-
 .../Apache.Ignite.Core.Tests.NuGet.csproj       |    21 +
 .../EntityFrameworkCacheTest.cs                 |    62 +
 .../Log4NetTest.cs                              |    87 +
 .../Properties/AssemblyInfo.cs                  |    38 +-
 .../packages.config                             |     4 +
 .../Properties/AssemblyInfo.cs                  |    40 +-
 .../Apache.Ignite.Core.Tests.csproj             |    23 +-
 .../AspNet/IgniteOutputCacheProviderTest.cs     |   172 -
 .../Binary/BinaryCompactFooterInteropTest.cs    |    31 +-
 .../Binary/BinaryReaderWriterTest.cs            |    29 +
 .../Affinity/AffinityFunctionSpringTest.cs      |    38 +-
 .../Cache/Affinity/AffinityFunctionTest.cs      |    33 +-
 .../Cache/CacheAbstractTest.cs                  |   121 +-
 .../Cache/CacheConfigurationTest.cs             |    25 +-
 .../Cache/CacheMetricsTest.cs                   |   252 +
 .../Cache/CacheSwapSpaceTest.cs                 |   122 +
 .../Cache/CacheTestAsyncWrapper.cs              |    13 +
 .../Cache/Query/CacheQueriesTest.cs             |    50 +-
 .../Compute/ComputeApiTest.cs                   |    26 +
 .../Dataload/DataStreamerTestTopologyChange.cs  |    27 +-
 .../Examples/Example.cs                         |     6 +-
 .../Examples/ExamplesTest.cs                    |    43 +-
 .../Apache.Ignite.Core.Tests/ExceptionsTest.cs  |     3 +
 .../Apache.Ignite.Core.Tests/ExecutableTest.cs  |    64 +-
 .../IgniteConfigurationSectionTest.cs           |    20 +
 .../IgniteConfigurationSerializerTest.cs        |    48 +-
 .../IgniteConfigurationTest.cs                  |    48 +-
 .../Log/Log4NetLoggerTest.cs                    |   188 +
 .../Process/IgniteProcess.cs                    |    21 +-
 .../ProjectFilesTest.cs                         |    98 +-
 .../Properties/AssemblyInfo.cs                  |    40 +-
 .../Apache.Ignite.Core.Tests/ReconnectTest.cs   |    83 +-
 .../Services/ServicesTest.cs                    |    45 +-
 .../Apache.Ignite.Core.Tests/TestRunner.cs      |    37 +-
 .../Apache.Ignite.Core.Tests/TestUtils.cs       |     5 +-
 .../dotnet/Apache.Ignite.Core.Tests/app.config  |     1 +
 .../Apache.Ignite.Core.Tests/custom_app.config  |     1 +
 .../Apache.Ignite.Core.Tests/packages.config    |    22 +-
 .../Apache.Ignite.Core.csproj                   |    13 +-
 .../Binary/BinaryConfiguration.cs               |     5 +-
 .../Cache/Configuration/CacheConfiguration.cs   |    22 +
 .../dotnet/Apache.Ignite.Core/Cache/ICache.cs   |    19 +-
 .../Apache.Ignite.Core/Cache/ICacheLock.cs      |     2 +-
 .../Apache.Ignite.Core/Cache/ICacheMetrics.cs   |   244 +-
 .../Apache.Ignite.Core/Cluster/IClusterGroup.cs |    14 +
 .../Compute/ComputeTaskSplitAdapter.cs          |     2 +-
 .../Apache.Ignite.Core/Compute/ICompute.cs      |     6 +-
 .../Apache.Ignite.Core/IgniteConfiguration.cs   |    39 +-
 .../IgniteConfigurationSection.xsd              |    63 +-
 .../dotnet/Apache.Ignite.Core/Ignition.cs       |    12 +
 .../Apache.Ignite.Core/Impl/Binary/Binary.cs    |     2 +-
 .../Impl/Binary/BinaryObjectHeader.cs           |     2 +-
 .../Impl/Binary/BinaryObjectSchemaSerializer.cs |     2 +-
 .../Impl/Binary/BinaryProcessor.cs              |   156 +
 .../Impl/Binary/BinaryReader.cs                 |     3 +-
 .../Impl/Binary/BinaryUtils.cs                  |    12 +
 .../Impl/Binary/BinaryWriter.cs                 |     6 +-
 .../Impl/Binary/Marshaller.cs                   |    11 +-
 .../Impl/Cache/CacheAffinityImpl.cs             |     5 +-
 .../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs  |   554 +-
 .../Apache.Ignite.Core/Impl/Cache/CacheLock.cs  |    24 +-
 .../Impl/Cache/CacheMetricsImpl.cs              |   617 +-
 .../Apache.Ignite.Core/Impl/Cache/CacheOp.cs    |    47 +-
 .../Impl/Cache/Expiry/ExpiryPolicyFactory.cs    |    46 +
 .../Impl/Cache/Expiry/ExpiryPolicySerializer.cs |   134 +
 .../Impl/Cache/ICacheInternal.cs                |    14 +
 .../Impl/Cache/ICacheLockInternal.cs            |    47 +
 .../Impl/Cache/Query/AbstractQueryCursor.cs     |    10 +-
 .../Continuous/ContinuousQueryHandleImpl.cs     |   117 +-
 .../Impl/Cache/Query/FieldsQueryCursor.cs       |     3 +
 .../Impl/Cache/Store/CacheStore.cs              |   108 +-
 .../Impl/Cluster/ClusterGroupImpl.cs            |   150 +-
 .../Impl/Cluster/IClusterGroupEx.cs             |    35 -
 .../Apache.Ignite.Core/Impl/Common/Fnv1Hash.cs  |     2 +-
 .../Apache.Ignite.Core/Impl/Common/Future.cs    |    39 +-
 .../Common/IgniteConfigurationXmlSerializer.cs  |    21 +-
 .../Impl/Common/Listenable.cs                   |    49 +
 .../Impl/Compute/ComputeFunc.cs                 |     5 +-
 .../Impl/Compute/ComputeImpl.cs                 |    50 +-
 .../Impl/Compute/ComputeJob.cs                  |    10 +-
 .../Impl/Compute/ComputeOutFunc.cs              |     5 +-
 .../Impl/DataStructures/AtomicLong.cs           |    34 +-
 .../Impl/DataStructures/AtomicReference.cs      |     8 +-
 .../Impl/DataStructures/AtomicSequence.cs       |    26 +-
 .../Impl/Datastream/DataStreamerImpl.cs         |    49 +-
 .../Apache.Ignite.Core/Impl/Events/Events.cs    |   180 +-
 .../Apache.Ignite.Core/Impl/ExceptionUtils.cs   |     1 +
 .../Impl/Handle/HandleRegistry.cs               |     8 +-
 .../dotnet/Apache.Ignite.Core/Impl/Ignite.cs    |    41 +-
 .../Apache.Ignite.Core/Impl/IgniteProxy.cs      |    15 +-
 .../Apache.Ignite.Core/Impl/IgniteUtils.cs      |     2 +-
 .../Memory/PlatformBigEndianMemoryStream.cs     |    34 +-
 .../Impl/Messaging/Messaging.cs                 |   113 +-
 .../Apache.Ignite.Core/Impl/PlatformTarget.cs   |   268 +-
 .../Impl/Services/Services.cs                   |   148 +-
 .../Impl/SwapSpace/SwapSpaceSerializer.cs       |    99 +
 .../Impl/Transactions/TransactionsImpl.cs       |    64 +-
 .../Impl/Unmanaged/IgniteJniNativeMethods.cs    |   288 +-
 .../Impl/Unmanaged/UnmanagedCallbacks.cs        |    59 +-
 .../Impl/Unmanaged/UnmanagedTarget.cs           |     2 +-
 .../Impl/Unmanaged/UnmanagedUtils.cs            |   569 +-
 .../dotnet/Apache.Ignite.Core/NuGet/Install.ps1 |    14 +
 .../NuGet/LINQPad/PutGetExample.linq            |     2 +-
 .../NuGet/LINQPad/QueryExample.linq             |     6 +-
 .../Apache.Ignite.Core/NuGet/Uninstall.ps1      |    14 +
 .../Properties/AssemblyInfo.cs                  |    43 +-
 .../SwapSpace/File/FileSwapSpaceSpi.cs          |   105 +
 .../SwapSpace/ISwapSpaceSpi.cs                  |    35 +
 .../Transactions/ITransactions.cs               |     2 +-
 .../TransactionDeadlockException.cs             |    71 +
 .../Apache.Ignite.EntityFramework.Tests.csproj  |    96 +
 .../Apache.Ignite.EntityFramework.Tests.snk     |   Bin 0 -> 596 bytes
 .../App.config                                  |    71 +
 .../ArrayDbDataReaderTests.cs                   |   192 +
 .../DbCachingPolicyTest.cs                      |    43 +
 .../EntityFrameworkCacheInitializationTest.cs   |   137 +
 .../EntityFrameworkCacheTest.cs                 |   951 ++
 .../Properties/AssemblyInfo.cs                  |    39 +
 .../packages.config                             |    23 +
 .../Apache.Ignite.EntityFramework.csproj        |    95 +
 .../Apache.Ignite.EntityFramework.nuspec        |    57 +
 .../Apache.Ignite.EntityFramework.snk           |   Bin 0 -> 596 bytes
 .../DbCachingMode.cs                            |    48 +
 .../DbCachingPolicy.cs                          |    72 +
 .../DbQueryInfo.cs                              |    78 +
 .../IDbCachingPolicy.cs                         |    58 +
 .../IgniteDbConfiguration.cs                    |   340 +
 .../Impl/ArrayDbDataReader.cs                   |   305 +
 .../Impl/DataReaderField.cs                     |    74 +
 .../Impl/DataReaderResult.cs                    |    93 +
 .../Impl/DbCache.cs                             |   295 +
 .../Impl/DbCacheKey.cs                          |    92 +
 .../Impl/DbCommandDefinitionProxy.cs            |    51 +
 .../Impl/DbCommandInfo.cs                       |   158 +
 .../Impl/DbCommandProxy.cs                      |   263 +
 .../Impl/DbProviderServicesProxy.cs             |   169 +
 .../Impl/DbTransactionInterceptor.cs            |   134 +
 .../Properties/AssemblyInfo.cs                  |    41 +
 .../packages.config                             |    20 +
 .../Apache.Ignite.Linq.csproj                   |     2 +-
 .../Apache.Ignite.Linq/ICacheQueryable.cs       |    32 +-
 .../NuGet/LINQPad/QueryExample.linq             |     4 +-
 .../Properties/AssemblyInfo.cs                  |    42 +-
 .../Apache.Ignite.Log4Net.csproj                |    76 +
 .../Apache.Ignite.Log4Net.nuspec                |    50 +
 .../Apache.Ignite.Log4Net.snk                   |   Bin 0 -> 596 bytes
 .../IgniteLog4NetLogger.cs                      |   123 +
 .../Properties/AssemblyInfo.cs                  |    40 +
 .../Apache.Ignite.Log4Net/packages.config       |    20 +
 .../Apache.Ignite.NLog.csproj                   |     4 +-
 .../Properties/AssemblyInfo.cs                  |     8 +-
 .../dotnet/Apache.Ignite.NLog/packages.config   |    18 +
 modules/platforms/dotnet/Apache.Ignite.sln      |    61 +
 .../dotnet/Apache.Ignite.sln.DotSettings        |     3 +-
 .../Apache.Ignite.sln.TeamCity.DotSettings      |     1 +
 .../Apache.Ignite/Config/ArgsConfigurator.cs    |     7 +-
 .../dotnet/Apache.Ignite/Config/Configurator.cs |    10 +
 .../Apache.Ignite/Properties/AssemblyInfo.cs    |    40 +-
 modules/platforms/dotnet/README.md              |   150 +
 modules/platforms/dotnet/README.txt             |    13 +-
 .../Apache.Ignite.Examples.csproj               |     9 +
 .../examples/Apache.Ignite.Examples/App.config  |     1 +
 .../DataStructures/AtomicLongExample.cs         |    65 +
 .../DataStructures/AtomicReferenceExample.cs    |    65 +
 .../DataStructures/AtomicSequenceExample.cs     |    88 +
 .../Datagrid/EntryProcessorExample.cs           |    90 +
 .../Datagrid/LinqExample.cs                     |     6 +-
 .../Datagrid/MultiTieredCacheExample.cs         |   138 +
 .../Datagrid/NearCacheExample.cs                |    87 +
 .../Datagrid/OptimisticTransactionExample.cs    |   110 +
 .../Datagrid/QueryExample.cs                    |    24 +-
 .../TransactionDeadlockDetectionExample.cs      |   121 +
 .../Misc/ClientReconnectExample.cs              |   159 +
 .../Properties/AssemblyInfo.cs                  |    44 +-
 .../Apache.Ignite.ExamplesDll.csproj            |     6 +
 .../Binary/Employee.cs                          |     5 +-
 .../Compute/AverageSalaryJob.cs                 |     5 +-
 .../DataStructures/AtomicLongIncrementAction.cs |    49 +
 .../AtomicReferenceModifyAction.cs              |    61 +
 .../AtomicSequenceIncrementAction.cs            |    49 +
 .../Datagrid/CacheIncrementEntryProcessor.cs    |    45 +
 .../Datagrid/CachePutEntryProcessor.cs          |    45 +
 .../Datagrid/ScanQueryFilter.cs                 |    50 +
 .../Events/LocalListener.cs                     |     2 +-
 .../Properties/AssemblyInfo.cs                  |    42 +-
 modules/rest-http/pom.xml                       |     2 +-
 modules/scalar-2.10/pom.xml                     |     2 +-
 modules/scalar/pom.xml                          |     2 +-
 modules/schedule/pom.xml                        |     2 +-
 modules/schema-import-db/pom.xml                |     2 +-
 .../apache/ignite/schema/parser/DbColumn.java   |    16 +-
 .../parser/dialect/DatabaseMetadataDialect.java |     9 +
 .../parser/dialect/JdbcMetadataDialect.java     |    21 +-
 .../parser/dialect/MySQLMetadataDialect.java    |    24 +-
 .../parser/dialect/OracleMetadataDialect.java   |     5 +-
 modules/schema-import/pom.xml                   |     2 +-
 .../ignite/schema/model/PojoDescriptor.java     |    24 +-
 modules/slf4j/pom.xml                           |     2 +-
 modules/spark-2.10/pom.xml                      |     2 +-
 modules/spark/pom.xml                           |     2 +-
 modules/spring/pom.xml                          |     2 +-
 .../org/apache/ignite/IgniteSpringBean.java     |    23 +-
 .../src/test/config/incorrect-store-cache.xml   |     2 +
 .../src/test/config/jdbc-pojo-store-builtin.xml |    15 +-
 .../src/test/config/jdbc-pojo-store-obj.xml     |    15 +-
 modules/spring/src/test/config/node.xml         |     2 +
 modules/spring/src/test/config/node1.xml        |     2 +
 .../test/config/pojo-incorrect-store-cache.xml  |     2 +
 modules/spring/src/test/config/store-cache.xml  |     2 +
 modules/spring/src/test/config/store-cache1.xml |     2 +
 .../jdbc/CacheJdbcBlobStoreFactorySelfTest.java |    12 +-
 .../jdbc/CacheJdbcPojoStoreFactorySelfTest.java |    14 +-
 .../store/jdbc/CachePojoStoreXmlSelfTest.java   |    13 +-
 .../CachePojoStoreXmlWithSqlEscapeSelfTest.java |    28 +
 .../p2p/GridP2PUserVersionChangeSelfTest.java   |     7 +-
 .../IgniteStartFromStreamConfigurationTest.java |    18 +-
 .../testsuites/IgniteResourceSelfTestSuite.java |    11 +-
 .../testsuites/IgniteSpringTestSuite.java       |    20 +-
 modules/ssh/pom.xml                             |     2 +-
 modules/storm/pom.xml                           |     2 +-
 modules/tools/pom.xml                           |     2 +-
 .../ignite/tools/classgen/ClassesGenerator.java |     8 +-
 modules/twitter/pom.xml                         |     2 +-
 modules/urideploy/pom.xml                       |     2 +-
 .../spi/deployment/uri/UriDeploymentSpi.java    |     2 +-
 .../scanners/http/UriDeploymentHttpScanner.java |     8 +-
 modules/visor-console-2.10/pom.xml              |     2 +-
 modules/visor-console/pom.xml                   |     2 +-
 .../commands/cache/VisorCacheCommand.scala      |     7 +-
 .../scala/org/apache/ignite/visor/visor.scala   |     2 +-
 modules/visor-plugins/pom.xml                   |     2 +-
 modules/web-agent/.gitignore                    |     2 -
 modules/web-agent/README.txt                    |    88 -
 .../web-agent/assembly/release-web-agent.xml    |    72 -
 modules/web-agent/bin/ignite-web-agent.bat      |    70 -
 modules/web-agent/bin/ignite-web-agent.sh       |    87 -
 modules/web-agent/demo/README.txt               |     4 -
 modules/web-agent/demo/db-init.sql              |   102 -
 modules/web-agent/jdbc-drivers/README.txt       |    10 -
 modules/web-agent/logs/README.txt               |     5 -
 modules/web-agent/pom.xml                       |   189 -
 .../console/agent/AgentConfiguration.java       |   268 -
 .../ignite/console/agent/AgentLauncher.java     |   344 -
 .../apache/ignite/console/agent/AgentUtils.java |   111 -
 .../console/agent/handlers/AbstractHandler.java |   110 -
 .../console/agent/handlers/DatabaseHandler.java |   298 -
 .../console/agent/handlers/RestHandler.java     |   276 -
 .../ignite/console/demo/AgentClusterDemo.java   |   638 -
 .../ignite/console/demo/AgentMetadataDemo.java  |    92 -
 .../apache/ignite/console/demo/model/Car.java   |   152 -
 .../ignite/console/demo/model/Country.java      |   152 -
 .../ignite/console/demo/model/Department.java   |   152 -
 .../ignite/console/demo/model/Employee.java     |   356 -
 .../ignite/console/demo/model/Parking.java      |   152 -
 .../src/main/resources/log4j.properties         |    53 -
 modules/web-console/.gitignore                  |     6 +
 modules/web-console/DEVNOTES.txt                |    37 +-
 modules/web-console/backend/.eslintrc           |   186 +
 modules/web-console/backend/.gitignore          |     6 +
 .../web-console/backend/agent_dists/README.txt  |     7 +
 modules/web-console/backend/app/agent.js        |   833 ++
 modules/web-console/backend/app/app.js          |    63 +
 modules/web-console/backend/app/browser.js      |   456 +
 modules/web-console/backend/app/configure.js    |    86 +
 modules/web-console/backend/app/mongo.js        |   873 ++
 modules/web-console/backend/app/mongoose.js     |    29 +
 modules/web-console/backend/app/nconf.js        |    48 +
 modules/web-console/backend/app/routes.js       |    64 +
 modules/web-console/backend/app/settings.js     |    78 +
 .../backend/config/settings.json.sample         |    23 +
 .../backend/errors/AppErrorException.js         |    36 +
 .../backend/errors/AuthFailedException.js       |    30 +
 .../backend/errors/DuplicateKeyException.js     |    28 +
 .../backend/errors/IllegalAccessError.js        |    29 +
 .../backend/errors/IllegalArgumentException.js  |    29 +
 .../backend/errors/MissingResourceException.js  |    30 +
 .../backend/errors/ServerErrorException.js      |    36 +
 modules/web-console/backend/errors/index.js     |    41 +
 modules/web-console/backend/index.js            |   106 +
 modules/web-console/backend/injector.js         |    30 +
 modules/web-console/backend/middlewares/api.js  |    44 +
 modules/web-console/backend/middlewares/host.js |    40 +
 modules/web-console/backend/middlewares/user.js |    36 +
 modules/web-console/backend/package.json        |    62 +
 modules/web-console/backend/routes/admin.js     |    84 +
 modules/web-console/backend/routes/agent.js     |    51 +
 modules/web-console/backend/routes/caches.js    |    65 +
 modules/web-console/backend/routes/clusters.js  |    64 +
 .../web-console/backend/routes/configuration.js |    41 +
 modules/web-console/backend/routes/demo.js      |   133 +
 .../web-console/backend/routes/demo/caches.json |    87 +
 .../backend/routes/demo/clusters.json           |    50 +
 .../backend/routes/demo/domains.json            |   312 +
 .../web-console/backend/routes/demo/igfss.json  |    10 +
 modules/web-console/backend/routes/domains.js   |    76 +
 modules/web-console/backend/routes/igfss.js     |    65 +
 modules/web-console/backend/routes/notebooks.js |    80 +
 modules/web-console/backend/routes/profile.js   |    73 +
 modules/web-console/backend/routes/public.js    |   129 +
 modules/web-console/backend/services/agents.js  |    83 +
 modules/web-console/backend/services/auth.js    |   118 +
 modules/web-console/backend/services/caches.js  |   154 +
 .../web-console/backend/services/clusters.js    |   148 +
 .../backend/services/configurations.js          |    59 +
 modules/web-console/backend/services/domains.js |   195 +
 modules/web-console/backend/services/igfss.js   |   144 +
 modules/web-console/backend/services/mails.js   |   131 +
 .../web-console/backend/services/notebooks.js   |   104 +
 .../web-console/backend/services/sessions.js    |    65 +
 modules/web-console/backend/services/spaces.js  |    75 +
 modules/web-console/backend/services/users.js   |   229 +
 modules/web-console/backend/test/app/db.js      |    66 +
 .../web-console/backend/test/app/httpAgent.js   |    50 +
 .../web-console/backend/test/app/mockgoose.js   |    30 +
 .../backend/test/config/settings.json           |    20 +
 .../web-console/backend/test/data/accounts.json |    19 +
 .../web-console/backend/test/data/caches.json   |    97 +
 .../web-console/backend/test/data/clusters.json |    54 +
 .../web-console/backend/test/data/domains.json  |   317 +
 .../web-console/backend/test/data/igfss.json    |    12 +
 .../web-console/backend/test/data/spaces.json   |    14 +
 modules/web-console/backend/test/index.js       |    35 +
 modules/web-console/backend/test/injector.js    |    48 +
 .../web-console/backend/test/routes/clusters.js |    83 +
 .../web-console/backend/test/routes/public.js   |    68 +
 .../backend/test/unit/AuthService.test.js       |   105 +
 .../backend/test/unit/CacheService.test.js      |   147 +
 .../backend/test/unit/ClusterService.test.js    |   147 +
 .../backend/test/unit/DomainService.test.js     |   167 +
 .../backend/test/unit/IgfsService.test.js       |   145 +
 .../docker/compose/backend/.dockerignore        |     3 +
 .../docker/compose/backend/Dockerfile           |    30 +
 .../web-console/docker/compose/backend/build.sh |    57 +
 .../docker/compose/docker-compose.yml           |    54 +
 .../docker/compose/frontend/.dockerignore       |     3 +
 .../docker/compose/frontend/Dockerfile          |    32 +
 .../docker/compose/frontend/DockerfileBuild     |    30 +
 .../docker/compose/frontend/build.sh            |    59 +
 .../docker/compose/frontend/nginx/nginx.conf    |    57 +
 .../compose/frontend/nginx/web-console.conf     |    68 +
 .../web-console/docker/standalone/.dockerignore |     7 +
 .../web-console/docker/standalone/Dockerfile    |    87 +
 modules/web-console/docker/standalone/build.sh  |    59 +
 .../docker/standalone/docker-compose.yml        |    36 +
 .../web-console/docker/standalone/entrypoint.sh |    23 +
 .../docker/standalone/nginx/nginx.conf          |    55 +
 .../docker/standalone/nginx/web-console.conf    |    63 +
 modules/web-console/frontend/.babelrc           |     9 +
 modules/web-console/frontend/.eslintrc          |   198 +
 modules/web-console/frontend/.gitignore         |     7 +
 modules/web-console/frontend/app/app.config.js  |    96 +
 modules/web-console/frontend/app/app.js         |   272 +
 .../frontend/app/controllers/auth.controller.js |    30 +
 .../controllers/reset-password.controller.js    |    50 +
 .../web-console/frontend/app/data/colors.json   |    22 +
 .../frontend/app/data/countries.json            |    94 +
 .../frontend/app/data/demo-info.json            |    14 +
 .../web-console/frontend/app/data/dialects.json |     9 +
 .../frontend/app/data/event-types.json          |   169 +
 .../frontend/app/data/getting-started.json      |   109 +
 .../frontend/app/data/java-classes.json         |    21 +
 .../frontend/app/data/java-keywords.json        |    55 +
 .../frontend/app/data/java-primitives.json      |     9 +
 .../frontend/app/data/jdbc-types.json           |    44 +
 .../frontend/app/data/pom-dependencies.json     |    20 +
 .../frontend/app/data/sql-keywords.json         |    41 +
 .../frontend/app/decorator/select.js            |    77 +
 .../frontend/app/decorator/tooltip.js           |    73 +
 .../app/directives/auto-focus.directive.js      |    26 +
 .../app/directives/bs-affix-update.directive.js |    34 +
 .../app/directives/centered/centered.css        |    37 +
 .../directives/centered/centered.directive.js   |    26 +
 .../directives/copy-to-clipboard.directive.js   |    29 +
 .../hide-on-state-change.directive.js           |    31 +
 .../information/information.directive.js        |    30 +
 .../app/directives/information/information.jade |    20 +
 .../app/directives/information/information.scss |    56 +
 .../frontend/app/directives/match.directive.js  |    27 +
 .../app/directives/on-click-focus.directive.js  |    26 +
 .../directives/on-enter-focus-move.directive.js |    29 +
 .../app/directives/on-enter.directive.js        |    32 +
 .../app/directives/on-escape.directive.js       |    32 +
 .../app/directives/on-focus-out.directive.js    |    37 +
 .../directives/restore-input-focus.directive.js |    24 +
 .../directives/retain-selection.directive.js    |    67 +
 .../ui-ace-docker/ui-ace-docker.controller.js   |    33 +
 .../ui-ace-docker/ui-ace-docker.directive.js    |    46 +
 .../directives/ui-ace-docker/ui-ace-docker.jade |    31 +
 .../ui-ace-java/ui-ace-java.controller.js       |    92 +
 .../ui-ace-java/ui-ace-java.directive.js        |    63 +
 .../app/directives/ui-ace-java/ui-ace-java.jade |    22 +
 .../ui-ace-pojos/ui-ace-pojos.controller.js     |    95 +
 .../ui-ace-pojos/ui-ace-pojos.directive.js      |    46 +
 .../directives/ui-ace-pojos/ui-ace-pojos.jade   |    40 +
 .../ui-ace-pom/ui-ace-pom.controller.js         |    33 +
 .../ui-ace-pom/ui-ace-pom.directive.js          |    41 +
 .../app/directives/ui-ace-pom/ui-ace-pom.jade   |    17 +
 .../ui-ace-sharp/ui-ace-sharp.controller.js     |    32 +
 .../ui-ace-sharp/ui-ace-sharp.directive.js      |   133 +
 .../directives/ui-ace-sharp/ui-ace-sharp.jade   |    22 +
 .../ui-ace-spring/ui-ace-spring.controller.js   |    88 +
 .../ui-ace-spring/ui-ace-spring.directive.js    |    66 +
 .../directives/ui-ace-spring/ui-ace-spring.jade |    17 +
 .../app/directives/ui-ace-tabs.directive.js     |    24 +
 .../ui-grid-settings/ui-grid-settings.jade      |    33 +
 .../ui-grid-settings/ui-grid-settings.scss      |    38 +
 .../frontend/app/filters/byName.filter.js       |    23 +
 .../frontend/app/filters/default-name.filter.js |    21 +
 .../app/filters/domainsValidation.filter.js     |    33 +
 .../frontend/app/filters/duration.filter.js     |    41 +
 .../frontend/app/filters/hasPojo.filter.js      |    21 +
 .../frontend/app/helpers/jade/form.jade         |    28 +
 .../helpers/jade/form/form-field-checkbox.jade  |    38 +
 .../helpers/jade/form/form-field-datalist.jade  |    51 +
 .../app/helpers/jade/form/form-field-down.jade  |    18 +
 .../helpers/jade/form/form-field-dropdown.jade  |    50 +
 .../helpers/jade/form/form-field-feedback.jade  |    32 +
 .../app/helpers/jade/form/form-field-label.jade |    23 +
 .../helpers/jade/form/form-field-number.jade    |    52 +
 .../helpers/jade/form/form-field-password.jade  |    47 +
 .../app/helpers/jade/form/form-field-text.jade  |    47 +
 .../app/helpers/jade/form/form-field-up.jade    |    18 +
 .../app/helpers/jade/form/form-group.jade       |    23 +
 .../frontend/app/helpers/jade/mixins.jade       |   563 +
 .../frontend/app/modules/Demo/Demo.module.js    |   166 +
 .../frontend/app/modules/ace.module.js          |   269 +
 .../frontend/app/modules/agent/agent.module.js  |   343 +
 .../app/modules/branding/branding.module.js     |    45 +
 .../app/modules/branding/branding.provider.js   |   111 +
 .../app/modules/branding/features.directive.js  |    35 +
 .../app/modules/branding/footer.directive.js    |    34 +
 .../modules/branding/header-logo.directive.js   |    34 +
 .../app/modules/branding/header-logo.jade       |    18 +
 .../modules/branding/header-title.directive.js  |    35 +
 .../branding/powered-by-apache.directive.js     |    35 +
 .../app/modules/branding/powered-by-apache.jade |    18 +
 .../app/modules/branding/terms.directive.js     |    30 +
 .../configuration/EventGroups.provider.js       |    30 +
 .../modules/configuration/Sidebar.provider.js   |    39 +
 .../modules/configuration/Version.service.js    |    95 +
 .../configuration/configuration.module.js       |    65 +
 .../generator/AbstractTransformer.js            |   341 +
 .../modules/configuration/generator/Beans.js    |   385 +
 .../generator/ConfigurationGenerator.js         |  1794 +++
 .../configuration/generator/Docker.service.js   |    78 +
 .../generator/JavaTransformer.service.js        |  1724 +++
 .../generator/PlatformGenerator.js              |   522 +
 .../configuration/generator/Pom.service.js      |   233 +
 .../generator/Properties.service.js             |    93 +
 .../configuration/generator/Readme.service.js   |    79 +
 .../generator/SharpTransformer.service.js       |   243 +
 .../generator/SpringTransformer.service.js      |   333 +
 .../configuration/generator/StringBuilder.js    |    76 +
 .../defaults/cache.platform.provider.js         |    60 +
 .../generator/defaults/cache.provider.js        |   137 +
 .../defaults/cluster.platform.provider.js       |    49 +
 .../generator/defaults/cluster.provider.js      |   293 +
 .../generator/defaults/igfs.provider.js         |    68 +
 .../configuration/generator/generator-common.js |   625 +
 .../configuration/generator/generator-java.js   |  3617 +++++
 .../generator/generator-optional.js             |    25 +
 .../configuration/generator/generator-spring.js |  2111 +++
 .../modules/configuration/sidebar.directive.js  |    30 +
 .../modules/dialog/dialog-content.directive.js  |    31 +
 .../modules/dialog/dialog-title.directive.js    |    31 +
 .../app/modules/dialog/dialog.controller.js     |    40 +
 .../app/modules/dialog/dialog.directive.js      |    32 +
 .../app/modules/dialog/dialog.factory.js        |    32 +
 .../frontend/app/modules/dialog/dialog.jade     |    26 +
 .../app/modules/dialog/dialog.module.js         |    32 +
 .../field/bs-select-placeholder.directive.js    |    47 +
 .../app/modules/form/field/down.directive.js    |    39 +
 .../app/modules/form/field/feedback.scss        |    37 +
 .../frontend/app/modules/form/field/field.scss  |    43 +
 .../field/form-control-feedback.directive.js    |    40 +
 .../form/field/input/autofocus.directive.js     |    30 +
 .../app/modules/form/field/input/text.scss      |    40 +
 .../app/modules/form/field/label.directive.js   |    47 +
 .../app/modules/form/field/tooltip.directive.js |    49 +
 .../app/modules/form/field/up.directive.js      |    39 +
 .../frontend/app/modules/form/form.module.js    |    94 +
 .../app/modules/form/group/add.directive.js     |    40 +
 .../app/modules/form/group/tooltip.directive.js |    40 +
 .../app/modules/form/panel/chevron.directive.js |    53 +
 .../app/modules/form/panel/field.directive.js   |    69 +
 .../app/modules/form/panel/panel.directive.js   |    37 +
 .../app/modules/form/panel/revert.directive.js  |    54 +
 .../modules/form/services/FormGUID.service.js   |    22 +
 .../form/validator/ipaddress.directive.js       |    86 +
 .../validator/java-built-in-class.directive.js  |    35 +
 .../form/validator/java-identifier.directive.js |    35 +
 .../form/validator/java-keywords.directive.js   |    39 +
 .../validator/java-package-name.directive.js    |    31 +
 .../java-package-specified.directive.js         |    39 +
 .../form/validator/property-unique.directive.js |    47 +
 .../property-value-specified.directive.js       |    31 +
 .../modules/form/validator/unique.directive.js  |    49 +
 .../modules/form/validator/uuid.directive.js    |    31 +
 .../getting-started/GettingStarted.provider.js  |   112 +
 .../frontend/app/modules/loading/loading.css    |    73 +
 .../app/modules/loading/loading.directive.js    |    51 +
 .../frontend/app/modules/loading/loading.jade   |    23 +
 .../app/modules/loading/loading.module.js       |    26 +
 .../app/modules/loading/loading.service.js      |    48 +
 .../app/modules/navbar/Navbar.provider.js       |    28 +
 .../app/modules/navbar/Userbar.provider.js      |    28 +
 .../app/modules/navbar/navbar.directive.js      |    30 +
 .../app/modules/navbar/navbar.module.js         |    33 +
 .../app/modules/navbar/userbar.directive.js     |    48 +
 .../frontend/app/modules/nodes/Nodes.service.js |    69 +
 .../modules/nodes/nodes-dialog.controller.js    |    68 +
 .../app/modules/nodes/nodes-dialog.jade         |    35 +
 .../app/modules/nodes/nodes-dialog.scss         |    37 +
 .../frontend/app/modules/nodes/nodes.module.js  |    27 +
 .../frontend/app/modules/socket.module.js       |    41 +
 .../frontend/app/modules/sql/Notebook.data.js   |   165 +
 .../app/modules/sql/Notebook.service.js         |    74 +
 .../app/modules/sql/notebook.controller.js      |    60 +
 .../app/modules/sql/scan-filter-input.jade      |    39 +
 .../modules/sql/scan-filter-input.service.js    |    51 +
 .../frontend/app/modules/sql/sql.controller.js  |  1721 +++
 .../frontend/app/modules/sql/sql.module.js      |    60 +
 .../frontend/app/modules/states/admin.state.js  |    35 +
 .../app/modules/states/configuration.state.js   |    97 +
 .../configuration/Configuration.resource.js     |    42 +
 .../configuration/caches/client-near-cache.jade |    50 +
 .../configuration/caches/concurrency.jade       |    65 +
 .../states/configuration/caches/general.jade    |    69 +
 .../states/configuration/caches/memory.jade     |   109 +
 .../configuration/caches/near-cache-client.jade |    51 +
 .../configuration/caches/near-cache-server.jade |    52 +
 .../configuration/caches/node-filter.jade       |    59 +
 .../states/configuration/caches/query.jade      |   111 +
 .../states/configuration/caches/rebalance.jade  |    66 +
 .../states/configuration/caches/statistics.jade |    39 +
 .../states/configuration/caches/store.jade      |   250 +
 .../states/configuration/clusters/atomic.jade   |    54 +
 .../configuration/clusters/attributes.jade      |    57 +
 .../states/configuration/clusters/binary.jade   |    77 +
 .../configuration/clusters/cache-key-cfg.jade   |    50 +
 .../configuration/clusters/checkpoint.jade      |    85 +
 .../configuration/clusters/checkpoint/fs.jade   |    66 +
 .../configuration/clusters/checkpoint/jdbc.jade |    46 +
 .../configuration/clusters/checkpoint/s3.jade   |   177 +
 .../configuration/clusters/collision.jade       |    63 +
 .../clusters/collision/custom.jade              |    24 +
 .../clusters/collision/fifo-queue.jade          |    27 +
 .../clusters/collision/job-stealing.jade        |    63 +
 .../clusters/collision/priority-queue.jade      |    42 +
 .../configuration/clusters/communication.jade   |   100 +
 .../configuration/clusters/connector.jade       |   104 +
 .../configuration/clusters/deployment.jade      |   114 +
 .../configuration/clusters/discovery.jade       |    88 +
 .../states/configuration/clusters/events.jade   |    68 +
 .../states/configuration/clusters/failover.jade |    73 +
 .../states/configuration/clusters/general.jade  |    76 +
 .../clusters/general/discovery/cloud.jade       |   134 +
 .../clusters/general/discovery/google.jade      |    38 +
 .../clusters/general/discovery/jdbc.jade        |    31 +
 .../clusters/general/discovery/multicast.jade   |    99 +
 .../clusters/general/discovery/s3.jade          |    27 +
 .../clusters/general/discovery/shared.jade      |    23 +
 .../clusters/general/discovery/vm.jade          |    79 +
 .../clusters/general/discovery/zookeeper.jade   |    85 +
 .../bounded-exponential-backoff.jade            |    27 +
 .../discovery/zookeeper/retrypolicy/custom.jade |    24 +
 .../retrypolicy/exponential-backoff.jade        |    27 +
 .../zookeeper/retrypolicy/forever.jade          |    22 +
 .../zookeeper/retrypolicy/n-times.jade          |    25 +
 .../zookeeper/retrypolicy/one-time.jade         |    23 +
 .../zookeeper/retrypolicy/until-elapsed.jade    |    25 +
 .../states/configuration/clusters/igfs.jade     |    38 +
 .../configuration/clusters/load-balancing.jade  |   104 +
 .../states/configuration/clusters/logger.jade   |    66 +
 .../configuration/clusters/logger/custom.jade   |    25 +
 .../configuration/clusters/logger/log4j.jade    |    50 +
 .../configuration/clusters/logger/log4j2.jade   |    39 +
 .../configuration/clusters/marshaller.jade      |    76 +
 .../states/configuration/clusters/metrics.jade  |    51 +
 .../states/configuration/clusters/odbc.jade     |    48 +
 .../states/configuration/clusters/ssl.jade      |   110 +
 .../states/configuration/clusters/swap.jade     |    72 +
 .../states/configuration/clusters/thread.jade   |    48 +
 .../states/configuration/clusters/time.jade     |    47 +
 .../configuration/clusters/transactions.jade    |    69 +
 .../states/configuration/domains/general.jade   |    52 +
 .../states/configuration/domains/query.jade     |   172 +
 .../states/configuration/domains/store.jade     |   127 +
 .../modules/states/configuration/igfs/dual.jade |    42 +
 .../states/configuration/igfs/fragmentizer.jade |    43 +
 .../states/configuration/igfs/general.jade      |    57 +
 .../modules/states/configuration/igfs/ipc.jade  |    60 +
 .../modules/states/configuration/igfs/misc.jade |   108 +
 .../states/configuration/igfs/secondary.jade    |    45 +
 .../configuration/preview-panel.directive.js    |   239 +
 .../summary/summary-tabs.directive.js           |    50 +
 .../configuration/summary/summary.controller.js |   405 +
 .../frontend/app/modules/states/errors.state.js |    43 +
 .../frontend/app/modules/states/logout.state.js |    35 +
 .../app/modules/states/password.state.js        |    46 +
 .../app/modules/states/profile.state.js         |    35 +
 .../frontend/app/modules/states/signin.state.js |    43 +
 .../app/modules/user/AclRoute.provider.js       |    47 +
 .../frontend/app/modules/user/Auth.service.js   |    56 +
 .../frontend/app/modules/user/User.service.js   |    51 +
 .../frontend/app/modules/user/permissions.js    |    28 +
 .../frontend/app/modules/user/user.module.js    |    73 +
 .../app/services/ChartColors.service.js         |    22 +
 .../frontend/app/services/Clone.service.js      |    64 +
 .../frontend/app/services/Confirm.service.js    |    68 +
 .../app/services/ConfirmBatch.service.js        |    92 +
 .../app/services/CopyToClipboard.service.js     |    50 +
 .../frontend/app/services/Countries.service.js  |    31 +
 .../app/services/ErrorPopover.service.js        |   129 +
 .../frontend/app/services/Focus.service.js      |    33 +
 .../frontend/app/services/FormUtils.service.js  |   439 +
 .../app/services/InetAddress.service.js         |    53 +
 .../frontend/app/services/JavaTypes.service.js  |   182 +
 .../app/services/LegacyTable.service.js         |   229 +
 .../app/services/LegacyUtils.service.js         |   548 +
 .../frontend/app/services/Messages.service.js   |    63 +
 .../app/services/ModelNormalizer.service.js     |    59 +
 .../frontend/app/services/SqlTypes.service.js   |    65 +
 .../app/services/UnsavedChangesGuard.service.js |    38 +
 modules/web-console/frontend/app/vendor.js      |    56 +
 .../frontend/controllers/admin-controller.js    |    93 +
 .../frontend/controllers/caches-controller.js   |   619 +
 .../frontend/controllers/clusters-controller.js |   832 ++
 .../frontend/controllers/domains-controller.js  |  1862 +++
 .../frontend/controllers/igfs-controller.js     |   416 +
 .../frontend/controllers/profile-controller.js  |    95 +
 .../frontend/gulpfile.babel.js/index.js         |    26 +
 .../frontend/gulpfile.babel.js/paths.js         |    83 +
 .../frontend/gulpfile.babel.js/tasks/build.js   |    21 +
 .../frontend/gulpfile.babel.js/tasks/bundle.js  |    32 +
 .../frontend/gulpfile.babel.js/tasks/clean.js   |    32 +
 .../frontend/gulpfile.babel.js/tasks/copy.js    |    33 +
 .../gulpfile.babel.js/tasks/ignite-modules.js   |    55 +
 .../frontend/gulpfile.babel.js/tasks/jade.js    |    49 +
 .../frontend/gulpfile.babel.js/tasks/watch.js   |    33 +
 .../gulpfile.babel.js/webpack/common.js         |   192 +
 .../webpack/environments/development.js         |    83 +
 .../webpack/environments/production.js          |    45 +
 .../webpack/environments/test.js                |    52 +
 .../frontend/gulpfile.babel.js/webpack/index.js |    34 +
 .../webpack/plugins/progress.js                 |    82 +
 .../frontend/ignite_modules/README.txt          |     6 +
 .../frontend/ignite_modules/index.js            |    27 +
 modules/web-console/frontend/package.json       |   125 +
 modules/web-console/frontend/public/favicon.ico |   Bin 0 -> 1150 bytes
 .../frontend/public/images/cache.png            |   Bin 0 -> 23700 bytes
 .../frontend/public/images/cluster.png          |   Bin 0 -> 29376 bytes
 .../frontend/public/images/docker.png           |   Bin 0 -> 521 bytes
 .../frontend/public/images/domains.png          |   Bin 0 -> 23828 bytes
 .../web-console/frontend/public/images/igfs.png |   Bin 0 -> 14307 bytes
 .../frontend/public/images/ignite-logo.png      |   Bin 0 -> 1982 bytes
 .../frontend/public/images/ignite-logo@2x.png   |   Bin 0 -> 3325 bytes
 .../frontend/public/images/ignite-puzzle.png    |   Bin 0 -> 71974 bytes
 .../web-console/frontend/public/images/java.png |   Bin 0 -> 170 bytes
 .../frontend/public/images/pb-ignite.png        |   Bin 0 -> 3493 bytes
 .../frontend/public/images/pb-ignite@2x.png     |   Bin 0 -> 8558 bytes
 .../frontend/public/images/query-chart.png      |   Bin 0 -> 16637 bytes
 .../frontend/public/images/query-metadata.png   |   Bin 0 -> 32298 bytes
 .../frontend/public/images/query-table.png      |   Bin 0 -> 29189 bytes
 .../frontend/public/images/summary.png          |   Bin 0 -> 31997 bytes
 .../web-console/frontend/public/images/xml.png  |   Bin 0 -> 232 bytes
 .../public/stylesheets/_bootstrap-custom.scss   |    65 +
 .../stylesheets/_bootstrap-variables.scss       |   891 ++
 .../stylesheets/_font-awesome-custom.scss       |    50 +
 .../public/stylesheets/blocks/error.scss        |    31 +
 .../frontend/public/stylesheets/form-field.scss |   108 +
 .../frontend/public/stylesheets/style.scss      |  2228 +++
 .../frontend/public/stylesheets/variables.scss  |    28 +
 .../frontend/test/e2e/exampe.test.js            |    40 +
 .../frontend/test/karma.conf.babel.js           |    91 +
 modules/web-console/frontend/test/karma.conf.js |    19 +
 .../frontend/test/protractor.conf.js            |    50 +
 .../frontend/test/unit/JavaTransformer.test.js  |    57 +
 .../frontend/test/unit/JavaTypes.test.js        |   128 +
 .../frontend/test/unit/SharpTransformer.test.js |    55 +
 .../test/unit/SpringTransformer.test.js         |    57 +
 .../frontend/test/unit/SqlTypes.test.js         |    51 +
 .../frontend/test/unit/UserAuth.test.js         |    35 +
 .../frontend/test/unit/Version.test.js          |    82 +
 .../test/unit/defaultName.filter.test.js        |    38 +
 modules/web-console/frontend/views/403.jade     |    22 +
 modules/web-console/frontend/views/404.jade     |    22 +
 modules/web-console/frontend/views/base.jade    |    22 +
 .../frontend/views/configuration/caches.jade    |    54 +
 .../frontend/views/configuration/clusters.jade  |    68 +
 .../views/configuration/domains-import.jade     |   167 +
 .../frontend/views/configuration/domains.jade   |    66 +
 .../frontend/views/configuration/igfs.jade      |    51 +
 .../frontend/views/configuration/sidebar.jade   |    29 +
 .../summary-project-structure.jade              |    27 +
 .../views/configuration/summary-tabs.jade       |    25 +
 .../frontend/views/configuration/summary.jade   |    83 +
 .../frontend/views/includes/footer.jade         |    23 +
 .../frontend/views/includes/header.jade         |    52 +
 modules/web-console/frontend/views/index.jade   |    47 +
 modules/web-console/frontend/views/reset.jade   |    48 +
 .../frontend/views/settings/admin.jade          |    76 +
 .../frontend/views/settings/profile.jade        |    76 +
 modules/web-console/frontend/views/signin.jade  |   163 +
 .../frontend/views/sql/cache-metadata.jade      |    40 +
 .../frontend/views/sql/chart-settings.jade      |    40 +
 .../frontend/views/sql/notebook-new.jade        |    33 +
 .../frontend/views/sql/paragraph-rate.jade      |    31 +
 modules/web-console/frontend/views/sql/sql.jade |   229 +
 .../views/templates/agent-download.jade         |    50 +
 .../frontend/views/templates/alert.jade         |    21 +
 .../frontend/views/templates/batch-confirm.jade |    34 +
 .../frontend/views/templates/clone.jade         |    39 +
 .../frontend/views/templates/confirm.jade       |    33 +
 .../frontend/views/templates/demo-info.jade     |    47 +
 .../frontend/views/templates/dropdown.jade      |    24 +
 .../views/templates/getting-started.jade        |    34 +
 .../frontend/views/templates/message.jade       |    28 +
 .../frontend/views/templates/pagination.jade    |    32 +
 .../frontend/views/templates/select.jade        |    26 +
 .../views/templates/validation-error.jade       |    25 +
 modules/web-console/pom.xml                     |    35 +-
 modules/web-console/src/main/js/.babelrc        |     3 -
 modules/web-console/src/main/js/.eslintrc       |   202 -
 modules/web-console/src/main/js/.gitignore      |     9 -
 .../web-console/src/main/js/app/app.config.js   |    86 -
 modules/web-console/src/main/js/app/app.js      |   274 -
 .../main/js/app/controllers/auth.controller.js  |    30 -
 .../js/app/controllers/notebooks.controller.js  |    69 -
 .../controllers/reset-password.controller.js    |    51 -
 .../src/main/js/app/data/colors.json            |    22 -
 .../src/main/js/app/data/countries.json         |    94 -
 .../src/main/js/app/data/demo-info.json         |    14 -
 .../src/main/js/app/data/event-types.json       |   169 -
 .../src/main/js/app/data/getting-started.json   |   109 -
 .../src/main/js/app/data/java-classes.json      |    18 -
 .../src/main/js/app/data/java-keywords.json     |    55 -
 .../src/main/js/app/data/java-primitives.json   |     9 -
 .../src/main/js/app/data/pom-dependencies.json  |    20 -
 .../src/main/js/app/decorator/select.js         |    77 -
 .../src/main/js/app/decorator/tooltip.js        |    56 -
 .../js/app/directives/auto-focus.directive.js   |    26 -
 .../app/directives/bs-affix-update.directive.js |    34 -
 .../js/app/directives/centered/centered.css     |    37 -
 .../directives/centered/centered.directive.js   |    26 -
 .../directives/copy-to-clipboard.directive.js   |    29 -
 .../hide-on-state-change.directive.js           |    31 -
 .../information/information.directive.js        |    30 -
 .../app/directives/information/information.jade |    20 -
 .../app/directives/information/information.scss |    56 -
 .../main/js/app/directives/match.directive.js   |    27 -
 .../app/directives/on-click-focus.directive.js  |    26 -
 .../directives/on-enter-focus-move.directive.js |    29 -
 .../js/app/directives/on-enter.directive.js     |    32 -
 .../js/app/directives/on-escape.directive.js    |    32 -
 .../ui-ace-docker/ui-ace-docker.controller.js   |    33 -
 .../ui-ace-docker/ui-ace-docker.directive.js    |    46 -
 .../directives/ui-ace-docker/ui-ace-docker.jade |    31 -
 .../ui-ace-java/ui-ace-java.controller.js       |    32 -
 .../ui-ace-java/ui-ace-java.directive.js        |   133 -
 .../app/directives/ui-ace-java/ui-ace-java.jade |    22 -
 .../ui-ace-pojos/ui-ace-pojos.controller.js     |    95 -
 .../ui-ace-pojos/ui-ace-pojos.directive.js      |    46 -
 .../directives/ui-ace-pojos/ui-ace-pojos.jade   |    40 -
 .../ui-ace-pom/ui-ace-pom.controller.js         |    33 -
 .../ui-ace-pom/ui-ace-pom.directive.js          |    41 -
 .../app/directives/ui-ace-pom/ui-ace-pom.jade   |    17 -
 .../js/app/directives/ui-ace-tabs.directive.js  |    23 -
 .../ui-ace-xml/ui-ace-xml.controller.js         |    27 -
 .../ui-ace-xml/ui-ace-xml.directive.js          |   133 -
 .../app/directives/ui-ace-xml/ui-ace-xml.jade   |    17 -
 .../src/main/js/app/filters/byName.filter.js    |    23 -
 .../js/app/filters/domainsValidation.filter.js  |    33 -
 .../src/main/js/app/filters/hasPojo.filter.js   |    18 -
 .../src/main/js/app/helpers/jade/mixins.jade    |   588 -
 .../src/main/js/app/modules/Demo/Demo.module.js |   166 -
 .../js/app/modules/Version/Version.provider.js  |    32 -
 .../src/main/js/app/modules/ace.module.js       |   269 -
 .../main/js/app/modules/agent/agent.module.js   |   323 -
 .../js/app/modules/branding/branding.module.js  |    45 -
 .../app/modules/branding/branding.provider.js   |   111 -
 .../app/modules/branding/features.directive.js  |    35 -
 .../js/app/modules/branding/footer.directive.js |    34 -
 .../modules/branding/header-logo.directive.js   |    34 -
 .../js/app/modules/branding/header-logo.jade    |    18 -
 .../modules/branding/header-title.directive.js  |    35 -
 .../branding/powered-by-apache.directive.js     |    35 -
 .../app/modules/branding/powered-by-apache.jade |    18 -
 .../js/app/modules/branding/terms.directive.js  |    30 -
 .../configuration/EventGroups.provider.js       |    30 -
 .../modules/configuration/Sidebar.provider.js   |    39 -
 .../configuration/configuration.module.js       |    41 -
 .../configuration/generator/Docker.service.js   |    78 -
 .../configuration/generator/Java.service.js     |    21 -
 .../configuration/generator/Pom.service.js      |   210 -
 .../configuration/generator/Xml.service.js      |    21 -
 .../modules/configuration/sidebar.directive.js  |    30 -
 .../modules/dialog/dialog-content.directive.js  |    31 -
 .../modules/dialog/dialog-title.directive.js    |    31 -
 .../js/app/modules/dialog/dialog.controller.js  |    40 -
 .../js/app/modules/dialog/dialog.directive.js   |    32 -
 .../js/app/modules/dialog/dialog.factory.js     |    32 -
 .../src/main/js/app/modules/dialog/dialog.jade  |    26 -
 .../main/js/app/modules/dialog/dialog.module.js |    32 -
 .../field/bs-select-placeholder.directive.js    |    47 -
 .../js/app/modules/form/field/down.directive.js |    43 -
 .../modules/form/field/dropdown.directive.js    |    83 -
 .../js/app/modules/form/field/dropdown.jade     |    61 -
 .../main/js/app/modules/form/field/field.css    |    23 -
 .../app/modules/form/field/field.directive.js   |    44 -
 .../main/js/app/modules/form/field/field.jade   |    27 -
 .../field/form-control-feedback.directive.js    |    40 -
 .../form/field/input/autofocus.directive.js     |    30 -
 .../form/field/input/checkbox.directive.js      |    66 -
 .../app/modules/form/field/input/checkbox.jade  |    30 -
 .../form/field/input/datalist.directive.js      |   122 -
 .../app/modules/form/field/input/datalist.jade  |    51 -
 .../form/field/input/number.directive.js        |    76 -
 .../js/app/modules/form/field/input/number.jade |    50 -
 .../js/app/modules/form/field/input/text.css    |    41 -
 .../modules/form/field/input/text.directive.js  |   126 -
 .../js/app/modules/form/field/input/text.jade   |    48 -
 .../app/modules/form/field/label.directive.js   |    47 -
 .../app/modules/form/field/tooltip.directive.js |    49 -
 .../js/app/modules/form/field/up.directive.js   |    44 -
 .../src/main/js/app/modules/form/form.module.js |   101 -
 .../js/app/modules/form/group/add.directive.js  |    40 -
 .../app/modules/form/group/group.directive.js   |    81 -
 .../main/js/app/modules/form/group/group.jade   |    21 -
 .../app/modules/form/group/table.directive.js   |    29 -
 .../main/js/app/modules/form/group/table.jade   |    17 -
 .../app/modules/form/group/tooltip.directive.js |    40 -
 .../app/modules/form/panel/chevron.directive.js |    53 -
 .../app/modules/form/panel/panel.directive.js   |    37 -
 .../app/modules/form/panel/revert.directive.js  |    53 -
 .../form/validator/ipaddress.directive.js       |    86 -
 .../validator/java-built-in-class.directive.js  |    31 -
 .../form/validator/java-identifier.directive.js |    31 -
 .../form/validator/java-keywords.directive.js   |    42 -
 .../validator/java-package-name.directive.js    |    31 -
 .../java-package-specified.directive.js         |    34 -
 .../form/validator/property-unique.directive.js |    47 -
 .../property-value-specified.directive.js       |    31 -
 .../modules/form/validator/unique.directive.js  |    49 -
 .../getting-started/GettingStarted.provider.js  |   112 -
 .../src/main/js/app/modules/loading/loading.css |    73 -
 .../js/app/modules/loading/loading.directive.js |    51 -
 .../main/js/app/modules/loading/loading.jade    |    23 -
 .../js/app/modules/loading/loading.module.js    |    26 -
 .../js/app/modules/loading/loading.service.js   |    48 -
 .../js/app/modules/navbar/Navbar.provider.js    |    28 -
 .../js/app/modules/navbar/Userbar.provider.js   |    28 -
 .../js/app/modules/navbar/navbar.directive.js   |    30 -
 .../main/js/app/modules/navbar/navbar.module.js |    33 -
 .../js/app/modules/navbar/userbar.directive.js  |    48 -
 .../query-notebooks/query-notebooks.module.js   |   115 -
 .../src/main/js/app/modules/socket.module.js    |    41 -
 .../main/js/app/modules/states/admin.state.js   |    34 -
 .../app/modules/states/configuration.state.js   |   226 -
 .../caches/concurrency.directive.js             |    27 -
 .../configuration/caches/concurrency.jade       |    65 -
 .../configuration/caches/general.directive.js   |    27 -
 .../states/configuration/caches/general.jade    |    65 -
 .../configuration/caches/memory.directive.js    |    27 -
 .../states/configuration/caches/memory.jade     |    88 -
 .../configuration/caches/query.directive.js     |    27 -
 .../states/configuration/caches/query.jade      |    93 -
 .../configuration/caches/rebalance.directive.js |    27 -
 .../states/configuration/caches/rebalance.jade  |    65 -
 .../caches/server-near-cache.directive.js       |    27 -
 .../configuration/caches/server-near-cache.jade |    45 -
 .../caches/statistics.directive.js              |    27 -
 .../states/configuration/caches/statistics.jade |    37 -
 .../configuration/caches/store.directive.js     |    27 -
 .../states/configuration/caches/store.jade      |   271 -
 .../configuration/clusters/atomic.directive.js  |    27 -
 .../states/configuration/clusters/atomic.jade   |    53 -
 .../clusters/attributes.directive.js            |    27 -
 .../configuration/clusters/attributes.jade      |    58 -
 .../configuration/clusters/binary.directive.js  |    27 -
 .../states/configuration/clusters/binary.jade   |   100 -
 .../clusters/collision.directive.js             |    27 -
 .../configuration/clusters/collision.jade       |    60 -
 .../clusters/collision/custom.directive.js      |    27 -
 .../clusters/collision/custom.jade              |    24 -
 .../clusters/collision/fifo-queue.directive.js  |    27 -
 .../clusters/collision/fifo-queue.jade          |    28 -
 .../collision/job-stealing.directive.js         |    27 -
 .../clusters/collision/job-stealing.jade        |    64 -
 .../collision/priority-queue.directive.js       |    27 -
 .../clusters/collision/priority-queue.jade      |    43 -
 .../clusters/communication.directive.js         |    27 -
 .../configuration/clusters/communication.jade   |    96 -
 .../clusters/connector.directive.js             |    27 -
 .../configuration/clusters/connector.jade       |   103 -
 .../clusters/deployment.directive.js            |    27 -
 .../configuration/clusters/deployment.jade      |   119 -
 .../clusters/discovery.directive.js             |    27 -
 .../configuration/clusters/discovery.jade       |    83 -
 .../configuration/clusters/events.directive.js  |    27 -
 .../states/configuration/clusters/events.jade   |    37 -
 .../clusters/failover.directive.js              |    27 -
 .../states/configuration/clusters/failover.jade |    82 -
 .../configuration/clusters/general.directive.js |    27 -
 .../states/configuration/clusters/general.jade  |    68 -
 .../general/discovery/cloud.directive.js        |    27 -
 .../clusters/general/discovery/cloud.jade       |   127 -
 .../general/discovery/google.directive.js       |    27 -
 .../clusters/general/discovery/google.jade      |    38 -
 .../general/discovery/jdbc.directive.js         |    27 -
 .../clusters/general/discovery/jdbc.jade        |    24 -
 .../general/discovery/multicast.directive.js    |    27 -
 .../clusters/general/discovery/multicast.jade   |   109 -
 .../clusters/general/discovery/s3.directive.js  |    27 -
 .../clusters/general/discovery/s3.jade          |    27 -
 .../general/discovery/shared.directive.js       |    27 -
 .../clusters/general/discovery/shared.jade      |    23 -
 .../clusters/general/discovery/vm.directive.js  |    27 -
 .../clusters/general/discovery/vm.jade          |    90 -
 .../general/discovery/zookeeper.directive.js    |    27 -
 .../clusters/general/discovery/zookeeper.jade   |    74 -
 .../bounded-exponential-backoff.directive.js    |    27 -
 .../bounded-exponential-backoff.jade            |    27 -
 .../zookeeper/retrypolicy/custom.directive.js   |    27 -
 .../discovery/zookeeper/retrypolicy/custom.jade |    24 -
 .../exponential-backoff.directive.js            |    27 -
 .../retrypolicy/exponential-backoff.jade        |    27 -
 .../zookeeper/retrypolicy/forever.directive.js  |    27 -
 .../zookeeper/retrypolicy/forever.jade          |    22 -
 .../zookeeper/retrypolicy/n-times.directive.js  |    27 -
 .../zookeeper/retrypolicy/n-times.jade          |    25 -
 .../zookeeper/retrypolicy/one-time.directive.js |    27 -
 .../zookeeper/retrypolicy/one-time.jade         |    23 -
 .../retrypolicy/until-elapsed.directive.js      |    27 -
 .../zookeeper/retrypolicy/until-elapsed.jade    |    25 -
 .../configuration/clusters/igfs.directive.js    |    27 -
 .../states/configuration/clusters/igfs.jade     |    37 -
 .../configuration/clusters/logger.directive.js  |    27 -
 .../states/configuration/clusters/logger.jade   |    65 -
 .../clusters/logger/custom.directive.js         |    27 -
 .../configuration/clusters/logger/custom.jade   |    24 -
 .../clusters/logger/log4j.directive.js          |    27 -
 .../configuration/clusters/logger/log4j.jade    |    49 -
 .../clusters/logger/log4j2.directive.js         |    27 -
 .../configuration/clusters/logger/log4j2.jade   |    38 -
 .../clusters/marshaller.directive.js            |    27 -
 .../configuration/clusters/marshaller.jade      |    69 -
 .../configuration/clusters/metrics.directive.js |    27 -
 .../states/configuration/clusters/metrics.jade  |    50 -
 .../configuration/clusters/ssl.directive.js     |    27 -
 .../states/configuration/clusters/ssl.jade      |   108 -
 .../configuration/clusters/swap.directive.js    |    27 -
 .../states/configuration/clusters/swap.jade     |    67 -
 .../configuration/clusters/thread.directive.js  |    27 -
 .../states/configuration/clusters/thread.jade   |    48 -
 .../configuration/clusters/time.directive.js    |    27 -
 .../states/configuration/clusters/time.jade     |    47 -
 .../clusters/transactions.directive.js          |    27 -
 .../configuration/clusters/transactions.jade    |    59 -
 .../configuration/domains/general.directive.js  |    27 -
 .../states/configuration/domains/general.jade   |    46 -
 .../configuration/domains/query.directive.js    |    27 -
 .../states/configuration/domains/query.jade     |   169 -
 .../configuration/domains/store.directive.js    |    27 -
 .../states/configuration/domains/store.jade     |   126 -
 .../states/configuration/igfs/dual.directive.js |    27 -
 .../modules/states/configuration/igfs/dual.jade |    42 -
 .../igfs/fragmentizer.directive.js              |    27 -
 .../states/configuration/igfs/fragmentizer.jade |    43 -
 .../configuration/igfs/general.directive.js     |    27 -
 .../states/configuration/igfs/general.jade      |    53 -
 .../states/configuration/igfs/ipc.directive.js  |    27 -
 .../modules/states/configuration/igfs/ipc.jade  |    57 -
 .../states/configuration/igfs/misc.directive.js |    27 -
 .../modules/states/configuration/igfs/misc.jade |   108 -
 .../configuration/igfs/secondary.directive.js   |    27 -
 .../states/configuration/igfs/secondary.jade    |    44 -
 .../configuration/preview-panel.directive.js    |   239 -
 .../summary/summary-tabs.directive.js           |    50 -
 .../configuration/summary/summary.controller.js |   359 -
 .../configuration/summary/summary.resource.js   |    40 -
 .../main/js/app/modules/states/logout.state.js  |    36 -
 .../js/app/modules/states/password.state.js     |    46 -
 .../main/js/app/modules/states/profile.state.js |    34 -
 .../main/js/app/modules/states/signin.state.js  |    53 -
 .../src/main/js/app/modules/states/sql.state.js |    46 -
 .../main/js/app/modules/user/Auth.service.js    |    76 -
 .../main/js/app/modules/user/User.service.js    |    65 -
 .../src/main/js/app/modules/user/user.module.js |    28 -
 .../main/js/app/services/ChartColors.service.js |    22 -
 .../src/main/js/app/services/Clone.service.js   |    64 -
 .../src/main/js/app/services/Confirm.service.js |    70 -
 .../js/app/services/ConfirmBatch.service.js     |    92 -
 .../js/app/services/CopyToClipboard.service.js  |    50 -
 .../main/js/app/services/Countries.service.js   |    31 -
 .../src/main/js/app/services/Focus.service.js   |    33 -
 .../main/js/app/services/InetAddress.service.js |    53 -
 .../main/js/app/services/JavaTypes.service.js   |    84 -
 .../main/js/app/services/LegacyTable.service.js |   205 -
 .../main/js/app/services/LegacyUtils.service.js |   948 --
 .../main/js/app/services/Messages.service.js    |    63 -
 .../js/app/services/ModelNormalizer.service.js  |    59 -
 .../app/services/UnsavedChangesGuard.service.js |    38 -
 modules/web-console/src/main/js/app/vendor.js   |    54 -
 .../src/main/js/controllers/admin-controller.js |    91 -
 .../main/js/controllers/caches-controller.js    |   470 -
 .../main/js/controllers/clusters-controller.js  |   626 -
 .../main/js/controllers/domains-controller.js   |  1746 ---
 .../src/main/js/controllers/igfs-controller.js  |   401 -
 .../main/js/controllers/profile-controller.js   |    91 -
 .../src/main/js/controllers/sql-controller.js   |  1588 --
 .../src/main/js/generator/generator-common.js   |   611 -
 .../src/main/js/generator/generator-java.js     |  3404 -----
 .../src/main/js/generator/generator-optional.js |    25 -
 .../main/js/generator/generator-properties.js   |   150 -
 .../src/main/js/generator/generator-readme.js   |    85 -
 .../src/main/js/generator/generator-xml.js      |  1978 ---
 .../src/main/js/gulpfile.babel.js/index.js      |    26 -
 .../src/main/js/gulpfile.babel.js/paths.js      |    70 -
 .../main/js/gulpfile.babel.js/tasks/build.js    |    21 -
 .../main/js/gulpfile.babel.js/tasks/bundle.js   |    32 -
 .../main/js/gulpfile.babel.js/tasks/clean.js    |    32 -
 .../src/main/js/gulpfile.babel.js/tasks/copy.js |    33 -
 .../gulpfile.babel.js/tasks/ignite-modules.js   |    55 -
 .../src/main/js/gulpfile.babel.js/tasks/jade.js |    40 -
 .../main/js/gulpfile.babel.js/tasks/watch.js    |    31 -
 .../main/js/gulpfile.babel.js/webpack/common.js |   192 -
 .../webpack/environments/development.js         |    64 -
 .../webpack/environments/production.js          |    45 -
 .../main/js/gulpfile.babel.js/webpack/index.js  |    32 -
 .../webpack/plugins/progress.js                 |    82 -
 .../src/main/js/ignite_modules/README.txt       |     6 -
 .../src/main/js/ignite_modules/index.js         |    27 -
 modules/web-console/src/main/js/package.json    |   128 -
 .../web-console/src/main/js/public/favicon.ico  |   Bin 1150 -> 0 bytes
 .../src/main/js/public/images/cache.png         |   Bin 23700 -> 0 bytes
 .../src/main/js/public/images/cluster.png       |   Bin 29376 -> 0 bytes
 .../src/main/js/public/images/docker.png        |   Bin 521 -> 0 bytes
 .../src/main/js/public/images/domains.png       |   Bin 23828 -> 0 bytes
 .../src/main/js/public/images/igfs.png          |   Bin 14307 -> 0 bytes
 .../src/main/js/public/images/ignite-logo.png   |   Bin 1982 -> 0 bytes
 .../main/js/public/images/ignite-logo@2x.png    |   Bin 3325 -> 0 bytes
 .../src/main/js/public/images/ignite-puzzle.png |   Bin 71974 -> 0 bytes
 .../src/main/js/public/images/java.png          |   Bin 170 -> 0 bytes
 .../src/main/js/public/images/pb-ignite.png     |   Bin 3493 -> 0 bytes
 .../src/main/js/public/images/pb-ignite@2x.png  |   Bin 8558 -> 0 bytes
 .../src/main/js/public/images/query-chart.png   |   Bin 16637 -> 0 bytes
 .../main/js/public/images/query-metadata.png    |   Bin 32298 -> 0 bytes
 .../src/main/js/public/images/query-table.png   |   Bin 29189 -> 0 bytes
 .../src/main/js/public/images/summary.png       |   Bin 31997 -> 0 bytes
 .../src/main/js/public/images/xml.png           |   Bin 232 -> 0 bytes
 .../public/stylesheets/_bootstrap-custom.scss   |    65 -
 .../stylesheets/_bootstrap-variables.scss       |   891 --
 .../stylesheets/_font-awesome-custom.scss       |    32 -
 .../src/main/js/public/stylesheets/style.scss   |  2156 ---
 .../main/js/public/stylesheets/variables.scss   |    28 -
 modules/web-console/src/main/js/serve.js        |   116 -
 modules/web-console/src/main/js/serve/agent.js  |   714 -
 .../src/main/js/serve/agent_dists/README.txt    |     7 -
 modules/web-console/src/main/js/serve/app.js    |    42 -
 .../web-console/src/main/js/serve/browser.js    |   378 -
 .../main/js/serve/config/settings.json.sample   |    26 -
 .../web-console/src/main/js/serve/configure.js  |    84 -
 modules/web-console/src/main/js/serve/mail.js   |    75 -
 modules/web-console/src/main/js/serve/mongo.js  |   676 -
 .../src/main/js/serve/routes/admin.js           |   126 -
 .../src/main/js/serve/routes/agent.js           |    81 -
 .../src/main/js/serve/routes/caches.js          |   132 -
 .../src/main/js/serve/routes/clusters.js        |   146 -
 .../src/main/js/serve/routes/demo.js            |   135 -
 .../src/main/js/serve/routes/demo/caches.json   |    87 -
 .../src/main/js/serve/routes/demo/clusters.json |    50 -
 .../src/main/js/serve/routes/demo/domains.json  |   307 -
 .../src/main/js/serve/routes/demo/igfss.json    |    10 -
 .../src/main/js/serve/routes/domains.js         |   195 -
 .../src/main/js/serve/routes/igfs.js            |   122 -
 .../src/main/js/serve/routes/notebooks.js       |   121 -
 .../src/main/js/serve/routes/profile.js         |   102 -
 .../src/main/js/serve/routes/public.js          |   235 -
 .../src/main/js/serve/routes/routes.js          |   103 -
 .../web-console/src/main/js/serve/settings.js   |    84 -
 modules/web-console/src/main/js/views/base.jade |    22 -
 .../src/main/js/views/configuration/caches.jade |    52 -
 .../main/js/views/configuration/clusters.jade   |    64 -
 .../js/views/configuration/domains-import.jade  |   211 -
 .../main/js/views/configuration/domains.jade    |    66 -
 .../src/main/js/views/configuration/igfs.jade   |    51 -
 .../main/js/views/configuration/sidebar.jade    |    29 -
 .../summary-project-structure.jade              |    27 -
 .../js/views/configuration/summary-tabs.jade    |    25 -
 .../main/js/views/configuration/summary.jade    |   152 -
 .../src/main/js/views/includes/footer.jade      |    23 -
 .../src/main/js/views/includes/header.jade      |    51 -
 .../web-console/src/main/js/views/index.jade    |    48 -
 .../web-console/src/main/js/views/reset.jade    |    48 -
 .../src/main/js/views/settings/admin.jade       |    76 -
 .../src/main/js/views/settings/profile.jade     |    76 -
 .../web-console/src/main/js/views/signin.jade   |   163 -
 .../src/main/js/views/sql/cache-metadata.jade   |    40 -
 .../src/main/js/views/sql/chart-settings.jade   |    40 -
 .../src/main/js/views/sql/notebook-new.jade     |    31 -
 .../src/main/js/views/sql/paragraph-rate.jade   |    31 -
 .../web-console/src/main/js/views/sql/sql.jade  |   201 -
 .../main/js/views/templates/agent-download.jade |    48 -
 .../src/main/js/views/templates/alert.jade      |    21 -
 .../main/js/views/templates/batch-confirm.jade  |    32 -
 .../src/main/js/views/templates/clone.jade      |    31 -
 .../src/main/js/views/templates/confirm.jade    |    31 -
 .../src/main/js/views/templates/demo-info.jade  |    45 -
 .../src/main/js/views/templates/dropdown.jade   |    21 -
 .../js/views/templates/getting-started.jade     |    32 -
 .../src/main/js/views/templates/message.jade    |    26 -
 .../src/main/js/views/templates/pagination.jade |    32 -
 .../src/main/js/views/templates/select.jade     |    26 -
 .../js/views/templates/validation-error.jade    |    25 -
 modules/web-console/src/test/js/routes/agent.js |    94 -
 modules/web-console/web-agent/.gitignore        |     2 +
 modules/web-console/web-agent/README.txt        |    88 +
 .../web-agent/assembly/release-web-agent.xml    |    66 +
 .../web-agent/bin/ignite-web-agent.bat          |    75 +
 .../web-agent/bin/ignite-web-agent.sh           |    91 +
 modules/web-console/web-agent/demo/README.txt   |     4 +
 modules/web-console/web-agent/demo/db-init.sql  |   102 +
 .../web-agent/jdbc-drivers/README.txt           |    10 +
 modules/web-console/web-agent/logs/README.txt   |     5 +
 modules/web-console/web-agent/pom.xml           |   199 +
 .../console/agent/AgentConfiguration.java       |   265 +
 .../ignite/console/agent/AgentLauncher.java     |   342 +
 .../apache/ignite/console/agent/AgentUtils.java |   111 +
 .../console/agent/handlers/AbstractHandler.java |   110 +
 .../console/agent/handlers/DatabaseHandler.java |   298 +
 .../console/agent/handlers/RestHandler.java     |   276 +
 .../ignite/console/demo/AgentClusterDemo.java   |   642 +
 .../ignite/console/demo/AgentMetadataDemo.java  |    92 +
 .../apache/ignite/console/demo/model/Car.java   |   152 +
 .../ignite/console/demo/model/Country.java      |   152 +
 .../ignite/console/demo/model/Department.java   |   152 +
 .../ignite/console/demo/model/Employee.java     |   356 +
 .../ignite/console/demo/model/Parking.java      |   152 +
 .../src/main/resources/log4j.properties         |    53 +
 modules/web/ignite-appserver-test/pom.xml       |     2 +-
 modules/web/ignite-websphere-test/pom.xml       |     2 +-
 modules/web/pom.xml                             |     2 +-
 .../ignite/cache/websession/WebSessionV2.java   |    26 +-
 .../IgniteWebSessionSelfTestSuite.java          |    68 +-
 .../WebSessionReplicatedSelfTest.java           |    28 +
 .../WebSessionReplicatedV1SelfTest.java         |    28 +
 .../internal/websession/WebSessionSelfTest.java |     2 +
 .../WebSessionTransactionalSelfTest.java        |    48 +
 .../WebSessionTransactionalV1SelfTest.java      |    28 +
 .../websession/WebSessionV1SelfTest.java        |    28 +
 .../config/benchmark-bin-identity.properties    |    94 +
 .../config/benchmark-client-mode.properties     |     2 +
 .../config/benchmark-multicast.properties       |    15 +
 .../config/benchmark-sql-dml.properties         |    72 +
 .../config/benchmark-tx-win.properties          |     2 +
 .../yardstick/config/benchmark-tx.properties    |     2 +
 .../yardstick/config/benchmark-win.properties   |     2 +
 modules/yardstick/config/benchmark.properties   |     2 +
 modules/yardstick/config/ignite-base-config.xml |    71 +-
 .../config/ignite-bin-multicast-config.xml      |    86 +
 modules/yardstick/pom.xml                       |     2 +-
 .../org/apache/ignite/yardstick/IgniteNode.java |    74 +-
 .../yardstick/cache/CacheEntryEventProbe.java   |     2 +-
 .../cache/IgniteAtomicSequenceBenchmark.java    |    47 +
 .../cache/IgniteBinaryIdentityBenchmark.java    |   108 +
 .../cache/IgniteBinaryIdentityGetBenchmark.java |    34 +
 .../cache/IgniteBinaryIdentityPutBenchmark.java |    35 +
 .../IgniteFieldsBinaryIdentityGetBenchmark.java |    30 +
 .../IgniteFieldsBinaryIdentityPutBenchmark.java |    30 +
 .../cache/IgniteGetAndPutBenchmark.java         |    41 +
 .../cache/IgniteGetAndPutTxBenchmark.java       |    70 +
 .../cache/IgniteInvokeTxBenchmark.java          |    40 +
 .../yardstick/cache/IgniteIoTestBenchmark.java  |    73 +
 .../IgniteLegacyBinaryIdentityGetBenchmark.java |    30 +
 .../IgniteLegacyBinaryIdentityPutBenchmark.java |    30 +
 ...IgnitePutIfAbsentIndexedValue1Benchmark.java |    45 +
 .../IgniteReplaceIndexedValue1Benchmark.java    |    79 +
 .../cache/dml/IgniteSqlDeleteBenchmark.java     |    83 +
 .../dml/IgniteSqlDeleteFilteredBenchmark.java   |    88 +
 .../IgniteSqlInsertIndexedValue1Benchmark.java  |    48 +
 .../IgniteSqlInsertIndexedValue2Benchmark.java  |    48 +
 .../IgniteSqlInsertIndexedValue8Benchmark.java  |    48 +
 .../cache/dml/IgniteSqlMergeAllBenchmark.java   |    82 +
 .../cache/dml/IgniteSqlMergeBenchmark.java      |    42 +
 .../IgniteSqlMergeIndexedValue1Benchmark.java   |    43 +
 .../IgniteSqlMergeIndexedValue2Benchmark.java   |    43 +
 .../IgniteSqlMergeIndexedValue8Benchmark.java   |    43 +
 .../cache/dml/IgniteSqlMergeQueryBenchmark.java |   116 +
 .../cache/dml/IgniteSqlUpdateBenchmark.java     |    82 +
 .../dml/IgniteSqlUpdateFilteredBenchmark.java   |    88 +
 .../yardstick/cache/model/SampleValue.java      |     2 +
 .../io/IgniteIoTestAbstractBenchmark.java       |    61 +
 .../io/IgniteIoTestSendAllBenchmark.java        |    32 +
 .../io/IgniteIoTestSendRandomBenchmark.java     |    35 +
 modules/yarn/pom.xml                            |     2 +-
 modules/zookeeper/pom.xml                       |     2 +-
 parent/pom.xml                                  |    24 +-
 pom.xml                                         |    20 +-
 2915 files changed, 237926 insertions(+), 155408 deletions(-)
----------------------------------------------------------------------



[09/50] [abbrv] ignite git commit: Merge branches 'ignite-gg-11729' and 'ignite-gg-8.0.2.ea1' of https://github.com/gridgain/apache-ignite into ignite-gg-11729

Posted by ag...@apache.org.
Merge branches 'ignite-gg-11729' and 'ignite-gg-8.0.2.ea1' of https://github.com/gridgain/apache-ignite into ignite-gg-11729

# Conflicts:
#	modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java

Merge branches 'ignite-gg-11729' and 'ignite-gg-8.0.2.ea1' of https://github.com/ggprivate/ggprivate into ignite-gg-11729

# Conflicts:
#	modules/pds/src/main/java/org/gridgain/grid/internal/processors/cache/database/GridCacheDatabaseSharedManager.java


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

Branch: refs/heads/ignite-3477
Commit: 9f9be208414fb141c192b5d6c688021acd09ec25
Parents: dffee01
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Tue Dec 20 23:33:03 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Tue Dec 20 23:33:03 2016 +0300

----------------------------------------------------------------------
 .../ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9f9be208/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java
index 8de4c40..2fb9643 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotProgressMessage.java
@@ -120,7 +120,7 @@ public class SnapshotProgressMessage implements Message {
 
     /** {@inheritDoc} */
     @Override public byte directType() {
-        return -38;
+        return -39;
     }
 
     /** {@inheritDoc} */


[10/50] [abbrv] ignite git commit: Merge with master - WIP.

Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousHandler.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java
index 04b34a7,bb9ffdd..bd657bb
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java
@@@ -77,8 -79,7 +80,9 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cache.IgniteCacheProxy;
  import org.apache.ignite.internal.processors.cache.KeyCacheObject;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtInvalidPartitionException;
 +import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition;
 +import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTopologyFuture;
  import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
  import org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessor;
  import org.apache.ignite.internal.processors.dr.GridDrType;
@@@ -1648,104 -1928,47 +1931,106 @@@ public class DataStreamerImpl<K, V> imp
  
              ExpiryPolicy plc = cctx.expiry();
  
 -            for (Entry<KeyCacheObject, CacheObject> e : entries) {
 -                try {
 -                    e.getKey().finishUnmarshal(cctx.cacheObjectContext(), cctx.deploy().globalLoader());
 +            Collection<Integer> reservedParts = new HashSet<>();
 +            Collection<Integer> ignoredParts = new HashSet<>();
  
 -                    GridCacheEntryEx entry = internalCache.entryEx(e.getKey(), topVer);
 +            try {
 +                for (Entry<KeyCacheObject, CacheObject> e : entries) {
 +                    cctx.shared().database().checkpointReadLock();
  
 -                    if (plc != null) {
 -                        ttl = CU.toTtl(plc.getExpiryForCreation());
 +                    try {
 +                        e.getKey().finishUnmarshal(cctx.cacheObjectContext(), cctx.deploy().globalLoader());
  
 -                        if (ttl == CU.TTL_ZERO)
 -                            continue;
 -                        else if (ttl == CU.TTL_NOT_CHANGED)
 -                            ttl = 0;
 +                        if (!cctx.isLocal()) {
 +                            int p = cctx.affinity().partition(e.getKey());
  
 -                        expiryTime = CU.toExpireTime(ttl);
 -                    }
 +                            if (ignoredParts.contains(p))
 +                                continue;
 +
 +                            if (!reservedParts.contains(p)) {
 +                                GridDhtLocalPartition part = cctx.topology().localPartition(p, topVer, true);
 +
 +                                if (!part.reserve()) {
 +                                    ignoredParts.add(p);
 +
 +                                    continue;
 +                                }
 +                                else {
 +                                    // We must not allow to read from RENTING partitions.
 +                                    if (part.state() == GridDhtPartitionState.RENTING) {
 +                                        part.release();
 +
 +                                        ignoredParts.add(p);
 +
 +                                        continue;
 +                                    }
 +
 +                                    reservedParts.add(p);
 +                                }
 +                            }
 +                        }
 +
 +                        GridCacheEntryEx entry = internalCache.entryEx(e.getKey(), topVer);
 +
 +                        if (plc != null) {
 +                            ttl = CU.toTtl(plc.getExpiryForCreation());
 +
 +                            if (ttl == CU.TTL_ZERO)
 +                                continue;
 +                            else if (ttl == CU.TTL_NOT_CHANGED)
 +                                ttl = 0;
 +
 +                            expiryTime = CU.toExpireTime(ttl);
 +                        }
  
-                         entry.initialValue(e.getValue(),
-                             ver,
-                             ttl,
-                             expiryTime,
-                             false,
-                             topVer,
-                             GridDrType.DR_LOAD,
-                             false);
+                     boolean primary = cctx.affinity().primary(cctx.localNode(), entry.key(), topVer);
+ 
+                     entry.initialValue(e.getValue(),
+                         ver,
+                         ttl,
+                         expiryTime,
+                         false,
+                         topVer,
+                         primary ? GridDrType.DR_LOAD : GridDrType.DR_PRELOAD,
+                         false);
  
 -                    cctx.evicts().touch(entry, topVer);
 +                        cctx.evicts().touch(entry, topVer);
  
 -                    CU.unwindEvicts(cctx);
 +                        CU.unwindEvicts(cctx);
  
 -                    entry.onUnlock();
 +                        entry.onUnlock();
 +                    }
 +                    catch (GridDhtInvalidPartitionException ignored) {
 +                        ignoredParts.add(cctx.affinity().partition(e.getKey()));
 +                    }
 +                    catch (GridCacheEntryRemovedException ignored) {
 +                        // No-op.
 +                    }
 +                    catch (IgniteCheckedException ex) {
 +                        IgniteLogger log = cache.unwrap(Ignite.class).log();
 +
 +                        U.error(log, "Failed to set initial value for cache entry: " + e, ex);
 +                    }
 +                    finally {
 +                        cctx.shared().database().checkpointReadUnlock();
 +                    }
                  }
 -                catch (GridDhtInvalidPartitionException | GridCacheEntryRemovedException ignored) {
 -                    // No-op.
 +            }
 +            finally {
 +                for (Integer part : reservedParts) {
 +                    GridDhtLocalPartition locPart = cctx.topology().localPartition(part, topVer, false);
 +
 +                    assert locPart != null : "Evicted reserved partition: " + locPart;
 +
 +                    locPart.release();
                  }
 -                catch (IgniteCheckedException ex) {
 -                    IgniteLogger log = cache.unwrap(Ignite.class).log();
  
 -                    U.error(log, "Failed to set initial value for cache entry: " + e, ex);
 +                try {
 +                    if (!cctx.isNear() && cctx.shared().wal() != null)
 +                        cctx.shared().wal().fsync(null);
 +                }
 +                catch (IgniteCheckedException e) {
 +                    U.error(log, "Failed to write preloaded entries into write-ahead log: " + e, e);
                  }
              }
          }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java
index af9c80f,f845675..d668009
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java
@@@ -47,14 -40,10 +47,15 @@@ import org.apache.ignite.configuration.
  import org.apache.ignite.configuration.IgniteConfiguration;
  import org.apache.ignite.configuration.NearCacheConfiguration;
  import org.apache.ignite.configuration.TransactionConfiguration;
 -import org.apache.ignite.internal.binary.*;
 +import org.apache.ignite.internal.binary.BinaryRawReaderEx;
 +import org.apache.ignite.internal.binary.BinaryRawWriterEx;
  import org.apache.ignite.internal.processors.platform.cache.affinity.PlatformAffinityFunction;
+ import org.apache.ignite.internal.processors.platform.cache.expiry.PlatformExpiryPolicyFactory;
 -import org.apache.ignite.platform.dotnet.*;
 +import org.apache.ignite.platform.dotnet.PlatformDotNetAffinityFunction;
 +import org.apache.ignite.platform.dotnet.PlatformDotNetBinaryConfiguration;
 +import org.apache.ignite.platform.dotnet.PlatformDotNetBinaryTypeConfiguration;
 +import org.apache.ignite.platform.dotnet.PlatformDotNetCacheStoreFactoryNative;
 +import org.apache.ignite.platform.dotnet.PlatformDotNetConfiguration;
  import org.apache.ignite.spi.communication.CommunicationSpi;
  import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
  import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpiMBean;
@@@ -63,6 -52,9 +64,7 @@@ import org.apache.ignite.spi.discovery.
  import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
  import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder;
  import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 -import org.apache.ignite.spi.swapspace.SwapSpaceSpi;
+ import org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi;
 -import org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpiMBean;
  import org.apache.ignite.transactions.TransactionConcurrency;
  import org.apache.ignite.transactions.TransactionIsolation;
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index c9d8c8f,1594cee..db32c64
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@@ -45,13 -69,14 +70,16 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cache.CacheObject;
  import org.apache.ignite.internal.processors.cache.CacheObjectContext;
  import org.apache.ignite.internal.processors.cache.GridCacheContext;
 +import org.apache.ignite.internal.processors.cache.KeyCacheObject;
  import org.apache.ignite.internal.processors.cache.GridCacheDefaultAffinityKeyMapper;
+ import org.apache.ignite.internal.processors.cache.IgniteCacheProxy;
  import org.apache.ignite.internal.processors.cache.QueryCursorImpl;
  import org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl;
  import org.apache.ignite.internal.processors.cache.query.CacheQueryFuture;
  import org.apache.ignite.internal.processors.cache.query.CacheQueryType;
+ import org.apache.ignite.internal.processors.cache.query.GridCacheQueryType;
 +import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
+ import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor;
  import org.apache.ignite.internal.util.GridSpinBusyLock;
  import org.apache.ignite.internal.util.future.GridCompoundFuture;
  import org.apache.ignite.internal.util.future.GridFinishedFuture;
@@@ -151,9 -155,9 +158,12 @@@ public class GridQueryProcessor extend
      private final GridQueryIndexing idx;
  
      /** */
+     private GridTimeoutProcessor.CancelableTask qryDetailMetricsEvictTask;
+ 
+     /** */
 +    private boolean skipFieldLookup;
 +
 +    /** */
      private static final ThreadLocal<AffinityTopologyVersion> requestTopVer = new ThreadLocal<>();
  
      /**
@@@ -958,9 -1004,16 +1062,16 @@@
  
                      QueryCursorImpl<List<?>> cursor = new QueryCursorImpl<>(new Iterable<List<?>>() {
                          @Override public Iterator<List<?>> iterator() {
-                             return new GridQueryCacheObjectsIterator(res.iterator(), cctx, keepBinary);
+                             try {
 -                                sendQueryExecutedEvent(sql, args);
++                                sendQueryExecutedEvent(sql, args, space);
+ 
+                                 return new GridQueryCacheObjectsIterator(res.iterator(), cctx, keepBinary);
+                             }
+                             catch (IgniteCheckedException e) {
+                                 throw new IgniteException(e);
+                             }
                          }
-                     });
+                     }, cancel);
  
                      cursor.fieldsMeta(res.metaData());
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryTypeDescriptor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
index bee5fae,9a5f077..1a36a81
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
@@@ -1220,15 -1263,9 +1255,15 @@@ public class GridServiceProcessor exten
      @SuppressWarnings("unchecked")
      private Iterator<Cache.Entry<Object, Object>> serviceEntries(IgniteBiPredicate<Object, Object> p) {
          try {
 +            GridCacheQueryManager qryMgr = cache.context().queries();
 +
 +            CacheQuery<Map.Entry<Object, Object>> qry = qryMgr.createScanQuery(p, null, false);
 +
 +            qry.keepAll(false);
 +
              if (!cache.context().affinityNode()) {
                  ClusterNode oldestSrvNode =
-                     CU.oldestAliveCacheServerNode(cache.context().shared(), AffinityTopologyVersion.NONE);
+                     ctx.discovery().oldestAliveCacheServerNode(AffinityTopologyVersion.NONE);
  
                  if (oldestSrvNode == null)
                      return new GridEmptyIterator<>();

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index a177c5b,3dfb3c6..e21838b
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@@ -8899,54 -8933,45 +9025,98 @@@ public abstract class IgniteUtils 
       * @param userWorkDir Ignite work folder provided by user.
       * @param userIgniteHome Ignite home folder provided by user.
       */
 +    public static void setWorkDirectory(@Nullable String userWorkDir, @Nullable String userIgniteHome)
 +        throws IgniteCheckedException {
 +        String igniteWork0 = igniteWork;
 +
 +        if (igniteWork0 == null) {
 +            synchronized (IgniteUtils.class) {
 +                // Double check.
 +                igniteWork0 = igniteWork;
 +
 +                if (igniteWork0 != null)
 +                    return;
 +
 +                File workDir;
 +
 +                if (!F.isEmpty(userWorkDir))
 +                    workDir = new File(userWorkDir);
 +                else if (!F.isEmpty(IGNITE_WORK_DIR))
 +                    workDir = new File(IGNITE_WORK_DIR);
 +                else if (!F.isEmpty(userIgniteHome))
 +                    workDir = new File(userIgniteHome, "work");
 +                else {
 +                    String tmpDirPath = System.getProperty("java.io.tmpdir");
 +
 +                    if (tmpDirPath == null)
 +                        throw new IgniteCheckedException("Failed to create work directory in OS temp " +
 +                            "(property 'java.io.tmpdir' is null).");
 +
 +                    workDir = new File(tmpDirPath, "ignite" + File.separator + "work");
 +                }
 +
 +                if (!workDir.isAbsolute())
 +                    throw new IgniteCheckedException("Work directory path must be absolute: " + workDir);
 +
 +                if (!mkdirs(workDir))
 +                    throw new IgniteCheckedException("Work directory does not exist and cannot be created: " + workDir);
 +
 +                if (!workDir.canRead())
 +                    throw new IgniteCheckedException("Cannot read from work directory: " + workDir);
 +
 +                if (!workDir.canWrite())
 +                    throw new IgniteCheckedException("Cannot write to work directory: " + workDir);
 +
 +                igniteWork = workDir.getAbsolutePath();
 +            }
 +        }
 +    }
 +
 +    /**
++     * Get work directory for the given user-provided work directory and Ignite home.
++     *
++     * @param userWorkDir Ignite work folder provided by user.
++     * @param userIgniteHome Ignite home folder provided by user.
++     */
+     public static String workDirectory(@Nullable String userWorkDir, @Nullable String userIgniteHome)
+         throws IgniteCheckedException {
+         if (userIgniteHome == null)
+             userIgniteHome = getIgniteHome();
+ 
+         File workDir;
+ 
+         if (!F.isEmpty(userWorkDir))
+             workDir = new File(userWorkDir);
+         else if (!F.isEmpty(IGNITE_WORK_DIR))
+             workDir = new File(IGNITE_WORK_DIR);
+         else if (!F.isEmpty(userIgniteHome))
+             workDir = new File(userIgniteHome, "work");
+         else {
+             String tmpDirPath = System.getProperty("java.io.tmpdir");
+ 
+             if (tmpDirPath == null)
+                 throw new IgniteCheckedException("Failed to create work directory in OS temp " +
+                     "(property 'java.io.tmpdir' is null).");
+ 
+             workDir = new File(tmpDirPath, "ignite" + File.separator + "work");
+         }
+ 
+         if (!workDir.isAbsolute())
+             throw new IgniteCheckedException("Work directory path must be absolute: " + workDir);
+ 
+         if (!mkdirs(workDir))
+             throw new IgniteCheckedException("Work directory does not exist and cannot be created: " + workDir);
+ 
+         if (!workDir.canRead())
+             throw new IgniteCheckedException("Cannot read from work directory: " + workDir);
+ 
+         if (!workDir.canWrite())
+             throw new IgniteCheckedException("Cannot write to work directory: " + workDir);
+ 
+         return workDir.getAbsolutePath();
+     }
+ 
+     /**
       * Nullifies Ignite home directory. For test purposes only.
       */
      public static void nullifyHomeDirectory() {
@@@ -8954,30 -8979,16 +9124,32 @@@
      }
  
      /**
 +     * Nullifies work directory. For test purposes only.
 +     */
 +    public static void nullifyWorkDirectory() {
 +        igniteWork = null;
 +    }
 +
 +    /**
       * Resolves work directory.
       *
+      * @param workDir Work directory.
       * @param path Path to resolve.
       * @param delIfExist Flag indicating whether to delete the specify directory or not.
       * @return Resolved work directory.
       * @throws IgniteCheckedException If failed.
       */
-     public static File resolveWorkDirectory(String path, boolean delIfExist) throws IgniteCheckedException {
+     public static File resolveWorkDirectory(String workDir, String path, boolean delIfExist)
+         throws IgniteCheckedException {
 +        if (path == null) {
 +            String ggWork0 = igniteWork;
 +
 +            if (F.isEmpty(ggWork0))
 +                throw new IgniteCheckedException("Failed to resolve path (work directory has not been set): " + path);
 +
 +            return new File(igniteWork);
 +        }
 +
          File dir = new File(path);
  
          if (!dir.isAbsolute()) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioRecoveryDescriptor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
index 1c4599c,bc1f173..82225bc
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
@@@ -550,6 -642,31 +642,38 @@@ public class GridNioServer<T> 
      }
  
      /**
+      * @return Workers.
+      */
+     public List<AbstractNioClientWorker> workers() {
+         return clientWorkers;
+     }
+ 
+     /**
+      * @param ses Session.
+      * @param from Move from index.
+      * @param to Move to index.
+      */
+     private void moveSession(GridNioSession ses, int from, int to) {
+         assert from >= 0 && from < clientWorkers.size() : from;
+         assert to >= 0 && to < clientWorkers.size() : to;
+         assert from != to;
+ 
+         GridSelectorNioSessionImpl ses0 = (GridSelectorNioSessionImpl)ses;
+ 
+         SessionMoveFuture fut = new SessionMoveFuture(ses0, to);
+ 
+         if (!ses0.offerMove(clientWorkers.get(from), fut))
+             fut.onDone(false);
+     }
+ 
+     /**
++     * @return Sessions.
++     */
++    public Collection<? extends GridNioSession> sessions() {
++        return sessions;
++    }
++
++    /**
       * @param ses Session.
       * @param op Operation.
       * @return Future for operation.
@@@ -2618,6 -3240,18 +3247,28 @@@
          }
  
          /**
++         * @param srvName Logical server name for threads identification.
++         * @return This for chaining.
++         */
++        public Builder<T> serverName(@Nullable String srvName) {
++            this.srvName = srvName;
++
++            return this;
++        }
++
++        /**
+          * @param selectorSpins Defines how many non-blocking {@code selector.selectNow()} should be made before
+          *      falling into {@code selector.select(long)} in NIO server. Long value. Default is {@code 0}.
+          *      Can be set to {@code Long.MAX_VALUE} so selector threads will never block.
+          * @return This for chaining.
+          */
+         public Builder<T> selectorSpins(long selectorSpins) {
+             this.selectorSpins = selectorSpins;
+ 
+             return this;
+         }
+ 
+         /**
           * @param tcpNoDelay If TCP_NODELAY option should be set to accepted sockets.
           * @return This for chaining.
           */

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
index 6b00281,66f9176..c257a8c
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
@@@ -43,9 -45,9 +45,12 @@@ class GridSelectorNioSessionImpl extend
      @GridToStringExclude
      private SelectionKey key;
  
+     /** Current worker thread. */
+     private volatile GridNioWorker worker;
+ 
 +    /** Worker index for server */
 +    private final int selectorIdx;
 +
      /** Semaphore. */
      @GridToStringExclude
      private final Semaphore sem;

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryJob.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/main/resources/META-INF/classnames.properties
----------------------------------------------------------------------
diff --cc modules/core/src/main/resources/META-INF/classnames.properties
index deab7da,4c9596c..ac3a992
--- a/modules/core/src/main/resources/META-INF/classnames.properties
+++ b/modules/core/src/main/resources/META-INF/classnames.properties
@@@ -534,14 -534,7 +534,15 @@@ org.apache.ignite.internal.processors.c
  org.apache.ignite.internal.processors.cache.GridCacheUtils$9
  org.apache.ignite.internal.processors.cache.GridCacheValueCollection
  org.apache.ignite.internal.processors.cache.GridCacheValueCollection$1
 +org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$1
 +org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$2
 +org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$3
 +org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$4
 +org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$5
 +org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$6
 +org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$7
 +org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$8
+ org.apache.ignite.internal.processors.cache.GridDeferredAckMessageSender$DeferredAckMessageBuffer
  org.apache.ignite.internal.processors.cache.IgniteCacheProxy
  org.apache.ignite.internal.processors.cache.IgniteCacheProxy$1
  org.apache.ignite.internal.processors.cache.IgniteCacheProxy$10
@@@ -552,13 -545,15 +553,17 @@@ org.apache.ignite.internal.processors.c
  org.apache.ignite.internal.processors.cache.IgniteCacheProxy$5
  org.apache.ignite.internal.processors.cache.IgniteCacheProxy$8
  org.apache.ignite.internal.processors.cache.IgniteCacheProxy$9
 +org.apache.ignite.internal.processors.cache.IgniteRebalanceIterator
  org.apache.ignite.internal.processors.cache.KeyCacheObject
  org.apache.ignite.internal.processors.cache.KeyCacheObjectImpl
+ org.apache.ignite.internal.processors.cache.QueryCursorImpl$State
  org.apache.ignite.internal.processors.cache.affinity.GridCacheAffinityProxy
  org.apache.ignite.internal.processors.cache.binary.BinaryMetadataKey
  org.apache.ignite.internal.processors.cache.binary.CacheDefaultBinaryAffinityKeyMapper
 +org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$4
+ org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$1
+ org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$5
+ org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$6
  org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$MetaDataEntryFilter
  org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$MetaDataPredicate
  org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$MetadataProcessor
@@@ -690,13 -683,19 +697,19 @@@ org.apache.ignite.internal.processors.c
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$7
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$8
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$9
- org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$DeferredResponseBuffer
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicDeferredUpdateResponse
+ org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicSingleUpdateRequest
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateRequest
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateResponse
 -org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractSingleUpdateRequest
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture$1
++org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractSingleUpdateRequest
+ org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateRequest
+ org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicFullUpdateRequest
+ org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFilterRequest
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture$1
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture$2
+ org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateInvokeRequest
+ org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateRequest
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture$1
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture$2
  org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture$3
@@@ -832,14 -832,18 +845,24 @@@ org.apache.ignite.internal.processors.c
  org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$7
  org.apache.ignite.internal.processors.cache.query.GridCacheQueryAdapter$1
  org.apache.ignite.internal.processors.cache.query.GridCacheQueryAdapter$ScanQueryFallbackClosableIterator
+ org.apache.ignite.internal.processors.cache.query.GridCacheQueryDetailMetricsAdapter
  org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter$1
  org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter$2
 +org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$1$1
 +org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$1$2
 +org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$10$1
 +org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$2
 +org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$3
 +org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$4
+ org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$11
+ org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$12
+ org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$14
+ org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$15
+ org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$16
+ org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$17
+ org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$18$1
+ org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$4$1
+ org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$4$2
  org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5
  org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$6
  org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$7
@@@ -1189,7 -1198,8 +1215,9 @@@ org.apache.ignite.internal.processors.p
  org.apache.ignite.internal.processors.platform.PlatformJavaObjectFactoryProxy
  org.apache.ignite.internal.processors.platform.PlatformNativeException
  org.apache.ignite.internal.processors.platform.PlatformNoCallbackException
 +org.apache.ignite.internal.processors.platform.cache.PlatformCache$3
+ org.apache.ignite.internal.processors.platform.PlatformProcessorImpl$1
+ org.apache.ignite.internal.processors.platform.cache.PlatformCache$5
  org.apache.ignite.internal.processors.platform.cache.PlatformCacheEntryFilter
  org.apache.ignite.internal.processors.platform.cache.PlatformCacheEntryFilterImpl
  org.apache.ignite.internal.processors.platform.cache.PlatformCacheEntryProcessor

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreAbstractSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/managers/GridManagerStopSelfTest.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/internal/managers/GridManagerStopSelfTest.java
index 6d0b06a,328b775..50691b6
--- a/modules/core/src/test/java/org/apache/ignite/internal/managers/GridManagerStopSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/GridManagerStopSelfTest.java
@@@ -26,6 -26,8 +26,7 @@@ import org.apache.ignite.internal.manag
  import org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager;
  import org.apache.ignite.internal.managers.failover.GridFailoverManager;
  import org.apache.ignite.internal.managers.loadbalancer.GridLoadBalancerManager;
 -import org.apache.ignite.internal.managers.swapspace.GridSwapSpaceManager;
+ import org.apache.ignite.internal.processors.pool.PoolProcessor;
  import org.apache.ignite.internal.processors.resource.GridResourceProcessor;
  import org.apache.ignite.marshaller.optimized.OptimizedMarshaller;
  import org.apache.ignite.resources.LoggerResource;

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGetEntryAbstractTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheExpireAndUpdateConsistencyTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCachePeekModesAbstractTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheMultiTxLockSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicClientOnlyMultiNodeFullApiSelfTest.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicClientOnlyMultiNodeFullApiSelfTest.java
index 60f9fd5,65f780b..736afb7
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicClientOnlyMultiNodeFullApiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicClientOnlyMultiNodeFullApiSelfTest.java
@@@ -190,10 -192,10 +192,10 @@@ public class GridCacheAtomicClientOnlyM
      }
  
      /** {@inheritDoc} */
 -    @Override public void testEvictExpired() throws Exception {
 +    @Override public void _testEvictExpired() throws Exception {
          IgniteCache<String, Integer> cache = jcache();
  
-         String key = primaryKeysForCache(cache, 1).get(0);
+         final String key = primaryKeysForCache(cache, 1).get(0);
  
          cache.put(key, 1);
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheAtomicNearOnlyMultiNodeFullApiSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyAbstractTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyTestSuite.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
index 691e244,d2cb710..3890ce2
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
@@@ -433,7 -537,7 +537,7 @@@ public abstract class CacheContinuousQu
  
              Affinity<Object> aff = grid(i).affinity(null);
  
-             Map<Integer, T2<Long, Long>> act = grid(i).cachex(null).context().topology().updateCounters();
 -            Map<Integer, Long> act = grid(i).cachex(null).context().topology().updateCounters(false);
++            Map<Integer, T2<Long, Long>> act = grid(i).cachex(null).context().topology().updateCounters(false);
  
              for (Map.Entry<Integer, Long> e : updCntrs.entrySet()) {
                  if (aff.mapPartitionToPrimaryAndBackups(e.getKey()).contains(grid(i).localNode()))

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamProcessorSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsIgniteMock.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
index 2716c4f,6c2c4c1..cec9e30
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
@@@ -32,8 -32,9 +32,9 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cache.GridCacheMvccManager;
  import org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager;
  import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
 -import org.apache.ignite.internal.processors.cache.GridCacheSwapManager;
  import org.apache.ignite.internal.processors.cache.GridCacheTtlManager;
 +import org.apache.ignite.internal.processors.cache.database.IgniteCacheDatabaseSharedManager;
+ import org.apache.ignite.internal.processors.cache.GridCacheSharedTtlCleanupManager;
  import org.apache.ignite.internal.processors.cache.datastructures.CacheDataStructuresManager;
  import org.apache.ignite.internal.processors.cache.dr.GridOsCacheDrManager;
  import org.apache.ignite.internal.processors.cache.jta.CacheNoopJtaManager;

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteCacheProcessProxy.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
index 626ddab,c6281df..3b5e6b7
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
@@@ -146,14 -145,10 +150,17 @@@ public class IgniteBasicTestSuite exten
          suite.addTestSuite(NotStringSystemPropertyTest.class);
  
          suite.addTestSuite(MarshallerContextLockingSelfTest.class);
+         suite.addTestSuite(MarshallerContextSelfTest.class);
+ 
+         suite.addTestSuite(SecurityPermissionSetBuilderTest.class);
  
 +        // Basic DB data structures.
 +        suite.addTestSuite(BPlusTreeSelfTest.class);
 +        suite.addTestSuite(BPlusTreeFakeReuseSelfTest.class);
 +        suite.addTestSuite(BPlusTreeReuseSelfTest.class);
 +        suite.addTestSuite(MetadataStorageSelfTest.class);
 +        suite.addTestSuite(FreeListImplSelfTest.class);
 +
          return suite;
      }
  }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
index a904a81,554bb3d..56c10ae
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
@@@ -78,7 -85,10 +84,9 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cache.GridCacheStopSelfTest;
  import org.apache.ignite.internal.processors.cache.GridCacheStorePutxSelfTest;
  import org.apache.ignite.internal.processors.cache.GridCacheStoreValueBytesSelfTest;
+ import org.apache.ignite.internal.processors.cache.GridCacheSwapCleanupTest;
  import org.apache.ignite.internal.processors.cache.GridCacheSwapPreloadSelfTest;
 -import org.apache.ignite.internal.processors.cache.GridCacheSwapReloadSelfTest;
+ import org.apache.ignite.internal.processors.cache.GridCacheTtlManagerEvictionSelfTest;
  import org.apache.ignite.internal.processors.cache.GridCacheTtlManagerSelfTest;
  import org.apache.ignite.internal.processors.cache.GridCacheTxPartitionedLocalStoreSelfTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheAtomicInvokeTest;
@@@ -223,6 -237,8 +236,7 @@@ public class IgniteCacheTestSuite exten
  
          // Swap tests.
          suite.addTestSuite(GridCacheSwapPreloadSelfTest.class);
 -        suite.addTestSuite(GridCacheSwapReloadSelfTest.class);
+         suite.addTestSuite(GridCacheSwapCleanupTest.class);
  
          // Common tests.
          suite.addTestSuite(CacheNamesSelfTest.class);
@@@ -312,8 -335,11 +332,13 @@@
  
          suite.addTestSuite(CacheTxFastFinishTest.class);
  
+         suite.addTestSuite(IgniteVariousConnectionNumberTest.class);
+         suite.addTestSuite(IgniteCommunicationBalanceTest.class);
+         suite.addTestSuite(IgniteCommunicationBalanceMultipleConnectionsTest.class);
+         suite.addTestSuite(IgniteIoTestMessagesTest.class);
+ 
 +        suite.addTestSuite(IgniteIncompleteCacheObjectSelfTest.class);
 +
          return suite;
      }
  }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
index f716736,5a09a1c..fd32147
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
@@@ -296,8 -306,8 +299,9 @@@ public class IgniteCacheTestSuite4 exte
          suite.addTestSuite(CacheVersionedEntryReplicatedAtomicOffHeapSelfTest.class);
          suite.addTestSuite(CacheVersionedEntryReplicatedTransactionalOffHeapSelfTest.class);
  
 -        suite.addTestSuite(CacheSwapUnswapGetTest.class);
 -        suite.addTestSuite(CacheSwapUnswapGetTestSmallQueueSize.class);
 +        // TODO GG-11148.
 +        // suite.addTestSuite(CacheSwapUnswapGetTest.class);
++        // suite.addTestSuite(CacheSwapUnswapGetTestSmallQueueSize.class);
  
          suite.addTestSuite(GridCacheDhtTxPreloadSelfTest.class);
          suite.addTestSuite(GridCacheNearTxPreloadSelfTest.class);

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite5.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite5.java
index 42d5258,144aac6..29a7771
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite5.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite5.java
@@@ -21,19 -21,17 +21,21 @@@ import junit.framework.TestSuite
  import org.apache.ignite.internal.processors.cache.CacheNearReaderUpdateTest;
  import org.apache.ignite.internal.processors.cache.CacheRebalancingSelfTest;
  import org.apache.ignite.internal.processors.cache.CacheSerializableTransactionsTest;
 +import org.apache.ignite.internal.processors.cache.ClusterStatePartitionedSelfTest;
 +import org.apache.ignite.internal.processors.cache.ClusterStateReplicatedSelfTest;
  import org.apache.ignite.internal.processors.cache.EntryVersionConsistencyReadThroughTest;
+ import org.apache.ignite.internal.processors.cache.GridCacheOffHeapCleanupTest;
 -import org.apache.ignite.internal.processors.cache.GridCacheSwapSpaceSpiConsistencySelfTest;
  import org.apache.ignite.internal.processors.cache.IgniteCachePutStackOverflowSelfTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheReadThroughEvictionsVariationsSuite;
  import org.apache.ignite.internal.processors.cache.IgniteCacheStoreCollectionTest;
  import org.apache.ignite.internal.processors.cache.distributed.CacheLateAffinityAssignmentFairAffinityTest;
  import org.apache.ignite.internal.processors.cache.distributed.CacheLateAffinityAssignmentNodeJoinValidationTest;
  import org.apache.ignite.internal.processors.cache.distributed.CacheLateAffinityAssignmentTest;
 +import org.apache.ignite.internal.processors.cache.distributed.IgniteActiveOnStartNodeJoinValidationSelfTest;
 +import org.apache.ignite.internal.processors.cache.distributed.IgniteCachePartitionLossPolicySelfTest;
 +import org.apache.ignite.internal.processors.cache.distributed.replicated.IgniteCacheSyncRebalanceModeSelfTest;
  import org.apache.ignite.internal.processors.cache.distributed.IgniteCacheTxIteratorSelfTest;
+ import org.apache.ignite.internal.processors.cache.distributed.replicated.IgniteCacheSyncRebalanceModeSelfTest;
  import org.apache.ignite.internal.processors.cache.store.IgniteCacheWriteBehindNoUpdateSelfTest;
  
  /**
@@@ -63,12 -61,10 +65,14 @@@ public class IgniteCacheTestSuite5 exte
          suite.addTest(IgniteCacheReadThroughEvictionsVariationsSuite.suite());
          suite.addTestSuite(IgniteCacheTxIteratorSelfTest.class);
  
+         suite.addTestSuite(GridCacheOffHeapCleanupTest.class);
+ 
+         suite.addTestSuite(CacheRebalancingSelfTest.class);
+ 
 +        suite.addTestSuite(ClusterStatePartitionedSelfTest.class);
 +        suite.addTestSuite(ClusterStateReplicatedSelfTest.class);
 +        suite.addTestSuite(IgniteCachePartitionLossPolicySelfTest.class);
 +
-         suite.addTestSuite(CacheRebalancingSelfTest.class);
- 
          return suite;
      }
  }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiTestSuite.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteUtilSelfTestSuite.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index 55d1b57,5df44db..1445e16
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@@ -56,6 -57,8 +57,7 @@@ import javax.cache.CacheException
  import org.apache.ignite.IgniteCheckedException;
  import org.apache.ignite.IgniteException;
  import org.apache.ignite.IgniteLogger;
 -import org.apache.ignite.cache.CacheMemoryMode;
+ import org.apache.ignite.cache.query.QueryCancelledException;
  import org.apache.ignite.cache.query.QueryCursor;
  import org.apache.ignite.cache.query.SqlFieldsQuery;
  import org.apache.ignite.cache.query.SqlQuery;
@@@ -72,13 -76,12 +75,15 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cache.GridCacheAdapter;
  import org.apache.ignite.internal.processors.cache.GridCacheAffinityManager;
  import org.apache.ignite.internal.processors.cache.GridCacheContext;
 -import org.apache.ignite.internal.processors.cache.IgniteInternalCache;
 +import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
 +import org.apache.ignite.internal.processors.cache.KeyCacheObject;
  import org.apache.ignite.internal.processors.cache.QueryCursorImpl;
 +import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
  import org.apache.ignite.internal.processors.cache.query.GridCacheQueryMarshallable;
  import org.apache.ignite.internal.processors.cache.query.GridCacheTwoStepQuery;
+ import org.apache.ignite.internal.processors.cache.query.IgniteQueryErrorCode;
+ import org.apache.ignite.internal.processors.query.GridQueryCancel;
 +import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
  import org.apache.ignite.internal.processors.query.GridQueryFieldMetadata;
  import org.apache.ignite.internal.processors.query.GridQueryFieldsResult;
  import org.apache.ignite.internal.processors.query.GridQueryFieldsResultAdapter;
@@@ -86,11 -89,8 +91,12 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.query.GridQueryIndexing;
  import org.apache.ignite.internal.processors.query.GridQueryProperty;
  import org.apache.ignite.internal.processors.query.GridQueryTypeDescriptor;
+ import org.apache.ignite.internal.processors.query.IgniteSQLException;
  import org.apache.ignite.internal.processors.query.h2.opt.GridH2DefaultTableEngine;
 +import org.apache.ignite.internal.processors.query.h2.database.H2RowFactory;
 +import org.apache.ignite.internal.processors.query.h2.database.H2TreeIndex;
 +import org.apache.ignite.internal.processors.query.h2.database.io.H2InnerIO;
 +import org.apache.ignite.internal.processors.query.h2.database.io.H2LeafIO;
  import org.apache.ignite.internal.processors.query.h2.opt.GridH2KeyValueRowOffheap;
  import org.apache.ignite.internal.processors.query.h2.opt.GridH2KeyValueRowOnheap;
  import org.apache.ignite.internal.processors.query.h2.opt.GridH2QueryContext;
@@@ -1861,12 -2007,8 +1993,12 @@@ public class IgniteH2Indexing implement
                  U.error(log, "Failed to drop schema on cache stop (will ignore): " + U.maskName(ccfg.getName()), e);
              }
  
 +            for (TableDescriptor tblDesc : rmv.tbls.values())
 +                for (Index idx : tblDesc.tbl.getIndexes())
 +                    idx.close(null);
 +
              for (Iterator<Map.Entry<TwoStepCachedQueryKey, TwoStepCachedQuery>> it = twoStepCache.entrySet().iterator();
-                  it.hasNext();) {
+                 it.hasNext();) {
                  Map.Entry<TwoStepCachedQueryKey, TwoStepCachedQuery> e = it.next();
  
                  if (F.eq(e.getKey().space, ccfg.getName()))
@@@ -2991,8 -3062,23 +3123,23 @@@
          }
  
          /** {@inheritDoc} */
+         @Override public void setColumnValue(Object key, Object val, Object colVal, int col) {
+             try {
+                 props[col].setValue(key, val, colVal);
+             }
+             catch (IgniteCheckedException e) {
+                 throw DbException.convert(e);
+             }
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public boolean isColumnKeyProperty(int col) {
+             return props[col].key();
+         }
+ 
+         /** {@inheritDoc} */
          @Override public GridH2KeyValueRowOffheap createPointer(long ptr) {
 -            GridH2KeyValueRowOffheap row = schema.rowCache.get(ptr);
 +            GridH2KeyValueRowOffheap row = (GridH2KeyValueRowOffheap)schema.rowCache.get(ptr);
  
              if (row != null) {
                  assert row.pointer() == ptr : ptr + " " + row.pointer();

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
index 4ec3437,1f00ed2..333908f
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
@@@ -63,7 -63,7 +63,8 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cache.query.GridCacheSqlQuery;
  import org.apache.ignite.internal.processors.cache.query.GridCacheTwoStepQuery;
  import org.apache.ignite.internal.processors.query.GridQueryCacheObjectsIterator;
+ import org.apache.ignite.internal.processors.query.GridQueryCancel;
 +import org.apache.ignite.internal.processors.query.h2.GridH2ResultSetIterator;
  import org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing;
  import org.apache.ignite.internal.processors.query.h2.opt.GridH2QueryContext;
  import org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter;
@@@ -1271,25 -1368,20 +1366,44 @@@ public class GridReduceQueryExecutor 
      /**
       *
       */
 +    private static class Iter extends GridH2ResultSetIterator<List<?>> {
 +        /** */
 +        private static final long serialVersionUID = 0L;
 +
 +        /**
 +         * @param data Data array.
 +         * @throws IgniteCheckedException If failed.
 +         */
 +        protected Iter(ResultSet data) throws IgniteCheckedException {
 +            super(data, true, false);
 +        }
 +
 +        /** {@inheritDoc} */
 +        @Override protected List<?> createRow() {
 +            ArrayList<Object> res = new ArrayList<>(row.length);
 +
 +            Collections.addAll(res, row);
 +
 +            return res;
 +        }
 +    }
- }
++    /**
++     *
++     */
+     private class ExplicitPartitionsSpecializer implements IgniteBiClosure<ClusterNode,Message,Message> {
+         /** */
+         private final Map<ClusterNode,IntArray> partsMap;
+ 
+         /**
+          * @param partsMap Partitions map.
+          */
+         private ExplicitPartitionsSpecializer(Map<ClusterNode,IntArray> partsMap) {
+             this.partsMap = partsMap;
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public Message apply(ClusterNode n, Message msg) {
+             return copy(msg, n, partsMap);
+         }
+     }
+ }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapEvictQueryTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedFieldsQuerySelfTest.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedFieldsQuerySelfTest.java
index 1c75b0b,4ec840c..4d95e38
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedFieldsQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedFieldsQuerySelfTest.java
@@@ -47,13 -48,15 +48,15 @@@ public class IgniteCacheReplicatedField
       * @throws Exception If failed.
       */
      public void testLostIterator() throws Exception {
+         IgniteCache<Object, Object> cache = grid(0).cache(null);
+ 
          QueryCursor<List<?>> qry = null;
  
-         int maximumQryIterCnt = GridCacheQueryManager.MAX_ITERATORS;
+         int maximumQueryIteratorCount = cache.getConfiguration(CacheConfiguration.class).getMaxQueryIteratorsCount();
  
-         for (int i = 0; i < maximumQryIterCnt + 1; i++) {
-             QueryCursor<List<?>> q = intCache
-                 .query(new SqlFieldsQuery("select _key from Integer where _key >= 0 order by _key"));
+         for (int i = 0; i < maximumQueryIteratorCount + 1; i++) {
+             QueryCursor<List<?>> q = cache
 -                .query(new SqlFieldsQuery("select _key from Integer where _key >= 0 order by _key"));
++               .query(new SqlFieldsQuery("select _key from Integer where _key >= 0 order by _key"));
  
              assertEquals(0, q.iterator().next().get(0));
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java
index 7669b5f,512001f..593ba95
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java
@@@ -369,10 -370,10 +372,10 @@@ public abstract class GridIndexingSpiAb
              assertEquals(vals[i++], f);
          }
  
-         assertFalse(fieldsRes.iterator().hasNext());
+         assertFalse(it.hasNext());
  
          // Remove
 -        spi.remove(typeAA.space(), key(2), aa(2, "Valera", 19));
 +        spi.remove(typeAA.space(), typeAA, key(2), 0, aa(2, "Valera", 19), null);
  
          assertEquals(1, spi.size(typeAA.space(), typeAA));
          assertEquals(2, spi.size(typeAB.space(), typeAB));

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/BaseH2CompareQueryTest.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/BaseH2CompareQueryTest.java
index 1648beb,7cae585..1324b72
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/BaseH2CompareQueryTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/BaseH2CompareQueryTest.java
@@@ -36,8 -35,9 +36,9 @@@ import org.apache.ignite.cache.query.Sq
  import org.apache.ignite.cache.query.SqlQuery;
  import org.apache.ignite.cache.query.annotations.QuerySqlField;
  import org.apache.ignite.cache.query.annotations.QuerySqlFunction;
 -import org.apache.ignite.configuration.CacheConfiguration;
 +import org.apache.ignite.configuration.IgniteConfiguration;
  import org.apache.ignite.testframework.GridTestUtils;
+ import org.apache.ignite.testsuites.IgniteIgnore;
  
  /**
   * Base set of queries to compare query results from h2 database instance and mixed ignite caches (replicated and partitioned)

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/GridQueryParsingTest.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/GridQueryParsingTest.java
index e6b8d91,537ccdf..e5b3101
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/GridQueryParsingTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/GridQueryParsingTest.java
@@@ -89,13 -78,19 +92,13 @@@ public class GridQueryParsingTest exten
          cc.setNearConfiguration(null);
          cc.setWriteSynchronizationMode(FULL_SYNC);
          cc.setRebalanceMode(SYNC);
 -        cc.setSwapEnabled(false);
          cc.setSqlFunctionClasses(GridQueryParsingTest.class);
 -        cc.setIndexedTypes(
 -            String.class, Address.class,
 -            String.class, Person.class
 -        );
 +        cc.setIndexedTypes(clsK, clsV);
  
 -        c.setCacheConfiguration(cc);
 -
 -        return c;
 +        return cc;
      }
  
-     /** */
+     /** {@inheritDoc} */
      @Override protected void beforeTestsStarted() throws Exception {
          super.beforeTestsStarted();
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
index 21d2bec,783f831..babd332
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
@@@ -40,7 -42,7 +42,8 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cache.IgniteCacheJoinPartitionedAndReplicatedTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheJoinQueryWithAffinityKeyTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheLargeResultSelfTest;
+ import org.apache.ignite.internal.processors.cache.IgniteCacheMergeSqlQuerySelfTest;
 +import org.apache.ignite.internal.processors.cache.IgniteCacheMultipleIndexedTypesTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheOffheapEvictQueryTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheOffheapIndexScanTest;
  import org.apache.ignite.internal.processors.cache.IgniteCacheOffheapTieredMultithreadedSelfTest;
@@@ -153,6 -162,9 +163,11 @@@ public class IgniteCacheQuerySelfTestSu
          suite.addTestSuite(IgniteBinaryObjectQueryArgumentsOffheapLocalTest.class);
          suite.addTestSuite(IgniteBinaryObjectLocalQueryArgumentsTest.class);
  
+         suite.addTestSuite(IndexingSpiQuerySelfTest.class);
+         suite.addTestSuite(IndexingSpiQueryTxSelfTest.class);
+ 
++        suite.addTestSuite(IgniteCacheMultipleIndexedTypesTest.class);
++
          return suite;
      }
  }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommand.scala
----------------------------------------------------------------------
diff --cc modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommand.scala
index 4a54035,04a68ae..193fac8
--- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommand.scala
+++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommand.scala
@@@ -269,9 -288,11 +270,9 @@@ class VisorCacheCommand 
                      if (hasArgFlag("scan", argLst))
                          VisorCacheScanCommand().scan(argLst, node)
                      else {
-                         if (aggrData.nonEmpty && !aggrData.exists(cache => safeEquals(cache.name(), name) && cache.system())) {
+                         if (aggrData.nonEmpty && !aggrData.exists(cache => F.eq(cache.name(), name) && cache.system())) {
                              if (hasArgFlag("clear", argLst))
                                  VisorCacheClearCommand().clear(argLst, node)
 -                            else if (hasArgFlag("swap", argLst))
 -                                VisorCacheSwapCommand().swap(argLst, node)
                              else if (hasArgFlag("stop", argLst))
                                  VisorCacheStopCommand().stop(argLst, node)
                              else if (hasArgFlag("reset", argLst))

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/yardstick/config/ignite-base-config.xml
----------------------------------------------------------------------
diff --cc modules/yardstick/config/ignite-base-config.xml
index 6799982,615cb42..047738d
--- a/modules/yardstick/config/ignite-base-config.xml
+++ b/modules/yardstick/config/ignite-base-config.xml
@@@ -119,38 -140,42 +126,40 @@@
  
                      <property name="atomicityMode" value="ATOMIC"/>
  
 -                    <property name="swapEnabled" value="false"/>
 -
 -                    <property name="indexedTypes">
 +                    <property name="typeMetadata">
                          <list>
-                             <bean class="org.apache.ignite.cache.CacheTypeMetadata">
-                                 <property name="keyType" value="java.lang.Integer"/>
-                                 <property name="valueType" value="org.apache.ignite.yardstick.cache.model.Organization"/>
- 
-                                 <property name="ascendingFields">
-                                     <map>
-                                         <entry key="id" value="java.lang.Integer"/>
-                                         <entry key="name" value="java.lang.String"/>
-                                     </map>
-                                 </property>
-                             </bean>
-                             <bean class="org.apache.ignite.cache.CacheTypeMetadata">
-                                 <property name="keyType" value="java.lang.Integer"/>
-                                 <property name="valueType" value="org.apache.ignite.yardstick.cache.model.Person"/>
- 
-                                 <property name="ascendingFields">
-                                     <map>
-                                         <entry key="id" value="java.lang.Integer"/>
-                                         <entry key="orgId" value="java.lang.Integer"/>
-                                         <entry key="salary" value="java.lang.Double"/>
-                                     </map>
-                                 </property>
- 
-                                 <property name="queryFields">
-                                     <map>
-                                         <entry key="firstName" value="java.lang.String"/>
-                                         <entry key="lastName" value="java.lang.String"/>
-                                     </map>
-                                 </property>
-                             </bean>
+                             <value>java.lang.Integer</value>
+                             <value>org.apache.ignite.yardstick.cache.model.Person1</value>
+ 
+                             <value>java.lang.Integer</value>
+                             <value>org.apache.ignite.yardstick.cache.model.Person2</value>
+ 
+                             <value>java.lang.Integer</value>
+                             <value>org.apache.ignite.yardstick.cache.model.Person8</value>
+                         </list>
+                     </property>
+                 </bean>
+ 
+                 <bean class="org.apache.ignite.configuration.CacheConfiguration">
+                     <property name="name" value="query"/>
+ 
+                     <property name="cacheMode" value="PARTITIONED"/>
+ 
+                     <property name="atomicityMode" value="ATOMIC"/>
+ 
+                     <property name="indexedTypes">
+                         <list>
+                             <value>java.lang.Integer</value>
+                             <value>org.apache.ignite.yardstick.cache.model.Organization</value>
+ 
+                             <value>java.lang.Integer</value>
+                             <value>org.apache.ignite.yardstick.cache.model.Person</value>
+ 
+                             <value>java.lang.Integer</value>
+                             <value>org.apache.ignite.yardstick.cache.model.SampleValue</value>
+ 
+                             <value>java.lang.Integer</value>
+                             <value>java.lang.Integer</value>
                          </list>
                      </property>
                  </bean>

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/yardstick/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/8483e8fa/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteNode.java
----------------------------------------------------------------------


[05/50] [abbrv] ignite git commit: ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation fix restore memory issue

Posted by ag...@apache.org.
ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation fix restore memory issue


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

Branch: refs/heads/ignite-3477
Commit: 1ac93f0c94cfd5546a9446035e6f5f3975e43a8c
Parents: a290fdd
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Tue Dec 20 15:42:17 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Tue Dec 20 15:42:17 2016 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheProcessor.java    | 23 ++++------
 .../GridDhtPartitionsExchangeFuture.java        | 10 ++---
 .../cluster/GridClusterStateProcessor.java      | 45 +++++++++++++++-----
 3 files changed, 48 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/1ac93f0c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 518fd18..3834189 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -734,6 +734,14 @@ public class GridCacheProcessor extends GridProcessorAdapter {
         try {
             checkConsistency();
 
+            //must be here, because we must start database before start first cache
+            if (activeOnStart) {
+                if (!ctx.clientNode())
+                    sharedCtx.database().lock();
+
+                sharedCtx.database().onKernalStart(false);
+            }
+
             // Start dynamic caches received from collect discovery data.
             for (DynamicCacheDescriptor desc : registeredCaches.values()) {
                 if (ctx.config().isDaemon() && !CU.isMarshallerCache(desc.cacheConfiguration().getName()))
@@ -779,22 +787,9 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             cacheStartedLatch.countDown();
         }
 
-        if (activeOnStart) {
-            //todo not used explicit lock
-            if (!ctx.clientNode())
-                sharedCtx.database().lock();
-
-            sharedCtx.wal().onKernalStart(false);
-
-            if (sharedCtx.pageStore() != null)
-                sharedCtx.pageStore().onKernalStart(false);
-
-            sharedCtx.database().onKernalStart(false);
-        }
-
         // Must call onKernalStart on shared managers after creation of fetched caches.
         for (GridCacheSharedManager<?, ?> mgr : sharedCtx.managers())
-            if (sharedCtx.database() != mgr && sharedCtx.wal() != mgr && sharedCtx.pageStore() != mgr)
+            if (sharedCtx.database() != mgr)
                 mgr.onKernalStart(false);
 
         if (!activeOnStart)

http://git-wip-us.apache.org/repos/asf/ignite/blob/1ac93f0c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index dadcda4..81ba317 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -651,17 +651,17 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
     private ExchangeType onCacheChangeRequest(boolean crd) throws IgniteCheckedException {
         assert !F.isEmpty(reqs) : this;
 
-        boolean clientOnly = cctx.affinity().onCacheChangeRequest(this, crd, reqs);
-
         GridClusterStateProcessor stateProc = cctx.kernalContext().state();
 
-        if (exchangeOnChangeGlobalState = stateProc.changeGlobalState(reqs, topologyVersion())){
+        if (exchangeOnChangeGlobalState = stateProc.changeGlobalState(reqs, topologyVersion())) {
             changeGlobalStateException = stateProc.onChangeGlobalState();
 
             if (crd && changeGlobalStateException != null)
                 changeGlobalStateExceptions.put(cctx.localNodeId(), changeGlobalStateException);
         }
 
+        boolean clientOnly = cctx.affinity().onCacheChangeRequest(this, crd, reqs);
+
         if (clientOnly) {
             boolean clientCacheStarted = false;
 
@@ -1393,9 +1393,9 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
 
                     if (exchangeOnChangeGlobalState && msg.getException() != null)
                         changeGlobalStateExceptions.put(node.id(), msg.getException());
-                }
 
-                allReceived = remaining.isEmpty();
+                    allReceived = remaining.isEmpty();
+                }
             }
             else
                 singleMsgs.put(node, msg);

http://git-wip-us.apache.org/repos/asf/ignite/blob/1ac93f0c/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
index f42a8ba..18e4a1c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
@@ -34,6 +34,7 @@ import org.apache.ignite.IgniteCompute;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.events.DiscoveryEvent;
 import org.apache.ignite.events.Event;
 import org.apache.ignite.internal.GridKernalContext;
@@ -421,12 +422,26 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
             log.info("Start activation process [nodeId=" + this.ctx.localNodeId() + ", client=" + client +
                 ", topVer=" + cgsCtx.topVer + "]");
 
+        Collection<CacheConfiguration> cfgs = new ArrayList<>();
+
+        for (DynamicCacheChangeRequest req : cgsCtx.batch.requests())
+            if (req.startCacheConfiguration() != null)
+                cfgs.add(req.startCacheConfiguration());
+
         try {
             if (!client) {
                 sharedCtx.database().lock();
 
                 sharedCtx.wal().onActivate(ctx);
 
+                for (CacheConfiguration cfg : cfgs)
+                    if (CU.isSystemCache(cfg.getName()))
+                        sharedCtx.pageStore().initializeForCache(cfg);
+
+                for (CacheConfiguration cfg : cfgs)
+                    if (!CU.isSystemCache(cfg.getName()))
+                        sharedCtx.pageStore().initializeForCache(cfg);
+
                 sharedCtx.database().onActivate(ctx);
 
                 if (sharedCtx.pageStore() != null)
@@ -465,15 +480,6 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
 
             ctx.service().onDeActivate(ctx);
 
-            if (!client) {
-                sharedCtx.database().onDeActivate(ctx);
-
-                if (sharedCtx.pageStore() != null)
-                    sharedCtx.pageStore().onDeActivate(ctx);
-
-                sharedCtx.wal().onDeActivate(ctx);
-            }
-
             if (log.isInfoEnabled())
                 log.info("Success deactivate services, dataStructures, database, pageStore, wal [id=" + ctx.localNodeId() + ", client=" +
                     client + ", topVer=" + cgsCtx.topVer + "]");
@@ -547,9 +553,26 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
             log.info("Success final deactivate [nodeId="
                 + ctx.localNodeId() + ", client=" + client + ", topVer=" + cgsCtx.topVer + "]");
 
-        globalState = INACTIVE;
+        Exception ex = null;
+
+        try {
+            if (!client) {
+                sharedCtx.database().onDeActivate(ctx);
+
+                if (sharedCtx.pageStore() != null)
+                    sharedCtx.pageStore().onDeActivate(ctx);
+
+                sharedCtx.wal().onDeActivate(ctx);
+            }
+        }
+        catch (Exception e) {
+            ex = e;
+        }
+        finally {
+            globalState = INACTIVE;
+        }
 
-        sendChangeGlobalStateResponse(cgsCtx.requestId, cgsCtx.initiatingNodeId, null);
+        sendChangeGlobalStateResponse(cgsCtx.requestId, cgsCtx.initiatingNodeId, ex);
 
         this.lastCgsCtx = null;
     }


[46/50] [abbrv] ignite git commit: ignite-gg-11842 Add reproducer test (name update).

Posted by ag...@apache.org.
ignite-gg-11842 Add reproducer test (name update).


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

Branch: refs/heads/ignite-3477
Commit: 46688083acbbb183a2d28c548e773878b91d23ae
Parents: 2999ffd
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Wed Dec 28 18:55:08 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Wed Dec 28 18:55:08 2016 +0300

----------------------------------------------------------------------
 .../GridCacheConcurrentGetCacheOnClient.java    | 129 -------------------
 ...GridCacheConcurrentGetCacheOnClientTest.java | 129 +++++++++++++++++++
 2 files changed, 129 insertions(+), 129 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/46688083/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClient.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClient.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClient.java
deleted file mode 100644
index 3a97964..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClient.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * 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;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.atomic.AtomicInteger;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-
-import static org.apache.ignite.testframework.GridTestUtils.runAsync;
-
-/**
- *
- */
-public class GridCacheConcurrentGetCacheOnClient extends GridCommonAbstractTest{
-    /** Ip finder. */
-    private final static TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
-
-    /**
-     * @param gridName Grid name.
-     */
-   @Override protected IgniteConfiguration getConfiguration(final String gridName) throws Exception {
-        final IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
-
-        return cfg;
-    }
-
-    /**
-     *
-     */
-    public void test() throws Exception {
-        IgniteConfiguration node1cfg = getConfiguration("node1");
-        IgniteConfiguration node2cfg = getConfiguration("node2");
-
-        Ignite node1 = startGrid("node1", node1cfg);
-        Ignite node2 = startGrid("node2", node2cfg);
-
-        IgniteConfiguration clientCfg1 = getConfiguration("client");
-        clientCfg1.setClientMode(true);
-
-        IgniteConfiguration clientCfg2 = getConfiguration("client");
-        clientCfg2.setClientMode(true);
-
-        final IgniteEx client1 = (IgniteEx)startGrid("client1", clientCfg1);
-        final IgniteEx client2 = (IgniteEx)startGrid("client2", clientCfg2);
-
-        final CountDownLatch startLatch = new CountDownLatch(1);
-
-        final CountDownLatch stopLatch = new CountDownLatch(2);
-
-        final AtomicInteger countFails = new AtomicInteger();
-
-        final AtomicInteger exceptionFails = new AtomicInteger();
-
-        final String cacheName = "TEST_CACHE";
-
-        runAsync(new Runnable() {
-            @Override public void run() {
-                try {
-                    startLatch.await();
-
-                    IgniteCache<Object, Object> cache = client2.cache(cacheName);
-
-                    if (cache == null)
-                        countFails.incrementAndGet();
-
-                    stopLatch.countDown();
-                }
-                catch (Exception e) {
-                    exceptionFails.incrementAndGet();
-                }
-            }
-        });
-
-        runAsync(new Runnable() {
-            @Override public void run() {
-                try {
-                    startLatch.await();
-
-                    IgniteCache<Object, Object> cache = client2.cache(cacheName);
-
-                    if (cache == null)
-                        countFails.incrementAndGet();
-
-                    stopLatch.countDown();
-                }
-                catch (Exception e) {
-                    exceptionFails.incrementAndGet();
-                }
-            }
-        });
-
-        client1.getOrCreateCache(cacheName);
-
-        startLatch.countDown();
-
-        IgniteCache<Object, Object> cache = client2.cache(cacheName);
-
-        if (cache == null)
-            countFails.incrementAndGet();
-
-        stopLatch.await();
-
-        if (countFails.get() != 0 || exceptionFails.get() != 0)
-            fail("Cache return null in " + countFails.get() + " of 3 cases. Total exception: " + exceptionFails.get());
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/46688083/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClientTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClientTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClientTest.java
new file mode 100644
index 0000000..fb83405
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClientTest.java
@@ -0,0 +1,129 @@
+/*
+ * 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;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+import static org.apache.ignite.testframework.GridTestUtils.runAsync;
+
+/**
+ *
+ */
+public class GridCacheConcurrentGetCacheOnClientTest extends GridCommonAbstractTest{
+    /** Ip finder. */
+    private final static TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+    /**
+     * @param gridName Grid name.
+     */
+   @Override protected IgniteConfiguration getConfiguration(final String gridName) throws Exception {
+        final IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
+
+        return cfg;
+    }
+
+    /**
+     *
+     */
+    public void test() throws Exception {
+        IgniteConfiguration node1cfg = getConfiguration("node1");
+        IgniteConfiguration node2cfg = getConfiguration("node2");
+
+        Ignite node1 = startGrid("node1", node1cfg);
+        Ignite node2 = startGrid("node2", node2cfg);
+
+        IgniteConfiguration clientCfg1 = getConfiguration("client");
+        clientCfg1.setClientMode(true);
+
+        IgniteConfiguration clientCfg2 = getConfiguration("client");
+        clientCfg2.setClientMode(true);
+
+        final IgniteEx client1 = (IgniteEx)startGrid("client1", clientCfg1);
+        final IgniteEx client2 = (IgniteEx)startGrid("client2", clientCfg2);
+
+        final CountDownLatch startLatch = new CountDownLatch(1);
+
+        final CountDownLatch stopLatch = new CountDownLatch(2);
+
+        final AtomicInteger countFails = new AtomicInteger();
+
+        final AtomicInteger exceptionFails = new AtomicInteger();
+
+        final String cacheName = "TEST_CACHE";
+
+        runAsync(new Runnable() {
+            @Override public void run() {
+                try {
+                    startLatch.await();
+
+                    IgniteCache<Object, Object> cache = client2.cache(cacheName);
+
+                    if (cache == null)
+                        countFails.incrementAndGet();
+
+                    stopLatch.countDown();
+                }
+                catch (Exception e) {
+                    exceptionFails.incrementAndGet();
+                }
+            }
+        });
+
+        runAsync(new Runnable() {
+            @Override public void run() {
+                try {
+                    startLatch.await();
+
+                    IgniteCache<Object, Object> cache = client2.cache(cacheName);
+
+                    if (cache == null)
+                        countFails.incrementAndGet();
+
+                    stopLatch.countDown();
+                }
+                catch (Exception e) {
+                    exceptionFails.incrementAndGet();
+                }
+            }
+        });
+
+        client1.getOrCreateCache(cacheName);
+
+        startLatch.countDown();
+
+        IgniteCache<Object, Object> cache = client2.cache(cacheName);
+
+        if (cache == null)
+            countFails.incrementAndGet();
+
+        stopLatch.await();
+
+        if (countFails.get() != 0 || exceptionFails.get() != 0)
+            fail("Cache return null in " + countFails.get() + " of 3 cases. Total exception: " + exceptionFails.get());
+    }
+}


[30/50] [abbrv] ignite git commit: Merge with master.

Posted by ag...@apache.org.
Merge with master.


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

Branch: refs/heads/ignite-3477
Commit: c1fd8aa561406aedebb549819691cf66e815dc4a
Parents: 871a069
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Thu Dec 22 18:04:41 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Thu Dec 22 18:04:41 2016 +0300

----------------------------------------------------------------------
 .../cache/distributed/dht/GridDhtTxOnePhaseCommitAckRequest.java   | 2 +-
 .../distributed/dht/atomic/GridDhtAtomicSingleUpdateRequest.java   | 2 +-
 .../distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c1fd8aa5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxOnePhaseCommitAckRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxOnePhaseCommitAckRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxOnePhaseCommitAckRequest.java
index 4fe9f7a..0c8ae69 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxOnePhaseCommitAckRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxOnePhaseCommitAckRequest.java
@@ -124,7 +124,7 @@ public class GridDhtTxOnePhaseCommitAckRequest extends GridCacheMessage {
 
     /** {@inheritDoc} */
     @Override public byte directType() {
-        return -28;
+        return -27;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1fd8aa5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicSingleUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicSingleUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicSingleUpdateRequest.java
index 32d164e..0af7cf5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicSingleUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicSingleUpdateRequest.java
@@ -648,7 +648,7 @@ public class GridDhtAtomicSingleUpdateRequest extends GridDhtAtomicAbstractUpdat
 
     /** {@inheritDoc} */
     @Override public byte directType() {
-        return -37;
+        return -36;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1fd8aa5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
index 5d5eabb..18b6118 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateRequest.java
@@ -347,7 +347,7 @@ public class GridNearAtomicSingleUpdateRequest extends GridNearAtomicAbstractSin
 
     /** {@inheritDoc} */
     @Override public byte directType() {
-        return -36;
+        return 125;
     }
 
     /** {@inheritDoc} */


[20/50] [abbrv] ignite git commit: Merge with master - WIP.

Posted by ag...@apache.org.
Merge with master - WIP.


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

Branch: refs/heads/ignite-3477
Commit: 100f9bb39092c65e2ba8a4014e6356f04ccde658
Parents: 86cac7a
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Thu Dec 22 15:29:17 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Thu Dec 22 15:29:17 2016 +0300

----------------------------------------------------------------------
 modules/osgi/pom.xml | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/100f9bb3/modules/osgi/pom.xml
----------------------------------------------------------------------
diff --git a/modules/osgi/pom.xml b/modules/osgi/pom.xml
index 0de4fbb..b7fd589 100644
--- a/modules/osgi/pom.xml
+++ b/modules/osgi/pom.xml
@@ -146,7 +146,6 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
-                    <forkCount>1</forkCount>
                     <systemProperties>
                         <property>
                             <name>karafVersion</name>


[49/50] [abbrv] ignite git commit: Merge remote-tracking branch 'origin/ignite-gg-8.0.2.ea2' into GG-11803

Posted by ag...@apache.org.
Merge remote-tracking branch 'origin/ignite-gg-8.0.2.ea2' into GG-11803


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

Branch: refs/heads/ignite-3477
Commit: 5c106da0526fd3afc057ee50efc532f8176d60fa
Parents: a38fd00 9b006b2
Author: EdShangGG <es...@gridgain.com>
Authored: Wed Dec 28 22:48:12 2016 +0300
Committer: EdShangGG <es...@gridgain.com>
Committed: Wed Dec 28 22:48:12 2016 +0300

----------------------------------------------------------------------
 .../dht/atomic/GridDhtAtomicCache.java          |   8 +-
 .../cacheobject/IgniteCacheObjectProcessor.java |   2 +-
 ...GridCacheConcurrentGetCacheOnClientTest.java | 129 +++++++++++++++++++
 .../ignite/testframework/GridTestUtils.java     |  80 ++++++++++--
 4 files changed, 205 insertions(+), 14 deletions(-)
----------------------------------------------------------------------



[18/50] [abbrv] ignite git commit: Merge with master - WIP.

Posted by ag...@apache.org.
Merge with master - WIP.


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

Branch: refs/heads/ignite-3477
Commit: 86cac7ae2f151dd31a7fc2a53f04c952c2e13de8
Parents: d5e9a3b
Author: Ilya Lantukh <il...@gridgain.com>
Authored: Thu Dec 22 15:21:04 2016 +0300
Committer: Ilya Lantukh <il...@gridgain.com>
Committed: Thu Dec 22 15:21:04 2016 +0300

----------------------------------------------------------------------
 .../streams/BinaryByteBufferInputStream.java    |  10 ++
 .../ignite/internal/util/IgniteUtils.java       | 107 ++++++++----
 .../util/nio/GridSelectorNioSessionImpl.java    |   3 -
 .../CacheSwapUnswapGetTestSmallQueueSize.java   |  35 ----
 .../cache/GridCacheOffHeapCleanupTest.java      | 169 -------------------
 .../cache/GridCacheSwapCleanupTest.java         |  99 -----------
 .../GridCacheTtlManagerEvictionSelfTest.java    |  24 ++-
 .../IgniteCacheConfigVariationsFullApiTest.java |   2 +-
 .../cache/OffheapCacheOnClientsTest.java        | 143 ----------------
 .../IgniteCachePartitionLossPolicySelfTest.java |   2 +-
 .../ignite/testsuites/IgniteCacheTestSuite.java |   2 -
 .../testsuites/IgniteCacheTestSuite2.java       |   2 -
 .../testsuites/IgniteCacheTestSuite4.java       |   1 -
 .../testsuites/IgniteCacheTestSuite5.java       |   3 -
 14 files changed, 97 insertions(+), 505 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/main/java/org/apache/ignite/internal/binary/streams/BinaryByteBufferInputStream.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/streams/BinaryByteBufferInputStream.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/streams/BinaryByteBufferInputStream.java
index d4eba83..d277948 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/streams/BinaryByteBufferInputStream.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/streams/BinaryByteBufferInputStream.java
@@ -261,6 +261,16 @@ public class BinaryByteBufferInputStream implements BinaryInputStream {
     }
 
     /** {@inheritDoc} */
+    @Override public long rawOffheapPointer() {
+        return 0;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int capacity() {
+        return buf.capacity();
+    }
+
+    /** {@inheritDoc} */
     @Override public byte[] array() {
         return buf.array();
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index e21838b..4a8a33c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -571,7 +571,7 @@ public abstract class IgniteUtils {
             mac = true;
         else {
             // UNIXs flavors tokens.
-            for (CharSequence os : new String[]{"ix", "inux", "olaris", "un", "ux", "sco", "bsd", "att"})
+            for (CharSequence os : new String[] {"ix", "inux", "olaris", "un", "ux", "sco", "bsd", "att"})
                 if (osLow.contains(os)) {
                     unix = true;
 
@@ -683,7 +683,7 @@ public abstract class IgniteUtils {
         }
 
         // Event names initialization.
-        Class<?>[] evtHolderClasses = new Class[]{EventType.class, DiscoveryCustomEvent.class};
+        Class<?>[] evtHolderClasses = new Class[] {EventType.class, DiscoveryCustomEvent.class};
 
         for (Class<?> cls : evtHolderClasses) {
             for (Field field : cls.getFields()) {
@@ -769,7 +769,8 @@ public abstract class IgniteUtils {
      * @param clazz Class.
      * @return The IgniteClosure mapped to this exception class, or null if none.
      */
-    public static C1<IgniteCheckedException, IgniteException> getExceptionConverter(Class<? extends IgniteCheckedException> clazz) {
+    public static C1<IgniteCheckedException, IgniteException> getExceptionConverter(
+        Class<? extends IgniteCheckedException> clazz) {
         return exceptionConverters.get(clazz);
     }
 
@@ -779,7 +780,7 @@ public abstract class IgniteUtils {
      * @return Exception converters.
      */
     private static Map<Class<? extends IgniteCheckedException>, C1<IgniteCheckedException, IgniteException>>
-        exceptionConverters() {
+    exceptionConverters() {
         Map<Class<? extends IgniteCheckedException>, C1<IgniteCheckedException, IgniteException>> m = new HashMap<>();
 
         m.put(IgniteInterruptedCheckedException.class, new C1<IgniteCheckedException, IgniteException>() {
@@ -1258,7 +1259,7 @@ public abstract class IgniteUtils {
             warn(log, "No deadlocked threads detected.");
         else
             warn(log, "Deadlocked threads detected (see thread dump below) " +
-                    "[deadlockedThreadsCnt=" + deadlockedThreadsIds.size() + ']');
+                "[deadlockedThreadsCnt=" + deadlockedThreadsIds.size() + ']');
 
         ThreadInfo[] threadInfos =
             mxBean.dumpAllThreads(mxBean.isObjectMonitorUsageSupported(), mxBean.isSynchronizerUsageSupported());
@@ -1504,7 +1505,8 @@ public abstract class IgniteUtils {
         }
         catch (InstantiationException | InvocationTargetException | IllegalAccessException e) {
             throw new IgniteCheckedException("Failed to create new instance for class: " + cls, e);
-        } finally {
+        }
+        finally {
             if (ctor != null && set)
                 ctor.setAccessible(false);
         }
@@ -1538,7 +1540,8 @@ public abstract class IgniteUtils {
         }
         catch (InstantiationException | InvocationTargetException | IllegalAccessException e) {
             throw new IgniteCheckedException("Failed to create new instance for class: " + cls, e);
-        } finally {
+        }
+        finally {
             if (set)
                 ctor.setAccessible(false);
         }
@@ -1890,11 +1893,13 @@ public abstract class IgniteUtils {
         for (Future<?> fut : futs) {
             try {
                 fut.get();
-            } catch (InterruptedException e) {
+            }
+            catch (InterruptedException e) {
                 Thread.currentThread().interrupt();
 
                 throw new IgniteException("Thread has been interrupted.", e);
-            } catch (ExecutionException e) {
+            }
+            catch (ExecutionException e) {
                 throw new IgniteException(e);
             }
         }
@@ -2239,7 +2244,8 @@ public abstract class IgniteUtils {
         }
         catch (NoSuchAlgorithmException | KeyManagementException e) {
             throw new IOException("Failed to open HTTPs connection [url=" + url.toString() + ", msg=" + e + ']', e);
-        } finally {
+        }
+        finally {
             close(in, null);
             close(out, null);
         }
@@ -2253,7 +2259,7 @@ public abstract class IgniteUtils {
      * @return Array with one X509TrustManager implementation of trust manager.
      */
     private static TrustManager[] getTrustManagers() {
-        return new TrustManager[]{
+        return new TrustManager[] {
             new X509TrustManager() {
                 @Nullable @Override public X509Certificate[] getAcceptedIssuers() {
                     return null;
@@ -3308,7 +3314,7 @@ public abstract class IgniteUtils {
 
         int cnt = 0;
 
-        for (int n; (n = in.read(buf)) > 0;) {
+        for (int n; (n = in.read(buf)) > 0; ) {
             out.write(buf, 0, n);
 
             cnt += n;
@@ -3333,7 +3339,7 @@ public abstract class IgniteUtils {
 
         int cnt = 0;
 
-        for (int n; (n = in.read(buf)) > 0;) {
+        for (int n; (n = in.read(buf)) > 0; ) {
             out.write(buf, 0, n);
 
             cnt += n;
@@ -4440,7 +4446,7 @@ public abstract class IgniteUtils {
      * @param sb Sb.
      */
     private static void appendJvmId(SB sb) {
-        if (getBoolean(IGNITE_MBEAN_APPEND_JVM_ID)){
+        if (getBoolean(IGNITE_MBEAN_APPEND_JVM_ID)) {
             String jvmId = ManagementFactory.getRuntimeMXBean().getName();
 
             sb.a("jvmId=").a(jvmId).a(',');
@@ -5147,7 +5153,8 @@ public abstract class IgniteUtils {
      * @throws ClassNotFoundException If deserialized class could not be found.
      */
     @SuppressWarnings({"unchecked"})
-    @Nullable public static <K, V> TreeMap<K, V> readTreeMap(ObjectInput in) throws IOException, ClassNotFoundException {
+    @Nullable public static <K, V> TreeMap<K, V> readTreeMap(
+        ObjectInput in) throws IOException, ClassNotFoundException {
         int size = in.readInt();
 
         if (size == -1)
@@ -5422,7 +5429,7 @@ public abstract class IgniteUtils {
         Set<E> set = new HashSet(size, 1.0f);
 
         for (int i = 0; i < size; i++)
-            set.add((E) in.readObject());
+            set.add((E)in.readObject());
 
         return set;
     }
@@ -5827,7 +5834,7 @@ public abstract class IgniteUtils {
             // We need to find common classloader for all elements AND the collection itself
             Collection<Object> tmpC = new ArrayList<>();
 
-            for (Object e: c)
+            for (Object e : c)
                 tmpC.add(e);
 
             tmpC.add(c);
@@ -6566,7 +6573,7 @@ public abstract class IgniteUtils {
             String p2 = part2[idx];
 
             int cmp = (p1.matches("\\d+") && p2.matches("\\d+"))
-                        ? Integer.valueOf(p1).compareTo(Integer.valueOf(p2)) : p1.compareTo(p2);
+                ? Integer.valueOf(p1).compareTo(Integer.valueOf(p2)) : p1.compareTo(p2);
 
             if (cmp != 0)
                 return cmp;
@@ -7774,7 +7781,7 @@ public abstract class IgniteUtils {
                 }
                 catch (IllegalStateException ignored) {
                     error(log, "Failed to add cause to the end of cause chain (cause is printed here but will " +
-                        "not be propagated to callee): " + e,
+                            "not be propagated to callee): " + e,
                         "Failed to add cause to the end of cause chain: " + e, cause);
                 }
 
@@ -7838,11 +7845,11 @@ public abstract class IgniteUtils {
      * @return Segment index.
      */
     public static int concurrentMapSegment(int hash, int concurLvl) {
-        hash += (hash <<  15) ^ 0xffffcd7d;
+        hash += (hash << 15) ^ 0xffffcd7d;
         hash ^= (hash >>> 10);
-        hash += (hash <<   3);
-        hash ^= (hash >>>  6);
-        hash += (hash <<   2) + (hash << 14);
+        hash += (hash << 3);
+        hash ^= (hash >>> 6);
+        hash += (hash << 2) + (hash << 14);
 
         int shift = 0;
         int size = 1;
@@ -8406,7 +8413,7 @@ public abstract class IgniteUtils {
             sb.append(" [");
 
             for (int i = 0; i < args.length / 2; i++) {
-                sb.append(args[ i * 2]).append('=').append(args[i * 2 + 1]);
+                sb.append(args[i * 2]).append('=').append(args[i * 2 + 1]);
                 sb.append(", ");
             }
 
@@ -8533,11 +8540,11 @@ public abstract class IgniteUtils {
     public static int hash(int h) {
         // Spread bits to regularize both segment and index locations,
         // using variant of single-word Wang/Jenkins hash.
-        h += (h <<  15) ^ 0xffffcd7d;
+        h += (h << 15) ^ 0xffffcd7d;
         h ^= (h >>> 10);
-        h += (h <<   3);
-        h ^= (h >>>  6);
-        h += (h <<   2) + (h << 14);
+        h += (h << 3);
+        h ^= (h >>> 6);
+        h += (h << 2) + (h << 14);
 
         return h ^ (h >>> 16);
     }
@@ -8943,7 +8950,7 @@ public abstract class IgniteUtils {
 
         Collection<InetSocketAddress> resolved = new HashSet<>();
 
-        for (InetSocketAddress address :sockAddr)
+        for (InetSocketAddress address : sockAddr)
             resolved.addAll(resolveAddress(addrRslvr, address));
 
         return resolved;
@@ -9141,6 +9148,41 @@ public abstract class IgniteUtils {
      */
     public static File resolveWorkDirectory(String workDir, String path, boolean delIfExist)
         throws IgniteCheckedException {
+        File dir = new File(path);
+
+        if (!dir.isAbsolute()) {
+            if (F.isEmpty(workDir))
+                throw new IgniteCheckedException("Failed to resolve path (work directory has not been set): " + path);
+
+            dir = new File(workDir, dir.getPath());
+        }
+
+        if (delIfExist && dir.exists()) {
+            if (!U.delete(dir))
+                throw new IgniteCheckedException("Failed to delete directory: " + dir);
+        }
+
+        if (!mkdirs(dir))
+            throw new IgniteCheckedException("Directory does not exist and cannot be created: " + dir);
+
+        if (!dir.canRead())
+            throw new IgniteCheckedException("Cannot read from directory: " + dir);
+
+        if (!dir.canWrite())
+            throw new IgniteCheckedException("Cannot write to directory: " + dir);
+
+        return dir;
+    }
+
+    /**
+     * Resolves work directory.
+     *
+     * @param path Path to resolve.
+     * @param delIfExist Flag indicating whether to delete the specify directory or not.
+     * @return Resolved work directory.
+     * @throws IgniteCheckedException If failed.
+     */
+    public static File resolveWorkDirectory(String path, boolean delIfExist) throws IgniteCheckedException {
         if (path == null) {
             String ggWork0 = igniteWork;
 
@@ -9208,7 +9250,8 @@ public abstract class IgniteUtils {
      * @param suppressed The collections of suppressed exceptions.
      * @return {@code IgniteCheckedException}.
      */
-    public static IgniteCheckedException exceptionWithSuppressed(String msg, @Nullable Collection<Throwable> suppressed) {
+    public static IgniteCheckedException exceptionWithSuppressed(String msg,
+        @Nullable Collection<Throwable> suppressed) {
         IgniteCheckedException e = new IgniteCheckedException(msg);
 
         if (suppressed != null) {
@@ -9916,7 +9959,6 @@ public abstract class IgniteUtils {
         return t0.compareTo(t1) > 0 ? t0 : t1;
     }
 
-
     /**
      * Unmarshals object from the input stream using given class loader.
      * This method should not close given input stream.
@@ -9952,7 +9994,8 @@ public abstract class IgniteUtils {
      * @return Unmarshalled object.
      * @throws IgniteCheckedException
      */
-    public static <T> T unmarshalZip(Marshaller marsh, byte[] zipBytes, @Nullable ClassLoader clsLdr) throws IgniteCheckedException {
+    public static <T> T unmarshalZip(Marshaller marsh, byte[] zipBytes,
+        @Nullable ClassLoader clsLdr) throws IgniteCheckedException {
         assert marsh != null;
         assert zipBytes != null;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
index c257a8c..66f9176 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
@@ -48,9 +48,6 @@ class GridSelectorNioSessionImpl extends GridNioSessionImpl {
     /** Current worker thread. */
     private volatile GridNioWorker worker;
 
-    /** Worker index for server */
-    private final int selectorIdx;
-
     /** Semaphore. */
     @GridToStringExclude
     private final Semaphore sem;

http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSwapUnswapGetTestSmallQueueSize.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSwapUnswapGetTestSmallQueueSize.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSwapUnswapGetTestSmallQueueSize.java
deleted file mode 100644
index 8d189fe..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSwapUnswapGetTestSmallQueueSize.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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;
-
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi;
-
-/**
- *
- */
-public class CacheSwapUnswapGetTestSmallQueueSize extends CacheSwapUnswapGetTest {
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        ((FileSwapSpaceSpi)cfg.getSwapSpaceSpi()).setMaxWriteQueueSize(2);
-
-        return cfg;
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapCleanupTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapCleanupTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapCleanupTest.java
deleted file mode 100644
index ae94073..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapCleanupTest.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * 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;
-
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.cache.CacheMemoryMode;
-import org.apache.ignite.cache.eviction.EvictionPolicy;
-import org.apache.ignite.cache.eviction.fifo.FifoEvictionPolicy;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeMemory;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
-import org.apache.ignite.testframework.GridTestUtils;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-
-import static org.apache.ignite.cache.CacheMemoryMode.OFFHEAP_TIERED;
-import static org.apache.ignite.cache.CacheMemoryMode.OFFHEAP_VALUES;
-import static org.apache.ignite.cache.CacheMemoryMode.ONHEAP_TIERED;
-
-/**
- * Check offheap allocations are freed after cache destroy.
- */
-public class GridCacheOffHeapCleanupTest extends GridCommonAbstractTest {
-    /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
-
-    /** */
-    private static final String CACHE_NAME = "testCache";
-
-    /** Memory mode. */
-    private CacheMemoryMode memoryMode;
-
-    /** Eviction policy. */
-    private EvictionPolicy evictionPlc;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
-
-        return cfg;
-    }
-
-    /**
-     * Checks offheap resources are freed after cache destroy - ONHEAP_TIERED memory mode
-     *
-     * @throws Exception If failed.
-     */
-    public void testCleanupOffheapAfterCacheDestroyOnheapTiered() throws Exception {
-        memoryMode = ONHEAP_TIERED;
-
-        FifoEvictionPolicy evictionPlc0 = new FifoEvictionPolicy();
-        evictionPlc0.setMaxSize(1);
-
-        evictionPlc = evictionPlc0;
-
-        checkCleanupOffheapAfterCacheDestroy();
-    }
-
-    /**
-     * Checks offheap resources are freed after cache destroy - OFFHEAP_TIERED memory mode
-     *
-     * @throws Exception If failed.
-     */
-    public void testCleanupOffheapAfterCacheDestroyOffheapTiered() throws Exception {
-        memoryMode = OFFHEAP_TIERED;
-        evictionPlc = null;
-
-        checkCleanupOffheapAfterCacheDestroy();
-    }
-
-    /**
-     * TODO: IGNITE-2714.
-     *
-     * Checks offheap resources are freed after cache destroy - OFFHEAP_VALUES memory mode
-     *
-     * @throws Exception If failed.
-     */
-    public void _testCleanupOffheapAfterCacheDestroyOffheapValues() throws Exception {
-        memoryMode = OFFHEAP_VALUES;
-        evictionPlc = null;
-
-        try (Ignite g = startGrid(0)) {
-            IgniteCache<Integer, String> cache = g.getOrCreateCache(createCacheConfiguration());
-
-            cache.put(1, "value_1");
-            cache.put(2, "value_2");
-
-            GridCacheContext ctx =  GridTestUtils.cacheContext(cache);
-            GridUnsafeMemory unsafeMemory = ctx.unsafeMemory();
-
-            g.destroyCache(null);
-
-            if (unsafeMemory != null)
-                assertEquals("Unsafe memory not freed", 0, unsafeMemory.allocatedSize());
-        }
-    }
-
-    /**
-     * Creates cache configuration.
-     *
-     * @return cache configuration.
-     * */
-    private CacheConfiguration<Integer, String> createCacheConfiguration() {
-        CacheConfiguration<Integer, String> ccfg = new CacheConfiguration<>();
-
-        ccfg.setName(CACHE_NAME);
-        ccfg.setOffHeapMaxMemory(0);
-        ccfg.setMemoryMode(memoryMode);
-        ccfg.setEvictionPolicy(evictionPlc);
-
-        return ccfg;
-    }
-
-    /**
-     * Check offheap resources are freed after cache destroy.
-     *
-     * @throws Exception If failed.
-     */
-    private void checkCleanupOffheapAfterCacheDestroy() throws Exception {
-        final String spaceName = "gg-swap-cache-" + CACHE_NAME;
-
-        try (Ignite g = startGrid(0)) {
-            checkOffheapAllocated(spaceName, false);
-
-            IgniteCache<Integer, String> cache = g.getOrCreateCache(createCacheConfiguration());
-
-            cache.put(1, "value_1");
-            cache.put(2, "value_2");
-
-            checkOffheapAllocated(spaceName, true);
-
-            g.destroyCache(cache.getName());
-
-            checkOffheapAllocated(spaceName, false);
-        }
-    }
-
-    /**
-     * Check is offheap allocated for given space name using internal API.
-     *
-     * @param spaceName Space name.
-     * @param allocated true, if we expected that offheap is allocated; false, otherwise.
-     * @throws Exception If failed.
-     * */
-    private void checkOffheapAllocated(String spaceName, boolean allocated) throws Exception {
-        long offheapSize = grid(0).context().offheap().allocatedSize(spaceName);
-
-        assertEquals("Unexpected offheap allocated size", allocated, (offheapSize >= 0));
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheSwapCleanupTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheSwapCleanupTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheSwapCleanupTest.java
deleted file mode 100644
index 5835ef0..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheSwapCleanupTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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;
-
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.cache.eviction.lru.LruEvictionPolicy;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.internal.managers.swapspace.GridSwapSpaceManager;
-import org.apache.ignite.internal.util.typedef.internal.CU;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
-import org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-
-/**
- * Check swap is cleaned after cache destroy.
- */
-public class GridCacheSwapCleanupTest extends GridCommonAbstractTest {
-    /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
-
-    /** Cache name. */
-    private static final String CACHE_NAME = "swapCleanupCache";
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
-
-        cfg.setSwapSpaceSpi(new FileSwapSpaceSpi());
-
-        return cfg;
-    }
-
-    /**
-     * Creates cache configuration.
-     *
-     * @return Cache configuration.
-     * */
-    private CacheConfiguration createCacheConfiguration() {
-        CacheConfiguration ccfg = new CacheConfiguration();
-
-        ccfg.setName(CACHE_NAME);
-        ccfg.setEvictionPolicy(new LruEvictionPolicy(10));
-        ccfg.setSwapEnabled(true);
-
-        return ccfg;
-    }
-
-    /**
-     * Checks swap is cleaned after cache destroy.
-     *
-     * @throws Exception If failed.
-     * */
-    public void testSwapCleanupAfterCacheDestroy() throws Exception {
-        try (Ignite g = startGrid()) {
-            for (int iter = 0; iter < 3; iter++) {
-                IgniteCache cache = g.getOrCreateCache(createCacheConfiguration());
-
-                for (int i = 0; i < 20; i++) {
-                    assertNull(cache.get(i));
-
-                    cache.put(i, i);
-                }
-
-                String spaceName = CU.swapSpaceName(internalCache(cache).context());
-
-                GridSwapSpaceManager swapSpaceMgr = ((IgniteEx)g).context().swap();
-
-                assertEquals(10, swapSpaceMgr.swapKeys(spaceName));
-
-                g.destroyCache(cache.getName());
-
-                assertEquals(0, swapSpaceMgr.swapKeys(spaceName));
-                assertEquals(0, swapSpaceMgr.swapSize(spaceName));
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManagerEvictionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManagerEvictionSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManagerEvictionSelfTest.java
index 4c7c1c0..0d96e17 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManagerEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTtlManagerEvictionSelfTest.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.processors.cache;
 
 import org.apache.ignite.IgniteCache;
+import org.apache.ignite.IgniteException;
 import org.apache.ignite.Ignition;
 import org.apache.ignite.cache.CacheMemoryMode;
 import org.apache.ignite.cache.CacheMode;
@@ -70,7 +71,6 @@ public class GridCacheTtlManagerEvictionSelfTest extends GridCommonAbstractTest
         ccfg.setCacheMode(cacheMode);
         ccfg.setMemoryMode(cacheMemoryMode);
         ccfg.setEagerTtl(true);
-        ccfg.setSwapEnabled(false);
         ccfg.setEvictionPolicy(new FifoEvictionPolicy(ENTRIES_LIMIT, 100));
         ccfg.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new Duration(TimeUnit.HOURS, 12)));
 
@@ -128,9 +128,12 @@ public class GridCacheTtlManagerEvictionSelfTest extends GridCommonAbstractTest
 
             GridTestUtils.waitForCondition(new GridAbsPredicate() {
                 @Override public boolean apply() {
-                    return (cctx.isSwapOrOffheapEnabled()) ?
-                        ENTRIES_TO_PUT == cctx.ttl().pendingSize() :
-                        ENTRIES_LIMIT == cctx.ttl().pendingSize();
+                    try {
+                        return ENTRIES_LIMIT == cctx.ttl().pendingSize();
+                    }
+                    catch (Exception e) {
+                        throw new IgniteException(e);
+                    }
                 }
             }, 3_000);
 
@@ -140,18 +143,11 @@ public class GridCacheTtlManagerEvictionSelfTest extends GridCommonAbstractTest
             final String firstKey = "Some test entry key#0";
             final String lastKey = "Some test entry key#" + ENTRIES_TO_PUT;
 
-            if (cctx.isSwapOrOffheapEnabled()) {
-                assertTrue("last key should NOT be evicted", cache.containsKey(lastKey));
+            assertFalse("first key should be evicted", cache.containsKey(firstKey));
 
-                assertEquals(ENTRIES_TO_PUT, cctx.ttl().pendingSize());
-            }
-            else {
-                assertFalse("first key should be evicted", cache.containsKey(firstKey));
-
-                assertTrue("last key should NOT be evicted", cache.containsKey(lastKey));
+            assertTrue("last key should NOT be evicted", cache.containsKey(lastKey));
 
-                assertEquals("Ttl Manager should NOT track evicted entries", ENTRIES_LIMIT, cctx.ttl().pendingSize());
-            }
+            assertEquals("Ttl Manager should NOT track evicted entries", ENTRIES_LIMIT, cctx.ttl().pendingSize());
         }
         finally {
             Ignition.stopAll(true);

http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java
index 3a07532..1582dbc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java
@@ -3339,7 +3339,7 @@ public class IgniteCacheConfigVariationsFullApiTest extends IgniteCacheConfigVar
         boolean wait = waitForCondition(new GridAbsPredicate() {
             @Override public boolean apply() {
                 for (int i = 0; i < gridCount(); i++) {
-                    if (peek(jcache(i), key) != null)
+                    if (jcache(i).localPeek(key) != null)
                         return false;
                 }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/OffheapCacheOnClientsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/OffheapCacheOnClientsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/OffheapCacheOnClientsTest.java
deleted file mode 100644
index 90985b6..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/OffheapCacheOnClientsTest.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * 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;
-
-import java.util.concurrent.ConcurrentMap;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.cache.CacheMemoryMode;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.IgniteKernal;
-import org.apache.ignite.internal.processors.offheap.GridOffHeapProcessor;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
-import org.apache.ignite.testframework.GridTestUtils;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-
-import static org.apache.ignite.cache.CacheMemoryMode.*;
-import static org.apache.ignite.cache.CacheMode.*;
-
-/**
- *
- */
-public class OffheapCacheOnClientsTest extends GridCommonAbstractTest {
-    /** */
-    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
-
-    /** */
-    private static final String CACHE_NAME = "CACHE_NAME";
-
-    /** */
-    private boolean client;
-
-    /** */
-    private boolean forceSrvMode;
-
-    /** {@inheritDoc} */
-    @Override protected void beforeTestsStarted() throws Exception {
-        super.beforeTestsStarted();
-
-        startGrid(0);
-
-        client = true;
-
-        startGrid(1);
-
-        forceSrvMode = true;
-
-        startGrid(2);
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTestsStopped() throws Exception {
-        stopAllGrids();
-    }
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
-
-        if (client) {
-            cfg.setClientMode(true);
-
-            ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(forceSrvMode);
-        }
-
-        return cfg;
-    }
-    /**
-     * @throws Exception If failed.
-     */
-    public void testOffheapCacheOnClient() throws Exception {
-        try {
-            Ignite client = grid(1);
-
-            testStartCacheOnClient(client, OFFHEAP_TIERED);
-            testStartCacheOnClient(client, OFFHEAP_VALUES);
-            testStartCacheOnClient(client, ONHEAP_TIERED);
-
-            client = grid(2);
-
-            testStartCacheOnClient(client, OFFHEAP_TIERED);
-            testStartCacheOnClient(client, OFFHEAP_VALUES);
-            testStartCacheOnClient(client, ONHEAP_TIERED);
-        }
-        finally {
-            grid(0).destroyCache(CACHE_NAME);
-        }
-    }
-
-    /**
-     * @param client Node.
-     * @param memMode Memory mode.
-     * @throws Exception If failed.
-     */
-    private void testStartCacheOnClient(Ignite client, CacheMemoryMode memMode) throws Exception {
-        assertTrue(client.configuration().isClientMode());
-
-        try {
-            client.createCache(new CacheConfiguration(CACHE_NAME)
-                .setCacheMode(REPLICATED)
-                .setOffHeapMaxMemory(1024 * 1024)
-                .setMemoryMode(memMode));
-
-            IgniteCache<Integer, Integer> cache = client.cache(CACHE_NAME);
-
-            assertNotNull(cache);
-
-            cache.put(1, 1);
-            assertEquals((Integer)1, cache.get(1));
-
-            GridOffHeapProcessor offheap = ((IgniteKernal)client).cachex(CACHE_NAME).context().offheap();
-
-            assertNotNull(offheap);
-
-            ConcurrentMap offheapMaps = GridTestUtils.getFieldValue(offheap, "offheap");
-            assertNotNull(offheapMaps);
-
-            assertEquals(0,offheapMaps.size());
-        }
-        finally {
-            client.destroyCache(CACHE_NAME);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java
index a726932..5951ba3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java
@@ -202,7 +202,7 @@ public class IgniteCachePartitionLossPolicySelfTest extends GridCommonAbstractTe
 
         ignite(0).cache(CACHE_NAME).resetLostPartitions();
 
-        awaitPartitionMapExchange(true, true);
+        awaitPartitionMapExchange(true, true, null);
 
         for (Ignite ig : G.allGrids()) {
             IgniteCache<Integer, Integer> cache = ig.cache(CACHE_NAME);

http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
index 56c10ae..bb72459 100755
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
@@ -84,7 +84,6 @@ import org.apache.ignite.internal.processors.cache.GridCacheReplicatedTxStoreExc
 import org.apache.ignite.internal.processors.cache.GridCacheStopSelfTest;
 import org.apache.ignite.internal.processors.cache.GridCacheStorePutxSelfTest;
 import org.apache.ignite.internal.processors.cache.GridCacheStoreValueBytesSelfTest;
-import org.apache.ignite.internal.processors.cache.GridCacheSwapCleanupTest;
 import org.apache.ignite.internal.processors.cache.GridCacheSwapPreloadSelfTest;
 import org.apache.ignite.internal.processors.cache.GridCacheTtlManagerEvictionSelfTest;
 import org.apache.ignite.internal.processors.cache.GridCacheTtlManagerSelfTest;
@@ -236,7 +235,6 @@ public class IgniteCacheTestSuite extends TestSuite {
 
         // Swap tests.
         suite.addTestSuite(GridCacheSwapPreloadSelfTest.class);
-        suite.addTestSuite(GridCacheSwapCleanupTest.class);
 
         // Common tests.
         suite.addTestSuite(CacheNamesSelfTest.class);

http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
index 16017ea..6e63225 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
@@ -39,7 +39,6 @@ import org.apache.ignite.internal.processors.cache.IgniteCacheEntryProcessorNode
 import org.apache.ignite.internal.processors.cache.IgniteCacheIncrementTxTest;
 import org.apache.ignite.internal.processors.cache.IgniteCachePartitionMapUpdateTest;
 import org.apache.ignite.internal.processors.cache.IgniteDynamicCacheAndNodeStop;
-import org.apache.ignite.internal.processors.cache.OffheapCacheOnClientsTest;
 import org.apache.ignite.internal.processors.cache.distributed.CacheLoadingConcurrentGridStartSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.CacheLoadingConcurrentGridStartSelfTestAllowOverwrite;
 import org.apache.ignite.internal.processors.cache.distributed.CacheLockReleaseNodeLeaveTest;
@@ -269,7 +268,6 @@ public class IgniteCacheTestSuite2 extends TestSuite {
         suite.addTest(new TestSuite(IgniteNoCustomEventsOnNodeStart.class));
 
         suite.addTest(new TestSuite(CacheExchangeMessageDuplicatedStateTest.class));
-        suite.addTest(new TestSuite(OffheapCacheOnClientsTest.class));
 
         return suite;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
index fd32147..541edd2 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
@@ -42,7 +42,6 @@ import org.apache.ignite.internal.processors.cache.CacheStoreUsageMultinodeDynam
 import org.apache.ignite.internal.processors.cache.CacheStoreUsageMultinodeStaticStartAtomicTest;
 import org.apache.ignite.internal.processors.cache.CacheStoreUsageMultinodeStaticStartTxTest;
 import org.apache.ignite.internal.processors.cache.CacheSwapUnswapGetTest;
-import org.apache.ignite.internal.processors.cache.CacheSwapUnswapGetTestSmallQueueSize;
 import org.apache.ignite.internal.processors.cache.CacheTxNotAllowReadFromBackupTest;
 import org.apache.ignite.internal.processors.cache.CrossCacheLockTest;
 import org.apache.ignite.internal.processors.cache.GridCacheMarshallingNodeJoinSelfTest;

http://git-wip-us.apache.org/repos/asf/ignite/blob/86cac7ae/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite5.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite5.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite5.java
index 29a7771..e579aa6 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite5.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite5.java
@@ -24,7 +24,6 @@ import org.apache.ignite.internal.processors.cache.CacheSerializableTransactions
 import org.apache.ignite.internal.processors.cache.ClusterStatePartitionedSelfTest;
 import org.apache.ignite.internal.processors.cache.ClusterStateReplicatedSelfTest;
 import org.apache.ignite.internal.processors.cache.EntryVersionConsistencyReadThroughTest;
-import org.apache.ignite.internal.processors.cache.GridCacheOffHeapCleanupTest;
 import org.apache.ignite.internal.processors.cache.IgniteCachePutStackOverflowSelfTest;
 import org.apache.ignite.internal.processors.cache.IgniteCacheReadThroughEvictionsVariationsSuite;
 import org.apache.ignite.internal.processors.cache.IgniteCacheStoreCollectionTest;
@@ -65,8 +64,6 @@ public class IgniteCacheTestSuite5 extends TestSuite {
         suite.addTest(IgniteCacheReadThroughEvictionsVariationsSuite.suite());
         suite.addTestSuite(IgniteCacheTxIteratorSelfTest.class);
 
-        suite.addTestSuite(GridCacheOffHeapCleanupTest.class);
-
         suite.addTestSuite(CacheRebalancingSelfTest.class);
 
         suite.addTestSuite(ClusterStatePartitionedSelfTest.class);


[36/50] [abbrv] ignite git commit: GG-11808 Implement deletion of snapshots on platform level

Posted by ag...@apache.org.
GG-11808 Implement deletion of snapshots on platform level


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

Branch: refs/heads/ignite-3477
Commit: 8ba772f6bef6c85bf733d40266ed8d3fc5bef9d3
Parents: 53b52da
Author: EdShangGG <es...@gridgain.com>
Authored: Fri Dec 23 18:07:11 2016 +0300
Committer: EdShangGG <es...@gridgain.com>
Committed: Fri Dec 23 18:07:11 2016 +0300

----------------------------------------------------------------------
 .../pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java  | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/8ba772f6/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java
index 08e093d..b58c247 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java
@@ -127,7 +127,6 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage
 
     /** {@inheritDoc} */
     @Nullable @Override public DiscoveryCustomMessage ackMessage() {
-        System.out.println("StartFullSnapshotAckDiscoveryMessage - " + fullSnapshot);
         return new StartFullSnapshotAckDiscoveryMessage(globalSnapshotId, fullSnapshot, lastFullSnapshotIdForCache, cacheNames, err, initiatorId);
     }
 
@@ -136,7 +135,10 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage
         return true;
     }
 
-    public void fullSnapshot(boolean b) {
-        fullSnapshot = b;
+    /**
+     * @param full full snapshot.
+     */
+    public void fullSnapshot(boolean full) {
+        fullSnapshot = full;
     }
 }


[24/50] [abbrv] ignite git commit: ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation fix join inactive node to active cluster (small refactoring)

Posted by ag...@apache.org.
ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation fix join inactive node to active cluster (small refactoring)


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

Branch: refs/heads/ignite-3477
Commit: 842c1b7b8f2063b99cdd4b7740510c2e0b2e2553
Parents: 691c3b7
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Thu Dec 22 16:33:04 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Thu Dec 22 16:33:04 2016 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheProcessor.java    | 26 +++++++++-----------
 1 file changed, 12 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/842c1b7b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index f7a816e..03859d3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -755,33 +755,31 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             //if we start as inactive node, and join to active cluster, we must registrate all caches which
             //was receive on join
             if (!ctx.isDaemon() && currentStatus && !activeOnStart) {
-                CacheConfiguration[] cacheCfgs = ctx.config().getCacheConfiguration();
-
-                CacheConfiguration[] newCacheCfg = new CacheConfiguration[cacheCfgs.length];
-
-                boolean apply = false;
-
-                for (int i = 0; i < cacheCfgs.length; i++) {
-                    CacheConfiguration conf = cacheCfgs[i];
+                List<CacheConfiguration> tmpCacheCfg = new ArrayList<>();
 
+                for (CacheConfiguration conf : ctx.config().getCacheConfiguration()) {
                     for (DynamicCacheDescriptor desc : registeredCaches.values()) {
                         CacheConfiguration c = desc.cacheConfiguration();
-                        IgnitePredicate filter = conf.getNodeFilter();
+                        IgnitePredicate filter = c.getNodeFilter();
 
                         if (c.getName().equals(conf.getName()) &&
-                            (desc.receivedOnDiscovery() || CU.isSystemCache(c.getName()))) {
-
-                            newCacheCfg[i] = c;
+                            ((desc.receivedOnDiscovery() && CU.affinityNode(locNode, filter)) ||
+                                CU.isSystemCache(c.getName()))) {
 
-                            apply = true;
+                            tmpCacheCfg.add(c);
 
                             break;
                         }
                     }
                 }
 
-                if (apply)
+                if (!tmpCacheCfg.isEmpty()) {
+                    CacheConfiguration[] newCacheCfg = new CacheConfiguration[tmpCacheCfg.size()];
+
+                    tmpCacheCfg.toArray(newCacheCfg);
+
                     ctx.config().setCacheConfiguration(newCacheCfg);
+                }
 
                 activeOnStart = ctx.state().active();
             }


[32/50] [abbrv] ignite git commit: GG-11808 Implement deletion of snapshots on platform level

Posted by ag...@apache.org.
GG-11808 Implement deletion of snapshots on platform level


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

Branch: refs/heads/ignite-3477
Commit: 53b52da79ba22ed5d0ae1e09202131611ae65910
Parents: 561101f
Author: EdShangGG <es...@gridgain.com>
Authored: Thu Dec 22 22:14:22 2016 +0300
Committer: EdShangGG <es...@gridgain.com>
Committed: Thu Dec 22 22:14:22 2016 +0300

----------------------------------------------------------------------
 .../internal/processors/cache/database/tree/io/PageMetaIO.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/53b52da7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
index 2c5f7a6..8d12f7c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
@@ -136,7 +136,7 @@ public class PageMetaIO extends PageIO {
      * @param buf Buffer.
      * @param lastSuccessfulFullSnapshotId Last successful full snapshot id.
      */
-    public void  setLastSuccessfulFullSnapshotId(@NotNull ByteBuffer buf, long lastSuccessfulFullSnapshotId) {
+    public void setLastSuccessfulFullSnapshotId(@NotNull ByteBuffer buf, long lastSuccessfulFullSnapshotId) {
         buf.putLong(LAST_SUCCESSFUL_FULL_SNAPSHOT_ID_OFF, lastSuccessfulFullSnapshotId);
     }
 


[02/50] [abbrv] ignite git commit: ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation fix fail checkpoint (remove all lsnr on deactivate)

Posted by ag...@apache.org.
ignite-gg-11650 Stabilize 8.0.2.ea1 branch after merging activation/deactivation  fix fail checkpoint (remove all lsnr on deactivate)


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

Branch: refs/heads/ignite-3477
Commit: ad29cc92333525227c398c2f783d0947069da376
Parents: ef03eef
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Mon Dec 19 19:27:54 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Mon Dec 19 19:27:54 2016 +0300

----------------------------------------------------------------------
 .../dht/preloader/GridDhtPartitionsExchangeFuture.java         | 6 ------
 .../internal/processors/cluster/GridClusterStateProcessor.java | 4 +---
 2 files changed, 1 insertion(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ad29cc92/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index e38a185..8f4fb9c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -1601,12 +1601,6 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
                 if (exchangeOnChangeGlobalState && !F.isEmpty(changeGlobalStateExceptions))
                     cctx.kernalContext().state().onFullResponseMessage(changeGlobalStateExceptions);
 
-                //todo check it
-                /*ClusterState newState = newClusterState();
-
-                if (newState != null && cctx.kernalContext().cache().active() != newState)
-                    cctx.cache().active(newState);*/
-
                 onDone(exchangeId().topologyVersion());
             }
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/ad29cc92/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
index d655e62..673ef04 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
@@ -372,14 +372,12 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
         if (actx.activate) {
             try {
                 if (!ctx.clientNode()) {
-                    sharedCtx.wal().onDeActivate(ctx);
-
                     sharedCtx.database().onDeActivate(ctx);
 
                     if (sharedCtx.pageStore() != null)
                         sharedCtx.pageStore().onDeActivate(ctx);
 
-                    sharedCtx.database().onDeActivate(ctx);
+                    sharedCtx.wal().onDeActivate(ctx);
                 }
 
                 cacheProc.onKernalStopCaches(true);