You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by se...@apache.org on 2015/07/22 12:40:41 UTC

[1/5] incubator-ignite git commit: ignite-959-z - debug

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-959-m [created] ca924559f


ignite-959-z - debug


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

Branch: refs/heads/ignite-959-m
Commit: ff60850bac4496416d7675e0493ece79d1974212
Parents: f9fe999
Author: S.Vladykin <sv...@gridgain.com>
Authored: Mon Jul 20 10:36:42 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Mon Jul 20 10:36:42 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheMapEntry.java     |   2 +-
 .../apache/ignite/internal/util/GridDebug.java  | 189 ++++++++++---------
 .../unsafe/GridOffheapSnapTreeSelfTest.java     |   3 +-
 .../inmemory/GridTestSwapSpaceSpi.java          |  12 ++
 .../processors/query/h2/IgniteH2Indexing.java   |  12 +-
 .../query/h2/opt/GridH2AbstractKeyValueRow.java |  70 +++++--
 .../query/h2/opt/GridH2IndexBase.java           |   7 +
 .../query/h2/opt/GridH2RowDescriptor.java       |   3 +-
 .../processors/query/h2/opt/GridH2Table.java    |  39 +++-
 .../query/h2/opt/GridH2TreeIndex.java           |  20 ++
 .../IgniteCacheQueryMultiThreadedSelfTest.java  |  30 ++-
 11 files changed, 257 insertions(+), 130 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff60850b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git 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
index 4680994..e91a34f 100644
--- 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
@@ -3483,7 +3483,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
             GridCacheQueryManager<?, ?> qryMgr = cctx.queries();
 
             if (qryMgr != null)
-                qryMgr.remove(key(), prevVal == null ? null : prevVal);
+                qryMgr.remove(key(), prevVal);
         }
         catch (IgniteCheckedException e) {
             throw new GridCacheIndexUpdateException(e);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff60850b/modules/core/src/main/java/org/apache/ignite/internal/util/GridDebug.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridDebug.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridDebug.java
index 98c8664..faf1d7f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridDebug.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridDebug.java
@@ -21,13 +21,13 @@ import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.lang.*;
 import org.jetbrains.annotations.*;
+import org.jsr166.*;
 
 import java.io.*;
 import java.lang.management.*;
 import java.nio.charset.*;
 import java.text.*;
 import java.util.*;
-import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
 /**
@@ -35,8 +35,8 @@ import java.util.concurrent.atomic.*;
  */
 public class GridDebug {
     /** */
-    private static final AtomicReference<ConcurrentLinkedQueue<Item>> que =
-        new AtomicReference<>(new ConcurrentLinkedQueue<Item>());
+    private static final AtomicReference<ConcurrentHashMap8<Long, Que>> que =
+        new AtomicReference<>(new ConcurrentHashMap8<Long, Que>());
 
     /** */
     private static final SimpleDateFormat DEBUG_DATE_FMT = new SimpleDateFormat("HH:mm:ss,SSS");
@@ -80,15 +80,6 @@ public class GridDebug {
     }
 
     /**
-     * Gets collected debug items queue.
-     *
-     * @return Items queue.
-     */
-    public static ConcurrentLinkedQueue<Item> queue() {
-        return que.get();
-    }
-
-    /**
      * @param allow Write log.
      */
     public static synchronized void allowWriteLog(boolean allow) {
@@ -121,10 +112,22 @@ public class GridDebug {
      * @param x Debugging data.
      */
     public static void debug(Object ... x) {
-        ConcurrentLinkedQueue<Item> q = que.get();
+//        if (true)
+//            return;
+
+        ConcurrentHashMap8<Long,Que> m = que.get();
+
+        if (m == null)
+            return;
+
+        Item i = new Item(x);
+
+        Que q = m.get(i.threadId);
 
-        if (q != null)
-            q.add(new Item(x));
+        if (q == null)
+            m.put(i.threadId, q = new Que());
+
+        q.add(i);
     }
 
     /**
@@ -174,25 +177,6 @@ public class GridDebug {
     }
 
     /**
-     * Dumps given number of last events.
-     *
-     * @param n Number of last elements to dump.
-     */
-    public static void dumpLastAndStop(int n) {
-        ConcurrentLinkedQueue<Item> q = que.getAndSet(null);
-
-        if (q == null)
-            return;
-
-        int size = q.size();
-
-        while (size-- > n)
-            q.poll();
-
-        dump(q);
-    }
-
-    /**
      * Dump given queue to stdout.
      *
      * @param que Queue.
@@ -213,58 +197,28 @@ public class GridDebug {
     }
 
     /**
-     * Dump existing queue to stdout and atomically replace it with null so that no subsequent logging is possible.
-     *
-     * @param x Parameters.
-     * @return Empty string (useful for assertions like {@code assert x == 0 : D.dumpWithStop();} ).
-     */
-    public static String dumpWithStop(Object... x) {
-        debug(x);
-        return dumpWithReset(null, null);
-    }
-
-    /**
-     * Dump existing queue to stdout and atomically replace it with new queue.
+     * Dump existing queue to stdout.
      *
-     * @return Empty string (useful for assertions like {@code assert x == 0 : D.dumpWithReset();} ).
-     */
-    public static String dumpWithReset() {
-        return dumpWithReset(new ConcurrentLinkedQueue<Item>(), null);
-    }
-
-    /**
-     * Dump existing queue to stdout and atomically replace it with given.
-     *
-     * @param q2 Queue.
      * @param filter Filter for logged debug items.
      * @return Empty string.
      */
-    public static String dumpWithReset(
-        @Nullable ConcurrentLinkedQueue<Item> q2,
-        @Nullable IgnitePredicate<Item> filter
-    ) {
-        ConcurrentLinkedQueue<Item> q;
+    public static String dumpWithStop(@Nullable IgnitePredicate<Item> filter) {
+        ConcurrentHashMap8<Long,Que> m;
 
         do {
-            q = que.get();
+            m = que.get();
 
-            if (q == null)
-                break; // Stopped.
+            if (m == null)
+                return ""; // Stopped.
         }
-        while (!que.compareAndSet(q, q2));
+        while (!que.compareAndSet(m, null));
 
-        Collection<Item> col = null;
+        List<Item> col = new ArrayList<>();
 
-        if (filter == null)
-            col = q;
-        else if (q != null) {
-            col = new ArrayList<>();
+        for (Que q : m.values()) // Merge all threads together.
+            q.collect(col, filter);
 
-            for (Item item : q) {
-                if (filter.apply(item))
-                    col.add(item);
-            }
-        }
+        Collections.sort(col);
 
         dump(col);
 
@@ -272,16 +226,6 @@ public class GridDebug {
     }
 
     /**
-     * Reset queue to empty one.
-     */
-    public static void reset() {
-        ConcurrentLinkedQueue<Item> old = que.get();
-
-        if (old != null) // Was not stopped.
-            que.compareAndSet(old, new ConcurrentLinkedQueue<Item>());
-    }
-
-    /**
      * Formats log entry string.
      *
      * @param ts Timestamp.
@@ -299,9 +243,9 @@ public class GridDebug {
      * Debug info queue item.
      */
     @SuppressWarnings({"PublicInnerClass", "PublicField"})
-    public static class Item {
+    public static class Item implements Comparable<Item> {
         /** */
-        public final long ts = System.currentTimeMillis();
+        public final long ts = U.currentTimeMillis();
 
         /** */
         public final String threadName;
@@ -312,6 +256,9 @@ public class GridDebug {
         /** */
         public final Object[] data;
 
+        /** */
+        public int order;
+
         /**
          * Constructor.
          *
@@ -326,8 +273,76 @@ public class GridDebug {
         }
 
         /** {@inheritDoc} */
+        @Override public int compareTo(Item o) {
+            if (ts == o.ts)
+                return order > o.order ? 1 : -1;
+
+            return ts > o.ts ? 1 : -1;
+        }
+
+        /** {@inheritDoc} */
         @Override public String toString() {
             return formatEntry(ts, threadName, threadId, data);
         }
     }
+
+    public static class Que {
+        /** */
+        private static int BLOCK_SIZE = 1024;
+
+        /** */
+        private static int MASK = BLOCK_SIZE - 1;
+
+        /** */
+        private Block last;
+
+        /** */
+        private int curIdx;
+
+        public void add(Item item) {
+            assert item != null;
+
+            int idx = curIdx & MASK;
+
+            if (idx == 0)
+                last = new Block(last, BLOCK_SIZE);
+
+            item.order = curIdx++;
+
+            last.items[idx] = item;
+        }
+
+        public void collect(Collection<Item> to, IgnitePredicate<Item> filter) {
+            Block b = last;
+
+            while (b != null) {
+                for (Item item : b.items) {
+                    if (item == null)
+                        break;
+
+                    if (filter == null || filter.apply(item))
+                        to.add(item);
+                }
+
+                b = b.prev;
+            }
+        }
+    }
+
+    /**
+     *
+     */
+    private static class Block {
+        /** */
+        private final Item[] items;
+
+        /** */
+        private final Block prev;
+
+        public Block(Block prev, int cap) {
+            this.prev = prev;
+
+            items = new Item[cap];
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff60850b/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffheapSnapTreeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffheapSnapTreeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffheapSnapTreeSelfTest.java
index 8bb8f54..7a5f33d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffheapSnapTreeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffheapSnapTreeSelfTest.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal.util.offheap.unsafe;
 
 import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.testframework.junits.common.*;
 
 import java.util.*;
@@ -290,7 +289,7 @@ public class GridOffheapSnapTreeSelfTest extends GridCommonAbstractTest {
         @Override public void decrementRefCount() {
             int res = refs.decrementAndGet();
 
-            assert res >= 0 : D.dumpWithStop() + ptr;
+            assert res >= 0 : ptr;
         }
 
         @SuppressWarnings("SubtractionInCompareTo")

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff60850b/modules/core/src/test/java/org/apache/ignite/spi/swapspace/inmemory/GridTestSwapSpaceSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/swapspace/inmemory/GridTestSwapSpaceSpi.java b/modules/core/src/test/java/org/apache/ignite/spi/swapspace/inmemory/GridTestSwapSpaceSpi.java
index d8303a4..e9b3cf0 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/swapspace/inmemory/GridTestSwapSpaceSpi.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/swapspace/inmemory/GridTestSwapSpaceSpi.java
@@ -50,6 +50,18 @@ public class GridTestSwapSpaceSpi extends IgniteSpiAdapter implements SwapSpaceS
         // No-op.
     }
 
+    /**
+     * @return Size of all spaces.
+     */
+    public int size() {
+        int size = 0;
+
+        for (Space space : spaces.values())
+            size += space.size();
+
+        return size;
+    }
+
     /** {@inheritDoc} */
     @Override public void clear(@Nullable String spaceName) throws IgniteSpiException {
         Space space = space(spaceName);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff60850b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --git 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
index 06c0961..36f5537 100644
--- 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
@@ -2102,7 +2102,7 @@ public class IgniteH2Indexing implements GridQueryIndexing {
                     return ValueTime.get((Time)obj);
                 case Value.TIMESTAMP:
                     if (obj instanceof java.util.Date && !(obj instanceof Timestamp))
-                        obj = new Timestamp(((java.util.Date) obj).getTime());
+                        obj = new Timestamp(((java.util.Date)obj).getTime());
 
                     return GridH2Utils.toValueTimestamp((Timestamp)obj);
                 case Value.DECIMAL:
@@ -2134,11 +2134,13 @@ public class IgniteH2Indexing implements GridQueryIndexing {
         }
 
         /** {@inheritDoc} */
-        @Override public GridH2Row createRow(CacheObject key, @Nullable CacheObject val, long expirationTime)
-            throws IgniteCheckedException {
+        @Override public GridH2Row createRow(CacheObject key, @Nullable CacheObject val, long expirationTime,
+            boolean search) throws IgniteCheckedException {
             try {
-                if (val == null) // Only can happen for remove operation, can create simple search row.
-                    return new GridH2Row(wrap(key, keyType), null);
+                assert val != null || search : "Only can happen for remove or swap operations.";
+
+                if (search)
+                    return new GridH2Row(wrap(key, keyType), val == null ? null : wrap(val, valType));
 
                 return schema.offheap == null ?
                     new GridH2KeyValueRowOnheap(this, key, keyType, val, valType, expirationTime) :

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff60850b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java
index 6e95710..e784f0e 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java
@@ -19,7 +19,9 @@ package org.apache.ignite.internal.processors.query.h2.opt;
 
 import org.apache.ignite.*;
 import org.apache.ignite.internal.processors.query.*;
+import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
 import org.h2.message.*;
 import org.h2.result.*;
 import org.h2.value.*;
@@ -102,6 +104,8 @@ public abstract class GridH2AbstractKeyValueRow extends GridH2Row {
      * @throws IgniteCheckedException If failed.
      */
     public synchronized void onSwap() throws IgniteCheckedException {
+        D.debug("onSwap", getValue(KEY_COL).getInt());
+
         setValue(VAL_COL, null);
     }
 
@@ -113,6 +117,8 @@ public abstract class GridH2AbstractKeyValueRow extends GridH2Row {
      * @throws IgniteCheckedException If failed.
      */
     public synchronized void onUnswap(Object val, boolean beforeRmv) throws IgniteCheckedException {
+        D.debug("onUnswap", getValue(KEY_COL).getInt(), val, val.getClass());
+
         setValue(VAL_COL, desc.wrap(val, desc.valueType()));
 
         notifyAll();
@@ -176,9 +182,11 @@ public abstract class GridH2AbstractKeyValueRow extends GridH2Row {
     /** {@inheritDoc} */
     @Override public Value getValue(int col) {
         if (col < DEFAULT_COLUMNS_COUNT) {
-            Value v = peekValue(col);
+            Value v = null;
 
             if (col == VAL_COL) {
+                v = syncValue(0);
+
                 long start = 0;
                 int attempt = 0;
 
@@ -194,22 +202,46 @@ public abstract class GridH2AbstractKeyValueRow extends GridH2Row {
                         return v;
                     }
 
-                    Object k = getValue(KEY_COL).getObject();
+                    final Object k = getValue(KEY_COL).getObject();
+
+                    final Integer kx = getValue(KEY_COL).getInt();
 
                     try {
                         Object valObj = desc.readFromSwap(k);
 
                         if (valObj != null) {
-                            Value upd = desc.wrap(valObj, desc.valueType());
-
-                            v = updateWeakValue(upd);
-
-                            return v == null ? upd : v;
+                            // Even if valObj was found in swap we still have to recheck if this row was concurrently
+                            // unswapped because we can racy read wrong value from swap here.
+                            if ((v = syncValue(0)) == null && (v = getOffheapValue(VAL_COL)) == null) {
+                                try {
+                                    Value upd = desc.wrap(valObj, desc.valueType());
+
+                                    v = updateWeakValue(upd);
+
+                                    return v == null ? upd : v;
+                                }
+                                catch (ClassCastException e) {
+                                    D.dumpWithStop(new IgnitePredicate<GridDebug.Item>() {
+                                        @Override public boolean apply(GridDebug.Item item) {
+                                            Integer k0 = null;
+
+                                            try {
+                                                k0 = desc.wrap(item.data[1], Value.INT).getInt();
+                                            }
+                                            catch (IgniteCheckedException e1) {
+                                                e1.printStackTrace();
+                                            }
+
+                                            return kx.equals(k0);
+                                        }
+                                    });
+
+                                    throw new IllegalStateException(e);
+                                }
+                            }
                         }
-                        else {
-                            // If nothing found in swap then we should be already unswapped.
+                        else // If nothing found in swap then we should be already unswapped.
                             v = syncValue(attempt);
-                        }
                     }
                     catch (IgniteCheckedException e) {
                         throw new IgniteException(e);
@@ -225,20 +257,22 @@ public abstract class GridH2AbstractKeyValueRow extends GridH2Row {
                 }
             }
 
-            if (v == null) {
-                assert col == KEY_COL : col;
+            if (col == KEY_COL) {
+                v = peekValue(KEY_COL);
 
-                v = getOffheapValue(KEY_COL);
+                if (v == null) {
+                    v = getOffheapValue(KEY_COL);
 
-                assert v != null : v;
+                    assert v != null : v;
 
-                setValue(KEY_COL, v);
+                    setValue(KEY_COL, v);
 
-                if (peekValue(VAL_COL) == null)
-                    cache();
+                    if (peekValue(VAL_COL) == null)
+                        cache();
+                }
             }
 
-            assert !(v instanceof WeakValue) : v;
+            assert v != null;
 
             return v;
         }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff60850b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java
index 1b076f0..c239eba 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java
@@ -107,6 +107,13 @@ public abstract class GridH2IndexBase extends BaseIndex {
     }
 
     /**
+     * @return Validation message for index.
+     */
+    public String validate() {
+        return "???";
+    }
+
+    /**
      * Filters rows from expired ones and using predicate.
      *
      * @param iter Iterator over rows.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff60850b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
index cd65ab3..1cf1624 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2RowDescriptor.java
@@ -39,10 +39,11 @@ public interface GridH2RowDescriptor extends GridOffHeapSmartPointerFactory<Grid
      * @param key Key.
      * @param val Value.
      * @param expirationTime Expiration time in millis.
+     * @param search Create search row for remove or swap.
      * @return Row.
      * @throws IgniteCheckedException If failed.
      */
-    public GridH2Row createRow(CacheObject key, @Nullable CacheObject val, long expirationTime)
+    public GridH2Row createRow(CacheObject key, @Nullable CacheObject val, long expirationTime, boolean search)
         throws IgniteCheckedException;
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff60850b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
index 92991af..0a5f55a 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
@@ -19,7 +19,10 @@ package org.apache.ignite.internal.processors.query.h2.opt;
 
 import org.apache.ignite.*;
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.offheap.unsafe.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
 import org.h2.api.*;
 import org.h2.command.ddl.*;
 import org.h2.engine.*;
@@ -37,6 +40,8 @@ import java.util.*;
 import java.util.concurrent.*;
 import java.util.concurrent.locks.*;
 
+import static org.apache.ignite.internal.processors.query.h2.opt.GridH2AbstractKeyValueRow.*;
+
 /**
  * H2 Table implementation.
  */
@@ -140,7 +145,7 @@ public class GridH2Table extends TableBase {
 
         assert desc != null;
 
-        GridH2Row searchRow = desc.createRow(key, null, 0);
+        GridH2Row searchRow = desc.createRow(key, null, 0, true);
 
         GridUnsafeMemory mem = desc.memory();
 
@@ -152,6 +157,8 @@ public class GridH2Table extends TableBase {
         try {
             GridH2AbstractKeyValueRow row = (GridH2AbstractKeyValueRow)pk.findOne(searchRow);
 
+//            D.debug("onSwapUnswap", key, getName(), row == null, val);
+
             if (row == null)
                 return false;
 
@@ -305,7 +312,9 @@ public class GridH2Table extends TableBase {
         throws IgniteCheckedException {
         assert desc != null;
 
-        GridH2Row row = desc.createRow(key, val, expirationTime);
+        D.debug("update", key, getName(), rmv, val);
+
+        GridH2Row row = desc.createRow(key, val, expirationTime, rmv);
 
         return doUpdate(row, rmv);
     }
@@ -380,20 +389,32 @@ public class GridH2Table extends TableBase {
                 //  index(1) is PK, get full row from there (search row here contains only key but no other columns).
                 GridH2Row old = pk.remove(row);
 
-                if (old instanceof GridH2AbstractKeyValueRow) { // Unswap value.
-                    Value v = row.getValue(GridH2AbstractKeyValueRow.VAL_COL);
+                if (old != null) {
+                    if (old instanceof GridH2AbstractKeyValueRow) { // Unswap value.
+                        Value v = row.getValue(VAL_COL);
 
-                    if (v != null)
-                        ((GridH2AbstractKeyValueRow)old).onUnswap(v.getObject(), true);
-                }
+                        if (v != null)
+                            ((GridH2AbstractKeyValueRow)old).onUnswap(v.getObject(), true);
+                    }
 
-                if (old != null) {
                     // Remove row from all indexes.
                     // Start from 2 because 0 - Scan (don't need to update), 1 - PK (already updated).
                     for (int i = 2, len = idxs.size(); i < len; i++) {
                         Row res = index(i).remove(old);
 
-                        assert eq(pk, res, old): "\n" + old + "\n" + res;
+                        assert eq(pk, res, old): "\n" + old + "\n" + res + "\n" + i + " -> " + index(i).getName() +
+                            " -> " + index(i).validate() + D.dumpWithStop(new IgnitePredicate<GridDebug.Item>() {
+                            @Override public boolean apply(GridDebug.Item item) {
+                                try {
+                                    return row.getValue(KEY_COL).getInt() == desc.wrap(item.data[1], Value.INT).getInt();
+                                }
+                                catch (IgniteCheckedException e1) {
+                                    e1.printStackTrace();
+                                }
+
+                                return false;
+                            }
+                        });
                     }
                 }
                 else

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff60850b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
index eee624b..b3997c5 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
@@ -147,6 +147,26 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
             U.closeQuiet((Closeable)s);
     }
 
+    /** {@inheritDoc} */
+    @Override public String validate() {
+        Iterator<GridH2Row> iter = rows();
+
+        if (iter.hasNext()) {
+            GridH2Row prev = iter.next();
+
+            while (iter.hasNext()) {
+                GridH2Row next = iter.next();
+
+                if (compareRows(prev, next) >= 0)
+                    return "Wrong order: " + prev + " > " + next;
+
+                prev = next;
+            }
+        }
+
+        return "OK";
+    }
+
     /**
      * @return Snapshot for current thread if there is one.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff60850b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java
index 3e50443..547b19d 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java
@@ -32,13 +32,14 @@ import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.apache.ignite.spi.swapspace.file.*;
+import org.apache.ignite.spi.swapspace.inmemory.*;
 import org.apache.ignite.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 
 import javax.cache.*;
 import java.io.*;
 import java.util.*;
+import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.*;
@@ -65,7 +66,10 @@ public class IgniteCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTes
     private static AtomicInteger idxUnswapCnt = new AtomicInteger();
 
     /** */
-    private static final long DURATION = 30 * 1000;
+    private static final long DURATION = 180 * 1000;
+
+    /** */
+    private static List<GridTestSwapSpaceSpi> swaps = new CopyOnWriteArrayList<>();
 
     /** Don't start grid by default. */
     public IgniteCacheQueryMultiThreadedSelfTest() {
@@ -82,7 +86,11 @@ public class IgniteCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTes
 
         cfg.setDiscoverySpi(disco);
 
-        cfg.setSwapSpaceSpi(new FileSwapSpaceSpi());
+        GridTestSwapSpaceSpi swapSpi = new GridTestSwapSpaceSpi();
+
+        swaps.add(swapSpi);
+
+        cfg.setSwapSpaceSpi(swapSpi);
 
         cfg.setCacheConfiguration(cacheConfiguration());
 
@@ -203,12 +211,20 @@ public class IgniteCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTes
                     c.remove(e.getKey());
             }
 
-            U.sleep(5000);
+            U.sleep(500);
 
             assertEquals("Swap keys: " + c.size(CachePeekMode.SWAP), 0, c.size(CachePeekMode.SWAP));
             assertEquals(0, c.size(CachePeekMode.OFFHEAP));
             assertEquals(0, c.size(CachePeekMode.PRIMARY));
             assertEquals(0, c.size());
+            assertEquals(0, swaps.get(i).size());
+
+            if (offheapEnabled()) {
+                String swapSpace = CU.swapSpaceName(((IgniteCacheProxy)c).context());
+
+                assertEquals(0, grid(i).context().offheap().allocatedSize(swapSpace));
+                assertEquals(0, grid(i).context().offheap().entriesCount(swapSpace));
+            }
         }
     }
 
@@ -328,8 +344,8 @@ public class IgniteCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTes
             return;
 
         assertEquals(0, g.cache(null).localSize());
-        assertEquals(0, c1.query(new SqlQuery(String.class, "1 = 1")).getAll().size());
-        assertEquals(0, c.query(new SqlQuery(Long.class, "1 = 1")).getAll().size());
+        assertEquals(0, c1.query(new SqlQuery<>(String.class, "1 = 1")).getAll().size());
+        assertEquals(0, c.query(new SqlQuery<>(Long.class, "1 = 1")).getAll().size());
 
         Random rnd = new Random();
 
@@ -390,7 +406,7 @@ public class IgniteCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTes
      */
     @SuppressWarnings({"TooBroadScope"})
     public void testMultiThreadedSwapUnswapLongString() throws Exception {
-        int threadCnt = 50;
+        int threadCnt = 100;
         final int keyCnt = 2000;
         final int valCnt = 10000;
 


[5/5] incubator-ignite git commit: ignite-959-m - clean

Posted by se...@apache.org.
ignite-959-m - clean


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

Branch: refs/heads/ignite-959-m
Commit: ca924559f4ef59f7510e525a53a08c943e0ce6db
Parents: 5f6e86d
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jul 22 13:40:25 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jul 22 13:40:25 2015 +0300

----------------------------------------------------------------------
 .../processors/query/h2/opt/GridH2AbstractKeyValueRow.java       | 2 --
 .../ignite/internal/processors/query/h2/opt/GridH2Table.java     | 2 --
 .../processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java  | 4 ++--
 3 files changed, 2 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ca924559/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java
index 5e1aade..d788431 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java
@@ -198,8 +198,6 @@ public abstract class GridH2AbstractKeyValueRow extends GridH2Row {
 
                     final Object k = getValue(KEY_COL).getObject();
 
-                    final Integer kx = getValue(KEY_COL).getInt();
-
                     try {
                         Object valObj = desc.readFromSwap(k);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ca924559/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
index 1d2cf0f..ef6c2ef 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
@@ -154,8 +154,6 @@ public class GridH2Table extends TableBase {
         try {
             GridH2AbstractKeyValueRow row = (GridH2AbstractKeyValueRow)pk.findOne(searchRow);
 
-//            D.debug("onSwapUnswap", key, getName(), row == null, val);
-
             if (row == null)
                 return false;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ca924559/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java
index 8841ae7..33dbd08 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java
@@ -211,7 +211,7 @@ public class IgniteCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTes
                     c.remove(e.getKey());
             }
 
-            U.sleep(3000);
+            U.sleep(5000);
 
             assertEquals("Swap keys: " + c.size(CachePeekMode.SWAP), 0, c.size(CachePeekMode.SWAP));
             assertEquals(0, c.size(CachePeekMode.OFFHEAP));
@@ -406,7 +406,7 @@ public class IgniteCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTes
      */
     @SuppressWarnings({"TooBroadScope"})
     public void testMultiThreadedSwapUnswapLongString() throws Exception {
-        int threadCnt = 100;
+        int threadCnt = 50;
         final int keyCnt = 2000;
         final int valCnt = 10000;
 


[2/5] incubator-ignite git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-959-z

Posted by se...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-959-z

# Conflicts:
#	modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
#	modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java


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

Branch: refs/heads/ignite-959-m
Commit: 2ebdc567ee71fd92d8991608ce81ac0f86a184d8
Parents: ff60850 8e1492a
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jul 22 13:16:27 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jul 22 13:16:27 2015 +0300

----------------------------------------------------------------------
 DEVNOTES.txt                                    |    8 +
 RELEASE_NOTES.txt                               |   14 +
 assembly/LICENSE_FABRIC                         |  306 +++++
 assembly/LICENSE_HADOOP                         |  259 ++++
 assembly/NOTICE_FABRIC                          |   13 +
 assembly/NOTICE_HADOOP                          |   12 +
 assembly/dependencies-fabric.xml                |   14 +
 assembly/dependencies-hadoop.xml                |   12 +
 assembly/dependencies-visor-console.xml         |   20 +-
 assembly/release-base.xml                       |   10 -
 assembly/release-fabric.xml                     |   12 +
 assembly/release-hadoop.xml                     |   12 +
 bin/ignite.bat                                  |    8 +-
 bin/ignite.sh                                   |    6 +-
 bin/include/parseargs.bat                       |    1 +
 bin/include/parseargs.sh                        |    3 +
 dev-tools/slurp.sh                              |    2 +-
 examples/pom.xml                                |    2 +-
 .../examples/ScalarCacheAffinityExample.scala   |    2 +-
 .../scalar/examples/ScalarCacheExample.scala    |    2 +-
 .../ScalarCachePopularNumbersExample.scala      |    2 +-
 .../examples/ScalarCacheQueryExample.scala      |    2 +-
 .../examples/ScalarSnowflakeSchemaExample.scala |    4 +-
 modules/aop/licenses/aspectj-epl-license.txt    |   69 -
 modules/aop/pom.xml                             |    2 +-
 modules/apache-license-gen/pom.xml              |   35 +
 .../src/main/resources/META-INF/licenses.txt.vm |   42 +
 modules/aws/pom.xml                             |    2 +-
 modules/clients/pom.xml                         |    2 +-
 .../ClientAbstractConnectivitySelfTest.java     |    4 +-
 modules/cloud/pom.xml                           |    2 +-
 modules/codegen/pom.xml                         |    2 +-
 modules/core/licenses/jsr166-license.txt        |    3 +
 modules/core/licenses/snaptree-bsd-license.txt  |    2 +-
 modules/core/pom.xml                            |   13 +-
 .../src/main/java/org/apache/ignite/Ignite.java |    2 +-
 .../java/org/apache/ignite/IgniteCache.java     |   22 +-
 .../IgniteClientDisconnectedException.java      |   61 +
 .../java/org/apache/ignite/IgniteCluster.java   |    8 +
 .../apache/ignite/IgniteSystemProperties.java   |    3 +
 .../org/apache/ignite/cache/CacheManager.java   |   13 +-
 .../apache/ignite/cache/CacheTypeMetadata.java  |   53 +-
 .../AffinityNodeAddressHashResolver.java        |    8 +-
 .../affinity/AffinityNodeHashResolver.java      |    5 +
 .../affinity/AffinityNodeIdHashResolver.java    |    6 +
 .../affinity/fair/FairAffinityFunction.java     |    5 +-
 .../rendezvous/RendezvousAffinityFunction.java  |   22 +-
 .../cache/eviction/fifo/FifoEvictionPolicy.java |    5 -
 .../cache/eviction/lru/LruEvictionPolicy.java   |    5 -
 .../eviction/sorted/SortedEvictionPolicy.java   |   19 +-
 .../org/apache/ignite/cluster/ClusterGroup.java |   18 +-
 .../org/apache/ignite/cluster/ClusterNode.java  |    2 +
 .../ignite/compute/ComputeJobResultPolicy.java  |    3 +-
 .../configuration/CacheConfiguration.java       |  115 +-
 .../configuration/IgniteConfiguration.java      |   26 +
 .../configuration/IgniteReflectionFactory.java  |   81 +-
 .../configuration/NearCacheConfiguration.java   |   10 +-
 .../configuration/TransactionConfiguration.java |   23 +
 .../apache/ignite/internal/GridComponent.java   |   18 +
 .../ignite/internal/GridJobSiblingImpl.java     |    2 +-
 .../ignite/internal/GridKernalContext.java      |    5 +
 .../ignite/internal/GridKernalContextImpl.java  |   36 +-
 .../ignite/internal/GridKernalGateway.java      |   46 +-
 .../ignite/internal/GridKernalGatewayImpl.java  |   85 +-
 .../apache/ignite/internal/GridKernalState.java |    3 +
 .../ignite/internal/GridPluginComponent.java    |   11 +
 ...gniteClientDisconnectedCheckedException.java |   49 +
 .../apache/ignite/internal/IgniteKernal.java    |  272 ++--
 .../ignite/internal/IgniteNodeAttributes.java   |    3 +
 .../internal/cluster/ClusterGroupAdapter.java   |   50 +-
 .../cluster/IgniteClusterAsyncImpl.java         |   17 +-
 .../internal/cluster/IgniteClusterImpl.java     |   18 +
 .../internal/interop/InteropIgnition.java       |   48 +-
 .../internal/interop/InteropProcessor.java      |    7 +
 .../internal/managers/GridManagerAdapter.java   |   19 +-
 .../managers/communication/GridIoManager.java   |  173 ++-
 .../managers/communication/GridIoMessage.java   |   15 +-
 .../managers/communication/GridIoPolicy.java    |   32 +-
 .../deployment/GridDeploymentCommunication.java |    2 +-
 .../deployment/GridDeploymentManager.java       |   95 +-
 .../discovery/GridDiscoveryManager.java         |  229 +++-
 .../eventstorage/GridEventStorageManager.java   |    2 +-
 .../failover/GridFailoverContextImpl.java       |   28 +-
 .../managers/failover/GridFailoverManager.java  |   13 +-
 .../processors/GridProcessorAdapter.java        |   11 +
 .../affinity/GridAffinityAssignmentCache.java   |   26 +-
 .../processors/cache/CacheObjectImpl.java       |    1 -
 .../processors/cache/CacheOperationContext.java |   44 +-
 .../cache/CacheOsConflictResolutionManager.java |    6 +
 .../internal/processors/cache/CacheType.java    |    8 +-
 .../cache/DynamicCacheChangeBatch.java          |   17 +
 .../cache/DynamicCacheChangeRequest.java        |   39 +-
 .../processors/cache/GridCacheAdapter.java      |  118 +-
 .../cache/GridCacheAffinityManager.java         |   21 +-
 .../processors/cache/GridCacheAtomicFuture.java |   12 +-
 .../processors/cache/GridCacheAttributes.java   |   11 +-
 .../cache/GridCacheConcurrentMap.java           |   15 +-
 .../processors/cache/GridCacheContext.java      |   69 +-
 .../cache/GridCacheDeploymentManager.java       |   10 +-
 .../processors/cache/GridCacheGateway.java      |  120 +-
 .../processors/cache/GridCacheIoManager.java    |   28 +-
 .../processors/cache/GridCacheManager.java      |    6 +
 .../cache/GridCacheManagerAdapter.java          |    6 +
 .../processors/cache/GridCacheMvccManager.java  |   65 +-
 .../GridCachePartitionExchangeManager.java      |  146 ++-
 .../processors/cache/GridCachePreloader.java    |    5 +
 .../cache/GridCachePreloaderAdapter.java        |    5 +
 .../processors/cache/GridCacheProcessor.java    |  694 ++++++----
 .../processors/cache/GridCacheProxyImpl.java    |   10 +-
 .../cache/GridCacheSharedContext.java           |  120 +-
 .../cache/GridCacheSharedManager.java           |   11 +-
 .../cache/GridCacheSharedManagerAdapter.java    |   20 +-
 .../processors/cache/GridCacheSwapManager.java  |  257 ++--
 .../processors/cache/GridCacheUtils.java        |   51 +
 .../processors/cache/IgniteCacheFutureImpl.java |   53 +
 .../processors/cache/IgniteCacheProxy.java      |  531 +++++---
 .../processors/cache/IgniteInternalCache.java   |    4 +-
 .../CacheDataStructuresManager.java             |   35 +
 .../distributed/GridCacheTxFinishSync.java      |   46 +
 .../GridDistributedTxFinishRequest.java         |   11 +-
 .../GridDistributedTxPrepareRequest.java        |    9 +-
 .../GridDistributedTxRemoteAdapter.java         |    3 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |   14 +-
 .../distributed/dht/GridDhtCacheEntry.java      |    4 +-
 .../distributed/dht/GridDhtLocalPartition.java  |    3 +-
 .../distributed/dht/GridDhtLockFuture.java      |    2 +-
 .../dht/GridDhtPartitionTopologyImpl.java       |   24 +
 .../distributed/dht/GridDhtTopologyFuture.java  |   14 -
 .../distributed/dht/GridDhtTxFinishFuture.java  |   13 +-
 .../distributed/dht/GridDhtTxFinishRequest.java |    3 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |    3 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |    3 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |   16 +-
 .../cache/distributed/dht/GridDhtTxRemote.java  |    5 +-
 .../dht/GridPartitionedGetFuture.java           |   26 +-
 .../dht/atomic/GridDhtAtomicCache.java          |   33 +-
 .../dht/atomic/GridDhtAtomicUpdateFuture.java   |   15 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  202 ++-
 .../GridDhtPartitionsExchangeFuture.java        |  117 +-
 .../dht/preloader/GridDhtPreloader.java         |   16 +-
 .../distributed/near/GridNearCacheAdapter.java  |    8 +
 .../distributed/near/GridNearGetFuture.java     |   17 +-
 .../near/GridNearOptimisticTxPrepareFuture.java |    4 +-
 .../GridNearPessimisticTxPrepareFuture.java     |    2 +-
 .../near/GridNearTxFinishFuture.java            |   17 +-
 .../near/GridNearTxFinishRequest.java           |    3 +-
 .../cache/distributed/near/GridNearTxLocal.java |    3 +-
 .../distributed/near/GridNearTxRemote.java      |    5 +-
 .../cache/dr/GridOsCacheDrManager.java          |    7 +-
 .../cache/jta/CacheJtaManagerAdapter.java       |   17 +-
 .../cache/jta/CacheNoopJtaManager.java          |    2 +-
 .../query/GridCacheDistributedQueryManager.java |   22 +
 .../cache/query/GridCacheQueryAdapter.java      |   46 +-
 .../query/GridCacheQueryFutureAdapter.java      |    2 +-
 .../continuous/CacheContinuousQueryHandler.java |    9 +-
 .../cache/transactions/IgniteInternalTx.java    |    3 +-
 .../transactions/IgniteTransactionsImpl.java    |   59 +-
 .../cache/transactions/IgniteTxAdapter.java     |   11 +-
 .../transactions/IgniteTxLocalAdapter.java      |    3 +-
 .../cache/transactions/IgniteTxManager.java     |   28 +-
 .../transactions/TransactionProxyImpl.java      |    2 +-
 .../cache/version/GridCacheVersionManager.java  |    9 +-
 .../processors/clock/GridClockServer.java       |   21 +-
 .../clock/GridClockSyncProcessor.java           |    6 +-
 .../processors/closure/AffinityTask.java        |   35 +
 .../closure/GridClosureProcessor.java           |   63 +-
 .../processors/cluster/ClusterProcessor.java    |   11 +
 .../continuous/GridContinuousHandler.java       |    9 +-
 .../continuous/GridContinuousProcessor.java     |  127 +-
 .../datastreamer/DataStreamProcessor.java       |   27 +-
 .../datastreamer/DataStreamerImpl.java          |   90 +-
 .../datastructures/DataStructuresProcessor.java |  136 +-
 .../datastructures/GridCacheAtomicLongImpl.java |   58 +-
 .../GridCacheAtomicReferenceImpl.java           |   34 +-
 .../GridCacheAtomicSequenceImpl.java            |   44 +-
 .../GridCacheAtomicStampedImpl.java             |   54 +-
 .../GridCacheCountDownLatchImpl.java            |   82 +-
 .../datastructures/GridCacheRemovable.java      |    6 +-
 .../datastructures/GridCacheSetImpl.java        |   15 +-
 .../datastructures/GridCacheSetProxy.java       |   47 +-
 .../processors/hadoop/HadoopJobInfo.java        |    4 +-
 .../hadoop/counter/HadoopCounterWriter.java     |    5 +-
 .../internal/processors/igfs/IgfsContext.java   |    5 +-
 .../processors/job/GridJobProcessor.java        |    2 +-
 .../internal/processors/job/GridJobWorker.java  |    2 +-
 .../processors/plugin/CachePluginManager.java   |   10 +-
 .../plugin/IgnitePluginProcessor.java           |    3 +-
 .../processors/query/GridQueryIndexing.java     |    7 +
 .../processors/query/GridQueryProcessor.java    |   15 +-
 .../processors/rest/GridRestProcessor.java      |    4 +-
 .../handlers/task/GridTaskCommandHandler.java   |   12 +-
 .../service/GridServiceProcessor.java           |   45 +-
 .../processors/service/GridServiceProxy.java    |   13 +-
 .../processors/task/GridTaskProcessor.java      |   78 +-
 .../processors/task/GridTaskWorker.java         |   87 +-
 .../internal/util/GridConfigurationFinder.java  |   55 +-
 .../ignite/internal/util/IgniteUtils.java       |   57 +-
 .../util/future/GridFutureChainListener.java    |    4 -
 .../internal/util/future/IgniteFutureImpl.java  |   30 +-
 .../shmem/IpcSharedMemoryClientEndpoint.java    |    5 +-
 .../shmem/IpcSharedMemoryServerEndpoint.java    |   10 +-
 .../ignite/internal/util/lang/GridFunc.java     |    2 +
 .../util/nio/GridNioMessageTracker.java         |   23 +-
 .../ignite/internal/util/nio/GridNioServer.java |    9 +
 .../util/nio/GridSelectorNioSessionImpl.java    |    8 +
 .../apache/ignite/internal/visor/VisorJob.java  |    2 +
 .../visor/cache/VisorCacheConfiguration.java    |   11 -
 .../visor/cache/VisorCacheStopTask.java         |    2 +-
 .../internal/visor/log/VisorLogSearchTask.java  |    2 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |    4 +
 .../visor/query/VisorQueryCleanupTask.java      |   14 +
 .../util/VisorClusterGroupEmptyException.java   |   37 +
 .../plugin/extensions/communication/IoPool.java |   42 +
 .../plugin/security/SecurityPermission.java     |    7 +-
 .../plugin/security/SecuritySubjectType.java    |    3 +-
 .../java/org/apache/ignite/spi/IgniteSpi.java   |   15 +
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |   51 +-
 .../communication/tcp/TcpCommunicationSpi.java  |  358 ++++--
 .../spi/discovery/DiscoverySpiDataExchange.java |    3 +-
 .../ignite/spi/discovery/tcp/ClientImpl.java    |  560 ++++++--
 .../ignite/spi/discovery/tcp/ServerImpl.java    |  387 ++++--
 .../spi/discovery/tcp/TcpDiscoveryImpl.java     |    9 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   39 +-
 .../tcp/internal/TcpDiscoveryNode.java          |   43 +-
 .../tcp/internal/TcpDiscoveryNodesRing.java     |    8 +-
 .../tcp/internal/TcpDiscoveryStatistics.java    |   10 +-
 .../TcpDiscoveryMulticastIpFinder.java          |   76 +-
 .../messages/TcpDiscoveryAbstractMessage.java   |    3 +
 .../messages/TcpDiscoveryClientAckResponse.java |   64 +
 .../messages/TcpDiscoveryHandshakeResponse.java |   14 +
 .../ignite/spi/failover/FailoverContext.java    |   18 +
 .../spi/failover/always/AlwaysFailoverSpi.java  |   25 +
 .../spi/swapspace/file/FileSwapSpaceSpi.java    |    2 +-
 .../startup/cmdline/CommandLineStartup.java     |    3 +-
 .../startup/cmdline/CommandLineTransformer.java |    9 +
 .../META-INF/classnames-jdk.properties          |    3 +
 .../core/src/main/resources/ignite.properties   |    2 +-
 .../core/src/test/config/spark/spark-config.xml |   46 +
 modules/core/src/test/config/tests.properties   |    6 +-
 .../affinity/IgniteClientNodeAffinityTest.java  |   14 +-
 .../IgniteFairAffinityDynamicCacheSelfTest.java |    3 +-
 ...cheStoreSessionListenerAbstractSelfTest.java |  112 +-
 .../internal/ClusterGroupAbstractTest.java      |  777 +++++++++++
 .../internal/ClusterGroupHostsSelfTest.java     |  141 ++
 .../ignite/internal/ClusterGroupSelfTest.java   |  251 ++++
 .../internal/GridDiscoveryEventSelfTest.java    |   12 +-
 .../internal/GridProjectionAbstractTest.java    |  784 ------------
 .../ignite/internal/GridProjectionSelfTest.java |  251 ----
 .../apache/ignite/internal/GridSelfTest.java    |    2 +-
 .../GridTaskFailoverAffinityRunTest.java        |  170 +++
 .../internal/GridUpdateNotifierSelfTest.java    |   15 +-
 .../IgniteClientReconnectAbstractTest.java      |  363 ++++++
 .../IgniteClientReconnectApiExceptionTest.java  |  846 ++++++++++++
 .../IgniteClientReconnectAtomicsTest.java       |  672 ++++++++++
 .../IgniteClientReconnectCacheTest.java         | 1202 ++++++++++++++++++
 .../IgniteClientReconnectCollectionsTest.java   |  443 +++++++
 .../IgniteClientReconnectComputeTest.java       |  192 +++
 ...eClientReconnectContinuousProcessorTest.java |  372 ++++++
 ...IgniteClientReconnectDiscoveryStateTest.java |  123 ++
 ...niteClientReconnectFailoverAbstractTest.java |  231 ++++
 .../IgniteClientReconnectFailoverTest.java      |  227 ++++
 .../IgniteClientReconnectServicesTest.java      |  260 ++++
 .../internal/IgniteClientReconnectStopTest.java |  106 ++
 .../IgniteClientReconnectStreamerTest.java      |  233 ++++
 .../IgniteSlowClientDetectionSelfTest.java      |    1 +
 .../communication/GridIoManagerSelfTest.java    |    2 +-
 .../GridDeploymentManagerStopSelfTest.java      |    7 +
 .../IgniteTopologyPrintFormatSelfTest.java      |  289 +++++
 .../GridCacheTxLoadFromStoreOnLockSelfTest.java |   34 +-
 .../cache/CacheAffinityCallSelfTest.java        |  174 +++
 .../cache/CacheFutureExceptionSelfTest.java     |  158 +++
 .../CacheMetricsForClusterGroupSelfTest.java    |   10 +-
 .../cache/CacheOffheapMapEntrySelfTest.java     |    7 +-
 .../CacheReadThroughAtomicRestartSelfTest.java  |   32 +
 ...heReadThroughLocalAtomicRestartSelfTest.java |   32 +
 .../CacheReadThroughLocalRestartSelfTest.java   |   32 +
 ...dThroughReplicatedAtomicRestartSelfTest.java |   32 +
 ...cheReadThroughReplicatedRestartSelfTest.java |   32 +
 .../cache/CacheReadThroughRestartSelfTest.java  |  133 ++
 .../cache/CacheStopAndDestroySelfTest.java      |  859 +++++++++++++
 ...eUsageMultinodeDynamicStartAbstractTest.java |    2 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |  355 ++++--
 .../cache/GridCacheAbstractSelfTest.java        |   16 +-
 .../cache/GridCacheAffinityRoutingSelfTest.java |  157 ++-
 .../cache/GridCacheDaemonNodeStopSelfTest.java  |  119 --
 .../cache/GridCachePutAllFailoverSelfTest.java  |    3 +
 ...ProjectionForCachesOnDaemonNodeSelfTest.java |    2 +-
 .../IgniteCacheAbstractStopBusySelfTest.java    |    2 +-
 .../IgniteCacheConfigurationTemplateTest.java   |   26 +-
 .../cache/IgniteCacheDynamicStopSelfTest.java   |    6 +-
 .../cache/IgniteCacheNearLockValueSelfTest.java |    2 +
 .../IgniteDaemonNodeMarshallerCacheTest.java    |  192 +++
 ...eDynamicCacheStartNoExchangeTimeoutTest.java |  466 +++++++
 .../cache/IgniteDynamicCacheStartSelfTest.java  |  193 +--
 .../IgniteDynamicClientCacheStartSelfTest.java  |    5 +-
 .../cache/IgniteInternalCacheTypesTest.java     |    3 +-
 .../IgniteTxExceptionAbstractSelfTest.java      |    1 +
 ...GridCacheQueueMultiNodeAbstractSelfTest.java |    4 +-
 .../GridCacheSetAbstractSelfTest.java           |   22 +-
 .../IgniteClientDataStructuresAbstractTest.java |  109 +-
 .../IgniteCountDownLatchAbstractSelfTest.java   |   12 +-
 .../IgniteDataStructureWithJobTest.java         |  111 ++
 .../GridCacheAbstractNodeRestartSelfTest.java   |   21 +-
 ...ridCachePartitionNotLoadedEventSelfTest.java |   82 ++
 .../distributed/IgniteCache150ClientsTest.java  |  190 +++
 ...teCacheClientNodePartitionsExchangeTest.java |   30 +-
 .../IgniteCacheClientReconnectTest.java         |  175 +++
 .../distributed/IgniteCacheManyClientsTest.java |    2 +
 .../IgniteCacheServerNodeConcurrentStart.java   |   96 ++
 .../IgniteCacheSystemTransactionsSelfTest.java  |    2 +-
 .../IgniteCacheTxMessageRecoveryTest.java       |    5 +
 ...NearDisabledOptimisticTxNodeRestartTest.java |   31 +
 .../IgniteCachePutRetryAbstractSelfTest.java    |  161 +++
 .../dht/IgniteCachePutRetryAtomicSelfTest.java  |   34 +
 ...gniteCachePutRetryTransactionalSelfTest.java |   79 ++
 ...eAtomicInvalidPartitionHandlingSelfTest.java |    7 +-
 ...eAtomicNearOnlyMultiNodeFullApiSelfTest.java |    3 +
 ...idCacheNearOnlyMultiNodeFullApiSelfTest.java |   10 +-
 .../near/GridCacheNearTxMultiNodeSelfTest.java  |   10 +-
 ...achePartitionedMultiNodeFullApiSelfTest.java |  103 +-
 .../GridCachePartitionedNodeRestartTest.java    |    5 -
 ...ePartitionedOptimisticTxNodeRestartTest.java |   12 +-
 .../GridCacheReplicatedInvalidateSelfTest.java  |    3 +-
 .../GridCacheReplicatedNodeRestartSelfTest.java |    5 -
 ...acheAtomicReplicatedNodeRestartSelfTest.java |    4 +-
 ...heConcurrentEvictionConsistencySelfTest.java |   15 +-
 .../GridCacheEvictionFilterSelfTest.java        |    2 -
 .../IgniteCacheTxStoreSessionTest.java          |    4 +
 ...CacheLocalOffHeapAndSwapMetricsSelfTest.java |    2 +-
 ...OnlyFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 ...AtomicClientOnlyMultiJvmFullApiSelfTest.java |   31 +
 ...tOnlyMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...pyOnReadDisabledMultiJvmFullApiSelfTest.java |   31 +
 ...omicFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 .../GridCacheAtomicMultiJvmFullApiSelfTest.java |   30 +
 ...tomicMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...bledFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 ...tomicNearEnabledMultiJvmFullApiSelfTest.java |   31 +
 ...rimaryWriteOrderMultiJvmFullApiSelfTest.java |   31 +
 ...heAtomicNearOnlyMultiJvmFullApiSelfTest.java |   31 +
 ...rOnlyMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...cheAtomicOffHeapMultiJvmFullApiSelfTest.java |   31 +
 ...micOffHeapTieredMultiJvmFullApiSelfTest.java |   36 +
 ...rderFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 ...rimaryWriteOrderMultiJvmFullApiSelfTest.java |   31 +
 ...OrderMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...rityOrderOffHeapMultiJvmFullApiSelfTest.java |   31 +
 ...derOffHeapTieredMultiJvmFullApiSelfTest.java |   36 +
 ...OnlyFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 ...ridCacheNearOnlyMultiJvmFullApiSelfTest.java |   30 +
 ...rOnlyMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...pyOnReadDisabledMultiJvmFullApiSelfTest.java |   31 +
 ...onedFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 ...CachePartitionedMultiJvmFullApiSelfTest.java |   30 +
 ...ionedMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...micOffHeapTieredMultiJvmFullApiSelfTest.java |   36 +
 ...bledFairAffinityMultiJvmFullApiSelfTest.java |   31 +
 ...onedNearDisabledMultiJvmFullApiSelfTest.java |   31 +
 ...abledMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...rDisabledOffHeapMultiJvmFullApiSelfTest.java |   31 +
 ...ledOffHeapTieredMultiJvmFullApiSelfTest.java |   36 +
 ...rtitionedOffHeapMultiJvmFullApiSelfTest.java |   31 +
 ...nedOffHeapTieredMultiJvmFullApiSelfTest.java |   36 +
 ...ReplicatedAtomicMultiJvmFullApiSelfTest.java |   31 +
 ...rimaryWriteOrderMultiJvmFullApiSelfTest.java |   31 +
 ...dCacheReplicatedMultiJvmFullApiSelfTest.java |   30 +
 ...catedMultiJvmP2PDisabledFullApiSelfTest.java |   31 +
 ...plicatedNearOnlyMultiJvmFullApiSelfTest.java |   37 +
 ...eplicatedOffHeapMultiJvmFullApiSelfTest.java |   31 +
 ...tedOffHeapTieredMultiJvmFullApiSelfTest.java |   36 +
 .../DataStreamerMultinodeCreateCacheTest.java   |   14 +-
 .../internal/util/IgniteUtilsSelfTest.java      |   22 +
 .../internal/util/nio/GridNioSelfTest.java      |   88 +-
 .../internal/util/nio/GridNioSslSelfTest.java   |   16 +-
 .../loadtests/hashmap/GridCacheTestContext.java |    2 +-
 .../GridP2PContinuousDeploymentSelfTest.java    |    2 -
 .../tcp/TcpClientDiscoverySpiSelfTest.java      |  827 +++++++++++-
 .../tcp/TcpDiscoveryMultiThreadedTest.java      |  118 +-
 ...DiscoveryNodeConfigConsistentIdSelfTest.java |   76 ++
 .../TcpDiscoveryNodeConsistentIdSelfTest.java   |   80 ++
 .../spi/failover/GridFailoverTestContext.java   |   10 +
 .../inmemory/GridTestSwapSpaceSpi.java          |    3 +-
 .../GridCommandLineTransformerSelfTest.java     |   12 +-
 .../testframework/junits/GridAbstractTest.java  |  390 +++++-
 .../junits/common/GridCommonAbstractTest.java   |   50 +-
 .../junits/multijvm/AffinityProcessProxy.java   |  195 +++
 .../multijvm/IgniteCacheProcessProxy.java       |  602 +++++++++
 .../multijvm/IgniteClusterProcessProxy.java     |  325 +++++
 .../multijvm/IgniteEventsProcessProxy.java      |  148 +++
 .../junits/multijvm/IgniteNodeRunner.java       |  184 +++
 .../junits/multijvm/IgniteProcessProxy.java     |  571 +++++++++
 .../ignite/testsuites/IgniteBasicTestSuite.java |    7 +-
 .../IgniteCacheDataStructuresSelfTestSuite.java |    1 +
 .../IgniteCacheFailoverTestSuite.java           |    3 +
 .../IgniteCacheFailoverTestSuite2.java          |    4 +
 ...IgniteCacheFullApiMultiJvmSelfTestSuite.java |   89 ++
 .../testsuites/IgniteCacheRestartTestSuite.java |    5 +-
 .../ignite/testsuites/IgniteCacheTestSuite.java |    6 +-
 .../testsuites/IgniteCacheTestSuite2.java       |    2 +-
 .../testsuites/IgniteCacheTestSuite3.java       |    1 -
 .../testsuites/IgniteCacheTestSuite4.java       |   10 +-
 .../testsuites/IgniteClientNodesTestSuite.java  |   42 +
 .../IgniteClientReconnectTestSuite.java         |   48 +
 .../testsuites/IgniteClientTestSuite.java       |   38 +
 .../testsuites/IgniteComputeGridTestSuite.java  |    1 +
 .../testsuites/IgniteKernalSelfTestSuite.java   |    1 +
 .../IgniteSpiDiscoverySelfTestSuite.java        |    6 +
 .../ignite/util/TestTcpCommunicationSpi.java    |   21 +
 modules/core/src/test/resources/helloworld.gar  |  Bin 6092 -> 0 bytes
 modules/core/src/test/resources/helloworld1.gar |  Bin 6092 -> 0 bytes
 modules/core/src/test/resources/readme.txt      |    6 -
 modules/docker/Dockerfile                       |   55 +
 modules/docker/README.txt                       |   11 +
 modules/docker/build_users_libs.sh              |   39 +
 modules/docker/download_ignite.sh               |   49 +
 modules/docker/execute.sh                       |   62 +
 modules/docker/run.sh                           |   34 +
 modules/extdata/p2p/pom.xml                     |    4 +-
 .../p2p/GridP2PContinuousDeploymentTask1.java   |    2 +-
 .../CacheConfigurationP2PTestClient.java        |    4 +-
 modules/extdata/uri/META-INF/ignite.xml         |   38 +
 .../extdata/uri/modules/uri-dependency/pom.xml  |   40 +
 .../deployment/uri/tasks/GarHelloWorldBean.java |   60 +
 .../src/main/resources/gar-example.properties   |   18 +
 modules/extdata/uri/pom.xml                     |   50 +-
 .../deployment/uri/tasks/GarHelloWorldTask.java |   81 ++
 .../deployment/uri/tasks/gar-spring-bean.xml    |   29 +
 modules/gce/pom.xml                             |    2 +-
 .../geospatial/licenses/jts-lgpl-license.txt    |  165 ---
 modules/geospatial/pom.xml                      |    2 +-
 modules/hadoop/pom.xml                          |   80 +-
 .../fs/IgniteHadoopFileSystemCounterWriter.java |    9 +-
 .../processors/hadoop/HadoopClassLoader.java    |   29 +
 .../processors/hadoop/HadoopDefaultJobInfo.java |   27 +-
 .../internal/processors/hadoop/HadoopUtils.java |  237 ----
 .../hadoop/SecondaryFileSystemProvider.java     |    3 +-
 .../hadoop/fs/HadoopFileSystemCacheUtils.java   |  241 ++++
 .../hadoop/fs/HadoopFileSystemsUtils.java       |   11 +
 .../hadoop/fs/HadoopLazyConcurrentMap.java      |    5 +
 .../hadoop/jobtracker/HadoopJobTracker.java     |   25 +-
 .../child/HadoopChildProcessRunner.java         |    3 +-
 .../processors/hadoop/v2/HadoopV2Job.java       |   84 +-
 .../hadoop/v2/HadoopV2JobResourceManager.java   |   22 +-
 .../hadoop/v2/HadoopV2TaskContext.java          |   37 +-
 .../apache/ignite/igfs/IgfsEventsTestSuite.java |    5 +-
 .../processors/hadoop/HadoopMapReduceTest.java  |    2 +-
 .../processors/hadoop/HadoopTasksV1Test.java    |    7 +-
 .../processors/hadoop/HadoopTasksV2Test.java    |    7 +-
 .../processors/hadoop/HadoopV2JobSelfTest.java  |    6 +-
 .../collections/HadoopAbstractMapTest.java      |    3 +-
 .../testsuites/IgniteHadoopTestSuite.java       |    4 +-
 .../IgniteIgfsLinuxAndMacOSTestSuite.java       |    3 +-
 .../licenses/hibernate-lgpl-2.1-license.txt     |  174 ---
 modules/hibernate/pom.xml                       |    2 +-
 .../HibernateTransactionalDataRegion.java       |   12 +-
 .../hibernate/HibernateL2CacheSelfTest.java     |    7 +-
 .../HibernateL2CacheTransactionalSelfTest.java  |    5 -
 modules/indexing/licenses/h2-epl-license.txt    |   69 -
 modules/indexing/pom.xml                        |    2 +-
 .../processors/query/h2/IgniteH2Indexing.java   |    5 +
 .../query/h2/opt/GridH2KeyValueRowOffheap.java  |    8 +-
 .../query/h2/twostep/GridMergeIndex.java        |   45 +-
 .../h2/twostep/GridReduceQueryExecutor.java     |   70 +-
 .../CacheAbstractQueryMetricsSelfTest.java      |  157 ++-
 .../cache/CacheLocalQueryMetricsSelfTest.java   |   33 +
 ...titionedQueryMetricsDistributedSelfTest.java |   33 +
 ...chePartitionedQueryMetricsLocalSelfTest.java |   33 +
 .../CachePartitionedQueryMetricsSelfTest.java   |   32 -
 ...plicatedQueryMetricsDistributedSelfTest.java |   33 +
 ...acheReplicatedQueryMetricsLocalSelfTest.java |   33 +
 .../CacheReplicatedQueryMetricsSelfTest.java    |   32 -
 .../cache/IgniteCacheOffheapEvictQueryTest.java |    2 +-
 ...ClientReconnectCacheQueriesFailoverTest.java |  225 ++++
 .../cache/IgniteClientReconnectQueriesTest.java |  427 +++++++
 .../IgniteCacheQueryNodeRestartSelfTest2.java   |    5 +
 ...dCacheAbstractReduceFieldsQuerySelfTest.java |    4 +
 .../IgniteCacheQuerySelfTestSuite.java          |    9 +-
 .../IgniteCacheWithIndexingTestSuite.java       |    1 +
 modules/jcl/pom.xml                             |    2 +-
 modules/jta/licenses/jta-license.txt            |    2 +
 modules/jta/pom.xml                             |    2 +-
 .../apache/ignite/cache/jta/CacheTmLookup.java  |    3 +-
 .../processors/cache/jta/CacheJtaManager.java   |   72 +-
 .../cache/jta/GridCacheXAResource.java          |   16 +-
 .../processors/cache/GridCacheJtaSelfTest.java  |   52 +-
 .../GridTmLookupLifecycleAwareSelfTest.java     |   29 +-
 modules/kafka/licenses/apache-2.0.txt           |  202 +++
 modules/kafka/pom.xml                           |  105 ++
 .../ignite/stream/kafka/KafkaStreamer.java      |  220 ++++
 .../kafka/IgniteKafkaStreamerSelfTestSuite.java |   37 +
 .../stream/kafka/KafkaEmbeddedBroker.java       |  378 ++++++
 .../kafka/KafkaIgniteStreamerSelfTest.java      |  227 ++++
 .../ignite/stream/kafka/SimplePartitioner.java  |   53 +
 modules/log4j/pom.xml                           |    2 +-
 modules/mesos/licenses/jetty-epl-license.txt    |   69 -
 modules/mesos/pom.xml                           |    4 +-
 .../apache/ignite/mesos/ClusterProperties.java  |   14 +
 .../apache/ignite/mesos/IgniteScheduler.java    |   26 +-
 modules/rest-http/pom.xml                       |   20 +-
 .../scalar-2.10/licenses/scala-bsd-license.txt  |   18 -
 modules/scalar-2.10/pom.xml                     |    2 +-
 modules/scalar/licenses/scala-bsd-license.txt   |   18 -
 modules/scalar/pom.xml                          |    2 +-
 .../licenses/cron4j-lgpl-2.1-license.txt        |  174 ---
 modules/schedule/pom.xml                        |    2 +-
 modules/schema-import/pom.xml                   |    2 +-
 .../ignite/schema/model/PojoDescriptor.java     |    2 +
 .../apache/ignite/schema/model/PojoField.java   |    1 +
 .../parser/dialect/OracleMetadataDialect.java   |    2 +-
 .../ignite/schema/ui/SchemaImportApp.java       |   36 +-
 modules/slf4j/licenses/sl4j-mit-license.txt     |   21 -
 modules/slf4j/pom.xml                           |    2 +-
 .../spark-2.10/licenses/scala-bsd-license.txt   |   18 -
 modules/spark-2.10/pom.xml                      |    2 +-
 modules/spark/licenses/scala-bsd-license.txt    |   18 -
 modules/spark/pom.xml                           |    2 +-
 .../org/apache/ignite/spark/IgniteContext.scala |   64 +-
 .../org/apache/ignite/spark/IgniteRddSpec.scala |   18 +
 modules/spring/pom.xml                          |    2 +-
 .../apache/ignite/cache/spring/SpringCache.java |    2 +-
 .../ignite/cache/spring/SpringCacheManager.java |   22 +-
 .../util/spring/IgniteSpringHelperImpl.java     |   72 +-
 .../IgniteExcludeInConfigurationTest.java       |   81 ++
 .../org/apache/ignite/spring/sprint-exclude.xml |   76 ++
 .../testsuites/IgniteSpringTestSuite.java       |    2 +
 modules/ssh/licenses/jcraft-revised-bsd.txt     |   28 -
 modules/ssh/pom.xml                             |    2 +-
 modules/tools/licenses/jodd-revised-bsd.txt     |   21 -
 modules/tools/pom.xml                           |    2 +-
 .../urideploy/licenses/jtidy-mit-license.txt    |   50 -
 modules/urideploy/pom.xml                       |   16 +-
 .../GridTaskUriDeploymentDeadlockSelfTest.java  |   13 +-
 .../ignite/p2p/GridP2PDisabledSelfTest.java     |    2 +-
 modules/visor-console-2.10/pom.xml              |    2 +-
 .../licenses/jline-bsd-license.txt              |   18 -
 .../licenses/scala-bsd-license.txt              |   18 -
 modules/visor-console/pom.xml                   |    2 +-
 .../ignite/visor/commands/VisorConsole.scala    |    3 +-
 .../commands/cache/VisorCacheCommand.scala      |    9 +-
 .../visor/commands/open/VisorOpenCommand.scala  |  319 +++++
 .../scala/org/apache/ignite/visor/visor.scala   |  230 +---
 .../ignite/visor/VisorRuntimeBaseSpec.scala     |    2 +
 .../commands/kill/VisorKillCommandSpec.scala    |    1 +
 .../commands/start/VisorStartCommandSpec.scala  |    1 +
 .../commands/tasks/VisorTasksCommandSpec.scala  |    1 +
 .../commands/vvm/VisorVvmCommandSpec.scala      |    1 +
 .../licenses/slf4j-mit-license.txt              |   21 -
 modules/visor-plugins/pom.xml                   |    2 +-
 modules/web/pom.xml                             |   12 +-
 .../IgniteWebSessionSelfTestSuite.java          |    2 +-
 .../config/benchmark-put-indexed-val.properties |   64 +
 modules/yardstick/config/ignite-base-config.xml |   23 +
 modules/yardstick/pom.xml                       |    2 +-
 .../cache/IgnitePutIndexedValue1Benchmark.java  |   42 +
 .../cache/IgnitePutIndexedValue2Benchmark.java  |   42 +
 .../cache/IgnitePutIndexedValue8Benchmark.java  |   42 +
 .../ignite/yardstick/cache/model/Person1.java   |   55 +
 .../ignite/yardstick/cache/model/Person2.java   |   67 +
 .../ignite/yardstick/cache/model/Person8.java   |  109 ++
 modules/yarn/README.txt                         |   28 +
 modules/yarn/licenses/apache-2.0.txt            |  202 +++
 modules/yarn/pom.xml                            |  101 ++
 .../apache/ignite/yarn/ApplicationMaster.java   |  400 ++++++
 .../apache/ignite/yarn/ClusterProperties.java   |  432 +++++++
 .../org/apache/ignite/yarn/IgniteContainer.java |   84 ++
 .../org/apache/ignite/yarn/IgniteProvider.java  |  339 +++++
 .../apache/ignite/yarn/IgniteYarnClient.java    |  178 +++
 .../org/apache/ignite/yarn/package-info.java    |   22 +
 .../ignite/yarn/utils/IgniteYarnUtils.java      |   81 ++
 .../main/resources/ignite-default-config.xml    |   35 +
 .../org/apache/ignite/IgniteYarnTestSuite.java  |   38 +
 .../yarn/IgniteApplicationMasterSelfTest.java   |  532 ++++++++
 parent/pom.xml                                  |   96 ++
 pom.xml                                         |   20 +-
 scripts/git-patch-prop.sh                       |    2 +-
 575 files changed, 30615 insertions(+), 5685 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2ebdc567/modules/core/src/test/java/org/apache/ignite/spi/swapspace/inmemory/GridTestSwapSpaceSpi.java
----------------------------------------------------------------------

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


[4/5] incubator-ignite git commit: ignite-959-m - minor

Posted by se...@apache.org.
ignite-959-m - minor


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

Branch: refs/heads/ignite-959-m
Commit: 5f6e86d391c2022dc87a9e384177c79f644575cd
Parents: 46b0016
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jul 22 13:35:27 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jul 22 13:35:27 2015 +0300

----------------------------------------------------------------------
 .../ignite/internal/processors/query/h2/opt/GridH2Table.java     | 2 +-
 .../processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java  | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5f6e86d3/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
index 42c46d5..1d2cf0f 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
@@ -312,7 +312,7 @@ public class GridH2Table extends TableBase {
         GridH2Row row = desc.createRow(key, val, expirationTime, rmv);
 
         return doUpdate(row, rmv);
-    }gnite
+    }
 
     /**
      * Gets index by index.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5f6e86d3/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java
index 547b19d..8841ae7 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java
@@ -66,7 +66,7 @@ public class IgniteCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTes
     private static AtomicInteger idxUnswapCnt = new AtomicInteger();
 
     /** */
-    private static final long DURATION = 180 * 1000;
+    private static final long DURATION = 30 * 1000;
 
     /** */
     private static List<GridTestSwapSpaceSpi> swaps = new CopyOnWriteArrayList<>();
@@ -211,7 +211,7 @@ public class IgniteCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTes
                     c.remove(e.getKey());
             }
 
-            U.sleep(500);
+            U.sleep(3000);
 
             assertEquals("Swap keys: " + c.size(CachePeekMode.SWAP), 0, c.size(CachePeekMode.SWAP));
             assertEquals(0, c.size(CachePeekMode.OFFHEAP));


[3/5] incubator-ignite git commit: ignite-959-m - clean debug

Posted by se...@apache.org.
ignite-959-m - clean debug


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

Branch: refs/heads/ignite-959-m
Commit: 46b0016611884380b0585ace57db481e90f10729
Parents: 2ebdc56
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jul 22 13:24:22 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jul 22 13:24:22 2015 +0300

----------------------------------------------------------------------
 .../query/h2/opt/GridH2AbstractKeyValueRow.java | 36 +++-----------------
 .../processors/query/h2/opt/GridH2Table.java    | 20 ++---------
 2 files changed, 7 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/46b00166/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java
index e784f0e..5e1aade 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java
@@ -19,9 +19,7 @@ package org.apache.ignite.internal.processors.query.h2.opt;
 
 import org.apache.ignite.*;
 import org.apache.ignite.internal.processors.query.*;
-import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.lang.*;
 import org.h2.message.*;
 import org.h2.result.*;
 import org.h2.value.*;
@@ -104,8 +102,6 @@ public abstract class GridH2AbstractKeyValueRow extends GridH2Row {
      * @throws IgniteCheckedException If failed.
      */
     public synchronized void onSwap() throws IgniteCheckedException {
-        D.debug("onSwap", getValue(KEY_COL).getInt());
-
         setValue(VAL_COL, null);
     }
 
@@ -117,8 +113,6 @@ public abstract class GridH2AbstractKeyValueRow extends GridH2Row {
      * @throws IgniteCheckedException If failed.
      */
     public synchronized void onUnswap(Object val, boolean beforeRmv) throws IgniteCheckedException {
-        D.debug("onUnswap", getValue(KEY_COL).getInt(), val, val.getClass());
-
         setValue(VAL_COL, desc.wrap(val, desc.valueType()));
 
         notifyAll();
@@ -213,31 +207,11 @@ public abstract class GridH2AbstractKeyValueRow extends GridH2Row {
                             // Even if valObj was found in swap we still have to recheck if this row was concurrently
                             // unswapped because we can racy read wrong value from swap here.
                             if ((v = syncValue(0)) == null && (v = getOffheapValue(VAL_COL)) == null) {
-                                try {
-                                    Value upd = desc.wrap(valObj, desc.valueType());
-
-                                    v = updateWeakValue(upd);
-
-                                    return v == null ? upd : v;
-                                }
-                                catch (ClassCastException e) {
-                                    D.dumpWithStop(new IgnitePredicate<GridDebug.Item>() {
-                                        @Override public boolean apply(GridDebug.Item item) {
-                                            Integer k0 = null;
-
-                                            try {
-                                                k0 = desc.wrap(item.data[1], Value.INT).getInt();
-                                            }
-                                            catch (IgniteCheckedException e1) {
-                                                e1.printStackTrace();
-                                            }
-
-                                            return kx.equals(k0);
-                                        }
-                                    });
-
-                                    throw new IllegalStateException(e);
-                                }
+                                Value upd = desc.wrap(valObj, desc.valueType());
+
+                                v = updateWeakValue(upd);
+
+                                return v == null ? upd : v;
                             }
                         }
                         else // If nothing found in swap then we should be already unswapped.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/46b00166/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
index 0a5f55a..42c46d5 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
@@ -19,10 +19,7 @@ package org.apache.ignite.internal.processors.query.h2.opt;
 
 import org.apache.ignite.*;
 import org.apache.ignite.internal.processors.cache.*;
-import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.offheap.unsafe.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.lang.*;
 import org.h2.api.*;
 import org.h2.command.ddl.*;
 import org.h2.engine.*;
@@ -312,12 +309,10 @@ public class GridH2Table extends TableBase {
         throws IgniteCheckedException {
         assert desc != null;
 
-        D.debug("update", key, getName(), rmv, val);
-
         GridH2Row row = desc.createRow(key, val, expirationTime, rmv);
 
         return doUpdate(row, rmv);
-    }
+    }gnite
 
     /**
      * Gets index by index.
@@ -403,18 +398,7 @@ public class GridH2Table extends TableBase {
                         Row res = index(i).remove(old);
 
                         assert eq(pk, res, old): "\n" + old + "\n" + res + "\n" + i + " -> " + index(i).getName() +
-                            " -> " + index(i).validate() + D.dumpWithStop(new IgnitePredicate<GridDebug.Item>() {
-                            @Override public boolean apply(GridDebug.Item item) {
-                                try {
-                                    return row.getValue(KEY_COL).getInt() == desc.wrap(item.data[1], Value.INT).getInt();
-                                }
-                                catch (IgniteCheckedException e1) {
-                                    e1.printStackTrace();
-                                }
-
-                                return false;
-                            }
-                        });
+                            " -> " + index(i).validate();
                     }
                 }
                 else