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 2017/01/11 17:27:30 UTC
[01/22] ignite git commit: GG-11414 Get rid of NavigableMap
dependency for distributed joins
Repository: ignite
Updated Branches:
refs/heads/ignite-3477 3443c4e49 -> 79a546a97
GG-11414 Get rid of NavigableMap dependency for distributed joins
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ef015d38
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ef015d38
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ef015d38
Branch: refs/heads/ignite-3477
Commit: ef015d3893026dc2e0516b65b3caf7df9eec72f1
Parents: 9d6288f
Author: Sergey Sidorov <ss...@gridgain.com>
Authored: Mon Oct 31 19:02:13 2016 +0300
Committer: Sergey Sidorov <ss...@gridgain.com>
Committed: Mon Oct 31 19:02:13 2016 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/util/IgniteTree.java | 105 +++++++++++++++++++
.../offheap/unsafe/GridOffHeapSnapTreeMap.java | 50 ++++++++-
.../internal/util/snaptree/SnapTreeMap.java | 49 ++++++++-
.../query/h2/opt/GridH2IndexBase.java | 92 ++++++++++++----
.../query/h2/opt/GridH2TreeIndex.java | 32 +++---
5 files changed, 290 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ef015d38/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
new file mode 100644
index 0000000..2c1e1af
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
@@ -0,0 +1,105 @@
+/*
+ * 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.util;
+
+import java.util.*;
+
+/**
+ * Interface for ignite internal tree.
+ */
+public interface IgniteTree<K, V> {
+ /**
+ * Associates the specified value with the specified key in this tree.
+ *
+ * @param key key with which the specified value is to be associated
+ * @param value value to be associated with the specified key
+ * @return the previous value associated with key
+ */
+ V put(K key, V value);
+
+ /**
+ * Returns the value to which the specified key is mapped, or {@code null} if this tree contains no mapping for the
+ * key.
+ *
+ * @param key the key whose associated value is to be returned
+ * @return the value to which the specified key is mapped, or {@code null} if this tree contains no mapping for the
+ * key
+ */
+ V get(Object key);
+
+ /**
+ * Removes the mapping for a key from this tree if it is present.
+ *
+ * @param key key whose mapping is to be removed from the tree
+ * @return the previous value associated with key, or null if there was no mapping for key.
+ */
+ V remove(Object key);
+
+ /**
+ * Returns the number of elements in this tree.
+ *
+ * @return the number of elements in this tree
+ */
+ int size();
+
+ /**
+ * Returns a {@link Collection} view of the values contained in this tree.
+ *
+ * @return a collection view of the values contained in this map
+ */
+ Collection<V> values();
+
+ /**
+ * Returns a view of the portion of this tree whose keys are less than (or equal to, if {@code inclusive} is true)
+ * {@code toKey}. The returned tree is backed by this tree, so changes in the returned tree are reflected in this
+ * tree, and vice-versa. The returned tree supports all optional tree operations that this tree supports.
+ *
+ * @param toKey high endpoint of the keys in the returned tree
+ * @param inclusive {@code true} if the high endpoint is to be included in the returned view
+ * @return a view of the portion of this tree whose keys are less than (or equal to, if {@code inclusive} is true)
+ * {@code toKey}
+ */
+ IgniteTree<K, V> headTree(K toKey, boolean inclusive);
+
+ /**
+ * Returns a view of the portion of this tree whose keys are greater than (or equal to, if {@code inclusive} is
+ * true) {@code fromKey}. The returned tree is backed by this tree, so changes in the returned tree are reflected
+ * in this tree, and vice-versa. The returned tree supports all optional tree operations that this tree supports.
+ *
+ * @param fromKey low endpoint of the keys in the returned tree
+ * @param inclusive {@code true} if the low endpoint is to be included in the returned view
+ * @return a view of the portion of this tree whose keys are greater than (or equal to, if {@code inclusive} is
+ * true) {@code fromKey}
+ */
+ IgniteTree<K, V> tailTree(K fromKey, boolean inclusive);
+
+ /**
+ * Returns a view of the portion of this tree whose keys range from {@code fromKey} to {@code toKey}. If {@code
+ * fromKey} and {@code toKey} are equal, the returned tree is empty unless {@code fromInclusive} and {@code
+ * toInclusive} are both true. The returned tree is backed by this tree, so changes in the returned tree are
+ * reflected in this tree, and vice-versa. The returned tree supports all optional tree operations that this tree
+ * supports.
+ *
+ * @param fromKey low endpoint of the keys in the returned tree
+ * @param fromInclusive {@code true} if the low endpoint is to be included in the returned view
+ * @param toKey high endpoint of the keys in the returned tree
+ * @param toInclusive {@code true} if the high endpoint is to be included in the returned view
+ * @return a view of the portion of this tree whose keys range from {@code fromKey} to {@code toKey}
+ */
+ IgniteTree<K, V> subTree(final K fromKey, final boolean fromInclusive, final K toKey, final boolean toInclusive);
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/ef015d38/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
index 7bde651..681394f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
@@ -55,6 +55,7 @@ import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.apache.ignite.internal.processors.cache.distributed.dht.GridReservable;
+import org.apache.ignite.internal.util.*;
import org.apache.ignite.internal.util.typedef.internal.SB;
import org.jetbrains.annotations.Nullable;
import org.jsr166.ConcurrentHashMap8;
@@ -106,8 +107,9 @@ import org.jsr166.ConcurrentHashMap8;
* @author Nathan Bronson
*/
@SuppressWarnings("ALL")
-public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer,V extends GridOffHeapSmartPointer>
- extends AbstractMap<K,V> implements ConcurrentNavigableMap<K, V>, Cloneable, AutoCloseable, GridReservable {
+public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer, V extends GridOffHeapSmartPointer>
+ extends AbstractMap<K, V>
+ implements ConcurrentNavigableMap<K, V>, Cloneable, AutoCloseable, GridReservable, IgniteTree<K, V> {
/** This is a special value that indicates that an optimistic read failed. */
private static final GridOffHeapSmartPointer SpecialRetry = new GridOffHeapSmartPointer() {
@Override public long pointer() {
@@ -3820,10 +3822,32 @@ public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer,V extends
return new SubMap(this, null, null, false, null, null, false, true);
}
+ //////////////// IgniteTree
+
+ /** {@inheritDoc} */
+ @Override public IgniteTree<K, V> headTree(final K toKey, final boolean inclusive) {
+ return new SubMap(this, null, null, false, toKey, comparable(toKey), inclusive, false);
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgniteTree<K, V> tailTree(final K fromKey, final boolean inclusive) {
+ return new SubMap(this, fromKey, comparable(fromKey), inclusive, null, null, false, false);
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgniteTree<K, V> subTree(final K fromKey, final boolean fromInclusive, final K toKey,
+ final boolean toInclusive) {
+ final Comparable<? super K> fromCmp = comparable(fromKey);
+ if (fromCmp.compareTo(toKey) > 0) {
+ throw new IllegalArgumentException();
+ }
+ return new SubMap(this, fromKey, fromCmp, fromInclusive, toKey, comparable(toKey), toInclusive, false);
+ }
+
/**
* Submap.
*/
- private class SubMap extends AbstractMap<K,V> implements ConcurrentNavigableMap<K,V> {
+ private class SubMap extends AbstractMap<K,V> implements ConcurrentNavigableMap<K,V>, IgniteTree<K, V> {
/** */
private final GridOffHeapSnapTreeMap<K,V> m;
@@ -4429,6 +4453,26 @@ public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer,V extends
@Override public NavigableSet<K> descendingKeySet() {
return descendingMap().navigableKeySet();
}
+
+ /////////// IgniteTree
+
+ /** {@inheritDoc} */
+ @Override public IgniteTree<K, V> headTree(K toKey, boolean inclusive) {
+ return headMap(toKey, inclusive);
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgniteTree<K, V> tailTree(K fromKey, boolean inclusive) {
+ return tailMap(fromKey, inclusive);
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgniteTree<K, V> subTree(final K fromKey,
+ final boolean fromInclusive,
+ final K toKey,
+ final boolean toInclusive) {
+ return subMap(fromKey, fromInclusive, toKey, toInclusive);
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/ef015d38/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java b/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
index b5c6545..064e7b0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
@@ -35,6 +35,8 @@
package org.apache.ignite.internal.util.snaptree;
+import org.apache.ignite.internal.util.*;
+
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -102,7 +104,9 @@ import java.util.concurrent.ConcurrentNavigableMap;
* @author Nathan Bronson
*/
@SuppressWarnings("ALL")
-public class SnapTreeMap<K,V> extends AbstractMap<K,V> implements ConcurrentNavigableMap<K,V>, Cloneable, Serializable {
+public class SnapTreeMap<K, V> extends AbstractMap<K, V> implements ConcurrentNavigableMap<K, V>, Cloneable,
+ Serializable, IgniteTree<K, V> {
+
/** */
private static final long serialVersionUID = 0L;
@@ -2341,7 +2345,30 @@ public class SnapTreeMap<K,V> extends AbstractMap<K,V> implements ConcurrentNavi
return new SubMap(this, null, null, false, null, null, false, true);
}
- private static class SubMap<K,V> extends AbstractMap<K,V> implements ConcurrentNavigableMap<K,V>, Serializable {
+ //////////////// IgniteTree
+
+ /** {@inheritDoc} */
+ @Override public IgniteTree<K, V> headTree(final K toKey, final boolean inclusive) {
+ return new SubMap<K,V>(this, null, null, false, toKey, comparable(toKey), inclusive, false);
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgniteTree<K, V> tailTree(final K fromKey, final boolean inclusive) {
+ return new SubMap<K,V>(this, fromKey, comparable(fromKey), inclusive, null, null, false, false);
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgniteTree<K, V> subTree(final K fromKey, final boolean fromInclusive, final K toKey,
+ final boolean toInclusive) {
+ final Comparable<? super K> fromCmp = comparable(fromKey);
+ if (fromCmp.compareTo(toKey) > 0) {
+ throw new IllegalArgumentException();
+ }
+ return new SubMap<K,V>(this, fromKey, fromCmp, fromInclusive, toKey, comparable(toKey), toInclusive, false);
+ }
+
+ private static class SubMap<K, V> extends AbstractMap<K, V> implements ConcurrentNavigableMap<K, V>, Serializable,
+ IgniteTree<K, V> {
/** */
private static final long serialVersionUID = 0L;
@@ -2863,6 +2890,24 @@ public class SnapTreeMap<K,V> extends AbstractMap<K,V> implements ConcurrentNavi
minCmp = minKey == null ? null : m.comparable(minKey);
maxCmp = maxKey == null ? null : m.comparable(maxKey);
}
+
+ /////// IgniteTree
+
+ /** {@inheritDoc} */
+ @Override public IgniteTree<K, V> headTree(final K toKey, final boolean inclusive) {
+ return headMap(toKey, inclusive);
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgniteTree<K, V> tailTree(final K fromKey, final boolean inclusive) {
+ return tailMap(fromKey, inclusive);
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgniteTree<K, V> subTree(final K fromKey, final boolean fromInclusive, final K toKey,
+ final boolean toInclusive) {
+ return subMap(fromKey, fromInclusive, toKey, toInclusive);
+ }
}
//////// Serialization
http://git-wip-us.apache.org/repos/asf/ignite/blob/ef015d38/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 858dca1..032b548 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
@@ -17,16 +17,7 @@
package org.apache.ignite.internal.processors.query.h2.opt;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ConcurrentNavigableMap;
import java.util.concurrent.Future;
@@ -52,7 +43,7 @@ import org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2RowRange
import org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2RowRangeBounds;
import org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2ValueMessage;
import org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2ValueMessageFactory;
-import org.apache.ignite.internal.util.GridSpinBusyLock;
+import org.apache.ignite.internal.util.*;
import org.apache.ignite.internal.util.lang.GridFilteredIterator;
import org.apache.ignite.internal.util.typedef.CIX2;
import org.apache.ignite.internal.util.typedef.F;
@@ -465,11 +456,19 @@ public abstract class GridH2IndexBase extends BaseIndex {
if (msg.bounds() != null) {
// This is the first request containing all the search rows.
- ConcurrentNavigableMap<GridSearchRowPointer, GridH2Row> snapshot0 = qctx.getSnapshot(idxId);
+ Object snapshot0 = qctx.getSnapshot(idxId);
assert !msg.bounds().isEmpty() : "empty bounds";
- src = new RangeSource(msg.bounds(), snapshot0, qctx.filter());
+ IgniteTree snapshotTree;
+
+ if (snapshot0 instanceof IgniteTree)
+ snapshotTree = (IgniteTree)snapshot0;
+ else
+ snapshotTree = new IgniteNavigableMapTree(
+ (NavigableMap<GridSearchRowPointer, GridH2Row>) snapshot0);
+
+ src = new RangeSource(msg.bounds(), snapshotTree, qctx.filter());
}
else {
// This is request to fetch next portion of data.
@@ -1371,7 +1370,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
Iterator<GridH2Row> curRange = emptyIterator();
/** */
- final ConcurrentNavigableMap<GridSearchRowPointer, GridH2Row> tree;
+ final IgniteTree tree;
/** */
final IndexingQueryFilter filter;
@@ -1383,7 +1382,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
*/
RangeSource(
Iterable<GridH2RowRangeBounds> bounds,
- ConcurrentNavigableMap<GridSearchRowPointer, GridH2Row> tree,
+ IgniteTree tree,
IndexingQueryFilter filter
) {
this.filter = filter;
@@ -1443,7 +1442,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
SearchRow first = toSearchRow(bounds.first());
SearchRow last = toSearchRow(bounds.last());
- ConcurrentNavigableMap<GridSearchRowPointer,GridH2Row> t = tree != null ? tree : treeForRead();
+ IgniteTree t = tree != null ? tree : treeForRead();
curRange = doFind0(t, first, true, last, filter);
@@ -1462,7 +1461,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
/**
* @return Snapshot for current thread if there is one.
*/
- protected ConcurrentNavigableMap<GridSearchRowPointer, GridH2Row> treeForRead() {
+ protected IgniteTree treeForRead() {
throw new UnsupportedOperationException();
}
@@ -1474,7 +1473,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
* @param filter Filter.
* @return Iterator over rows in given range.
*/
- protected Iterator<GridH2Row> doFind0(ConcurrentNavigableMap<GridSearchRowPointer, GridH2Row> t,
+ protected Iterator<GridH2Row> doFind0(IgniteTree t,
@Nullable SearchRow first,
boolean includeFirst,
@Nullable SearchRow last,
@@ -1541,4 +1540,61 @@ public abstract class GridH2IndexBase extends BaseIndex {
return fltr.apply(key, val);
}
}
+
+ /**
+ * Adapter from {@link NavigableMap} to {@link IgniteTree}.
+ */
+ protected static class IgniteNavigableMapTree implements IgniteTree<GridSearchRowPointer, GridH2Row> {
+ private NavigableMap<GridSearchRowPointer, GridH2Row> tree;
+
+ /**
+ * @param map the {@link NavigableMap} which should be adapted.
+ */
+ public IgniteNavigableMapTree(final NavigableMap<GridSearchRowPointer, GridH2Row> map) {
+ this.tree = map;
+ }
+
+ /** {@inheritDoc} */
+ @Override public GridH2Row put(final GridSearchRowPointer key, final GridH2Row value) {
+ return tree.put(key, value);
+ }
+
+ /** {@inheritDoc} */
+ @Override public GridH2Row get(final Object key) {
+ return tree.get(key);
+ }
+
+ /** {@inheritDoc} */
+ @Override public GridH2Row remove(final Object key) {
+ return tree.remove(key);
+ }
+
+ /** {@inheritDoc} */
+ @Override public int size() {
+ return tree.size();
+ }
+
+ /** {@inheritDoc} */
+ @Override public Collection<GridH2Row> values() {
+ return tree.values();
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public IgniteTree<GridSearchRowPointer, GridH2Row> headTree(GridSearchRowPointer toKey, boolean inclusive) {
+ return new IgniteNavigableMapTree(tree.headMap(toKey, inclusive));
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public IgniteTree<GridSearchRowPointer, GridH2Row> tailTree(GridSearchRowPointer fromKey, boolean inclusive) {
+ return new IgniteNavigableMapTree(tree.tailMap(fromKey, inclusive));
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgniteTree<GridSearchRowPointer, GridH2Row> subTree(GridSearchRowPointer fromKey,
+ boolean fromInclusive, GridSearchRowPointer toKey, boolean toInclusive) {
+ return new IgniteNavigableMapTree(tree.subMap(fromKey, fromInclusive, toKey, toInclusive));
+ }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/ef015d38/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 c56fb94..b4cd76f 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
@@ -23,7 +23,8 @@ import java.util.List;
import java.util.NavigableMap;
import java.util.concurrent.ConcurrentNavigableMap;
import java.util.concurrent.ConcurrentSkipListMap;
-import org.apache.ignite.internal.util.GridEmptyIterator;
+
+import org.apache.ignite.internal.util.*;
import org.apache.ignite.internal.util.offheap.unsafe.GridOffHeapSnapTreeMap;
import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeGuard;
import org.apache.ignite.internal.util.snaptree.SnapTreeMap;
@@ -48,7 +49,7 @@ import org.jetbrains.annotations.Nullable;
@SuppressWarnings("ComparatorNotSerializable")
public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridSearchRowPointer> {
/** */
- private final ConcurrentNavigableMap<GridSearchRowPointer, GridH2Row> tree;
+ private final IgniteTree<GridSearchRowPointer, GridH2Row> tree;
/** */
private final boolean snapshotEnabled;
@@ -91,7 +92,8 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
};
}
else {
- tree = new ConcurrentSkipListMap<>(
+ tree = new IgniteNavigableMapTree(
+ new ConcurrentSkipListMap<>(
new Comparator<GridSearchRowPointer>() {
@Override public int compare(GridSearchRowPointer o1, GridSearchRowPointer o2) {
if (o1 instanceof ComparableRow)
@@ -103,7 +105,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
return compareRows(o1, o2);
}
}
- );
+ ));
}
}
else {
@@ -148,11 +150,11 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
}
/** {@inheritDoc} */
- protected final ConcurrentNavigableMap<GridSearchRowPointer, GridH2Row> treeForRead() {
+ protected final IgniteTree treeForRead() {
if (!snapshotEnabled)
return tree;
- ConcurrentNavigableMap<GridSearchRowPointer, GridH2Row> res = threadLocalSnapshot();
+ IgniteTree res = threadLocalSnapshot();
if (res == null)
res = tree;
@@ -268,14 +270,14 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
*/
@SuppressWarnings("unchecked")
private Iterator<GridH2Row> doFind(@Nullable SearchRow first, boolean includeFirst, @Nullable SearchRow last) {
- ConcurrentNavigableMap<GridSearchRowPointer, GridH2Row> t = treeForRead();
+ IgniteTree t = treeForRead();
return doFind0(t, first, includeFirst, last, threadLocalFilter());
}
/** {@inheritDoc} */
@Override protected final Iterator<GridH2Row> doFind0(
- ConcurrentNavigableMap<GridSearchRowPointer, GridH2Row> t,
+ IgniteTree t,
@Nullable SearchRow first,
boolean includeFirst,
@Nullable SearchRow last,
@@ -283,7 +285,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
) {
includeFirst &= first != null;
- NavigableMap<GridSearchRowPointer, GridH2Row> range = subTree(t, comparable(first, includeFirst ? -1 : 1),
+ IgniteTree<GridSearchRowPointer, GridH2Row> range = subTree(t, comparable(first, includeFirst ? -1 : 1),
comparable(last, 1));
if (range == null)
@@ -310,30 +312,30 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
/**
* Takes sup-map from given one.
*
- * @param map Map.
+ * @param tree Tree.
* @param first Lower bound.
* @param last Upper bound.
* @return Sub-map.
*/
@SuppressWarnings({"IfMayBeConditional", "TypeMayBeWeakened"})
- private NavigableMap<GridSearchRowPointer, GridH2Row> subTree(NavigableMap<GridSearchRowPointer, GridH2Row> map,
+ private IgniteTree subTree(IgniteTree tree,
@Nullable GridSearchRowPointer first, @Nullable GridSearchRowPointer last) {
// We take exclusive bounds because it is possible that one search row will be equal to multiple key rows
// in tree and we must return them all.
if (first == null) {
if (last == null)
- return map;
+ return tree;
else
- return map.headMap(last, false);
+ return tree.headTree(last, false);
}
else {
if (last == null)
- return map.tailMap(first, false);
+ return tree.tailTree(first, false);
else {
if (compare(first, last) > 0)
return null;
- return map.subMap(first, false, last, false);
+ return tree.subTree(first, false, last, false);
}
}
}
[17/22] ignite git commit: ignite-gg-11414 distribution join in one
suit
Posted by ag...@apache.org.
ignite-gg-11414 distribution join in one suit
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9af39adb
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9af39adb
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9af39adb
Branch: refs/heads/ignite-3477
Commit: 9af39adbd353c2fbebf982f239c78f8e0aa9e77c
Parents: 2b6484a
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Tue Jan 10 15:31:19 2017 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Tue Jan 10 15:31:19 2017 +0300
----------------------------------------------------------------------
.../query/IgniteSqlDistributedJoinSelfTest.java | 7 +++++++
.../testsuites/IgniteCacheQuerySelfTestSuite.java | 15 ---------------
.../testsuites/IgniteCacheQuerySelfTestSuite3.java | 2 ++
3 files changed, 9 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/9af39adb/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlDistributedJoinSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlDistributedJoinSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlDistributedJoinSelfTest.java
index d851a31..e9f41c8 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlDistributedJoinSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlDistributedJoinSelfTest.java
@@ -80,6 +80,9 @@ public class IgniteSqlDistributedJoinSelfTest extends GridCommonAbstractTest {
.setIndexedTypes(idxTypes);
}
+ /**
+ *
+ */
public void testNonCollocatedDistributedJoin() throws Exception {
CacheConfiguration ccfg1 = cacheConfig("pers", true, String.class, Person.class);
CacheConfiguration ccfg2 = cacheConfig("org", true, String.class, Organization.class);
@@ -111,6 +114,10 @@ public class IgniteSqlDistributedJoinSelfTest extends GridCommonAbstractTest {
}
}
+ /**
+ * @param c1 Cache1.
+ * @param c2 Cache2.
+ */
private void populateDataIntoCaches(IgniteCache<String, Person> c1, IgniteCache<String, Organization> c2) {
int personId = 0;
http://git-wip-us.apache.org/repos/asf/ignite/blob/9af39adb/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
index fbbdf76..1f93656 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
@@ -45,12 +45,6 @@ import org.apache.ignite.internal.processors.cache.IgniteBinaryObjectQueryArgume
import org.apache.ignite.internal.processors.cache.IgniteBinaryWrappedObjectFieldsQuerySelfTest;
import org.apache.ignite.internal.processors.cache.IgniteCacheCollocatedQuerySelfTest;
import org.apache.ignite.internal.processors.cache.IgniteCacheDeleteSqlQuerySelfTest;
-import org.apache.ignite.internal.processors.cache.IgniteCacheDistributedJoinCollocatedAndNotTest;
-import org.apache.ignite.internal.processors.cache.IgniteCacheDistributedJoinCustomAffinityMapper;
-import org.apache.ignite.internal.processors.cache.IgniteCacheDistributedJoinNoIndexTest;
-import org.apache.ignite.internal.processors.cache.IgniteCacheDistributedJoinPartitionedAndReplicatedTest;
-import org.apache.ignite.internal.processors.cache.IgniteCacheDistributedJoinQueryConditionsTest;
-import org.apache.ignite.internal.processors.cache.IgniteCacheDistributedJoinTest;
import org.apache.ignite.internal.processors.cache.IgniteCacheDuplicateEntityConfigurationSelfTest;
import org.apache.ignite.internal.processors.cache.IgniteCacheFieldsQueryNoDataSelfTest;
import org.apache.ignite.internal.processors.cache.IgniteCacheInsertSqlQuerySelfTest;
@@ -82,7 +76,6 @@ import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheP
import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCachePartitionedSnapshotEnabledQuerySelfTest;
import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheQueryAbstractDistributedJoinSelfTest;
import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheQueryNoRebalanceSelfTest;
-import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheQueryStopOnCancelOrTimeoutDistributedJoinSelfTest;
import org.apache.ignite.internal.processors.cache.distributed.replicated.IgniteCacheReplicatedFieldsQueryP2PEnabledSelfTest;
import org.apache.ignite.internal.processors.cache.distributed.replicated.IgniteCacheReplicatedFieldsQuerySelfTest;
import org.apache.ignite.internal.processors.cache.distributed.replicated.IgniteCacheReplicatedQueryP2PDisabledSelfTest;
@@ -165,18 +158,11 @@ public class IgniteCacheQuerySelfTestSuite extends TestSuite {
suite.addTestSuite(IgniteCachePrimitiveFieldsQuerySelfTest.class);
suite.addTestSuite(IgniteCacheJoinQueryWithAffinityKeyTest.class);
- suite.addTestSuite(IgniteCacheDistributedJoinCollocatedAndNotTest.class);
- suite.addTestSuite(IgniteCacheDistributedJoinPartitionedAndReplicatedTest.class);
- suite.addTestSuite(IgniteCacheDistributedJoinQueryConditionsTest.class);
- suite.addTestSuite(IgniteCacheDistributedJoinTest.class);
suite.addTestSuite(IgniteCacheJoinPartitionedAndReplicatedTest.class);
- suite.addTestSuite(IgniteCacheDistributedJoinNoIndexTest.class);
suite.addTestSuite(IgniteCrossCachesJoinsQueryTest.class);
suite.addTestSuite(IgniteCacheMultipleIndexedTypesTest.class);
- suite.addTestSuite(IgniteCacheDistributedJoinCustomAffinityMapper.class);
-
suite.addTestSuite(IgniteCacheMergeSqlQuerySelfTest.class);
suite.addTestSuite(IgniteCacheInsertSqlQuerySelfTest.class);
suite.addTestSuite(IgniteCacheUpdateSqlQuerySelfTest.class);
@@ -237,7 +223,6 @@ public class IgniteCacheQuerySelfTestSuite extends TestSuite {
suite.addTestSuite(IgniteCacheDistributedQueryCancelSelfTest.class);
suite.addTestSuite(IgniteCacheLocalQueryCancelOrTimeoutSelfTest.class);
- suite.addTestSuite(IgniteCacheQueryStopOnCancelOrTimeoutDistributedJoinSelfTest.class);
// Other.
suite.addTestSuite(CacheQueryNewClientSelfTest.class);
http://git-wip-us.apache.org/repos/asf/ignite/blob/9af39adb/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
index a379947..4eaaab8 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
@@ -122,6 +122,8 @@ public class IgniteCacheQuerySelfTestSuite3 extends TestSuite {
suite.addTestSuite(IgniteCacheContinuousQueryBackupQueueTest.class);
suite.addTestSuite(IgniteCacheContinuousQueryNoUnsubscribeTest.class);
+ suite.addTest(IgniteDistributedJoinTestSuite.suite());
+
return suite;
}
}
[15/22] ignite git commit: Merge remote-tracking branch
'community/ignite-gg-11414' into ignite-gg-11414
Posted by ag...@apache.org.
Merge remote-tracking branch 'community/ignite-gg-11414' into ignite-gg-11414
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/6107ddb8
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/6107ddb8
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/6107ddb8
Branch: refs/heads/ignite-3477
Commit: 6107ddb8e987eb381ffdc4a16f928d8fe89fe003
Parents: d63b386 bb2ad16
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Mon Jan 9 19:38:48 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Mon Jan 9 19:38:48 2017 +0300
----------------------------------------------------------------------
.../query/h2/opt/GridH2IndexBase.java | 57 +++++++-------------
1 file changed, 19 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
[03/22] ignite git commit: tests have been fixed
Posted by ag...@apache.org.
tests have been fixed
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/df7b4f65
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/df7b4f65
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/df7b4f65
Branch: refs/heads/ignite-3477
Commit: df7b4f65fbea86310c953c7bd41d2fd7ab85831e
Parents: b2999f2
Author: Sergey Sidorov <ss...@gridgain.com>
Authored: Wed Nov 16 16:50:55 2016 +0300
Committer: Sergey Sidorov <ss...@gridgain.com>
Committed: Wed Nov 16 16:50:55 2016 +0300
----------------------------------------------------------------------
.../internal/processors/query/IgniteSqlSplitterSelfTest.java | 6 ++++--
.../internal/processors/query/h2/sql/GridQueryParsingTest.java | 2 +-
2 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/df7b4f65/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
index b5c3d7c..4e9f3c7 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
@@ -269,8 +269,10 @@ public class IgniteSqlSplitterSelfTest extends GridCommonAbstractTest {
c1.put(4, new Person2(2, "p2"));
c1.put(5, new Person2(3, "p3"));
- String select = "select o.name n1, p.name n2 from Person2 p, Organization o where p.orgId = o._key and o._key=1" +
- " union select o.name n1, p.name n2 from Person2 p, Organization o where p.orgId = o._key and o._key=2";
+ String select = "select o.name n1, p.name n2 from Person2 p, \"org\".Organization o" +
+ " where p.orgId = o._key and o._key=1" +
+ " union select o.name n1, p.name n2 from Person2 p, \"org\".Organization o" +
+ " where p.orgId = o._key and o._key=2";
String plan = (String)c1.query(new SqlFieldsQuery("explain " + select)
.setDistributedJoins(true).setEnforceJoinOrder(true))
http://git-wip-us.apache.org/repos/asf/ignite/blob/df7b4f65/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/GridQueryParsingTest.java
----------------------------------------------------------------------
diff --git 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
index 9e65835..5c7139f 100644
--- 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
@@ -155,7 +155,7 @@ public class GridQueryParsingTest extends GridCommonAbstractTest {
checkQuery("select avg(old) from Person left join \"addr\".Address where Person.addrId = Address.id " +
"and lower(Address.street) = lower(?)");
- checkQuery("select avg(old) from Person right join Address where Person.addrId = Address.id " +
+ checkQuery("select avg(old) from Person right join \"addr\".Address where Person.addrId = Address.id " +
"and lower(Address.street) = lower(?)");
checkQuery("select avg(old) from Person, \"addr\".Address where Person.addrId = Address.id " +
[07/22] ignite git commit: Merge ignite-gg-8.0.2.ea2 into
ignite-gg-11414
Posted by ag...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/12130467/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/12130467/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/12130467/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/12130467/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 47ca598,07a198f..6ea3387
--- 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
@@@ -2468,6 -2690,73 +2690,39 @@@ public class IgniteH2Indexing implement
}
/**
+ * @return Index.
+ */
+ private Index createHashIndex(
+ int cacheId,
+ String name,
+ GridH2Table tbl,
+ List<IndexColumn> cols
+ ) {
+ try {
+ GridCacheSharedContext<Object, Object> scctx = ctx.cache().context();
+
+ GridCacheContext cctx = scctx.cacheContext(cacheId);
+
+ if (cctx.affinityNode() && cctx.offheapIndex()) {
+ assert pkHashIdx == null : pkHashIdx;
+
+ pkHashIdx = new H2PkHashIndex(
+ cctx,
+ tbl,
+ name,
+ cols);
+
+ return pkHashIdx;
+ }
+
+ return new GridH2TreeIndex(name, tbl, true, cols);
+ }
+ catch (IgniteCheckedException e) {
+ throw new IgniteException(e);
+ }
+ }
+
+ /**
- * @param name Index name.
- * @param tbl Table.
- * @param pk Primary key flag.
- * @param cols Columns.
- * @return Index.
- */
- private Index createIndex(
- GridCacheContext cctx,
- String name,
- GridH2Table tbl,
- boolean pk,
- List<IndexColumn> cols
- ) throws IgniteCheckedException {
- if (log.isInfoEnabled())
- log.info("Creating cache index [cacheId=" + cctx.cacheId() + ", idxName=" + name + ']');
-
- Index idx = new H2TreeIndex(
- cctx,
- tbl,
- name,
- pk,
- cols);
-
- if (pk) {
- assert pkTreeIdx == null : pkTreeIdx;
-
- pkTreeIdx = idx;
- }
-
- return idx;
-
- }
-
- /**
*
*/
void onDrop() {
http://git-wip-us.apache.org/repos/asf/ignite/blob/12130467/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/12130467/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/12130467/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/12130467/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/GridQueryParsingTest.java
----------------------------------------------------------------------
[18/22] ignite git commit: Merge remote-tracking branch
'remotes/professional/ignite-gg-8.0.2.ea2' into ignite-gg-11414
Posted by ag...@apache.org.
Merge remote-tracking branch 'remotes/professional/ignite-gg-8.0.2.ea2' into ignite-gg-11414
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e03a9805
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e03a9805
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e03a9805
Branch: refs/heads/ignite-3477
Commit: e03a9805e5e7ea653f10fe1abc6f2bd981bec71d
Parents: 9af39ad f5fd34e
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Tue Jan 10 15:38:42 2017 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Tue Jan 10 15:38:42 2017 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheMapEntry.java | 52 +++++++++++---------
.../GridCachePartitionExchangeManager.java | 24 +++++----
.../processors/cache/GridCacheTtlManager.java | 2 +-
.../cache/IgniteCacheOffheapManager.java | 2 +-
.../cache/IgniteCacheOffheapManagerImpl.java | 4 +-
.../distributed/dht/GridDhtLocalPartition.java | 8 ++-
.../dht/GridDhtPartitionTopologyImpl.java | 11 ++---
.../distributed/dht/GridDhtTxFinishFuture.java | 7 ++-
.../dht/preloader/GridDhtPreloader.java | 27 +++++-----
.../cache/CacheConfigurationLeakTest.java | 15 ++++++
.../cache/CacheEntryProcessorCopySelfTest.java | 8 ---
...idAbstractCacheInterceptorRebalanceTest.java | 2 +
.../cache/GridCacheBasicStoreAbstractTest.java | 5 +-
.../GridCacheOffHeapTieredAbstractSelfTest.java | 4 ++
.../cache/GridCacheP2PUndeploySelfTest.java | 5 --
...idCacheValueConsistencyAbstractSelfTest.java | 30 -----------
.../IgniteCacheInterceptorSelfTestSuite.java | 10 ++--
.../cache/IgniteCachePeekModesAbstractTest.java | 6 +++
.../GridDataStreamerImplSelfTest.java | 8 +--
...CacheLoadingConcurrentGridStartSelfTest.java | 20 ++++++--
...tractDistributedByteArrayValuesSelfTest.java | 3 ++
.../IgniteTxCachePrimarySyncTest.java | 7 +++
...teSynchronizationModesMultithreadedTest.java | 3 +-
.../dht/GridCacheTxNodeFailureSelfTest.java | 13 +++--
...eAtomicInvalidPartitionHandlingSelfTest.java | 16 +++---
...maryWriteOrderWithStoreExpiryPolicyTest.java | 2 +-
...eCacheExpiryPolicyWithStoreAbstractTest.java | 21 +++++---
...ContinuousQueryFailoverAbstractSelfTest.java | 4 +-
.../CacheKeepBinaryIterationTest.java | 3 ++
...teCacheContinuousQueryNoUnsubscribeTest.java | 2 +
.../ignite/testsuites/IgniteCacheTestSuite.java | 12 +++--
.../testsuites/IgniteCacheTestSuite2.java | 3 +-
...niteCacheLockPartitionOnAffinityRunTest.java | 36 ++++++++++----
33 files changed, 223 insertions(+), 152 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e03a9805/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
----------------------------------------------------------------------
[08/22] ignite git commit: Merge ignite-gg-8.0.2.ea2 into
ignite-gg-11414
Posted by ag...@apache.org.
Merge ignite-gg-8.0.2.ea2 into ignite-gg-11414
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/12130467
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/12130467
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/12130467
Branch: refs/heads/ignite-3477
Commit: 12130467e75e537a0000752e9afc99f4a547e965
Parents: 0712a81 9776f3f
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Thu Dec 29 14:04:33 2016 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Thu Dec 29 14:04:33 2016 +0300
----------------------------------------------------------------------
.gitignore | 1 +
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/control.bat | 229 +
bin/control.sh | 180 +
bin/ignite.bat | 5 +
bin/ignite.sh | 9 +
bin/include/setenv.bat | 8 -
bin/include/setenv.sh | 31 -
config/dotnet/default-dotnet.xml | 45 +
examples/pom-standalone-lgpl.xml | 6 +
examples/pom-standalone.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 | 315 +-
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 | 525 +
.../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 | 656 +
.../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/ChangeStateCommandHandlerTest.java | 125 +
.../rest/ClientMemcachedProtocolSelfTest.java | 4 +-
.../JettyRestProcessorAbstractSelfTest.java | 11 +-
.../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 +-
.../ignite/codegen/MessageCodeGenerator.java | 2 +
modules/core/pom.xml | 2 +-
.../src/main/java/org/apache/ignite/Ignite.java | 85 +-
.../java/org/apache/ignite/IgniteCache.java | 28 +
.../apache/ignite/IgniteCheckedException.java | 12 +
.../org/apache/ignite/IgniteDataStreamer.java | 2 +-
.../java/org/apache/ignite/IgniteLogger.java | 6 +-
.../java/org/apache/ignite/IgniteScheduler.java | 13 +
.../java/org/apache/ignite/IgniteServices.java | 64 +-
.../apache/ignite/IgniteSystemProperties.java | 83 +
.../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 +-
.../ignite/cache/store/CacheStoreAdapter.java | 6 +
.../store/jdbc/CacheAbstractJdbcStore.java | 209 +-
.../cache/store/jdbc/CacheJdbcBlobStore.java | 4 +-
.../cache/store/jdbc/CacheJdbcPojoStore.java | 39 +-
.../store/jdbc/CacheJdbcPojoStoreFactory.java | 45 +-
.../ignite/cache/store/jdbc/JdbcType.java | 2 +-
.../store/jdbc/JdbcTypesDefaultTransformer.java | 112 +-
.../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 | 68 +-
.../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 +
.../apache/ignite/internal/GridComponent.java | 7 +-
.../internal/GridEventConsumeHandler.java | 20 +-
.../ignite/internal/GridJobContextImpl.java | 4 +-
.../internal/GridJobSiblingsResponse.java | 3 +-
.../ignite/internal/GridKernalContext.java | 48 +
.../ignite/internal/GridKernalContextImpl.java | 80 +-
.../apache/ignite/internal/GridLoggerProxy.java | 3 +-
.../internal/GridMessageListenHandler.java | 18 +-
.../internal/GridPerformanceSuggestions.java | 2 +-
.../ignite/internal/GridPluginComponent.java | 4 +-
.../ignite/internal/GridTaskSessionImpl.java | 15 +-
.../org/apache/ignite/internal/GridTopic.java | 6 +-
.../ignite/internal/IgniteComponentType.java | 11 +-
.../ignite/internal/IgniteInternalFuture.java | 11 +
.../apache/ignite/internal/IgniteKernal.java | 293 +-
.../ignite/internal/IgniteSchedulerImpl.java | 18 +
.../ignite/internal/IgniteServicesImpl.java | 13 +-
.../org/apache/ignite/internal/IgnitionEx.java | 223 +-
.../ignite/internal/MarshallerContextImpl.java | 22 +-
.../internal/binary/BinaryClassDescriptor.java | 82 +-
.../ignite/internal/binary/BinaryContext.java | 105 +-
.../internal/binary/BinaryEnumObjectImpl.java | 8 +-
.../ignite/internal/binary/BinaryFieldImpl.java | 10 +-
.../internal/binary/BinaryMarshaller.java | 30 +-
.../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/BinaryTypeProxy.java | 15 +-
.../ignite/internal/binary/BinaryUtils.java | 23 +-
.../internal/binary/BinaryWriterExImpl.java | 93 +-
.../internal/binary/GridBinaryMarshaller.java | 2 +-
.../binary/builder/BinaryBuilderReader.java | 11 +
.../binary/builder/BinaryBuilderSerializer.java | 4 +
.../binary/builder/BinaryObjectBuilderImpl.java | 46 +-
.../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 +-
.../ignite/internal/client/GridClient.java | 9 +
.../internal/client/GridClientClusterState.java | 33 +
.../client/GridClientConfiguration.java | 1 -
.../client/impl/GridClientClusterStateImpl.java | 75 +
.../internal/client/impl/GridClientImpl.java | 11 +
.../impl/connection/GridClientConnection.java | 17 +
.../GridClientConnectionManagerAdapter.java | 1 +
.../connection/GridClientNioTcpConnection.java | 21 +
.../GridClientOptimizedMarshaller.java | 5 +-
.../GridClientZipOptimizedMarshaller.java | 5 +-
.../router/impl/GridRouterClientImpl.java | 6 +
.../internal/cluster/ClusterGroupAdapter.java | 2 +-
.../cluster/ClusterNodeLocalMapImpl.java | 3 +-
.../internal/commandline/CommandHandler.java | 89 +
.../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 | 17 +-
.../checkpoint/GridCheckpointManager.java | 8 +-
.../collision/GridCollisionManager.java | 2 +-
.../managers/communication/GridIoManager.java | 226 +-
.../managers/communication/GridIoMessage.java | 13 +
.../communication/GridIoMessageFactory.java | 94 +-
.../communication/IgniteIoTestMessage.java | 13 +-
.../deployment/GridDeploymentCommunication.java | 4 +-
.../deployment/GridDeploymentManager.java | 2 +-
.../GridDeploymentPerVersionStore.java | 2 +-
.../discovery/GridDiscoveryManager.java | 199 +-
.../eventstorage/GridEventStorageManager.java | 20 +-
.../managers/failover/GridFailoverManager.java | 2 +-
.../managers/indexing/GridIndexingManager.java | 2 +-
.../loadbalancer/GridLoadBalancerManager.java | 12 +-
.../ignite/internal/pagemem/FullPageId.java | 30 +-
.../ignite/internal/pagemem/PageIdUtils.java | 8 +
.../pagemem/backup/BackupFinishedMessage.java | 133 -
.../StartFullBackupAckDiscoveryMessage.java | 128 -
.../backup/StartFullBackupDiscoveryMessage.java | 135 -
.../pagemem/impl/PageMemoryNoStoreImpl.java | 7 +-
.../snapshot/SnapshotFinishedMessage.java | 136 +
.../snapshot/SnapshotProgressMessage.java | 135 +
.../StartFullSnapshotAckDiscoveryMessage.java | 147 +
.../StartFullSnapshotDiscoveryMessage.java | 160 +
.../pagemem/store/IgnitePageStoreManager.java | 20 +-
.../internal/pagemem/store/PageStore.java | 7 +-
.../pagemem/wal/IgniteWriteAheadLogManager.java | 3 +-
.../wal/IgniteWriteAheadLogNoopManager.java | 11 +
.../internal/pagemem/wal/StorageException.java | 9 +
.../internal/pagemem/wal/record/DataEntry.java | 32 +-
.../internal/pagemem/wal/record/DataRecord.java | 22 +-
.../wal/record/MemoryRecoveryRecord.java | 23 +-
.../internal/pagemem/wal/record/WALRecord.java | 24 +-
.../wal/record/delta/DataPageRemoveRecord.java | 6 +
.../wal/record/delta/MetaPageInitRecord.java | 93 +
.../record/delta/MetaPageInitRootRecord.java | 2 +
.../MetaPageUpdateCandidateAllocatedIndex.java | 63 -
.../MetaPageUpdateLastSuccessfulBackupId.java | 59 -
...etaPageUpdateLastSuccessfulFullBackupId.java | 59 -
...aPageUpdateLastSuccessfulFullSnapshotId.java | 59 +
.../MetaPageUpdateLastSuccessfulSnapshotId.java | 70 +
.../delta/MetaPageUpdateNextBackupId.java | 59 -
.../delta/MetaPageUpdateNextSnapshotId.java | 59 +
.../MetaPageUpdatePartitionDataRecord.java | 26 +-
.../record/delta/MetaPageUpdateRootsRecord.java | 91 -
.../delta/PageListMetaResetCountRecord.java | 47 +
.../record/delta/PartitionMetaStateRecord.java | 82 +
.../record/delta/SplitExistingPageRecord.java | 9 +
.../record/delta/TrackingPageDeltaRecord.java | 28 +-
.../processors/GridProcessorAdapter.java | 4 +-
.../processors/affinity/AffinityAssignment.java | 88 +
.../affinity/GridAffinityAssignment.java | 8 +-
.../affinity/GridAffinityAssignmentCache.java | 35 +-
.../affinity/GridAffinityProcessor.java | 93 +-
.../processors/affinity/GridAffinityUtils.java | 12 +-
.../affinity/HistoryAffinityAssignment.java | 169 +
.../cache/CacheAffinitySharedManager.java | 66 +-
.../cache/CacheEntrySerializablePredicate.java | 4 +-
.../cache/CacheInvokeDirectResult.java | 4 +-
.../processors/cache/CacheLockCandidates.java | 42 +
.../cache/CacheLockCandidatesList.java | 71 +
.../internal/processors/cache/CacheState.java | 33 -
.../cache/CacheStoreBalancingWrapper.java | 6 +
.../cache/ChangeGlobalStateMessage.java | 120 +
.../internal/processors/cache/ClusterState.java | 38 +
.../cache/DynamicCacheChangeBatch.java | 7 +
.../cache/DynamicCacheChangeRequest.java | 23 +-
.../processors/cache/GridCacheAdapter.java | 779 +-
.../cache/GridCacheAffinityManager.java | 6 +-
.../processors/cache/GridCacheContext.java | 10 +-
.../cache/GridCacheDeploymentManager.java | 4 +-
.../processors/cache/GridCacheEntryEx.java | 19 +-
.../processors/cache/GridCacheEventManager.java | 10 +-
.../processors/cache/GridCacheIoManager.java | 89 +-
.../cache/GridCacheLoaderWriterStore.java | 6 +
.../processors/cache/GridCacheMapEntry.java | 197 +-
.../processors/cache/GridCacheMessage.java | 11 +-
.../processors/cache/GridCacheMvcc.java | 376 +-
.../processors/cache/GridCacheMvccCallback.java | 4 +-
.../cache/GridCacheMvccCandidate.java | 80 +-
.../processors/cache/GridCacheMvccManager.java | 96 +-
.../GridCachePartitionExchangeManager.java | 443 +-
.../processors/cache/GridCachePreloader.java | 27 +-
.../cache/GridCachePreloaderAdapter.java | 21 +-
.../processors/cache/GridCacheProcessor.java | 736 +-
.../processors/cache/GridCacheProxyImpl.java | 24 +-
.../GridCacheReturnCompletableWrapper.java | 101 +
.../cache/GridCacheSharedContext.java | 25 +-
.../cache/GridCacheSharedTtlCleanupManager.java | 142 +
.../processors/cache/GridCacheTtlManager.java | 173 +-
.../processors/cache/GridCacheUtilityKey.java | 6 +-
.../processors/cache/GridCacheUtils.java | 136 +-
.../GridChangeGlobalStateMessageResponse.java | 177 +
.../cache/GridDeferredAckMessageSender.java | 219 +
.../cache/IgniteCacheOffheapManager.java | 36 +-
.../cache/IgniteCacheOffheapManagerImpl.java | 191 +-
.../processors/cache/IgniteCacheProxy.java | 141 +-
.../processors/cache/IgniteInternalCache.java | 8 +
.../processors/cache/QueryCursorImpl.java | 117 +-
.../binary/CacheObjectBinaryProcessorImpl.java | 49 +-
.../IgniteCacheDatabaseSharedManager.java | 58 +-
.../cache/database/IgniteMemoryPoolMetrics.java | 33 +
.../cache/database/freelist/PagesList.java | 6 +-
.../cache/database/tree/BPlusTree.java | 21 +-
.../cache/database/tree/io/DataPageIO.java | 6 +-
.../cache/database/tree/io/PageMetaIO.java | 95 +-
.../database/tree/io/PagePartitionMetaIO.java | 19 +
.../cache/database/tree/io/TrackingPageIO.java | 124 +-
.../cache/database/tree/util/PageHandler.java | 15 +-
.../CacheDataStructuresManager.java | 6 +-
.../distributed/GridCacheTxRecoveryFuture.java | 4 +-
.../distributed/GridDistributedCacheEntry.java | 303 +-
.../distributed/GridDistributedLockRequest.java | 5 +
.../GridDistributedLockResponse.java | 4 +-
.../GridDistributedTxPrepareRequest.java | 4 +-
.../GridDistributedTxPrepareResponse.java | 4 +-
.../GridDistributedTxRemoteAdapter.java | 432 +-
.../GridDistributedUnlockRequest.java | 5 +
.../dht/GridClientPartitionTopology.java | 89 +-
.../dht/GridDhtAffinityAssignmentRequest.java | 2 +-
.../dht/GridDhtAffinityAssignmentResponse.java | 12 +-
.../distributed/dht/GridDhtCacheAdapter.java | 3 +-
.../distributed/dht/GridDhtCacheEntry.java | 34 +-
.../cache/distributed/dht/GridDhtGetFuture.java | 2 +-
.../distributed/dht/GridDhtLocalPartition.java | 134 +-
.../distributed/dht/GridDhtLockFuture.java | 70 +-
.../distributed/dht/GridDhtLockResponse.java | 9 +-
.../dht/GridDhtPartitionTopology.java | 21 +-
.../dht/GridDhtPartitionTopologyImpl.java | 313 +-
.../dht/GridDhtTransactionalCacheAdapter.java | 1 -
.../distributed/dht/GridDhtTxFinishFuture.java | 86 +-
.../distributed/dht/GridDhtTxFinishRequest.java | 33 +-
.../dht/GridDhtTxFinishResponse.java | 56 +-
.../cache/distributed/dht/GridDhtTxLocal.java | 125 +-
.../distributed/dht/GridDhtTxLocalAdapter.java | 7 +-
.../dht/GridDhtTxOnePhaseCommitAckRequest.java | 134 +
.../distributed/dht/GridDhtTxPrepareFuture.java | 60 +-
.../dht/GridDhtTxPrepareRequest.java | 93 +-
.../cache/distributed/dht/GridDhtTxRemote.java | 6 +-
.../GridDhtAtomicAbstractUpdateFuture.java | 471 +
.../GridDhtAtomicAbstractUpdateRequest.java | 287 +
.../dht/atomic/GridDhtAtomicCache.java | 819 +-
.../atomic/GridDhtAtomicSingleUpdateFuture.java | 190 +
.../GridDhtAtomicSingleUpdateRequest.java | 683 +
.../dht/atomic/GridDhtAtomicUpdateFuture.java | 451 +-
.../dht/atomic/GridDhtAtomicUpdateRequest.java | 317 +-
.../dht/atomic/GridDhtAtomicUpdateResponse.java | 4 +-
...idNearAtomicAbstractSingleUpdateRequest.java | 579 +
.../GridNearAtomicAbstractUpdateFuture.java | 15 +-
.../GridNearAtomicAbstractUpdateRequest.java | 231 +
.../atomic/GridNearAtomicFullUpdateRequest.java | 1046 ++
...GridNearAtomicSingleUpdateFilterRequest.java | 228 +
.../GridNearAtomicSingleUpdateFuture.java | 140 +-
...GridNearAtomicSingleUpdateInvokeRequest.java | 309 +
.../GridNearAtomicSingleUpdateRequest.java | 362 +
.../dht/atomic/GridNearAtomicUpdateFuture.java | 42 +-
.../dht/atomic/GridNearAtomicUpdateRequest.java | 1119 --
.../atomic/GridNearAtomicUpdateResponse.java | 4 +-
.../dht/colocated/GridDhtColocatedCache.java | 13 -
.../colocated/GridDhtColocatedLockFuture.java | 12 +-
.../dht/preloader/GridDhtForceKeysResponse.java | 4 +-
.../GridDhtPartitionDemandMessage.java | 4 +-
.../dht/preloader/GridDhtPartitionDemander.java | 277 +-
.../dht/preloader/GridDhtPartitionFullMap.java | 36 +-
.../dht/preloader/GridDhtPartitionMap2.java | 57 +-
.../GridDhtPartitionsAbstractMessage.java | 43 +-
.../GridDhtPartitionsExchangeFuture.java | 331 +-
.../preloader/GridDhtPartitionsFullMessage.java | 219 +-
.../GridDhtPartitionsSingleMessage.java | 205 +-
.../GridDhtPartitionsSingleRequest.java | 7 +-
.../dht/preloader/GridDhtPreloader.java | 69 +-
.../distributed/near/GridNearAtomicCache.java | 83 +-
.../distributed/near/GridNearCacheAdapter.java | 7 +
.../distributed/near/GridNearCacheEntry.java | 44 +-
.../distributed/near/GridNearGetRequest.java | 5 +
.../distributed/near/GridNearGetResponse.java | 4 +-
.../distributed/near/GridNearLockFuture.java | 7 +-
...arOptimisticSerializableTxPrepareFuture.java | 8 +-
.../near/GridNearOptimisticTxPrepareFuture.java | 22 +-
.../GridNearPessimisticTxPrepareFuture.java | 8 +-
.../near/GridNearSingleGetResponse.java | 4 +-
.../near/GridNearTransactionalCache.java | 5 +-
.../near/GridNearTxFinishFuture.java | 158 +-
.../near/GridNearTxFinishResponse.java | 4 +-
.../cache/distributed/near/GridNearTxLocal.java | 48 +-
.../cache/local/GridLocalCacheEntry.java | 173 +-
.../cache/local/GridLocalLockFuture.java | 2 +-
.../local/atomic/GridLocalAtomicCache.java | 174 +-
.../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 | 183 +-
.../query/GridCacheQueryMetricsAdapter.java | 37 +-
.../cache/query/GridCacheQueryRequest.java | 18 +-
.../cache/query/GridCacheQueryResponse.java | 4 +-
.../cache/query/GridCacheSqlQuery.java | 14 +-
.../cache/query/GridCacheTwoStepQuery.java | 253 -
.../cache/query/IgniteQueryErrorCode.java | 91 +
.../continuous/CacheContinuousQueryHandler.java | 40 +-
.../CacheContinuousQueryListener.java | 4 +-
.../continuous/CacheContinuousQueryManager.java | 6 +-
.../jdbc/GridCacheQueryJdbcMetadataTask.java | 4 +-
.../query/jdbc/GridCacheQueryJdbcTask.java | 6 +-
.../cache/store/CacheStoreManager.java | 4 +-
.../store/GridCacheStoreManagerAdapter.java | 36 +-
.../cache/store/GridCacheWriteBehindStore.java | 8 +-
.../cache/transactions/IgniteTxAdapter.java | 46 +-
.../cache/transactions/IgniteTxEntry.java | 49 +-
.../cache/transactions/IgniteTxHandler.java | 180 +-
.../transactions/IgniteTxLocalAdapter.java | 65 +-
.../cache/transactions/IgniteTxManager.java | 168 +-
.../GridCacheLazyPlainVersionedEntry.java | 6 +
.../version/GridCachePlainVersionedEntry.java | 5 +-
.../version/GridCacheRawVersionedEntry.java | 8 +-
.../cacheobject/IgniteCacheObjectProcessor.java | 2 +-
.../IgniteCacheObjectProcessorImpl.java | 3 +-
.../clock/GridClockSyncProcessor.java | 10 +-
.../closure/GridClosureProcessor.java | 110 +-
.../processors/cluster/ClusterProcessor.java | 4 +-
.../cluster/GridClusterStateProcessor.java | 936 ++
.../processors/cluster/GridUpdateNotifier.java | 108 +-
.../cluster/IgniteChangeGlobalStateSupport.java | 40 +
.../continuous/GridContinuousHandler.java | 13 +-
.../continuous/GridContinuousProcessor.java | 56 +-
.../processors/continuous/StartRequestData.java | 4 +-
.../StartRoutineAckDiscoveryMessage.java | 13 +-
.../StartRoutineDiscoveryMessage.java | 19 +-
.../datastreamer/DataStreamProcessor.java | 120 +-
.../datastreamer/DataStreamerImpl.java | 714 +-
.../datastructures/DataStructuresProcessor.java | 132 +-
.../datastructures/GridCacheAtomicLongImpl.java | 14 +-
.../GridCacheAtomicReferenceImpl.java | 16 +-
.../GridCacheAtomicSequenceImpl.java | 26 +-
.../GridCacheAtomicStampedImpl.java | 14 +-
.../GridCacheCountDownLatchImpl.java | 14 +-
.../datastructures/GridCacheLockImpl.java | 17 +-
.../datastructures/GridCacheQueueAdapter.java | 2 +-
.../datastructures/GridCacheSemaphoreImpl.java | 14 +-
.../processors/hadoop/HadoopClassLoader.java | 498 +
.../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 | 64 +-
.../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/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 +
.../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 | 35 +-
.../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 | 23 +-
.../internal/processors/job/GridJobWorker.java | 86 +-
.../jobmetrics/GridJobMetricsProcessor.java | 2 +-
.../OsDiscoveryNodeValidationProcessor.java | 2 +-
.../processors/odbc/OdbcMessageParser.java | 26 +-
.../processors/odbc/OdbcNioListener.java | 2 +-
.../internal/processors/odbc/OdbcProcessor.java | 61 +-
.../odbc/OdbcQueryGetParamsMetaRequest.java | 60 +
.../odbc/OdbcQueryGetParamsMetaResult.java | 40 +
.../internal/processors/odbc/OdbcRequest.java | 3 +
.../processors/odbc/OdbcRequestHandler.java | 212 +-
.../internal/processors/odbc/OdbcTableMeta.java | 15 +-
.../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 | 5 +-
.../platform/PlatformNoopProcessor.java | 44 +-
.../processors/platform/PlatformProcessor.java | 51 +-
.../platform/PlatformProcessorImpl.java | 174 +-
.../processors/platform/PlatformTarget.java | 123 +-
.../platform/PlatformTargetProxy.java | 126 +
.../platform/PlatformTargetProxyImpl.java | 222 +
.../binary/PlatformBinaryProcessor.java | 96 +
.../platform/cache/PlatformCache.java | 980 +-
.../cache/PlatformCacheEntryFilterImpl.java | 4 +-
.../cache/PlatformCacheEntryProcessorImpl.java | 43 +-
.../platform/cache/PlatformCacheExtension.java | 47 +
.../platform/cache/PlatformCacheIterator.java | 2 +-
.../cache/affinity/PlatformAffinity.java | 18 +-
.../affinity/PlatformAffinityFunction.java | 66 +-
.../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 | 273 +-
.../platform/callback/PlatformCallbackOp.java | 206 +
.../callback/PlatformCallbackUtils.java | 545 +-
.../platform/cluster/PlatformClusterGroup.java | 167 +-
.../platform/compute/PlatformAbstractJob.java | 2 +-
.../platform/compute/PlatformAbstractTask.java | 15 +-
.../platform/compute/PlatformClosureJob.java | 12 +-
.../platform/compute/PlatformCompute.java | 116 +-
.../platform/compute/PlatformFullJob.java | 15 +-
.../platform/compute/PlatformFullTask.java | 18 +-
.../cpp/PlatformCppConfigurationClosure.java | 13 +-
.../cpp/PlatformCppConfigurationEx.java | 7 +
.../datastreamer/PlatformDataStreamer.java | 107 +-
.../PlatformStreamReceiverImpl.java | 11 +-
.../datastructures/PlatformAtomicLong.java | 174 +-
.../datastructures/PlatformAtomicReference.java | 44 +-
.../datastructures/PlatformAtomicSequence.java | 126 +-
.../dotnet/PlatformDotNetCacheStore.java | 128 +-
.../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 +-
.../services/PlatformAbstractService.java | 25 +-
.../platform/services/PlatformServices.java | 249 +-
.../transactions/PlatformTransactions.java | 222 +-
.../utils/PlatformConfigurationUtils.java | 71 +-
.../platform/utils/PlatformFutureUtils.java | 18 +-
.../utils/PlatformListenableTarget.java | 62 +
.../platform/utils/PlatformUtils.java | 44 +-
.../PlatformDotNetSessionCacheExtension.java | 144 +
.../websession/PlatformDotNetSessionData.java | 260 +
.../PlatformDotNetSessionLockProcessor.java | 84 +
.../PlatformDotNetSessionLockResult.java | 106 +
...tformDotNetSessionSetAndUnlockProcessor.java | 179 +
.../plugin/IgnitePluginProcessor.java | 2 +-
.../internal/processors/pool/PoolProcessor.java | 154 +
.../processors/port/GridPortProcessor.java | 2 +-
.../processors/query/GridQueryCancel.java | 83 +
.../processors/query/GridQueryFieldsResult.java | 3 +-
.../query/GridQueryFieldsResultAdapter.java | 3 +-
.../processors/query/GridQueryIndexing.java | 49 +-
.../processors/query/GridQueryProcessor.java | 851 +-
.../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 +-
.../resource/GridResourceProcessor.java | 2 +-
.../processors/rest/GridRestCommand.java | 11 +-
.../processors/rest/GridRestProcessor.java | 22 +-
.../client/message/GridClientStateRequest.java | 80 +
.../cluster/GridChangeStateCommandHandler.java | 89 +
.../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 | 36 +-
.../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 +
.../request/GridRestChangeStateRequest.java | 57 +
.../service/GridServiceProcessor.java | 214 +-
.../processors/service/GridServiceProxy.java | 18 +-
.../session/GridTaskSessionProcessor.java | 11 +-
.../processors/task/GridTaskProcessor.java | 17 +-
.../processors/task/GridTaskWorker.java | 27 +-
.../timeout/GridTimeoutProcessor.java | 2 +-
.../util/GridBoundedConcurrentOrderedMap.java | 5 +
.../internal/util/GridBoundedPriorityQueue.java | 68 +
.../ignite/internal/util/GridHandleTable.java | 10 +-
.../ignite/internal/util/GridLogThrottle.java | 66 +-
.../util/GridMultiCollectionWrapper.java | 15 +
.../apache/ignite/internal/util/GridUnsafe.java | 70 +-
.../ignite/internal/util/IgniteUtils.java | 617 +-
.../internal/util/OffheapReadWriteLock.java | 4 +
.../internal/util/SerializableTransient.java | 58 +
.../ignite/internal/util/StripedExecutor.java | 667 +
.../util/future/GridCompoundFuture.java | 56 +-
.../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 | 1345 +-
.../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 | 159 +-
.../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 +-
.../internal/visor/VisorMultiNodeTask.java | 2 +-
.../internal/visor/VisorTaskArgument.java | 2 +-
.../ignite/internal/visor/cache/VisorCache.java | 87 +-
.../visor/cache/VisorCachePartition.java | 14 +-
.../visor/cache/VisorCachePartitions.java | 10 +-
.../visor/cache/VisorCachePartitionsTask.java | 4 +-
.../cache/VisorCacheQueryDetailMetrics.java | 167 +
...sorCacheQueryDetailMetricsCollectorTask.java | 146 +
.../VisorCacheResetQueryDetailMetricsTask.java | 71 +
.../cache/VisorCacheResetQueryMetricsTask.java | 69 +
.../visor/cache/VisorCacheSwapBackupsTask.java | 102 -
.../visor/cache/VisorCacheTypeMetadata.java | 70 +-
.../visor/event/VisorGridDiscoveryEvent.java | 18 +-
.../misc/VisorChangeGridActiveStateTask.java | 65 +
.../visor/misc/VisorResolveHostNameTask.java | 4 +-
.../visor/node/VisorNodeDataCollectorJob.java | 5 +-
.../visor/node/VisorNodeDataCollectorTask.java | 2 +
.../node/VisorNodeDataCollectorTaskResult.java | 17 +
.../internal/visor/query/VisorQueryJob.java | 2 +-
.../visor/service/VisorCancelServiceTask.java | 70 +
.../visor/service/VisorServiceDescriptor.java | 132 +
.../visor/service/VisorServiceTask.java | 75 +
.../internal/visor/util/VisorEventMapper.java | 98 +-
.../internal/visor/util/VisorTaskUtils.java | 56 +-
.../apache/ignite/logger/java/JavaLogger.java | 18 +-
.../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 +-
.../org/apache/ignite/mxbean/IgniteMXBean.java | 21 +
.../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 | 74 +-
.../ignite/spi/discovery/tcp/ServerImpl.java | 628 +-
.../spi/discovery/tcp/TcpDiscoveryImpl.java | 61 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 50 +-
.../tcp/internal/TcpDiscoveryNode.java | 5 +-
.../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 +-
.../org/apache/ignite/stream/StreamAdapter.java | 4 +-
.../ignite/stream/socket/SocketStreamer.java | 19 +-
.../ignite/thread/IgniteThreadFactory.java | 8 +-
.../apache/ignite/util/AttributeNodeFilter.java | 108 +
.../org/jsr166/ConcurrentLinkedHashMap.java | 2 +-
.../resources/META-INF/classnames.properties | 174 +-
.../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 +
.../jdbc/JdbcTypesDefaultTransformerTest.java | 283 +
.../apache/ignite/igfs/IgfsPathSelfTest.java | 6 -
.../ignite/internal/ClusterGroupSelfTest.java | 2 +-
.../internal/GridEventStorageSelfTest.java | 97 +-
.../IgniteClientReconnectCacheTest.java | 35 +
.../IgniteComputeTopologyExceptionTest.java | 5 +-
...RoundRobinErrorAfterClientReconnectTest.java | 99 +
.../MarshallerContextLockingSelfTest.java | 2 +-
.../BinaryArrayIdentityResolverSelfTest.java | 300 +
.../internal/binary/BinaryEnumsSelfTest.java | 18 +
.../BinaryFieldIdentityResolverSelfTest.java | 333 +
.../binary/BinaryFieldsOffheapSelfTest.java | 2 +-
.../BinaryFooterOffsetsOffheapSelfTest.java | 2 +-
...ryIdentityResolverConfigurationSelfTest.java | 138 +
.../binary/BinaryMarshallerSelfTest.java | 500 +-
.../BinaryObjectBuilderAdditionalSelfTest.java | 171 +-
...naryObjectBuilderDefaultMappersSelfTest.java | 2 +-
.../binary/BinaryObjectToStringSelfTest.java | 92 +
.../BinarySerialiedFieldComparatorSelfTest.java | 568 +
...GridManagerLocalMessageListenerSelfTest.java | 222 +
.../managers/GridManagerStopSelfTest.java | 2 +
.../managers/GridNoopManagerSelfTest.java | 2 +-
...unicationBalanceMultipleConnectionsTest.java | 28 +
.../IgniteCommunicationBalanceTest.java | 339 +
.../communication/IgniteIoTestMessagesTest.java | 95 +
.../IgniteVariousConnectionNumberTest.java | 166 +
.../GridDiscoveryManagerAliveCacheSelfTest.java | 6 +-
.../discovery/GridDiscoveryManagerSelfTest.java | 6 +-
.../pagemem/impl/PageMemoryNoLoadSelfTest.java | 6 +-
.../CacheAtomicSingleMessageCountSelfTest.java | 259 +
...CacheExchangeMessageDuplicatedStateTest.java | 393 +
.../cache/CacheGetEntryAbstractTest.java | 4 +-
.../cache/CacheRebalancingSelfTest.java | 75 +
.../CacheSerializableTransactionsTest.java | 604 +-
.../cache/CrossCacheTxRandomOperationsTest.java | 30 +-
...idAbstractCacheInterceptorRebalanceTest.java | 358 +
.../cache/GridCacheAbstractFullApiSelfTest.java | 60 +-
.../GridCacheAtomicMessageCountSelfTest.java | 24 +-
...GridCacheConcurrentGetCacheOnClientTest.java | 129 +
...heInterceptorAtomicOffheapRebalanceTest.java | 30 +
...GridCacheInterceptorAtomicRebalanceTest.java | 36 +
...ceptorTransactionalOffheapRebalanceTest.java | 35 +
...heInterceptorTransactionalRebalanceTest.java | 36 +
.../GridCacheMissingCommitVersionSelfTest.java | 6 +-
.../cache/GridCacheMvccFlagsTest.java | 8 +-
.../cache/GridCacheMvccPartitionedSelfTest.java | 334 +-
.../processors/cache/GridCacheMvccSelfTest.java | 212 +-
...CacheOffHeapMultiThreadedUpdateSelfTest.java | 6 +-
.../GridCachePartitionedAffinitySpreadTest.java | 7 +-
...ridCacheStoreManagerDeserializationTest.java | 1 +
.../processors/cache/GridCacheTestEntryEx.java | 88 +-
.../GridCacheTtlManagerEvictionSelfTest.java | 142 +
.../GridCacheTtlManagerNotificationTest.java | 107 +-
.../cache/GridCacheUtilsSelfTest.java | 64 +-
...idCacheValueConsistencyAbstractSelfTest.java | 21 +-
...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 +-
.../IgniteTxStoreExceptionAbstractSelfTest.java | 1 +
.../MarshallerCacheJobRunNodeRestartTest.java | 2 +-
...heapCacheMetricsForClusterGroupSelfTest.java | 141 +
.../cache/WithKeepBinaryCacheFullApiTest.java | 10 +-
.../GridCacheBinaryObjectsAbstractSelfTest.java | 297 +-
.../database/tree/io/TrackingPageIOTest.java | 4 +-
.../GridCacheQueueApiSelfAbstractTest.java | 66 +
...SemaphoreFailoverSafeReleasePermitsTest.java | 129 +
...achePartitionedAtomicSequenceTxSelfTest.java | 169 +
...CacheLoadingConcurrentGridStartSelfTest.java | 255 +-
...ncurrentGridStartSelfTestAllowOverwrite.java | 30 +
.../CacheLockReleaseNodeLeaveTest.java | 135 +
.../distributed/GridCacheEventAbstractTest.java | 119 +-
...eAtomicMessageRecovery10ConnectionsTest.java | 28 +
...cMessageRecoveryNoPairedConnectionsTest.java | 47 +
...niteCacheClientNodeChangingTopologyTest.java | 74 +-
...acheConnectionRecovery10ConnectionsTest.java | 35 +
.../distributed/IgniteCacheCreatePutTest.java | 2 +-
.../distributed/IgniteCacheGetRestartTest.java | 3 +
.../IgniteCachePartitionLossPolicySelfTest.java | 2 +-
.../distributed/dht/GridCacheDhtTestUtils.java | 232 -
.../dht/IgniteCacheMultiTxLockSelfTest.java | 6 +-
...artitionedBackupNodeFailureRecoveryTest.java | 193 +
.../IgniteCachePutRetryAbstractSelfTest.java | 38 +-
...gniteCachePutRetryTransactionalSelfTest.java | 75 +-
...eAtomicInvalidPartitionHandlingSelfTest.java | 2 +-
...nabledMultiNodeLongTxTimeoutFullApiTest.java | 2 +-
...tomicClientOnlyMultiNodeFullApiSelfTest.java | 17 +-
...eAtomicNearOnlyMultiNodeFullApiSelfTest.java | 17 +-
...idCacheNearOnlyMultiNodeFullApiSelfTest.java | 2 +-
...achePartitionedMultiNodeFullApiSelfTest.java | 37 +-
...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 +
.../CacheOffHeapAndSwapMetricsSelfTest.java | 617 -
...LocalCacheOffHeapAndSwapMetricsSelfTest.java | 617 +
.../GridCacheQueryTransformerSelfTest.java | 9 +-
.../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 +-
.../closure/GridClosureSerializationTest.java | 177 +
...ComputeJobExecutionErrorToLogManualTest.java | 88 +
.../compute/PublicThreadpoolStarvationTest.java | 123 +
.../IgniteNoCustomEventsOnNodeStart.java | 7 +
.../database/FreeListImplSelfTest.java | 527 +
.../database/IgniteDbPutGetAbstractTest.java | 4 +-
.../database/MetadataStorageSelfTest.java | 2 +-
.../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 +
...lockMessageSystemPoolStarvationSelfTest.java | 14 +-
.../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 +-
...gniteServiceProxyTimeoutInitializedTest.java | 284 +
...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/hashmap/GridHashMapLoadTest.java | 7 +-
.../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 | 15 +-
...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 | 119 +-
.../ignite/testframework/IgniteTestSuite.java | 316 +-
.../testframework/junits/GridAbstractTest.java | 67 +-
.../junits/GridTestKernalContext.java | 8 +-
.../ignite/testframework/junits/IgniteMock.java | 25 +
.../junits/IgniteTestResources.java | 2 -
.../junits/common/GridCommonAbstractTest.java | 31 +-
.../junits/logger/GridTestLog4jLogger.java | 4 +-
.../multijvm/IgniteCacheProcessProxy.java | 21 +
.../junits/multijvm/IgniteNodeRunner.java | 2 +-
.../junits/multijvm/IgniteProcessProxy.java | 17 +
.../junits/spi/GridSpiAbstractTest.java | 2 -
.../ignite/testsuites/IgniteBasicTestSuite.java | 14 +
.../testsuites/IgniteBinaryBasicTestSuite.java | 2 -
.../IgniteBinaryObjectsTestSuite.java | 12 +
.../IgniteCacheDataStructuresSelfTestSuite.java | 5 +
.../IgniteCacheFullApiSelfTestSuite.java | 4 +
.../IgniteCacheMetricsSelfTestSuite.java | 6 +-
.../ignite/testsuites/IgniteCacheTestSuite.java | 25 +
.../testsuites/IgniteCacheTestSuite2.java | 7 +
.../testsuites/IgniteCacheTestSuite4.java | 6 +-
.../testsuites/IgniteCacheTestSuite5.java | 4 +
.../testsuites/IgniteComputeGridTestSuite.java | 4 +
.../ignite/testsuites/IgniteIgfsTestSuite.java | 19 +
.../apache/ignite/testsuites/IgniteIgnore.java | 9 +-
.../testsuites/IgniteIgnoredTestSuite.java | 63 -
.../testsuites/IgniteKernalSelfTestSuite.java | 6 +-
.../testsuites/IgniteLangSelfTestSuite.java | 4 +-
.../IgniteSpiCommunicationSelfTestSuite.java | 13 +-
.../IgniteSpiLoadBalancingSelfTestSuite.java | 34 +-
.../ignite/testsuites/IgniteSpiTestSuite.java | 6 +-
.../testsuites/IgniteUtilSelfTestSuite.java | 2 +
.../ignite/thread/IgniteThreadPoolSizeTest.java | 131 +
.../util/AttributeNodeFilterSelfTest.java | 184 +
.../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 | 58 +-
.../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 +-
.../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 | 104 +-
.../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 | 38 +-
.../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 | 62 +
.../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 | 379 +
.../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 +
...DelegatingPartiallyOffheapRawComparator.java | 54 +
.../processors/hadoop/impl/v2/HadoopV2Job.java | 475 +
.../impl/v2/HadoopV2JobResourceManager.java | 321 +
.../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 | 584 +
.../impl/v2/HadoopWritableSerialization.java | 76 +
.../processors/hadoop/io/OffheapRawMemory.java | 131 +
.../hadoop/jobtracker/HadoopJobTracker.java | 92 +-
.../hadoop/mapreduce/MapReduceClient.java | 147 +
.../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/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 +-
.../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 | 250 +
.../impl/HadoopAbstractWordCountTest.java | 175 +
.../hadoop/impl/HadoopCommandLineTest.java | 476 +
.../HadoopDefaultMapReducePlannerSelfTest.java | 619 +
.../hadoop/impl/HadoopErrorSimulator.java | 326 +
.../hadoop/impl/HadoopFileSystemsTest.java | 164 +
.../hadoop/impl/HadoopGroupingTest.java | 302 +
.../hadoop/impl/HadoopJobTrackerSelfTest.java | 332 +
.../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 | 548 +
.../hadoop/impl/HadoopTasksAllVersionsTest.java | 264 +
.../hadoop/impl/HadoopTasksV1Test.java | 62 +
.../hadoop/impl/HadoopTasksV2Test.java | 81 +
.../hadoop/impl/HadoopTeraSortTest.java | 383 +
.../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 | 315 +
.../client/HadoopClientProtocolSelfTest.java | 670 +
.../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 | 181 +
.../HadoopConcurrentHashMultimapSelftest.java | 280 +
.../collections/HadoopHashMapSelfTest.java | 133 +
.../collections/HadoopSkipListSelfTest.java | 332 +
.../streams/HadoopDataStreamSelfTest.java | 153 +
.../taskexecutor/HadoopExecutorServiceTest.java | 119 +
.../HadoopExternalTaskExecutionSelfTest.java | 234 +
.../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 | 120 +-
.../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 | 497 +-
.../query/h2/database/H2PkHashIndex.java | 322 +
.../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 +
.../processors/query/h2/opt/GridH2Table.java | 141 +-
.../query/h2/opt/GridH2TreeIndex.java | 2 +-
.../query/h2/opt/GridH2ValueCacheObject.java | 8 -
.../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 | 181 +-
.../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 +
...niteBinaryObjectLocalQueryArgumentsTest.java | 28 +
...aryObjectQueryArgumentsOffheapLocalTest.java | 28 +
...teBinaryObjectQueryArgumentsOffheapTest.java | 30 +
.../IgniteBinaryObjectQueryArgumentsTest.java | 472 +-
...niteCacheAbstractInsertSqlQuerySelfTest.java | 559 +
.../IgniteCacheAbstractSqlDmlQuerySelfTest.java | 243 +
.../IgniteCacheDeleteSqlQuerySelfTest.java | 106 +
.../IgniteCacheInsertSqlQuerySelfTest.java | 203 +
.../cache/IgniteCacheLargeResultSelfTest.java | 15 +-
.../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 +
...niteCachePartitionedFieldsQuerySelfTest.java | 25 +
...cheQueryAbstractDistributedJoinSelfTest.java | 290 +
...QueryNodeRestartDistributedJoinSelfTest.java | 262 +-
.../IgniteCacheQueryNodeRestartSelfTest2.java | 125 +-
...nCancelOrTimeoutDistributedJoinSelfTest.java | 140 +
...gniteCacheReplicatedFieldsQuerySelfTest.java | 11 +-
.../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 | 124 +-
...narySimpleNameMapperCacheQueryTestSuite.java | 2 -
.../IgniteCacheQuerySelfTestSuite.java | 160 +-
.../IgniteCacheQuerySelfTestSuite2.java | 96 +-
.../IgniteH2IndexingSpiTestSuite.java | 16 +-
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 +-
.../apache/ignite/logger/log4j/Log4JLogger.java | 4 +-
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 | 3 +-
modules/platforms/.gitignore | 31 +
modules/platforms/cpp/DEVNOTES.txt | 23 +-
modules/platforms/cpp/README.txt | 10 +-
modules/platforms/cpp/binary/Makefile.am | 4 +-
.../include/ignite/binary/binary_raw_reader.h | 21 +
.../ignite/impl/binary/binary_reader_impl.h | 11 +-
.../ignite/impl/binary/binary_type_manager.h | 14 +-
.../cpp/binary/project/vs/binary.vcxproj | 2 -
.../src/impl/binary/binary_reader_impl.cpp | 20 +-
modules/platforms/cpp/common/Makefile.am | 4 +-
.../platforms/cpp/common/include/Makefile.am | 5 +-
.../common/include/ignite/common/concurrent.h | 96 +-
.../include/ignite/common/reference_impl.h | 286 +
.../cpp/common/include/ignite/ignite_error.h | 15 +-
.../cpp/common/include/ignite/reference.h | 564 +
.../cpp/common/project/vs/common.vcxproj | 3 +-
.../common/project/vs/common.vcxproj.filters | 6 +
.../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 | 17 +-
.../core-test/config/cache-query-continuous.xml | 87 +
.../cpp/core-test/config/cache-query.xml | 4 +-
.../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 | 238 +-
.../cpp/core-test/src/continuous_query_test.cpp | 611 +
.../cpp/core-test/src/decimal_test.cpp | 2 +-
.../cpp/core-test/src/handle_registry_test.cpp | 18 +-
.../cpp/core-test/src/interop_memory_test.cpp | 5 +-
.../cpp/core-test/src/interop_test.cpp | 17 +-
.../cpp/core-test/src/reference_test.cpp | 412 +
modules/platforms/cpp/core/Makefile.am | 6 +-
modules/platforms/cpp/core/include/Makefile.am | 1 +
.../cpp/core/include/ignite/cache/cache.h | 119 +-
.../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 +
.../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 | 153 +-
.../continuous/continuous_query_handle_impl.h | 101 +
.../query/continuous/continuous_query_impl.h | 351 +
.../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 +-
.../core/include/ignite/impl/handle_registry.h | 62 +-
.../include/ignite/impl/ignite_environment.h | 81 +-
.../ignite/impl/interop/interop_target.h | 18 +
modules/platforms/cpp/core/namespaces.dox | 74 +-
.../platforms/cpp/core/project/vs/core.vcxproj | 11 +-
.../cpp/core/project/vs/core.vcxproj.filters | 36 +
modules/platforms/cpp/core/src/ignition.cpp | 21 +-
.../impl/binary/binary_type_updater_impl.cpp | 13 +-
.../cpp/core/src/impl/cache/cache_impl.cpp | 67 +-
.../continuous/continuous_query_handle_impl.cpp | 96 +
.../core/src/impl/cache/query/query_batch.cpp | 52 +
.../core/src/impl/cache/query/query_impl.cpp | 193 +-
.../cpp/core/src/impl/handle_registry.cpp | 102 +-
.../cpp/core/src/impl/ignite_environment.cpp | 183 +-
.../core/src/impl/interop/interop_target.cpp | 29 +-
.../src/impl/transactions/transactions_impl.cpp | 135 +-
modules/platforms/cpp/examples/Makefile.am | 1 +
modules/platforms/cpp/examples/README.txt | 9 +-
modules/platforms/cpp/examples/configure.ac | 45 +-
.../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/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/project/vs/ignite-examples.sln | 6 +
.../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 | 329 +-
.../cpp/jni/include/ignite/jni/utils.h | 91 +-
.../platforms/cpp/jni/project/vs/jni.vcxproj | 1 -
modules/platforms/cpp/jni/project/vs/module.def | 100 +-
modules/platforms/cpp/jni/src/exports.cpp | 375 +-
modules/platforms/cpp/jni/src/java.cpp | 1854 +--
modules/platforms/cpp/odbc-test/Makefile.am | 7 +-
.../cpp/odbc-test/config/queries-default.xml | 145 +
.../odbc-test/config/queries-test-noodbc.xml | 80 +-
.../cpp/odbc-test/config/queries-test.xml | 81 +-
.../platforms/cpp/odbc-test/include/Makefile.am | 1 +
.../cpp/odbc-test/include/complex_type.h | 122 +
.../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 | 8 +-
.../project/vs/odbc-test.vcxproj.filters | 12 +
.../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 | 798 +-
.../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 +-
.../cpp/odbc-test/src/utility_test.cpp | 27 +-
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 | 55 +-
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/type_traits.cpp | 3 +
modules/platforms/cpp/odbc/src/utility.cpp | 24 +-
modules/platforms/cpp/project/vs/ignite.slnrel | 3 +
.../platforms/cpp/project/vs/ignite_x86.slnrel | 3 +
.../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/CacheLinqTest.cs | 72 +-
.../Query/CacheQueriesCodeConfigurationTest.cs | 17 +-
.../Cache/Query/CacheQueriesTest.cs | 58 +-
.../Compute/ComputeApiTest.cs | 26 +
.../Dataload/DataStreamerTestTopologyChange.cs | 27 +-
.../Examples/Example.cs | 11 +-
.../Examples/ExamplesTest.cs | 126 +-
.../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 | 100 +-
.../Services/ServicesTest.cs | 48 +-
.../Apache.Ignite.Core.Tests/TestRunner.cs | 37 +-
.../Apache.Ignite.Core.Tests/TestUtils.cs | 8 +-
.../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 | 14 +-
.../Binary/BinaryConfiguration.cs | 5 +-
.../dotnet/Apache.Ignite.Core/Binary/IBinary.cs | 3 +-
.../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/Cache/Query/QueryBase.cs | 15 +-
.../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 | 28 +
.../Impl/Binary/BinaryWriter.cs | 6 +-
.../Impl/Binary/Io/BinaryStreamBase.cs | 4 +-
.../Impl/Binary/Marshaller.cs | 11 +-
.../Impl/Cache/CacheAffinityImpl.cs | 5 +-
.../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs | 583 +-
.../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/Compute/ComputeTaskHolder.cs | 14 +-
.../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/UnmanagedCallbackHandlers.cs | 79 +-
.../Impl/Unmanaged/UnmanagedCallbackOp.cs | 86 +
.../Impl/Unmanaged/UnmanagedCallbacks.cs | 1260 +-
.../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 | 1003 ++
.../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 | 175 +
.../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 +-
.../Impl/CacheQueryExpressionVisitor.cs | 12 +-
.../Apache.Ignite.Linq/Impl/ExpressionWalker.cs | 8 +
.../Apache.Ignite.Linq/Impl/MethodVisitor.cs | 34 +-
.../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 | 63 +
.../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/DEVNOTES.txt | 12 +-
modules/platforms/dotnet/README.md | 150 +
modules/platforms/dotnet/README.txt | 13 +-
modules/platforms/dotnet/build.bat | 19 +
modules/platforms/dotnet/build.ps1 | 211 +
.../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 +-
.../schedule/IgniteScheduleProcessor.java | 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 | 4 +-
.../scanners/http/UriDeploymentHttpScanner.java | 8 +-
modules/visor-console-2.10/pom.xml | 2 +-
modules/visor-console/pom.xml | 2 +-
.../ignite/visor/commands/VisorConsole.scala | 1 -
.../commands/cache/VisorCacheCommand.scala | 44 +-
.../commands/cache/VisorCacheSwapCommand.scala | 145 -
.../commands/disco/VisorDiscoveryCommand.scala | 2 +-
.../commands/events/VisorEventsCommand.scala | 8 +-
.../scala/org/apache/ignite/visor/visor.scala | 2 +-
.../cswap/VisorCacheSwapCommandSpec.scala | 89 -
.../testsuites/VisorConsoleSelfTestSuite.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 | 848 ++
modules/web-console/backend/app/app.js | 63 +
modules/web-console/backend/app/browser.js | 469 +
modules/web-console/backend/app/configure.js | 86 +
modules/web-console/backend/app/mongo.js | 893 ++
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 | 130 +
.../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 | 74 +
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 | 110 +
.../web-console/backend/services/sessions.js | 65 +
modules/web-console/backend/services/spaces.js | 90 +
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 | 267 +
.../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-groups.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 | 51 +
.../helpers/jade/form/form-field-feedback.jade | 32 +
.../app/helpers/jade/form/form-field-label.jade | 23 +
.../helpers/jade/form/form-field-number.jade | 53 +
.../helpers/jade/form/form-field-password.jade | 47 +
.../app/helpers/jade/form/form-field-text.jade | 64 +
.../app/helpers/jade/form/form-field-up.jade | 18 +
.../app/helpers/jade/form/form-group.jade | 23 +
.../frontend/app/helpers/jade/mixins.jade | 609 +
.../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 +
.../modules/configuration/Sidebar.provider.js | 39 +
.../modules/configuration/Version.service.js | 95 +
.../configuration/configuration.module.js | 68 +
.../generator/AbstractTransformer.js | 358 +
.../modules/configuration/generator/Beans.js | 390 +
.../generator/ConfigurationGenerator.js | 1843 +++
.../configuration/generator/Custom.service.js | 23 +
.../configuration/generator/Docker.service.js | 76 +
.../generator/JavaTransformer.service.js | 1750 +++
.../configuration/generator/Maven.service.js | 234 +
.../generator/PlatformGenerator.js | 522 +
.../generator/Properties.service.js | 93 +
.../configuration/generator/Readme.service.js | 79 +
.../generator/SharpTransformer.service.js | 256 +
.../generator/SpringTransformer.service.js | 330 +
.../configuration/generator/StringBuilder.js | 76 +
.../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 +
.../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 | 168 +
.../app/modules/sql/Notebook.service.js | 74 +
.../app/modules/sql/notebook.controller.js | 60 +
.../frontend/app/modules/sql/sql.controller.js | 1734 +++
.../frontend/app/modules/sql/sql.module.js | 58 +
.../frontend/app/modules/states/admin.state.js | 35 +
.../app/modules/states/configuration.state.js | 99 +
.../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 | 114 +
.../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 | 86 +
.../configuration/clusters/checkpoint/fs.jade | 66 +
.../configuration/clusters/checkpoint/jdbc.jade | 48 +
.../configuration/clusters/checkpoint/s3.jade | 178 +
.../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 | 237 +
.../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 | 107 +
.../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 +
.../summary/summary-zipper.service.js | 37 +
.../configuration/summary/summary.controller.js | 340 +
.../configuration/summary/summary.worker.js | 123 +
.../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 | 55 +
.../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 | 177 +
.../app/services/LegacyTable.service.js | 229 +
.../app/services/LegacyUtils.service.js | 548 +
.../frontend/app/services/Messages.service.js | 66 +
.../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 | 234 +
.../frontend/controllers/caches-controller.js | 619 +
.../frontend/controllers/clusters-controller.js | 852 ++
.../frontend/controllers/domains-controller.js | 1860 +++
.../frontend/controllers/igfs-controller.js | 416 +
.../frontend/controllers/profile-controller.js | 94 +
.../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 | 191 +
.../webpack/environments/development.js | 79 +
.../webpack/environments/production.js | 44 +
.../webpack/environments/test.js | 52 +
.../frontend/gulpfile.babel.js/webpack/index.js | 34 +
.../frontend/ignite_modules/README.txt | 6 +
.../frontend/ignite_modules/index.js | 27 +
modules/web-console/frontend/package.json | 127 +
modules/web-console/frontend/public/favicon.ico | Bin 0 -> 1150 bytes
.../frontend/public/images/cache.png | Bin 0 -> 24791 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 -> 22131 bytes
.../web-console/frontend/public/images/igfs.png | Bin 0 -> 14139 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 -> 17142 bytes
.../frontend/public/images/query-metadata.png | Bin 0 -> 39361 bytes
.../frontend/public/images/query-table.png | Bin 0 -> 28065 bytes
.../frontend/public/images/summary.png | Bin 0 -> 33650 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 | 71 +
.../public/stylesheets/blocks/error.scss | 31 +
.../frontend/public/stylesheets/form-field.scss | 145 +
.../frontend/public/stylesheets/style.scss | 2329 +++
.../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 | 133 +
.../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 | 88 +
.../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 | 170 +
.../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 | 90 +
.../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 | 51 +
.../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 | 278 +
.../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 | 639 +
.../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 +-
.../yardstick/IgniteAbstractBenchmark.java | 30 +
.../yardstick/IgniteBenchmarkArguments.java | 11 +
.../ignite/yardstick/IgniteBenchmarkUtils.java | 42 +-
.../org/apache/ignite/yardstick/IgniteNode.java | 74 +-
.../apache/ignite/yardstick/PreloadLogger.java | 155 +
.../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 +
.../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 +-
parent/pom.xml | 24 +-
pom.xml | 20 +-
3192 files changed, 251454 insertions(+), 163299 deletions(-)
----------------------------------------------------------------------
[05/22] ignite git commit: gg-11414: distributed join test
Posted by ag...@apache.org.
gg-11414: distributed join test
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ccc19564
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ccc19564
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ccc19564
Branch: refs/heads/ignite-3477
Commit: ccc1956463eae5f46457824bed251cd1d4c2552b
Parents: 37eb93b
Author: Sergey Sidorov <ss...@gridgain.com>
Authored: Fri Nov 25 12:01:45 2016 +0300
Committer: Sergey Sidorov <ss...@gridgain.com>
Committed: Fri Nov 25 12:01:45 2016 +0300
----------------------------------------------------------------------
.../query/IgniteSqlDistributedJoinSelfTest.java | 172 +++++++++++++++++++
1 file changed, 172 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ccc19564/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlDistributedJoinSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlDistributedJoinSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlDistributedJoinSelfTest.java
new file mode 100644
index 0000000..d851a31
--- /dev/null
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlDistributedJoinSelfTest.java
@@ -0,0 +1,172 @@
+/*
+ * 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.query;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cache.*;
+import org.apache.ignite.cache.query.*;
+import org.apache.ignite.cache.query.annotations.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.plugin.*;
+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.testframework.junits.common.*;
+
+import java.util.*;
+
+/**
+ * Tests for correct distributed sql joins.
+ */
+public class IgniteSqlDistributedJoinSelfTest extends GridCommonAbstractTest {
+ /** */
+ private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
+ private static final int NODES_COUNT = 2;
+ private static final int ORG_COUNT = NODES_COUNT;
+ private static final int PERSON_PER_ORG_COUNT = 50;
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ cfg.setPeerClassLoadingEnabled(false);
+
+ TcpDiscoverySpi disco = new TcpDiscoverySpi();
+
+ disco.setIpFinder(IP_FINDER);
+
+ cfg.setDiscoverySpi(disco);
+
+ return cfg;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void beforeTestsStarted() throws Exception {
+ startGridsMultiThreaded(NODES_COUNT, false);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTestsStopped() throws Exception {
+ stopAllGrids();
+ }
+
+ /**
+ * @param name Cache name.
+ * @param partitioned Partition or replicated cache.
+ * @param idxTypes Indexed types.
+ * @return Cache configuration.
+ */
+ private static CacheConfiguration cacheConfig(String name, boolean partitioned, Class<?>... idxTypes) {
+ return new CacheConfiguration()
+ .setName(name)
+ .setCacheMode(partitioned ? CacheMode.PARTITIONED : CacheMode.REPLICATED)
+ .setAtomicityMode(CacheAtomicityMode.ATOMIC)
+ .setBackups(1)
+ .setIndexedTypes(idxTypes);
+ }
+
+ public void testNonCollocatedDistributedJoin() throws Exception {
+ CacheConfiguration ccfg1 = cacheConfig("pers", true, String.class, Person.class);
+ CacheConfiguration ccfg2 = cacheConfig("org", true, String.class, Organization.class);
+
+ IgniteCache<String, Person> c1 = ignite(0).getOrCreateCache(ccfg1);
+ IgniteCache<String, Organization> c2 = ignite(0).getOrCreateCache(ccfg2);
+
+ try {
+ awaitPartitionMapExchange();
+
+ populateDataIntoCaches(c1, c2);
+
+ String joinSql =
+ "select * from Person, \"org\".Organization as org " +
+ "where Person.orgId = org.id " +
+ "and lower(org.name) = lower(?)";
+
+ SqlQuery qry = new SqlQuery<String, Person>(Person.class, joinSql).setArgs("Organization #0");
+
+ qry.setDistributedJoins(true);
+
+ List<Person> prns = c1.query(qry).getAll();
+
+ assertEquals(PERSON_PER_ORG_COUNT, prns.size());
+ }
+ finally {
+ c1.destroy();
+ c2.destroy();
+ }
+ }
+
+ private void populateDataIntoCaches(IgniteCache<String, Person> c1, IgniteCache<String, Organization> c2) {
+ int personId = 0;
+
+ for (int i = 0; i < ORG_COUNT; i++) {
+ Organization org = new Organization();
+ org.setId("org" + i);
+ org.setName("Organization #" + i);
+
+ c2.put(org.getId(), org);
+
+ for (int j = 0; j < PERSON_PER_ORG_COUNT; j++) {
+ Person prsn = new Person();
+ prsn.setId("pers" + personId);
+ prsn.setOrgId(org.getId());
+ prsn.setName("Person name #" + personId);
+
+ c1.put(prsn.getId(), prsn);
+
+ personId++;
+ }
+ }
+ }
+
+ private static class Person {
+ @QuerySqlField(index = true)
+ private String id;
+ @QuerySqlField(index = true)
+ private String orgId;
+ @QuerySqlField(index = true)
+ private String name;
+
+ public String getId() { return id; }
+
+ public void setId(String id) { this.id = id; }
+
+ public String getOrgId() { return orgId; }
+
+ public void setOrgId(String orgId) { this.orgId = orgId; }
+
+ public String getName() { return name; }
+
+ public void setName(String name) { this.name = name; }
+ }
+
+ private static class Organization {
+ @QuerySqlField(index = true)
+ private String id;
+ @QuerySqlField(index = true)
+ private String name;
+
+ public void setId(String id) { this.id = id; }
+
+ public String getId() { return id; }
+
+ public String getName() { return name; }
+
+ public void setName(String name) { this.name = name; }
+ }
+}
[22/22] ignite git commit: Merge branch 'ignite-3477' of
https://git-wip-us.apache.org/repos/asf/ignite into ignite-gg-8.0.2.ea2
Posted by ag...@apache.org.
Merge branch 'ignite-3477' of https://git-wip-us.apache.org/repos/asf/ignite into ignite-gg-8.0.2.ea2
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/79a546a9
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/79a546a9
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/79a546a9
Branch: refs/heads/ignite-3477
Commit: 79a546a97448aba01c67ef52177e6c293dd3cf74
Parents: 43eefb0 3443c4e
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Wed Jan 11 20:26:53 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed Jan 11 20:26:53 2017 +0300
----------------------------------------------------------------------
.../JettyRestProcessorAbstractSelfTest.java | 2 +-
.../internal/managers/GridManagerAdapter.java | 3 +-
.../processors/cache/GridCacheAdapter.java | 7 +-
.../cache/GridCacheConcurrentMapImpl.java | 7 +-
.../processors/cache/GridCacheMapEntry.java | 8 ++
.../GridCachePartitionExchangeManager.java | 115 +++++++++----------
.../cache/GridCacheSharedContext.java | 23 +++-
.../distributed/dht/GridDhtCacheEntry.java | 2 +-
.../distributed/dht/GridDhtLocalPartition.java | 9 +-
.../dht/GridDhtPartitionTopologyImpl.java | 8 +-
.../dht/GridPartitionedGetFuture.java | 4 +-
.../dht/GridPartitionedSingleGetFuture.java | 4 +-
.../dht/atomic/GridDhtAtomicCache.java | 60 +++++-----
.../dht/preloader/GridDhtForceKeysFuture.java | 10 +-
.../GridDhtPartitionsExchangeFuture.java | 30 ++---
.../dht/preloader/GridDhtPreloader.java | 2 +-
.../extras/GridCacheAttributesEntryExtras.java | 4 +-
.../GridCacheAttributesMvccEntryExtras.java | 2 +-
...dCacheAttributesMvccObsoleteEntryExtras.java | 2 +-
...cheAttributesMvccObsoleteTtlEntryExtras.java | 4 +-
.../GridCacheAttributesMvccTtlEntryExtras.java | 4 +-
.../GridCacheAttributesObsoleteEntryExtras.java | 2 +-
...idCacheAttributesObsoleteTtlEntryExtras.java | 4 +-
.../GridCacheAttributesTtlEntryExtras.java | 4 +-
.../GridCacheMvccObsoleteEntryExtras.java | 2 +-
.../GridCacheMvccObsoleteTtlEntryExtras.java | 4 +-
.../extras/GridCacheMvccTtlEntryExtras.java | 3 +-
.../extras/GridCacheObsoleteTtlEntryExtras.java | 3 +-
.../cache/extras/GridCacheTtlEntryExtras.java | 2 +-
.../cache/CacheConfigurationLeakTest.java | 4 +-
.../cache/GridCacheAbstractMetricsSelfTest.java | 28 ++---
.../GridCacheValueBytesPreloadingSelfTest.java | 17 +--
...CacheLoadingConcurrentGridStartSelfTest.java | 2 +
...tractPartitionedByteArrayValuesSelfTest.java | 1 +
...GridCachePreloadRestartAbstractSelfTest.java | 12 +-
.../GridCacheDhtEvictionsDisabledSelfTest.java | 3 +-
.../GridCacheReplicatedPreloadSelfTest.java | 25 ++--
.../testsuites/IgniteCacheTestSuite2.java | 15 +--
.../testsuites/IgniteCacheTestSuite3.java | 13 ++-
.../testsuites/IgniteCacheTestSuite5.java | 4 +-
.../IgniteCacheQuerySelfTestSuite2.java | 5 +-
modules/yardstick/config/ignite-base-config.xml | 2 +-
.../yardstick/cache/IgniteGetAllBenchmark.java | 42 +++++++
.../yardstick/cache/IgniteGetBenchmark.java | 38 +++++-
.../cache/jdbc/JdbcAbstractBenchmark.java | 17 +++
.../yardstick/cache/jdbc/JdbcPutBenchmark.java | 17 +++
.../cache/jdbc/JdbcPutGetBenchmark.java | 17 +++
.../jdbc/JdbcPutIndexedValue8Benchmark.java | 17 +++
.../cache/jdbc/JdbcSqlQueryBenchmark.java | 17 +++
.../cache/jdbc/JdbcSqlQueryJoinBenchmark.java | 17 +++
50 files changed, 442 insertions(+), 205 deletions(-)
----------------------------------------------------------------------
[19/22] ignite git commit: ignite-gg-8.0.2.ea2
ClusterStateAbstractTest fix test
Posted by ag...@apache.org.
ignite-gg-8.0.2.ea2 ClusterStateAbstractTest fix test
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/6c6cbd32
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/6c6cbd32
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/6c6cbd32
Branch: refs/heads/ignite-3477
Commit: 6c6cbd327d67c05278a3617a0cfc4b0f90e0bffc
Parents: f5fd34e
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Wed Jan 11 11:23:33 2017 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Wed Jan 11 11:23:33 2017 +0300
----------------------------------------------------------------------
.../cluster/GridClusterStateProcessor.java | 6 ++-
.../cache/ClusterStateAbstractTest.java | 45 ++++++++++----------
.../internal/websession/WebSessionSelfTest.java | 4 ++
3 files changed, 30 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/6c6cbd32/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 d60243b..fa6910d 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
@@ -449,12 +449,14 @@ public class GridClusterStateProcessor extends GridProcessorAdapter {
for (CacheConfiguration cfg : cfgs) {
if (CU.isSystemCache(cfg.getName()))
- sharedCtx.pageStore().initializeForCache(cfg);
+ if (sharedCtx.pageStore() != null)
+ sharedCtx.pageStore().initializeForCache(cfg);
}
for (CacheConfiguration cfg : cfgs) {
if (!CU.isSystemCache(cfg.getName()))
- sharedCtx.pageStore().initializeForCache(cfg);
+ if (sharedCtx.pageStore() != null)
+ sharedCtx.pageStore().initializeForCache(cfg);
}
sharedCtx.database().onActivate(ctx);
http://git-wip-us.apache.org/repos/asf/ignite/blob/6c6cbd32/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClusterStateAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClusterStateAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClusterStateAbstractTest.java
index 7969426..a454270 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClusterStateAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClusterStateAbstractTest.java
@@ -19,11 +19,10 @@
package org.apache.ignite.internal.processors.cache;
import java.util.Collection;
-import java.util.concurrent.Callable;
+import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.Lock;
-import javax.cache.CacheException;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.IgniteException;
@@ -120,20 +119,20 @@ public abstract class ClusterStateAbstractTest extends GridCommonAbstractTest {
startGrids(GRID_CNT);
- IgniteCache<Object, Object> cache2 = grid(0).createCache(new CacheConfiguration<>("cache2"));
-
- checkInactive("cache2", GRID_CNT);
+ checkInactive(GRID_CNT);
forbidden.clear();
grid(0).active(true);
+ IgniteCache<Object, Object> cache2 = grid(0).createCache(new CacheConfiguration<>("cache2"));
+
for (int k = 0; k < ENTRY_CNT; k++)
cache2.put(k, k);
grid(0).active(false);
- checkInactive("cache2", GRID_CNT);
+ checkInactive(GRID_CNT);
stopAllGrids();
}
@@ -281,8 +280,12 @@ public abstract class ClusterStateAbstractTest extends GridCommonAbstractTest {
* @throws Exception If fails.
*/
public void testDeactivationWithPendingLock() throws Exception {
+ fail("Safe way for deactivate cluster must be implemented.");
+
startGrids(GRID_CNT);
+ final CountDownLatch finishedLatch = new CountDownLatch(1);
+
Lock lock = grid(0).cache(CACHE_NAME).lock(1);
IgniteInternalFuture<?> fut;
@@ -293,6 +296,8 @@ public abstract class ClusterStateAbstractTest extends GridCommonAbstractTest {
fut = multithreadedAsync(new Runnable() {
@Override public void run() {
grid(1).active(false);
+
+ finishedLatch.countDown();
}
}, 1);
@@ -322,6 +327,8 @@ public abstract class ClusterStateAbstractTest extends GridCommonAbstractTest {
fut.get(getTestTimeout(), TimeUnit.MILLISECONDS);
checkInactive(GRID_CNT);
+
+ finishedLatch.await();
}
/**
@@ -330,8 +337,12 @@ public abstract class ClusterStateAbstractTest extends GridCommonAbstractTest {
* @throws Exception If fails.
*/
public void testDeactivationWithPendingTransaction() throws Exception {
+ fail("Safe way for deactivate cluster must be implemented.");
+
startGrids(GRID_CNT);
+ final CountDownLatch finishedLatch = new CountDownLatch(1);
+
final Ignite ignite0 = grid(0);
final IgniteCache<Object, Object> cache0 = ignite0.cache(CACHE_NAME);
@@ -344,6 +355,8 @@ public abstract class ClusterStateAbstractTest extends GridCommonAbstractTest {
fut = multithreadedAsync(new Runnable() {
@Override public void run() {
ignite0.active(false);
+
+ finishedLatch.countDown();
}
}, 1);
@@ -379,30 +392,16 @@ public abstract class ClusterStateAbstractTest extends GridCommonAbstractTest {
for (int g = 0; g < GRID_CNT; g++)
assertEquals(2, grid(g).cache(CACHE_NAME).get(1));
- }
- /**
- *
- */
- private void checkInactive(int cnt) {
- checkInactive(CACHE_NAME, cnt);
+ finishedLatch.await();
}
/**
*
*/
- private void checkInactive(String cacheName, int cnt) {
- for (int g = 0; g < cnt; g++) {
+ private void checkInactive(int cnt) {
+ for (int g = 0; g < cnt; g++)
assertFalse(grid(g).active());
-
- final IgniteCache<Object, Object> cache0 = grid(g).cache(cacheName);
-
- GridTestUtils.assertThrows(log, new Callable<Object>() {
- @Override public Object call() throws Exception {
- return cache0.get("testKey");
- }
- }, CacheException.class, null);
- }
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/6c6cbd32/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionSelfTest.java b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionSelfTest.java
index bfa12a2..67eedcf 100644
--- a/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionSelfTest.java
+++ b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionSelfTest.java
@@ -200,6 +200,10 @@ public class WebSessionSelfTest extends GridCommonAbstractTest {
}
}
+ /**
+ * @param reqMarker Request marker.
+ * @param sesId Session id.
+ */
private String sendRequestAndCheckMarker(String reqMarker, String sesId) throws IOException, IgniteCheckedException {
URLConnection conn = new URL("http://localhost:" + TEST_JETTY_PORT +
"/ignitetest/test?marker=" + reqMarker).openConnection();
[10/22] ignite git commit: GG-11414 - Fixed cursor issue with expire
time
Posted by ag...@apache.org.
GG-11414 - Fixed cursor issue with expire time
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8852c80a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8852c80a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8852c80a
Branch: refs/heads/ignite-3477
Commit: 8852c80a0c6b52531ae6a287344f1ab776e3b32f
Parents: 1ffd04a
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Thu Dec 29 16:52:59 2016 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Thu Dec 29 16:52:59 2016 +0300
----------------------------------------------------------------------
.../query/h2/database/H2TreeIndex.java | 36 ++++++++++++--------
.../query/h2/opt/GridH2IndexBase.java | 2 +-
2 files changed, 23 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/8852c80a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
index f685f3a..c1eb986 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
@@ -79,18 +79,24 @@ public class H2TreeIndex extends GridH2IndexBase {
name = BPlusTree.treeName(name, "H2Tree");
- IgniteCacheDatabaseSharedManager dbMgr = cctx.shared().database();
-
- RootPage page = cctx.offheap().rootPageForIndex(name);
-
- tree = new H2Tree(name, cctx.offheap().reuseListForIndex(name), cctx.cacheId(),
- dbMgr.pageMemory(), cctx.shared().wal(), cctx.offheap().globalRemoveId(),
- tbl.rowFactory(), page.pageId().pageId(), page.isAllocated()) {
- @Override protected int compare(BPlusIO<SearchRow> io, ByteBuffer buf, int idx, SearchRow row)
- throws IgniteCheckedException {
- return compareRows(getRow(io, buf, idx), row);
- }
- };
+ if (!cctx.kernalContext().clientNode()) {
+ IgniteCacheDatabaseSharedManager dbMgr = cctx.shared().database();
+
+ RootPage page = cctx.offheap().rootPageForIndex(name);
+
+ tree = new H2Tree(name, cctx.offheap().reuseListForIndex(name), cctx.cacheId(),
+ dbMgr.pageMemory(), cctx.shared().wal(), cctx.offheap().globalRemoveId(),
+ tbl.rowFactory(), page.pageId().pageId(), page.isAllocated()) {
+ @Override
+ protected int compare(BPlusIO<SearchRow> io, ByteBuffer buf, int idx, SearchRow row)
+ throws IgniteCheckedException {
+ return compareRows(getRow(io, buf, idx), row);
+ }
+ };
+ }
+ else
+ // We need indexes on the client node, but index will not contain any data.
+ tree = null;
initDistributedJoinMessaging(tbl);
}
@@ -194,9 +200,11 @@ public class H2TreeIndex extends GridH2IndexBase {
/** {@inheritDoc} */
@Override public void destroy() {
try {
- tree.destroy();
+ if (!cctx.kernalContext().clientNode()) {
+ tree.destroy();
- cctx.offheap().dropRootPageForIndex(tree.getName());
+ cctx.offheap().dropRootPageForIndex(tree.getName());
+ }
}
catch (IgniteCheckedException e) {
throw new IgniteException(e);
http://git-wip-us.apache.org/repos/asf/ignite/blob/8852c80a/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 56c9edc..bd569df 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
@@ -1525,7 +1525,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
*/
@SuppressWarnings("unchecked")
protected boolean accept(GridH2Row row) {
- if (row.expireTime() <= time)
+ if (row.expireTime() != 0 && row.expireTime() <= time)
return false;
if (fltr == null)
[13/22] ignite git commit: ignite-gg-11414 simplify iterator wrapper
for cursor
Posted by ag...@apache.org.
ignite-gg-11414 simplify iterator wrapper for cursor
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c7f1cce2
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c7f1cce2
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c7f1cce2
Branch: refs/heads/ignite-3477
Commit: c7f1cce266c30676ad8781072362161fc7a50718
Parents: c1c15a6
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Mon Jan 9 18:37:44 2017 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Mon Jan 9 18:37:44 2017 +0300
----------------------------------------------------------------------
.../query/h2/opt/GridH2IndexBase.java | 55 ++++++--------------
1 file changed, 17 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/c7f1cce2/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 c5e836a..b1a594c 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
@@ -1569,11 +1569,8 @@ public abstract class GridH2IndexBase extends BaseIndex {
/** */
private final GridCursor<GridH2Row> cursor;
- /** First next. */
- private GridH2Row firstNext;
-
- /** Second next. */
- private GridH2Row secondNext;
+ /** Next element. */
+ private GridH2Row next;
/**
* @param cursor Cursor.
@@ -1581,52 +1578,34 @@ public abstract class GridH2IndexBase extends BaseIndex {
private CursorIteratorWrapper(GridCursor<GridH2Row> cursor) {
this.cursor = cursor;
- fetch();
+ try {
+ if (cursor.next())
+ next = cursor.get();
+ }
+ catch (IgniteCheckedException e) {
+ throw U.convertException(e);
+ }
}
/** {@inheritDoc} */
@Override public boolean hasNext() {
- return firstNext != null;
+ return next != null;
}
/** {@inheritDoc} */
@Override public GridH2Row next() {
try {
- if (firstNext != null) {
- GridH2Row res = firstNext;
+ GridH2Row res = next;
- firstNext = secondNext;
-
- if (cursor.next())
- secondNext = cursor.get();
- else
- secondNext = null;
- return res;
- }
+ if (cursor.next())
+ next = cursor.get();
else
- return null;
- }
- catch (Exception e) {
- return null;
- }
- }
-
- /**
- *
- */
- private void fetch() {
- try {
- if (firstNext == null && secondNext == null) {
- if (cursor.next()) {
- firstNext = cursor.get();
+ next = null;
- if (cursor.next())
- secondNext = cursor.get();
- }
- }
+ return res;
}
- catch (IgniteCheckedException ignored) {
-
+ catch (IgniteCheckedException e) {
+ throw U.convertException(e);
}
}
[09/22] ignite git commit: GG-11414 - Fixing compilation after merge.
Posted by ag...@apache.org.
GG-11414 - Fixing compilation after merge.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/1ffd04aa
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/1ffd04aa
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/1ffd04aa
Branch: refs/heads/ignite-3477
Commit: 1ffd04aaedf09afa588a37479b6d74ced910137b
Parents: 1213046
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Thu Dec 29 14:19:50 2016 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Thu Dec 29 14:19:50 2016 +0300
----------------------------------------------------------------------
.../internal/processors/query/h2/database/H2PkHashIndex.java | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/1ffd04aa/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java
index d00bfa7..b0647b6 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java
@@ -29,6 +29,7 @@ import org.apache.ignite.internal.processors.cache.database.CacheDataRow;
import org.apache.ignite.internal.processors.query.h2.opt.GridH2IndexBase;
import org.apache.ignite.internal.processors.query.h2.opt.GridH2Row;
import org.apache.ignite.internal.processors.query.h2.opt.GridH2Table;
+import org.apache.ignite.internal.util.IgniteTree;
import org.apache.ignite.internal.util.lang.GridCursor;
import org.apache.ignite.lang.IgniteBiPredicate;
import org.apache.ignite.spi.indexing.IndexingQueryFilter;
@@ -195,10 +196,8 @@ public class H2PkHashIndex extends GridH2IndexBase {
}
/** {@inheritDoc} */
- @Nullable @Override protected Object doTakeSnapshot() {
- assert false;
-
- return this;
+ @Nullable @Override protected IgniteTree doTakeSnapshot() {
+ throw new AssertionError("This method must not be called for PK index");
}
/**
[14/22] ignite git commit: ignite-gg-11414 minor update
Posted by ag...@apache.org.
ignite-gg-11414 minor update
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/bb2ad161
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/bb2ad161
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/bb2ad161
Branch: refs/heads/ignite-3477
Commit: bb2ad161888b676bd8afc7d4783fe939332f7064
Parents: c7f1cce
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Mon Jan 9 18:38:43 2017 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Mon Jan 9 18:38:43 2017 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/query/h2/opt/GridH2IndexBase.java | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/bb2ad161/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 b1a594c..4ef015b 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
@@ -1576,6 +1576,8 @@ public abstract class GridH2IndexBase extends BaseIndex {
* @param cursor Cursor.
*/
private CursorIteratorWrapper(GridCursor<GridH2Row> cursor) {
+ assert cursor != null;
+
this.cursor = cursor;
try {
[16/22] ignite git commit: Code style, minors.
Posted by ag...@apache.org.
Code style, minors.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2b6484a5
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2b6484a5
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2b6484a5
Branch: refs/heads/ignite-3477
Commit: 2b6484a5bcb5520e66ad13fa54507390e58d78ff
Parents: 6107ddb
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Mon Jan 9 20:04:26 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Mon Jan 9 20:04:26 2017 +0300
----------------------------------------------------------------------
.../query/h2/opt/GridH2TreeIndex.java | 42 +++++++-------------
1 file changed, 14 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/2b6484a5/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 014cf2e..4fa8b0f 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
@@ -29,7 +29,6 @@ import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeGuard;
import org.apache.ignite.internal.util.snaptree.SnapTreeMap;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.SB;
-import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.spi.indexing.IndexingQueryFilter;
import org.h2.engine.Session;
import org.h2.index.Cursor;
@@ -147,7 +146,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
}
/** {@inheritDoc} */
- protected final IgniteTree treeForRead() {
+ @Override protected final IgniteTree treeForRead() {
if (!snapshotEnabled)
return tree;
@@ -256,12 +255,8 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
* @param row Search row.
* @return Row.
*/
- public GridH2Row findOne(GridH2Row row) {
- try {
- return tree.findOne(row);
- } catch (IgniteCheckedException e) {
- throw DbException.convert(e);
- }
+ @Override public GridH2Row findOne(GridH2Row row) {
+ return tree.findOne(row);
}
/**
@@ -359,22 +354,12 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
/** {@inheritDoc} */
@Override public GridH2Row put(GridH2Row row) {
- try {
- return tree.put(row);
- }
- catch (IgniteCheckedException e) {
- throw DbException.convert(e);
- }
+ return tree.put(row);
}
/** {@inheritDoc} */
@Override public GridH2Row remove(SearchRow row) {
- try {
- return tree.remove(comparable(row, 0));
- }
- catch (IgniteCheckedException e) {
- throw DbException.convert(e);
- }
+ return tree.remove(comparable(row, 0));
}
/**
@@ -502,24 +487,24 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
/**
* Adapter from {@link NavigableMap} to {@link IgniteTree}.
*/
- private final class IgniteNavigableMapTree implements IgniteTree<GridSearchRowPointer, GridH2Row> {
+ private static final class IgniteNavigableMapTree implements IgniteTree<GridSearchRowPointer, GridH2Row>, Cloneable {
/** Tree. */
private final NavigableMap<GridSearchRowPointer, GridH2Row> tree;
/**
* @param tree Tree.
*/
- public IgniteNavigableMapTree(NavigableMap<GridSearchRowPointer, GridH2Row> tree) {
+ private IgniteNavigableMapTree(NavigableMap<GridSearchRowPointer, GridH2Row> tree) {
this.tree = tree;
}
/** {@inheritDoc} */
- @Override public GridH2Row put(GridH2Row value) throws IgniteCheckedException {
+ @Override public GridH2Row put(GridH2Row value) {
return tree.put(value, value);
}
/** {@inheritDoc} */
- @Override public GridH2Row findOne(GridSearchRowPointer key) throws IgniteCheckedException {
+ @Override public GridH2Row findOne(GridSearchRowPointer key) {
return tree.get(key);
}
@@ -532,16 +517,16 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
NavigableMap<GridSearchRowPointer, GridH2Row> subMap =
tree.subMap(lower, false, upper, false);
- return new GridCursorIteratorWrapper<GridH2Row>(subMap.values().iterator());
+ return new GridCursorIteratorWrapper<>(subMap.values().iterator());
}
/** {@inheritDoc} */
- @Override public GridH2Row remove(GridSearchRowPointer key) throws IgniteCheckedException {
+ @Override public GridH2Row remove(GridSearchRowPointer key) {
return tree.remove(key);
}
/** {@inheritDoc} */
- @Override public long size() throws IgniteCheckedException {
+ @Override public long size() {
return tree.size();
}
@@ -551,7 +536,8 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
try {
copy = (AbstractMap) super.clone();
- } catch (final CloneNotSupportedException e) {
+ }
+ catch (final CloneNotSupportedException e) {
throw DbException.convert(e);
}
[04/22] ignite git commit: GG-11414
Posted by ag...@apache.org.
GG-11414
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/37eb93b2
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/37eb93b2
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/37eb93b2
Branch: refs/heads/ignite-3477
Commit: 37eb93b2d01e7199b858a5d1e006501936d54625
Parents: df7b4f6
Author: Sergey Sidorov <ss...@gridgain.com>
Authored: Mon Nov 21 15:13:21 2016 +0300
Committer: Sergey Sidorov <ss...@gridgain.com>
Committed: Mon Nov 21 15:13:21 2016 +0300
----------------------------------------------------------------------
.../cache/IgniteCacheOffheapManagerImpl.java | 2 +-
.../cache/database/tree/BPlusTree.java | 23 +++++++++---
.../offheap/unsafe/GridOffHeapSnapTreeMap.java | 4 +++
.../internal/util/snaptree/SnapTreeMap.java | 33 ++++++-----------
.../processors/database/BPlusTreeSelfTest.java | 37 ++++++++++++++++++++
.../internal/processors/query/h2/H2Cursor.java | 17 +++++++++
.../query/h2/opt/GridH2TreeIndex.java | 2 ++
7 files changed, 91 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/37eb93b2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
index 66896d2..861bb11 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
@@ -897,7 +897,7 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
/** {@inheritDoc} */
@Override public GridCursor<? extends CacheDataRow> cursor() throws IgniteCheckedException {
- return dataTree.find(null, null);
+ return dataTree.findAll();
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/37eb93b2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
index f761975..d60246e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
@@ -753,8 +753,20 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
public GridCursor<T> find(L lower, boolean lowerInclusive,
L upper, boolean upperInclusive) throws IgniteCheckedException {
- // TODO inclusive / exclusive logic should be implemented
- return find(lower, upper);
+ if (lower == null || upper == null)
+ throw new NullPointerException();
+
+ ForwardCursor cursor = new ForwardCursor(lower, upper);
+
+ if (!lowerInclusive)
+ cursor.lowerShift = 1;
+
+ if (!upperInclusive)
+ cursor.upperShift = -1;
+
+ cursor.find();
+
+ return cursor;
}
public GridCursor<T> findAll() throws IgniteCheckedException {
@@ -3464,6 +3476,9 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
/** */
private final L upperBound;
+ /** */
+ private int upperShift = 1; // Initially it is -1 to handle multiple equal rows.
+
/**
* @param lowerBound Lower bound.
* @param upperBound Upper bound.
@@ -3535,8 +3550,8 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
// Compare with the last row on the page.
int cmp = compare(io, buf, cnt - 1, upperBound);
- if (cmp > 0) {
- int idx = findInsertionPoint(io, buf, low, cnt, upperBound, 1);
+ if (cmp > 0 || (cmp == 0 && upperShift == -1)) {
+ int idx = findInsertionPoint(io, buf, low, cnt, upperBound, upperShift);
assert idx < 0;
http://git-wip-us.apache.org/repos/asf/ignite/blob/37eb93b2/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
index eb09af5..ab175de 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
@@ -3845,6 +3845,8 @@ public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer, V extends
@Override public GridCursor<V> find(K lower, boolean lowerInclusive, K upper, boolean upperInclusive)
throws IgniteCheckedException {
+ if (lower == null || upper == null)
+ throw new NullPointerException();
final Comparable<? super K> fromCmp = comparable(lower);
@@ -4495,6 +4497,8 @@ public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer, V extends
@Override public GridCursor<V> find(K lower, boolean lowerInclusive, K upper, boolean upperInclusive)
throws IgniteCheckedException {
+ if (lower == null || upper == null)
+ throw new NullPointerException();
SubMap subMap = subMap(lower, lowerInclusive, upper, upperInclusive);
http://git-wip-us.apache.org/repos/asf/ignite/blob/37eb93b2/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java b/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
index 8bd5f59..79c110d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
@@ -2350,18 +2350,12 @@ public class SnapTreeMap<K, V> extends AbstractMap<K, V> implements ConcurrentNa
//////////////// IgniteTree
@Override public GridCursor<V> find(K lower, boolean lowerInclusive,
- K upper, boolean upperInclusive) throws IgniteCheckedException {
- if (lower == null)
- if (upper == null) // all
- return new GridCursorIteratorWrapper<>(values().iterator());
- else // head
- return new GridCursorIteratorWrapper<>(headMap(upper, upperInclusive).values().iterator());
- else
- if (upper == null) // tail
- return new GridCursorIteratorWrapper<>(tailMap(lower, lowerInclusive).values().iterator());
- else // interval
- return new GridCursorIteratorWrapper<>(subMap(lower, lowerInclusive, upper, upperInclusive)
- .values().iterator());
+ K upper, boolean upperInclusive) throws IgniteCheckedException {
+ if (lower == null || upper == null)
+ throw new NullPointerException();
+
+ return new GridCursorIteratorWrapper<>(subMap(lower, lowerInclusive, upper, upperInclusive)
+ .values().iterator());
}
public GridCursor<V> find(K lower, K upper) throws IgniteCheckedException {
@@ -2921,16 +2915,11 @@ public class SnapTreeMap<K, V> extends AbstractMap<K, V> implements ConcurrentNa
@Override public GridCursor<V> find(K lower, boolean lowerInclusive,
K upper, boolean upperInclusive) throws IgniteCheckedException {
- if (lower == null)
- if (upper == null) // all
- return new GridCursorIteratorWrapper<>(values().iterator());
- else // head
- return new GridCursorIteratorWrapper<>(headMap(upper, upperInclusive).values().iterator());
- else
- if (upper == null) // tail
- return new GridCursorIteratorWrapper<>(tailMap(lower, lowerInclusive).values().iterator());
- else // interval
- return new GridCursorIteratorWrapper<>(subMap(lower, lowerInclusive, upper, upperInclusive).values().iterator());
+ if (lower == null || upper == null)
+ throw new NullPointerException();
+
+ return new GridCursorIteratorWrapper<>(subMap(lower, lowerInclusive, upper, upperInclusive)
+ .values().iterator());
}
public GridCursor<V> find(K lower, K upper) throws IgniteCheckedException {
http://git-wip-us.apache.org/repos/asf/ignite/blob/37eb93b2/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java
index 4bc39ea..88edaf1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java
@@ -173,6 +173,43 @@ public class BPlusTreeSelfTest extends GridCommonAbstractTest {
/**
* @throws IgniteCheckedException If failed.
*/
+ public void testFind() throws IgniteCheckedException {
+ TestTree tree = createTestTree(true);
+ TreeMap<Long, Long> map = new TreeMap<>();
+
+ long size = CNT * CNT;
+
+ for (long i = 1; i <= size; i++) {
+ tree.put(i);
+ map.put(i, i);
+ }
+
+ checkCursor(tree.findAll(), map.values().iterator());
+ checkCursor(tree.find(10L, 70L), map.subMap(10L, true, 70L, true).values().iterator());
+ checkCursor(tree.find(10L, true, 50L, false), map.subMap(10L, true, 50L, false).values().iterator());
+ checkCursor(tree.find(10L, false, 50L, true), map.subMap(10L, false, 50L, true).values().iterator());
+ checkCursor(tree.find(10L, false, 50L, false), map.subMap(10L, false, 50L, false).values().iterator());
+ checkCursor(tree.find(10L, true, 50L, true), map.subMap(10L, true, 50L, true).values().iterator());
+ }
+
+ /**
+ * @param cursor cursor to check.
+ * @param iterator iterator with expected result.
+ * @throws IgniteCheckedException If failed
+ */
+ private void checkCursor(GridCursor<Long> cursor, Iterator<Long> iterator) throws IgniteCheckedException {
+ while (cursor.next()) {
+ assertTrue(iterator.hasNext());
+
+ assertEquals(iterator.next(), cursor.get());
+ }
+
+ assertFalse(iterator.hasNext());
+ }
+
+ /**
+ * @throws IgniteCheckedException If failed.
+ */
public void testPutRemove_1_20_mm_1() throws IgniteCheckedException {
MAX_PER_PAGE = 1;
CNT = 20;
http://git-wip-us.apache.org/repos/asf/ignite/blob/37eb93b2/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java
index d3b6265..95114a2 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java
@@ -1,3 +1,20 @@
+/*
+ * 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.query.h2;
import org.apache.ignite.*;
http://git-wip-us.apache.org/repos/asf/ignite/blob/37eb93b2/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 e03c1a1..f442e4e 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
@@ -527,6 +527,8 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
@Override public GridCursor<GridH2Row> find(GridSearchRowPointer lower, boolean lowerInclusive,
GridSearchRowPointer upper, boolean upperInclusive)
throws IgniteCheckedException {
+ if (lower == null || upper == null)
+ throw new NullPointerException();
NavigableMap<GridSearchRowPointer, GridH2Row> subMap =
tree.subMap(lower, lowerInclusive, upper, upperInclusive);
[12/22] ignite git commit: Merge branch 'ignite-gg-8.0.2.ea2' of
https://github.com/gridgain/apache-ignite into ignite-gg-11414
Posted by ag...@apache.org.
Merge branch 'ignite-gg-8.0.2.ea2' of https://github.com/gridgain/apache-ignite into ignite-gg-11414
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d63b3862
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d63b3862
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d63b3862
Branch: refs/heads/ignite-3477
Commit: d63b3862a43a142f248ac96bc3fd1c02705172da
Parents: c1c15a6 06de699
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Mon Jan 9 17:59:15 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Mon Jan 9 17:59:15 2017 +0300
----------------------------------------------------------------------
.../cache/CacheOffheapEvictionManager.java | 90 +++++++++++++
.../cache/CacheOfheapEvictionManager.java | 90 -------------
.../cache/DynamicCacheDescriptor.java | 17 +++
.../processors/cache/GridCacheProcessor.java | 49 +++++---
.../cache/GridCacheSharedTtlCleanupManager.java | 5 +-
.../processors/cache/GridCacheTtlManager.java | 11 +-
.../GridChangeGlobalStateMessageResponse.java | 2 +-
.../cache/IgniteCacheOffheapManager.java | 6 +
.../cache/IgniteCacheOffheapManagerImpl.java | 40 ++++--
.../IgniteCacheDatabaseSharedManager.java | 16 ++-
.../cache/database/tree/BPlusTree.java | 4 +-
.../GridDistributedTxRemoteAdapter.java | 14 +--
.../distributed/dht/GridDhtLocalPartition.java | 40 +++++-
.../dht/GridDhtPartitionTopologyImpl.java | 126 +++++++++----------
.../GridDhtPartitionsExchangeFuture.java | 51 +++++---
.../processors/cache/local/GridLocalCache.java | 7 +-
.../continuous/CacheContinuousQueryHandler.java | 20 +--
.../cluster/GridClusterStateProcessor.java | 9 +-
.../util/future/IgniteRemoteMapTask.java | 17 +++
.../ignite/spi/discovery/tcp/ServerImpl.java | 16 ++-
.../GridCommunicationSendMessageSelfTest.java | 7 +-
.../cache/CacheClientStoreSelfTest.java | 6 +-
.../cache/GridCacheAbstractTxReadTest.java | 2 -
.../cache/GridCacheBasicStoreAbstractTest.java | 2 +-
.../IgniteCacheConfigVariationsFullApiTest.java | 35 ++++--
.../IgniteCacheReadThroughEvictionSelfTest.java | 5 +-
.../database/tree/io/TrackingPageIOTest.java | 17 +++
...teSynchronizationModesMultithreadedTest.java | 2 +-
.../near/GridCacheNearReadersSelfTest.java | 3 +-
.../near/NoneRebalanceModeSelfTest.java | 4 +-
...cheLocalBasicStoreMultithreadedSelfTest.java | 1 +
.../GridCacheContinuousQueryConcurrentTest.java | 47 +++----
.../IgniteCacheQueryMultiThreadedSelfTest.java | 10 +-
.../IgniteCacheQueryNodeRestartSelfTest.java | 3 +-
34 files changed, 475 insertions(+), 299 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/d63b3862/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/d63b3862/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
----------------------------------------------------------------------
[02/22] ignite git commit: GG-11414: Remove snapshotableIndex flag
from CacheConfiguration, Get rid of all usages of GridH2TreeIndex
Posted by ag...@apache.org.
GG-11414: Remove snapshotableIndex flag from CacheConfiguration, Get rid of all usages of GridH2TreeIndex
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b2999f2e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b2999f2e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b2999f2e
Branch: refs/heads/ignite-3477
Commit: b2999f2e4d490fdb140483e4283f0fe2d8004a67
Parents: ef015d3
Author: Sergey Sidorov <ss...@gridgain.com>
Authored: Tue Nov 15 18:50:24 2016 +0300
Committer: Sergey Sidorov <ss...@gridgain.com>
Committed: Wed Nov 16 16:49:52 2016 +0300
----------------------------------------------------------------------
.../configuration/CacheConfiguration.java | 30 ----
.../cache/IgniteCacheOffheapManagerImpl.java | 6 +-
.../cache/database/tree/BPlusTree.java | 30 +++-
.../util/GridCursorIteratorWrapper.java | 28 +++
.../apache/ignite/internal/util/IgniteTree.java | 79 ++++----
.../ignite/internal/util/lang/GridCursor.java | 1 +
.../offheap/unsafe/GridOffHeapSnapTreeMap.java | 85 ++++++---
.../internal/util/snaptree/SnapTreeMap.java | 92 +++++++---
.../internal/processors/query/h2/H2Cursor.java | 84 +++++++++
.../processors/query/h2/IgniteH2Indexing.java | 36 +---
.../query/h2/database/H2TreeIndex.java | 92 +++-------
.../query/h2/opt/GridH2IndexBase.java | 178 ++++++++-----------
.../processors/query/h2/opt/GridH2Table.java | 4 +-
.../query/h2/opt/GridH2TreeIndex.java | 154 +++++++++++-----
.../cache/IgniteCacheAbstractQuerySelfTest.java | 2 +-
.../query/h2/opt/GridH2TableSelfTest.java | 29 +--
16 files changed, 536 insertions(+), 394 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
index e15c989..44c23c0 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
@@ -371,9 +371,6 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> {
/** */
private transient Class<?>[] indexedTypes;
- /** */
- private boolean snapshotableIdx;
-
/** Copy on read flag. */
private boolean cpOnRead = DFLT_COPY_ON_READ;
@@ -466,7 +463,6 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> {
rebalancePoolSize = cc.getRebalanceThreadPoolSize();
rebalanceTimeout = cc.getRebalanceTimeout();
rebalanceThrottle = cc.getRebalanceThrottle();
- snapshotableIdx = cc.isSnapshotableIndex();
sqlSchema = cc.getSqlSchema();
sqlEscapeAll = cc.isSqlEscapeAll();
sqlFuncCls = cc.getSqlFunctionClasses();
@@ -1930,32 +1926,6 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> {
}
/**
- * Gets flag indicating whether SQL indexes should support snapshots.
- *
- * @return {@code True} if SQL indexes should support snapshots.
- */
- public boolean isSnapshotableIndex() {
- return snapshotableIdx;
- }
-
- /**
- * Sets flag indicating whether SQL indexes should support snapshots.
- * <p>
- * Default value is {@code false}.
- * <p>
- * <b>Note</b> that this flag is ignored if indexes are stored in offheap memory,
- * for offheap indexes snapshots are always enabled.
- *
- * @param snapshotableIdx {@code True} if SQL indexes should support snapshots.
- * @return {@code this} for chaining.
- */
- public CacheConfiguration<K, V> setSnapshotableIndex(boolean snapshotableIdx) {
- this.snapshotableIdx = snapshotableIdx;
-
- return this;
- }
-
- /**
* Gets array of cache plugin configurations.
*
* @return Cache plugin configurations.
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
index e431f58..66896d2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
@@ -570,9 +570,11 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
* @throws IgniteCheckedException If failed.
*/
private long allocateForTree() throws IgniteCheckedException {
- long pageId = cctx.shared().database().globalReuseList().takeRecycledPage();
+ ReuseList reuseList = cctx.shared().database().globalReuseList();
- if (pageId == 0L)
+ long pageId;
+
+ if (reuseList == null || (pageId = reuseList.takeRecycledPage()) == 0L)
pageId = cctx.shared().database().pageMemory().allocatePage(cctx.cacheId(), INDEX_PARTITION, FLAG_IDX);
return pageId;
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
index 2aab831..f761975 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
@@ -55,8 +55,7 @@ import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
import org.apache.ignite.internal.processors.cache.database.tree.reuse.ReuseBag;
import org.apache.ignite.internal.processors.cache.database.tree.reuse.ReuseList;
import org.apache.ignite.internal.processors.cache.database.tree.util.PageHandler;
-import org.apache.ignite.internal.util.GridArrays;
-import org.apache.ignite.internal.util.GridLongList;
+import org.apache.ignite.internal.util.*;
import org.apache.ignite.internal.util.lang.GridCursor;
import org.apache.ignite.internal.util.lang.GridTreePrinter;
import org.apache.ignite.internal.util.typedef.F;
@@ -83,7 +82,7 @@ import static org.apache.ignite.internal.processors.cache.database.tree.util.Pag
* Abstract B+Tree.
*/
@SuppressWarnings({"RedundantThrowsDeclaration", "ConstantValueVariableUse"})
-public abstract class BPlusTree<L, T extends L> extends DataStructure {
+public abstract class BPlusTree<L, T extends L> extends DataStructure implements IgniteTree<L, T> {
/** */
private static final Object[] EMPTY = {};
@@ -752,6 +751,16 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure {
}
}
+ public GridCursor<T> find(L lower, boolean lowerInclusive,
+ L upper, boolean upperInclusive) throws IgniteCheckedException {
+ // TODO inclusive / exclusive logic should be implemented
+ return find(lower, upper);
+ }
+
+ public GridCursor<T> findAll() throws IgniteCheckedException {
+ return find(null, null);
+ }
+
/**
* @param row Lookup row for exact match.
* @return Found row.
@@ -1253,6 +1262,10 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure {
return doRemove(row, false, null);
}
+ @Override public T removeNode(L key) throws IgniteCheckedException {
+ return doRemove(key, false, null);
+ }
+
/**
* @param row Lookup row.
* @param ceil If we can remove ceil row when we can not find exact.
@@ -1503,9 +1516,14 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure {
}
/**
- * @param row Row.
- * @return Old row.
- * @throws IgniteCheckedException If failed.
+ * {@inheritDoc}
+ */
+ public final long treeSize() throws IgniteCheckedException {
+ return size();
+ }
+
+ /**
+ * {@inheritDoc}
*/
public final T put(T row) throws IgniteCheckedException {
return put(row, null);
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/modules/core/src/main/java/org/apache/ignite/internal/util/GridCursorIteratorWrapper.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridCursorIteratorWrapper.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridCursorIteratorWrapper.java
new file mode 100644
index 0000000..bd30ace
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridCursorIteratorWrapper.java
@@ -0,0 +1,28 @@
+package org.apache.ignite.internal.util;
+
+import org.apache.ignite.*;
+import org.apache.ignite.internal.util.lang.*;
+
+import java.util.*;
+
+/**
+ * Wrap {@code Iterator} and adapt it to {@code GridCursor}.
+ */
+public class GridCursorIteratorWrapper<V> implements GridCursor<V> {
+ private Iterator<V> iter;
+ private V next;
+
+ public GridCursorIteratorWrapper(Iterator<V> iter) {
+ this.iter = iter;
+ }
+
+ @Override public V get() throws IgniteCheckedException {
+ return next;
+ }
+
+ @Override public boolean next() throws IgniteCheckedException {
+ next = iter.hasNext() ? iter.next() : null;
+
+ return next != null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
index 2c1e1af..512792b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
@@ -17,20 +17,22 @@
package org.apache.ignite.internal.util;
+import org.apache.ignite.*;
+import org.apache.ignite.internal.util.lang.*;
+
import java.util.*;
/**
* Interface for ignite internal tree.
*/
-public interface IgniteTree<K, V> {
+public interface IgniteTree<L, T> {
/**
- * Associates the specified value with the specified key in this tree.
+ * Put value in this tree.
*
- * @param key key with which the specified value is to be associated
* @param value value to be associated with the specified key
* @return the previous value associated with key
*/
- V put(K key, V value);
+ T put(T value) throws IgniteCheckedException;
/**
* Returns the value to which the specified key is mapped, or {@code null} if this tree contains no mapping for the
@@ -40,66 +42,49 @@ public interface IgniteTree<K, V> {
* @return the value to which the specified key is mapped, or {@code null} if this tree contains no mapping for the
* key
*/
- V get(Object key);
-
- /**
- * Removes the mapping for a key from this tree if it is present.
- *
- * @param key key whose mapping is to be removed from the tree
- * @return the previous value associated with key, or null if there was no mapping for key.
- */
- V remove(Object key);
+ T findOne(L key) throws IgniteCheckedException;
/**
- * Returns the number of elements in this tree.
+ * Returns a cursor from lower to upper bounds.
*
- * @return the number of elements in this tree
+ * @param lower Lower bound or {@code null} if unbounded.
+ * @param lowerInclusive {@code true} if the low bound
+ * is to be included in the returned view
+ * @param upper Upper bound or {@code null} if unbounded.
+ * @param upperInclusive {@code true} if the upper bound
+ * is to be included in the returned view
+ * @return Cursor.
*/
- int size();
+ GridCursor<T> find(L lower, boolean lowerInclusive, L upper, boolean upperInclusive) throws IgniteCheckedException;
/**
- * Returns a {@link Collection} view of the values contained in this tree.
+ * Returns a cursor from lower to upper bounds inclusive.
*
- * @return a collection view of the values contained in this map
+ * @param lower Lower bound or {@code null} if unbounded.
+ * @param upper Upper bound or {@code null} if unbounded.
+ * @return Cursor.
*/
- Collection<V> values();
+ GridCursor<T> find(L lower, L upper) throws IgniteCheckedException;
/**
- * Returns a view of the portion of this tree whose keys are less than (or equal to, if {@code inclusive} is true)
- * {@code toKey}. The returned tree is backed by this tree, so changes in the returned tree are reflected in this
- * tree, and vice-versa. The returned tree supports all optional tree operations that this tree supports.
- *
- * @param toKey high endpoint of the keys in the returned tree
- * @param inclusive {@code true} if the high endpoint is to be included in the returned view
- * @return a view of the portion of this tree whose keys are less than (or equal to, if {@code inclusive} is true)
- * {@code toKey}
+ * Returns a cursor over all values.
+ * @return Cursor.
+ * @throws IgniteCheckedException
*/
- IgniteTree<K, V> headTree(K toKey, boolean inclusive);
+ GridCursor<T> findAll() throws IgniteCheckedException;
/**
- * Returns a view of the portion of this tree whose keys are greater than (or equal to, if {@code inclusive} is
- * true) {@code fromKey}. The returned tree is backed by this tree, so changes in the returned tree are reflected
- * in this tree, and vice-versa. The returned tree supports all optional tree operations that this tree supports.
+ * Removes the mapping for a key from this tree if it is present.
*
- * @param fromKey low endpoint of the keys in the returned tree
- * @param inclusive {@code true} if the low endpoint is to be included in the returned view
- * @return a view of the portion of this tree whose keys are greater than (or equal to, if {@code inclusive} is
- * true) {@code fromKey}
+ * @param key key whose mapping is to be removed from the tree
+ * @return the previous value associated with key, or null if there was no mapping for key.
*/
- IgniteTree<K, V> tailTree(K fromKey, boolean inclusive);
+ T removeNode(L key) throws IgniteCheckedException;
/**
- * Returns a view of the portion of this tree whose keys range from {@code fromKey} to {@code toKey}. If {@code
- * fromKey} and {@code toKey} are equal, the returned tree is empty unless {@code fromInclusive} and {@code
- * toInclusive} are both true. The returned tree is backed by this tree, so changes in the returned tree are
- * reflected in this tree, and vice-versa. The returned tree supports all optional tree operations that this tree
- * supports.
+ * Returns the number of elements in this tree.
*
- * @param fromKey low endpoint of the keys in the returned tree
- * @param fromInclusive {@code true} if the low endpoint is to be included in the returned view
- * @param toKey high endpoint of the keys in the returned tree
- * @param toInclusive {@code true} if the high endpoint is to be included in the returned view
- * @return a view of the portion of this tree whose keys range from {@code fromKey} to {@code toKey}
+ * @return the number of elements in this tree
*/
- IgniteTree<K, V> subTree(final K fromKey, final boolean fromInclusive, final K toKey, final boolean toInclusive);
+ long treeSize() throws IgniteCheckedException;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridCursor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridCursor.java b/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridCursor.java
index 37d3a48..da85f99 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridCursor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridCursor.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.util.lang;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.processors.cache.database.*;
/**
* Simple cursor abstraction. Initial state must be "before first".
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
index 681394f..eb09af5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
@@ -54,8 +54,11 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
+
+import org.apache.ignite.*;
import org.apache.ignite.internal.processors.cache.distributed.dht.GridReservable;
import org.apache.ignite.internal.util.*;
+import org.apache.ignite.internal.util.lang.*;
import org.apache.ignite.internal.util.typedef.internal.SB;
import org.jetbrains.annotations.Nullable;
import org.jsr166.ConcurrentHashMap8;
@@ -3824,30 +3827,48 @@ public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer, V extends
//////////////// IgniteTree
- /** {@inheritDoc} */
- @Override public IgniteTree<K, V> headTree(final K toKey, final boolean inclusive) {
- return new SubMap(this, null, null, false, toKey, comparable(toKey), inclusive, false);
+ @Override public V put(V value) throws IgniteCheckedException {
+ return put((K)value, value);
}
- /** {@inheritDoc} */
- @Override public IgniteTree<K, V> tailTree(final K fromKey, final boolean inclusive) {
- return new SubMap(this, fromKey, comparable(fromKey), inclusive, null, null, false, false);
+ @Override public V findOne(K key) throws IgniteCheckedException {
+ return get(key);
}
- /** {@inheritDoc} */
- @Override public IgniteTree<K, V> subTree(final K fromKey, final boolean fromInclusive, final K toKey,
- final boolean toInclusive) {
- final Comparable<? super K> fromCmp = comparable(fromKey);
- if (fromCmp.compareTo(toKey) > 0) {
+ @Override public GridCursor<V> findAll() throws IgniteCheckedException {
+ return find(null, null);
+ }
+
+ @Override public GridCursor<V> find(K lower, K upper) throws IgniteCheckedException {
+ return find(lower, true, upper, true);
+ }
+
+ @Override public GridCursor<V> find(K lower, boolean lowerInclusive, K upper, boolean upperInclusive)
+ throws IgniteCheckedException {
+
+ final Comparable<? super K> fromCmp = comparable(lower);
+
+ if (fromCmp.compareTo(upper) > 0) {
throw new IllegalArgumentException();
}
- return new SubMap(this, fromKey, fromCmp, fromInclusive, toKey, comparable(toKey), toInclusive, false);
+
+ SubMap subMap = new SubMap(this, lower, fromCmp, lowerInclusive, upper, comparable(upper), upperInclusive, false);
+
+ return new GridCursorIteratorWrapper<>(subMap.values().iterator());
+ }
+
+ @Override public V removeNode(K key) throws IgniteCheckedException {
+ return remove(key);
+ }
+
+ @Override public long treeSize() throws IgniteCheckedException {
+ return size();
}
/**
* Submap.
*/
- private class SubMap extends AbstractMap<K,V> implements ConcurrentNavigableMap<K,V>, IgniteTree<K, V> {
+ private class SubMap extends AbstractMap<K, V> implements ConcurrentNavigableMap<K, V>, IgniteTree<K, V> {
/** */
private final GridOffHeapSnapTreeMap<K,V> m;
@@ -4456,22 +4477,36 @@ public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer, V extends
/////////// IgniteTree
- /** {@inheritDoc} */
- @Override public IgniteTree<K, V> headTree(K toKey, boolean inclusive) {
- return headMap(toKey, inclusive);
+ @Override public V put(V value) throws IgniteCheckedException {
+ return put((K)value, value);
}
- /** {@inheritDoc} */
- @Override public IgniteTree<K, V> tailTree(K fromKey, boolean inclusive) {
- return tailMap(fromKey, inclusive);
+ @Override public V findOne(K key) throws IgniteCheckedException {
+ return get(key);
}
- /** {@inheritDoc} */
- @Override public IgniteTree<K, V> subTree(final K fromKey,
- final boolean fromInclusive,
- final K toKey,
- final boolean toInclusive) {
- return subMap(fromKey, fromInclusive, toKey, toInclusive);
+ @Override public GridCursor<V> findAll() throws IgniteCheckedException {
+ return find(null, null);
+ }
+
+ @Override public GridCursor<V> find(K lower, K upper) throws IgniteCheckedException {
+ return find(lower, true, upper, true);
+ }
+
+ @Override public GridCursor<V> find(K lower, boolean lowerInclusive, K upper, boolean upperInclusive)
+ throws IgniteCheckedException {
+
+ SubMap subMap = subMap(lower, lowerInclusive, upper, upperInclusive);
+
+ return new GridCursorIteratorWrapper(subMap.values().iterator());
+ }
+
+ @Override public V removeNode(K key) throws IgniteCheckedException {
+ return remove(key);
+ }
+
+ @Override public long treeSize() throws IgniteCheckedException {
+ return size();
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java b/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
index 064e7b0..8bd5f59 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
@@ -35,7 +35,9 @@
package org.apache.ignite.internal.util.snaptree;
+import org.apache.ignite.*;
import org.apache.ignite.internal.util.*;
+import org.apache.ignite.internal.util.lang.*;
import java.io.IOException;
import java.io.ObjectInputStream;
@@ -2347,24 +2349,43 @@ public class SnapTreeMap<K, V> extends AbstractMap<K, V> implements ConcurrentNa
//////////////// IgniteTree
- /** {@inheritDoc} */
- @Override public IgniteTree<K, V> headTree(final K toKey, final boolean inclusive) {
- return new SubMap<K,V>(this, null, null, false, toKey, comparable(toKey), inclusive, false);
+ @Override public GridCursor<V> find(K lower, boolean lowerInclusive,
+ K upper, boolean upperInclusive) throws IgniteCheckedException {
+ if (lower == null)
+ if (upper == null) // all
+ return new GridCursorIteratorWrapper<>(values().iterator());
+ else // head
+ return new GridCursorIteratorWrapper<>(headMap(upper, upperInclusive).values().iterator());
+ else
+ if (upper == null) // tail
+ return new GridCursorIteratorWrapper<>(tailMap(lower, lowerInclusive).values().iterator());
+ else // interval
+ return new GridCursorIteratorWrapper<>(subMap(lower, lowerInclusive, upper, upperInclusive)
+ .values().iterator());
}
- /** {@inheritDoc} */
- @Override public IgniteTree<K, V> tailTree(final K fromKey, final boolean inclusive) {
- return new SubMap<K,V>(this, fromKey, comparable(fromKey), inclusive, null, null, false, false);
+ public GridCursor<V> find(K lower, K upper) throws IgniteCheckedException {
+ return find(lower, true, upper, true);
}
- /** {@inheritDoc} */
- @Override public IgniteTree<K, V> subTree(final K fromKey, final boolean fromInclusive, final K toKey,
- final boolean toInclusive) {
- final Comparable<? super K> fromCmp = comparable(fromKey);
- if (fromCmp.compareTo(toKey) > 0) {
- throw new IllegalArgumentException();
- }
- return new SubMap<K,V>(this, fromKey, fromCmp, fromInclusive, toKey, comparable(toKey), toInclusive, false);
+ public GridCursor<V> findAll() throws IgniteCheckedException {
+ return find(null, null);
+ }
+
+ @Override public V findOne(K key) throws IgniteCheckedException {
+ return get(key);
+ }
+
+ @Override public long treeSize() throws IgniteCheckedException {
+ return size();
+ }
+
+ @Override public V put(V value) throws IgniteCheckedException {
+ return put((K)value, value);
+ }
+
+ @Override public V removeNode(K key) throws IgniteCheckedException {
+ return remove(key);
}
private static class SubMap<K, V> extends AbstractMap<K, V> implements ConcurrentNavigableMap<K, V>, Serializable,
@@ -2893,20 +2914,43 @@ public class SnapTreeMap<K, V> extends AbstractMap<K, V> implements ConcurrentNa
/////// IgniteTree
- /** {@inheritDoc} */
- @Override public IgniteTree<K, V> headTree(final K toKey, final boolean inclusive) {
- return headMap(toKey, inclusive);
+ @Override public V findOne(K key) throws IgniteCheckedException {
+ return get(key);
+ }
+
+ @Override public GridCursor<V> find(K lower, boolean lowerInclusive,
+ K upper, boolean upperInclusive) throws IgniteCheckedException {
+
+ if (lower == null)
+ if (upper == null) // all
+ return new GridCursorIteratorWrapper<>(values().iterator());
+ else // head
+ return new GridCursorIteratorWrapper<>(headMap(upper, upperInclusive).values().iterator());
+ else
+ if (upper == null) // tail
+ return new GridCursorIteratorWrapper<>(tailMap(lower, lowerInclusive).values().iterator());
+ else // interval
+ return new GridCursorIteratorWrapper<>(subMap(lower, lowerInclusive, upper, upperInclusive).values().iterator());
+ }
+
+ public GridCursor<V> find(K lower, K upper) throws IgniteCheckedException {
+ return find(lower, true, upper, true);
+ }
+
+ public GridCursor<V> findAll() throws IgniteCheckedException {
+ return find(null, null);
+ }
+
+ @Override public long treeSize() throws IgniteCheckedException {
+ return size();
}
- /** {@inheritDoc} */
- @Override public IgniteTree<K, V> tailTree(final K fromKey, final boolean inclusive) {
- return tailMap(fromKey, inclusive);
+ @Override public V put(V value) throws IgniteCheckedException {
+ return put((K)value, value);
}
- /** {@inheritDoc} */
- @Override public IgniteTree<K, V> subTree(final K fromKey, final boolean fromInclusive, final K toKey,
- final boolean toInclusive) {
- return subMap(fromKey, fromInclusive, toKey, toInclusive);
+ @Override public V removeNode(K key) throws IgniteCheckedException {
+ return remove(key);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java
new file mode 100644
index 0000000..d3b6265
--- /dev/null
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java
@@ -0,0 +1,84 @@
+package org.apache.ignite.internal.processors.query.h2;
+
+import org.apache.ignite.*;
+import org.apache.ignite.internal.processors.query.h2.opt.*;
+import org.apache.ignite.internal.util.lang.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
+import org.h2.index.*;
+import org.h2.message.*;
+import org.h2.result.*;
+
+/**
+ * Cursor.
+ */
+public class H2Cursor implements Cursor {
+ /** */
+ final GridCursor<GridH2Row> cursor;
+
+ /** */
+ final IgniteBiPredicate<Object,Object> filter;
+
+ /** */
+ final long time = U.currentTimeMillis();
+
+ /**
+ * @param cursor Cursor.
+ * @param filter Filter.
+ */
+ public H2Cursor(GridCursor<GridH2Row> cursor, IgniteBiPredicate<Object, Object> filter) {
+ assert cursor != null;
+
+ this.cursor = cursor;
+ this.filter = filter;
+ }
+
+ /** {@inheritDoc} */
+ @Override public Row get() {
+ try {
+ return cursor.get();
+ }
+ catch (IgniteCheckedException e) {
+ throw DbException.convert(e);
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override public SearchRow getSearchRow() {
+ return get();
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean next() {
+ try {
+ while (cursor.next()) {
+ GridH2Row row = cursor.get();
+
+ if (row.expireTime() > 0 && row.expireTime() <= time)
+ continue;
+
+ if (filter == null)
+ return true;
+
+ Object key = row.getValue(0).getObject();
+ Object val = row.getValue(1).getObject();
+
+ assert key != null;
+ assert val != null;
+
+ if (filter.apply(key, val))
+ return true;
+ }
+
+ return false;
+ }
+ catch (IgniteCheckedException e) {
+ throw DbException.convert(e);
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean previous() {
+ throw DbException.getUnsupportedException("previous");
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/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 55d1b57..47ca598 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
@@ -98,7 +98,6 @@ import org.apache.ignite.internal.processors.query.h2.opt.GridH2Row;
import org.apache.ignite.internal.processors.query.h2.opt.GridH2RowDescriptor;
import org.apache.ignite.internal.processors.query.h2.opt.GridH2RowFactory;
import org.apache.ignite.internal.processors.query.h2.opt.GridH2Table;
-import org.apache.ignite.internal.processors.query.h2.opt.GridH2TreeIndex;
import org.apache.ignite.internal.processors.query.h2.opt.GridH2ValueCacheObject;
import org.apache.ignite.internal.processors.query.h2.opt.GridLuceneIndex;
import org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter;
@@ -2431,7 +2430,7 @@ public class IgniteH2Indexing implements GridQueryIndexing {
// Add explicit affinity key index if nothing alike was found.
if (affCol != null && !affIdxFound) {
- idxs.add(new GridH2TreeIndex("AFFINITY_KEY", tbl, false,
+ idxs.add(createSortedIndex(cacheId, "AFFINITY_KEY", tbl, false,
treeIndexColumns(new ArrayList<IndexColumn>(2), affCol, keyCol)));
}
@@ -2454,14 +2453,14 @@ public class IgniteH2Indexing implements GridQueryIndexing {
List<IndexColumn> cols
) {
try {
- GridCacheSharedContext<Object,Object> scctx = ctx.cache().context();
+ GridCacheSharedContext<Object, Object> scctx = ctx.cache().context();
GridCacheContext cctx = scctx.cacheContext(cacheId);
- if (cctx.affinityNode() && cctx.offheapIndex())
- return createIndex(cctx, name, tbl, pk, cols);
+ if (log.isInfoEnabled())
+ log.info("Creating cache index [cacheId=" + cctx.cacheId() + ", idxName=" + name + ']');
- return new GridH2TreeIndex(name, tbl, pk, cols);
+ return new H2TreeIndex(cctx, tbl, name, pk, cols);
}
catch (IgniteCheckedException e) {
throw new IgniteException(e);
@@ -2469,31 +2468,6 @@ public class IgniteH2Indexing implements GridQueryIndexing {
}
/**
- * @param name Index name.
- * @param tbl Table.
- * @param pk Primary key flag.
- * @param cols Columns.
- * @return Index.
- */
- private Index createIndex(
- GridCacheContext cctx,
- String name,
- GridH2Table tbl,
- boolean pk,
- List<IndexColumn> cols
- ) throws IgniteCheckedException {
- if (log.isInfoEnabled())
- log.info("Creating cache index [cacheId=" + cctx.cacheId() + ", idxName=" + name + ']');
-
- return new H2TreeIndex(
- cctx,
- tbl,
- name,
- pk,
- cols);
- }
-
- /**
*
*/
void onDrop() {
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
index 8bd8ebe..b56b1ed 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
@@ -26,18 +26,16 @@ import org.apache.ignite.internal.processors.cache.database.IgniteCacheDatabaseS
import org.apache.ignite.internal.processors.cache.database.RootPage;
import org.apache.ignite.internal.processors.cache.database.tree.BPlusTree;
import org.apache.ignite.internal.processors.cache.database.tree.io.BPlusIO;
-import org.apache.ignite.internal.processors.query.h2.opt.GridH2IndexBase;
-import org.apache.ignite.internal.processors.query.h2.opt.GridH2Row;
-import org.apache.ignite.internal.processors.query.h2.opt.GridH2Table;
-import org.apache.ignite.internal.util.lang.GridCursor;
-import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.processors.query.h2.*;
+import org.apache.ignite.internal.processors.query.h2.opt.*;
+import org.apache.ignite.internal.util.*;
+import org.apache.ignite.internal.util.lang.*;
import org.apache.ignite.lang.IgniteBiPredicate;
import org.apache.ignite.spi.indexing.IndexingQueryFilter;
import org.h2.engine.Session;
import org.h2.index.Cursor;
import org.h2.index.IndexType;
import org.h2.message.DbException;
-import org.h2.result.Row;
import org.h2.result.SearchRow;
import org.h2.result.SortOrder;
import org.h2.table.IndexColumn;
@@ -215,77 +213,27 @@ public class H2TreeIndex extends GridH2IndexBase {
return this;
}
- /**
- * Cursor.
- */
- private static class H2Cursor implements Cursor {
- /** */
- final GridCursor<GridH2Row> cursor;
-
- /** */
- final IgniteBiPredicate<Object,Object> filter;
-
- /** */
- final long time = U.currentTimeMillis();
-
- /**
- * @param cursor Cursor.
- * @param filter Filter.
- */
- private H2Cursor(GridCursor<GridH2Row> cursor, IgniteBiPredicate<Object,Object> filter) {
- assert cursor != null;
-
- this.cursor = cursor;
- this.filter = filter;
- }
-
- /** {@inheritDoc} */
- @Override public Row get() {
- try {
- return cursor.get();
- }
- catch (IgniteCheckedException e) {
- throw DbException.convert(e);
- }
- }
-
- /** {@inheritDoc} */
- @Override public SearchRow getSearchRow() {
- return get();
- }
-
- /** {@inheritDoc} */
- @Override public boolean next() {
- try {
- while (cursor.next()) {
- GridH2Row row = cursor.get();
-
- if (row.expireTime() > 0 && row.expireTime() <= time)
- continue;
-
- if (filter == null)
- return true;
+ protected IgniteTree<SearchRow, GridH2Row> treeForRead() {
+ return tree;
+ }
- Object key = row.getValue(0).getObject();
- Object val = row.getValue(1).getObject();
+ protected GridCursor<GridH2Row> doFind0(IgniteTree t,
+ @Nullable SearchRow first,
+ boolean includeFirst,
+ @Nullable SearchRow last,
+ IndexingQueryFilter filter) {
+ includeFirst &= first != null;
- assert key != null;
- assert val != null;
+ try {
+ GridCursor<GridH2Row> range = tree.find(first, last);
- if (filter.apply(key, val))
- return true;
- }
+ if (range == null)
+ return EMPTY_CURSOR;
- return false;
- }
- catch (IgniteCheckedException e) {
- throw DbException.convert(e);
- }
+ return filter(range, filter);
}
-
- /** {@inheritDoc} */
- @Override public boolean previous() {
- throw DbException.getUnsupportedException("previous");
+ catch (IgniteCheckedException e) {
+ throw DbException.convert(e);
}
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/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 032b548..84d3b6a 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
@@ -44,7 +44,7 @@ import org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2RowRange
import org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2ValueMessage;
import org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2ValueMessageFactory;
import org.apache.ignite.internal.util.*;
-import org.apache.ignite.internal.util.lang.GridFilteredIterator;
+import org.apache.ignite.internal.util.lang.*;
import org.apache.ignite.internal.util.typedef.CIX2;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.CU;
@@ -306,12 +306,12 @@ public abstract class GridH2IndexBase extends BaseIndex {
/**
* Filters rows from expired ones and using predicate.
*
- * @param iter Iterator over rows.
+ * @param cursor GridCursor over rows.
* @param filter Optional filter.
* @return Filtered iterator.
*/
- protected Iterator<GridH2Row> filter(Iterator<GridH2Row> iter, IndexingQueryFilter filter) {
- return new FilteringIterator(iter, U.currentTimeMillis(), filter, getTable().spaceName());
+ protected GridCursor<GridH2Row> filter(GridCursor<GridH2Row> cursor, IndexingQueryFilter filter) {
+ return new FilteringCursor(cursor, U.currentTimeMillis(), filter, getTable().spaceName());
}
/**
@@ -460,13 +460,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
assert !msg.bounds().isEmpty() : "empty bounds";
- IgniteTree snapshotTree;
-
- if (snapshot0 instanceof IgniteTree)
- snapshotTree = (IgniteTree)snapshot0;
- else
- snapshotTree = new IgniteNavigableMapTree(
- (NavigableMap<GridSearchRowPointer, GridH2Row>) snapshot0);
+ IgniteTree snapshotTree = (IgniteTree)snapshot0;
src = new RangeSource(msg.bounds(), snapshotTree, qctx.filter());
}
@@ -1367,7 +1361,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
int curRangeId = -1;
/** */
- Iterator<GridH2Row> curRange = emptyIterator();
+ GridCursor<GridH2Row> curRange = EMPTY_CURSOR;
/** */
final IgniteTree tree;
@@ -1393,8 +1387,8 @@ public abstract class GridH2IndexBase extends BaseIndex {
/**
* @return {@code true} If there are more rows in this source.
*/
- public boolean hasMoreRows() {
- return boundsIter.hasNext() || curRange.hasNext();
+ public boolean hasMoreRows() throws IgniteCheckedException {
+ return boundsIter.hasNext() || curRange.next();
}
/**
@@ -1404,56 +1398,60 @@ public abstract class GridH2IndexBase extends BaseIndex {
public GridH2RowRange next(int maxRows) {
assert maxRows > 0 : maxRows;
- for (;;) {
- if (curRange.hasNext()) {
- // Here we are getting last rows from previously partially fetched range.
- List<GridH2RowMessage> rows = new ArrayList<>();
+ try {
+ for (;;) {
+ if (curRange.next()) {
+ // Here we are getting last rows from previously partially fetched range.
+ List<GridH2RowMessage> rows = new ArrayList<>();
- GridH2RowRange nextRange = new GridH2RowRange();
+ GridH2RowRange nextRange = new GridH2RowRange();
- nextRange.rangeId(curRangeId);
- nextRange.rows(rows);
+ nextRange.rangeId(curRangeId);
+ nextRange.rows(rows);
- do {
- rows.add(toRowMessage(curRange.next()));
- }
- while (rows.size() < maxRows && curRange.hasNext());
+ do {
+ rows.add(toRowMessage(curRange.get()));
+ }
+ while (rows.size() < maxRows && curRange.next());
- if (curRange.hasNext())
- nextRange.setPartial();
- else
- curRange = emptyIterator();
+ if (curRange.next())
+ nextRange.setPartial();
+ else
+ curRange = EMPTY_CURSOR;
- return nextRange;
- }
+ return nextRange;
+ }
- curRange = emptyIterator();
+ curRange = EMPTY_CURSOR;
- if (!boundsIter.hasNext()) {
- boundsIter = emptyIterator();
+ if (!boundsIter.hasNext()) {
+ boundsIter = emptyIterator();
- return null;
- }
+ return null;
+ }
- GridH2RowRangeBounds bounds = boundsIter.next();
+ GridH2RowRangeBounds bounds = boundsIter.next();
- curRangeId = bounds.rangeId();
+ curRangeId = bounds.rangeId();
- SearchRow first = toSearchRow(bounds.first());
- SearchRow last = toSearchRow(bounds.last());
+ SearchRow first = toSearchRow(bounds.first());
+ SearchRow last = toSearchRow(bounds.last());
- IgniteTree t = tree != null ? tree : treeForRead();
+ IgniteTree t = tree != null ? tree : treeForRead();
- curRange = doFind0(t, first, true, last, filter);
+ curRange = doFind0(t, first, true, last, filter);
- if (!curRange.hasNext()) {
- // We have to return empty range here.
- GridH2RowRange emptyRange = new GridH2RowRange();
+ if (!curRange.next()) {
+ // We have to return empty range here.
+ GridH2RowRange emptyRange = new GridH2RowRange();
- emptyRange.rangeId(curRangeId);
+ emptyRange.rangeId(curRangeId);
- return emptyRange;
+ return emptyRange;
+ }
}
+ } catch (IgniteCheckedException e) {
+ throw DbException.convert(e);
}
}
}
@@ -1461,7 +1459,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
/**
* @return Snapshot for current thread if there is one.
*/
- protected IgniteTree treeForRead() {
+ protected <K, V> IgniteTree<K, V> treeForRead() {
throw new UnsupportedOperationException();
}
@@ -1473,7 +1471,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
* @param filter Filter.
* @return Iterator over rows in given range.
*/
- protected Iterator<GridH2Row> doFind0(IgniteTree t,
+ protected GridCursor<GridH2Row> doFind0(IgniteTree t,
@Nullable SearchRow first,
boolean includeFirst,
@Nullable SearchRow last,
@@ -1482,9 +1480,11 @@ public abstract class GridH2IndexBase extends BaseIndex {
}
/**
- * Iterator which filters by expiration time and predicate.
+ * Cursor which filters by expiration time and predicate.
*/
- protected static class FilteringIterator extends GridFilteredIterator<GridH2Row> {
+ protected static class FilteringCursor implements GridCursor<GridH2Row> {
+ /** */
+ private final GridCursor<GridH2Row> cursor;
/** */
private final IgniteBiPredicate<Object, Object> fltr;
@@ -1494,17 +1494,19 @@ public abstract class GridH2IndexBase extends BaseIndex {
/** Is value required for filtering predicate? */
private final boolean isValRequired;
+ private GridH2Row next;
+
/**
- * @param iter Iterator.
+ * @param cursor GridCursor.
* @param time Time for expired rows filtering.
* @param qryFilter Filter.
* @param spaceName Space name.
*/
- protected FilteringIterator(Iterator<GridH2Row> iter,
+ protected FilteringCursor(GridCursor<GridH2Row> cursor,
long time,
IndexingQueryFilter qryFilter,
String spaceName) {
- super(iter);
+ this.cursor = cursor;
this.time = time;
@@ -1524,7 +1526,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
* @return If this row was accepted.
*/
@SuppressWarnings("unchecked")
- @Override protected boolean accept(GridH2Row row) {
+ protected boolean accept(GridH2Row row) {
if (row.expireTime() <= time)
return false;
@@ -1539,62 +1541,40 @@ public abstract class GridH2IndexBase extends BaseIndex {
return fltr.apply(key, val);
}
- }
-
- /**
- * Adapter from {@link NavigableMap} to {@link IgniteTree}.
- */
- protected static class IgniteNavigableMapTree implements IgniteTree<GridSearchRowPointer, GridH2Row> {
- private NavigableMap<GridSearchRowPointer, GridH2Row> tree;
-
- /**
- * @param map the {@link NavigableMap} which should be adapted.
- */
- public IgniteNavigableMapTree(final NavigableMap<GridSearchRowPointer, GridH2Row> map) {
- this.tree = map;
- }
- /** {@inheritDoc} */
- @Override public GridH2Row put(final GridSearchRowPointer key, final GridH2Row value) {
- return tree.put(key, value);
- }
+ @Override public boolean next() throws IgniteCheckedException {
+ next = null;
- /** {@inheritDoc} */
- @Override public GridH2Row get(final Object key) {
- return tree.get(key);
- }
+ while (cursor.next()) {
+ GridH2Row t = cursor.get();
- /** {@inheritDoc} */
- @Override public GridH2Row remove(final Object key) {
- return tree.remove(key);
- }
+ if (accept(t)) {
+ next = t;
+ return true;
+ }
+ }
- /** {@inheritDoc} */
- @Override public int size() {
- return tree.size();
+ return false;
}
- /** {@inheritDoc} */
- @Override public Collection<GridH2Row> values() {
- return tree.values();
- }
+ @Override public GridH2Row get() throws IgniteCheckedException {
+ if (next == null)
+ throw new NoSuchElementException();
- /** {@inheritDoc} */
- @Override
- public IgniteTree<GridSearchRowPointer, GridH2Row> headTree(GridSearchRowPointer toKey, boolean inclusive) {
- return new IgniteNavigableMapTree(tree.headMap(toKey, inclusive));
+ return next;
}
+ }
+ /** Empty cursor. */
+ protected static final GridCursor<GridH2Row> EMPTY_CURSOR = new GridCursor<GridH2Row>() {
/** {@inheritDoc} */
- @Override
- public IgniteTree<GridSearchRowPointer, GridH2Row> tailTree(GridSearchRowPointer fromKey, boolean inclusive) {
- return new IgniteNavigableMapTree(tree.tailMap(fromKey, inclusive));
+ @Override public boolean next() {
+ return false;
}
/** {@inheritDoc} */
- @Override public IgniteTree<GridSearchRowPointer, GridH2Row> subTree(GridSearchRowPointer fromKey,
- boolean fromInclusive, GridSearchRowPointer toKey, boolean toInclusive) {
- return new IgniteNavigableMapTree(tree.subMap(fromKey, fromInclusive, toKey, toInclusive));
+ @Override public GridH2Row get() {
+ return null;
}
- }
+ };
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/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 ef3dd35..bf390ba 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
@@ -34,7 +34,7 @@ import org.apache.ignite.internal.processors.cache.CacheObject;
import org.apache.ignite.internal.processors.cache.GridCacheContext;
import org.apache.ignite.internal.processors.cache.KeyCacheObject;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
-import org.apache.ignite.internal.processors.query.h2.database.H2RowFactory;
+import org.apache.ignite.internal.processors.query.h2.database.*;
import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeMemory;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.lang.IgniteBiTuple;
@@ -893,7 +893,7 @@ public class GridH2Table extends TableBase {
/**
* Create list of indexes. First must be primary key, after that all unique indexes and
* only then non-unique indexes.
- * All indexes must be subtypes of {@link GridH2TreeIndex}.
+ * All indexes must be subtypes of {@link H2TreeIndex}.
*
* @param tbl Table to create indexes for.
* @return List of indexes.
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/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 b4cd76f..e03c1a1 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
@@ -18,13 +18,14 @@
package org.apache.ignite.internal.processors.query.h2.opt;
import java.util.Comparator;
-import java.util.Iterator;
import java.util.List;
import java.util.NavigableMap;
-import java.util.concurrent.ConcurrentNavigableMap;
import java.util.concurrent.ConcurrentSkipListMap;
+import org.apache.ignite.*;
+import org.apache.ignite.internal.processors.query.h2.*;
import org.apache.ignite.internal.util.*;
+import org.apache.ignite.internal.util.lang.*;
import org.apache.ignite.internal.util.offheap.unsafe.GridOffHeapSnapTreeMap;
import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeGuard;
import org.apache.ignite.internal.util.snaptree.SnapTreeMap;
@@ -93,7 +94,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
}
else {
tree = new IgniteNavigableMapTree(
- new ConcurrentSkipListMap<>(
+ new ConcurrentSkipListMap<GridSearchRowPointer, GridH2Row>(
new Comparator<GridSearchRowPointer>() {
@Override public int compare(GridSearchRowPointer o1, GridSearchRowPointer o2) {
if (o1 instanceof ComparableRow)
@@ -178,16 +179,22 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
// Fast path if we don't need to perform any filtering.
if (f == null || f.forSpace((getTable()).spaceName()) == null)
- return treeForRead().size();
+ try {
+ return treeForRead().treeSize();
+ } catch (IgniteCheckedException e) {
+ throw DbException.convert(e);
+ }
- Iterator<GridH2Row> iter = doFind(null, false, null);
+ GridCursor<GridH2Row> cursor = doFind(null, false, null);
long size = 0;
- while (iter.hasNext()) {
- iter.next();
-
- size++;
+ try {
+ while (cursor.next())
+ size++;
+ }
+ catch (IgniteCheckedException e) {
+ throw DbException.convert(e);
}
return size;
@@ -240,12 +247,12 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
/** {@inheritDoc} */
@Override public Cursor find(Session ses, @Nullable SearchRow first, @Nullable SearchRow last) {
- return new GridH2Cursor(doFind(first, true, last));
+ return new H2Cursor(doFind(first, true, last), null);
}
/** {@inheritDoc} */
@Override public Cursor findNext(Session ses, SearchRow higherThan, SearchRow last) {
- return new GridH2Cursor(doFind(higherThan, false, last));
+ return new H2Cursor(doFind(higherThan, false, last), null);
}
/**
@@ -257,7 +264,11 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
* @return Row.
*/
public GridH2Row findOne(GridH2Row row) {
- return tree.get(row);
+ try {
+ return tree.findOne(row);
+ } catch (IgniteCheckedException e) {
+ throw DbException.convert(e);
+ }
}
/**
@@ -269,14 +280,14 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
* @return Iterator over rows in given range.
*/
@SuppressWarnings("unchecked")
- private Iterator<GridH2Row> doFind(@Nullable SearchRow first, boolean includeFirst, @Nullable SearchRow last) {
+ private GridCursor<GridH2Row> doFind(@Nullable SearchRow first, boolean includeFirst, @Nullable SearchRow last) {
IgniteTree t = treeForRead();
return doFind0(t, first, includeFirst, last, threadLocalFilter());
}
/** {@inheritDoc} */
- @Override protected final Iterator<GridH2Row> doFind0(
+ @Override protected final GridCursor<GridH2Row> doFind0(
IgniteTree t,
@Nullable SearchRow first,
boolean includeFirst,
@@ -285,13 +296,13 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
) {
includeFirst &= first != null;
- IgniteTree<GridSearchRowPointer, GridH2Row> range = subTree(t, comparable(first, includeFirst ? -1 : 1),
+ GridCursor<GridH2Row> range = subTree(t, comparable(first, includeFirst ? -1 : 1),
comparable(last, 1));
if (range == null)
- return new GridEmptyIterator<>();
+ return EMPTY_CURSOR;
- return filter(range.values().iterator(), filter);
+ return filter(range, filter);
}
/**
@@ -318,25 +329,19 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
* @return Sub-map.
*/
@SuppressWarnings({"IfMayBeConditional", "TypeMayBeWeakened"})
- private IgniteTree subTree(IgniteTree tree,
+ private GridCursor<GridH2Row> subTree(IgniteTree tree,
@Nullable GridSearchRowPointer first, @Nullable GridSearchRowPointer last) {
- // We take exclusive bounds because it is possible that one search row will be equal to multiple key rows
- // in tree and we must return them all.
- if (first == null) {
- if (last == null)
- return tree;
- else
- return tree.headTree(last, false);
- }
- else {
- if (last == null)
- return tree.tailTree(first, false);
- else {
- if (compare(first, last) > 0)
- return null;
- return tree.subTree(first, false, last, false);
- }
+ if (first != null && last != null && compare(first, last) > 0)
+ return null;
+
+ try {
+ // We take exclusive bounds because it is possible that one search row will be equal to multiple key rows
+ // in tree and we must return them all.
+ return tree.find(first, false, last, false);
+ }
+ catch (IgniteCheckedException e) {
+ throw DbException.convert(e);
}
}
@@ -345,7 +350,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
*
* @return Rows iterator.
*/
- Iterator<GridH2Row> rows() {
+ GridCursor<GridH2Row> rows() {
return doFind(null, false, null);
}
@@ -361,12 +366,22 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
/** {@inheritDoc} */
@Override public GridH2Row put(GridH2Row row) {
- return tree.put(row, row);
+ try {
+ return tree.put(row);
+ }
+ catch (IgniteCheckedException e) {
+ throw DbException.convert(e);
+ }
}
/** {@inheritDoc} */
@Override public GridH2Row remove(SearchRow row) {
- return tree.remove(comparable(row, 0));
+ try {
+ return tree.removeNode(comparable(row, 0));
+ }
+ catch (IgniteCheckedException e) {
+ throw DbException.convert(e);
+ }
}
/**
@@ -471,14 +486,69 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
long i = 0;
- for (GridH2Row row : tree.values()) {
- // Check for interruptions every 1000 iterations.
- if (++i % 1000 == 0 && thread.isInterrupted())
- throw new InterruptedException();
+ try {
+ GridCursor<GridH2Row> cursor = tree.findAll();
- idx.tree.put(row, row);
+ while(cursor.next()) {
+ GridH2Row row = cursor.get();
+
+ // Check for interruptions every 1000 iterations.
+ if (++i % 1000 == 0 && thread.isInterrupted())
+ throw new InterruptedException();
+
+ idx.tree.put(row);
+ }
+ }
+ catch (IgniteCheckedException e) {
+ throw DbException.convert(e);
}
return idx;
}
+
+ /**
+ * Adapter from {@link NavigableMap} to {@link IgniteTree}.
+ */
+ private final class IgniteNavigableMapTree implements IgniteTree<GridSearchRowPointer, GridH2Row> {
+ private NavigableMap<GridSearchRowPointer, GridH2Row> tree;
+
+ public IgniteNavigableMapTree(NavigableMap<GridSearchRowPointer, GridH2Row> tree) {
+ this.tree = tree;
+ }
+
+ @Override public GridH2Row put(GridH2Row value) throws IgniteCheckedException {
+ return tree.put(value, value);
+ }
+
+ @Override public GridH2Row findOne(GridSearchRowPointer key) throws IgniteCheckedException {
+ return tree.get(key);
+ }
+
+ @Override public GridCursor<GridH2Row> find(GridSearchRowPointer lower, boolean lowerInclusive,
+ GridSearchRowPointer upper, boolean upperInclusive)
+ throws IgniteCheckedException {
+
+ NavigableMap<GridSearchRowPointer, GridH2Row> subMap =
+ tree.subMap(lower, lowerInclusive, upper, upperInclusive);
+
+ return new GridCursorIteratorWrapper<GridH2Row>(subMap.values().iterator());
+ }
+
+ public GridCursor<GridH2Row> find(GridSearchRowPointer lower, GridSearchRowPointer upper)
+ throws IgniteCheckedException {
+ return find(lower, true, upper, true);
+ }
+
+ public GridCursor<GridH2Row> findAll() throws IgniteCheckedException {
+ return find(null, null);
+ }
+
+ @Override public GridH2Row removeNode(GridSearchRowPointer key) throws IgniteCheckedException {
+ return tree.remove(key);
+ }
+
+ @Override public long treeSize() throws IgniteCheckedException {
+ return tree.size();
+ }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java
index e4b7dd3..15f110f 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java
@@ -172,7 +172,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
if (cacheMode() == CacheMode.PARTITIONED)
cc.setBackups(gridCount());
- cc.setSnapshotableIndex(snapshotableIndex());
+ //cc.setSnapshotableIndex(snapshotableIndex());
return cc;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/b2999f2e/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TableSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TableSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TableSelfTest.java
index a0ac181..5daf415 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TableSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TableSelfTest.java
@@ -33,7 +33,10 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.ignite.*;
import org.apache.ignite.internal.processors.query.h2.database.H2RowFactory;
+import org.apache.ignite.internal.util.lang.*;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.h2.Driver;
@@ -283,11 +286,11 @@ public class GridH2TableSelfTest extends GridCommonAbstractTest {
*
* @param idx Index.
*/
- private void dumpRows(GridH2TreeIndex idx) {
- Iterator<GridH2Row> iter = idx.rows();
+ private void dumpRows(GridH2TreeIndex idx) throws IgniteCheckedException {
+ GridCursor<GridH2Row> cursor = idx.rows();
- while (iter.hasNext())
- System.out.println(iter.next().toString());
+ while (cursor.next())
+ System.out.println(cursor.get().toString());
}
/**
@@ -584,17 +587,17 @@ public class GridH2TableSelfTest extends GridCommonAbstractTest {
* @param rowSet Rows.
* @return Rows.
*/
- private Set<Row> checkIndexesConsistent(ArrayList<Index> idxs, @Nullable Set<Row> rowSet) {
+ private Set<Row> checkIndexesConsistent(ArrayList<Index> idxs, @Nullable Set<Row> rowSet) throws IgniteCheckedException {
for (Index idx : idxs) {
if (!(idx instanceof GridH2TreeIndex))
continue;
Set<Row> set = new HashSet<>();
- Iterator<GridH2Row> iter = ((GridH2TreeIndex)idx).rows();
+ GridCursor<GridH2Row> cursor = ((GridH2TreeIndex)idx).rows();
- while(iter.hasNext())
- assertTrue(set.add(iter.next()));
+ while(cursor.next())
+ assertTrue(set.add(cursor.get()));
//((GridH2SnapTreeSet)((GridH2Index)idx).tree).print();
@@ -610,7 +613,7 @@ public class GridH2TableSelfTest extends GridCommonAbstractTest {
/**
* @param idxs Indexes list.
*/
- private void checkOrdered(ArrayList<Index> idxs) {
+ private void checkOrdered(ArrayList<Index> idxs) throws IgniteCheckedException {
for (Index idx : idxs) {
if (!(idx instanceof GridH2TreeIndex))
continue;
@@ -625,13 +628,13 @@ public class GridH2TableSelfTest extends GridCommonAbstractTest {
* @param idx Index.
* @param cmp Comparator.
*/
- private void checkOrdered(GridH2TreeIndex idx, Comparator<? super GridH2Row> cmp) {
- Iterator<GridH2Row> rows = idx.rows();
+ private void checkOrdered(GridH2TreeIndex idx, Comparator<? super GridH2Row> cmp) throws IgniteCheckedException {
+ GridCursor<GridH2Row> cursor = idx.rows();
GridH2Row min = null;
- while (rows.hasNext()) {
- GridH2Row row = rows.next();
+ while (cursor.next()) {
+ GridH2Row row = cursor.get();
assertNotNull(row);
[20/22] ignite git commit: Merge branch 'ignite-gg-11414' into
ignite-gg-8.0.2.ea2
Posted by ag...@apache.org.
Merge branch 'ignite-gg-11414' into ignite-gg-8.0.2.ea2
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2266e2ac
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2266e2ac
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2266e2ac
Branch: refs/heads/ignite-3477
Commit: 2266e2ac3af446ab36c9d646d2b8abde719295e9
Parents: 6c6cbd3 e03a980
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Wed Jan 11 14:39:56 2017 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Wed Jan 11 14:39:56 2017 +0300
----------------------------------------------------------------------
.../configuration/CacheConfiguration.java | 30 ---
.../cache/IgniteCacheOffheapManagerImpl.java | 6 +-
.../cache/database/tree/BPlusTree.java | 19 +-
.../util/GridCursorIteratorWrapper.java | 36 ++++
.../apache/ignite/internal/util/IgniteTree.java | 70 +++++++
.../offheap/unsafe/GridOffHeapSnapTreeMap.java | 11 +-
.../internal/util/snaptree/SnapTreeMap.java | 10 +-
.../processors/database/BPlusTreeSelfTest.java | 33 ++++
.../query/h2/opt/GridH2SpatialIndex.java | 24 ++-
.../internal/processors/query/h2/H2Cursor.java | 105 ++++++++++
.../processors/query/h2/IgniteH2Indexing.java | 42 +---
.../query/h2/database/H2PkHashIndex.java | 37 ++--
.../query/h2/database/H2TreeIndex.java | 133 +++++--------
.../query/h2/opt/GridH2IndexBase.java | 182 ++++++++++++-----
.../processors/query/h2/opt/GridH2Table.java | 4 +-
.../query/h2/opt/GridH2TreeIndex.java | 195 ++++++++++++-------
.../cache/IgniteCacheAbstractQuerySelfTest.java | 2 +-
.../query/IgniteSqlDistributedJoinSelfTest.java | 179 +++++++++++++++++
.../query/IgniteSqlSplitterSelfTest.java | 6 +-
.../query/h2/opt/GridH2TableSelfTest.java | 29 +--
.../query/h2/sql/GridQueryParsingTest.java | 2 +-
.../IgniteCacheQuerySelfTestSuite.java | 15 --
.../IgniteCacheQuerySelfTestSuite3.java | 2 +
.../IgniteDistributedJoinTestSuite.java | 38 ++++
24 files changed, 862 insertions(+), 348 deletions(-)
----------------------------------------------------------------------
[06/22] ignite git commit: gg-11414: refactoring after core review
Posted by ag...@apache.org.
gg-11414: refactoring after core review
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0712a813
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0712a813
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0712a813
Branch: refs/heads/ignite-3477
Commit: 0712a8139c3fd17f6d089ce3ace9bb221e488616
Parents: ccc1956
Author: Sergey Sidorov <ss...@gridgain.com>
Authored: Fri Nov 25 13:41:02 2016 +0300
Committer: Sergey Sidorov <ss...@gridgain.com>
Committed: Fri Nov 25 17:26:55 2016 +0300
----------------------------------------------------------------------
.../cache/IgniteCacheOffheapManagerImpl.java | 2 +-
.../cache/database/tree/BPlusTree.java | 50 ++----------
.../apache/ignite/internal/util/IgniteTree.java | 24 +-----
.../offheap/unsafe/GridOffHeapSnapTreeMap.java | 82 +-------------------
.../internal/util/snaptree/SnapTreeMap.java | 76 +-----------------
.../processors/database/BPlusTreeSelfTest.java | 6 +-
.../query/h2/opt/GridH2SpatialIndex.java | 24 ++++--
.../internal/processors/query/h2/H2Cursor.java | 4 +
.../query/h2/database/H2TreeIndex.java | 6 +-
.../query/h2/opt/GridH2IndexBase.java | 6 +-
.../query/h2/opt/GridH2TreeIndex.java | 59 +++++++-------
11 files changed, 66 insertions(+), 273 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0712a813/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
index 861bb11..66896d2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
@@ -897,7 +897,7 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
/** {@inheritDoc} */
@Override public GridCursor<? extends CacheDataRow> cursor() throws IgniteCheckedException {
- return dataTree.findAll();
+ return dataTree.find(null, null);
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/0712a813/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
index d60246e..57d420d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
@@ -727,7 +727,7 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
* @return Cursor.
* @throws IgniteCheckedException If failed.
*/
- public final GridCursor<T> find(L lower, L upper) throws IgniteCheckedException {
+ @Override public final GridCursor<T> find(L lower, L upper) throws IgniteCheckedException {
checkDestroyed();
try {
@@ -751,34 +751,12 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
}
}
- public GridCursor<T> find(L lower, boolean lowerInclusive,
- L upper, boolean upperInclusive) throws IgniteCheckedException {
- if (lower == null || upper == null)
- throw new NullPointerException();
-
- ForwardCursor cursor = new ForwardCursor(lower, upper);
-
- if (!lowerInclusive)
- cursor.lowerShift = 1;
-
- if (!upperInclusive)
- cursor.upperShift = -1;
-
- cursor.find();
-
- return cursor;
- }
-
- public GridCursor<T> findAll() throws IgniteCheckedException {
- return find(null, null);
- }
-
/**
* @param row Lookup row for exact match.
* @return Found row.
*/
@SuppressWarnings("unchecked")
- public final T findOne(L row) throws IgniteCheckedException {
+ @Override public final T findOne(L row) throws IgniteCheckedException {
checkDestroyed();
try {
@@ -1270,14 +1248,10 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
* @return Removed row.
* @throws IgniteCheckedException If failed.
*/
- public final T remove(L row) throws IgniteCheckedException {
+ @Override public final T remove(L row) throws IgniteCheckedException {
return doRemove(row, false, null);
}
- @Override public T removeNode(L key) throws IgniteCheckedException {
- return doRemove(key, false, null);
- }
-
/**
* @param row Lookup row.
* @param ceil If we can remove ceil row when we can not find exact.
@@ -1490,7 +1464,7 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
* @return Size.
* @throws IgniteCheckedException If failed.
*/
- public final long size() throws IgniteCheckedException {
+ @Override public final long size() throws IgniteCheckedException {
checkDestroyed();
long pageId;
@@ -1530,14 +1504,7 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
/**
* {@inheritDoc}
*/
- public final long treeSize() throws IgniteCheckedException {
- return size();
- }
-
- /**
- * {@inheritDoc}
- */
- public final T put(T row) throws IgniteCheckedException {
+ @Override public final T put(T row) throws IgniteCheckedException {
return put(row, null);
}
@@ -3476,9 +3443,6 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
/** */
private final L upperBound;
- /** */
- private int upperShift = 1; // Initially it is -1 to handle multiple equal rows.
-
/**
* @param lowerBound Lower bound.
* @param upperBound Upper bound.
@@ -3550,8 +3514,8 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
// Compare with the last row on the page.
int cmp = compare(io, buf, cnt - 1, upperBound);
- if (cmp > 0 || (cmp == 0 && upperShift == -1)) {
- int idx = findInsertionPoint(io, buf, low, cnt, upperBound, upperShift);
+ if (cmp > 0) {
+ int idx = findInsertionPoint(io, buf, low, cnt, upperBound, 1);
assert idx < 0;
http://git-wip-us.apache.org/repos/asf/ignite/blob/0712a813/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
index 512792b..0c08cd9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteTree.java
@@ -45,19 +45,6 @@ public interface IgniteTree<L, T> {
T findOne(L key) throws IgniteCheckedException;
/**
- * Returns a cursor from lower to upper bounds.
- *
- * @param lower Lower bound or {@code null} if unbounded.
- * @param lowerInclusive {@code true} if the low bound
- * is to be included in the returned view
- * @param upper Upper bound or {@code null} if unbounded.
- * @param upperInclusive {@code true} if the upper bound
- * is to be included in the returned view
- * @return Cursor.
- */
- GridCursor<T> find(L lower, boolean lowerInclusive, L upper, boolean upperInclusive) throws IgniteCheckedException;
-
- /**
* Returns a cursor from lower to upper bounds inclusive.
*
* @param lower Lower bound or {@code null} if unbounded.
@@ -67,24 +54,17 @@ public interface IgniteTree<L, T> {
GridCursor<T> find(L lower, L upper) throws IgniteCheckedException;
/**
- * Returns a cursor over all values.
- * @return Cursor.
- * @throws IgniteCheckedException
- */
- GridCursor<T> findAll() throws IgniteCheckedException;
-
- /**
* Removes the mapping for a key from this tree if it is present.
*
* @param key key whose mapping is to be removed from the tree
* @return the previous value associated with key, or null if there was no mapping for key.
*/
- T removeNode(L key) throws IgniteCheckedException;
+ T remove(L key) throws IgniteCheckedException;
/**
* Returns the number of elements in this tree.
*
* @return the number of elements in this tree
*/
- long treeSize() throws IgniteCheckedException;
+ long size() throws IgniteCheckedException;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/0712a813/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
index ab175de..6a97f9e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
@@ -112,7 +112,7 @@ import org.jsr166.ConcurrentHashMap8;
@SuppressWarnings("ALL")
public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer, V extends GridOffHeapSmartPointer>
extends AbstractMap<K, V>
- implements ConcurrentNavigableMap<K, V>, Cloneable, AutoCloseable, GridReservable, IgniteTree<K, V> {
+ implements ConcurrentNavigableMap<K, V>, Cloneable, AutoCloseable, GridReservable {
/** This is a special value that indicates that an optimistic read failed. */
private static final GridOffHeapSmartPointer SpecialRetry = new GridOffHeapSmartPointer() {
@Override public long pointer() {
@@ -3825,52 +3825,10 @@ public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer, V extends
return new SubMap(this, null, null, false, null, null, false, true);
}
- //////////////// IgniteTree
-
- @Override public V put(V value) throws IgniteCheckedException {
- return put((K)value, value);
- }
-
- @Override public V findOne(K key) throws IgniteCheckedException {
- return get(key);
- }
-
- @Override public GridCursor<V> findAll() throws IgniteCheckedException {
- return find(null, null);
- }
-
- @Override public GridCursor<V> find(K lower, K upper) throws IgniteCheckedException {
- return find(lower, true, upper, true);
- }
-
- @Override public GridCursor<V> find(K lower, boolean lowerInclusive, K upper, boolean upperInclusive)
- throws IgniteCheckedException {
- if (lower == null || upper == null)
- throw new NullPointerException();
-
- final Comparable<? super K> fromCmp = comparable(lower);
-
- if (fromCmp.compareTo(upper) > 0) {
- throw new IllegalArgumentException();
- }
-
- SubMap subMap = new SubMap(this, lower, fromCmp, lowerInclusive, upper, comparable(upper), upperInclusive, false);
-
- return new GridCursorIteratorWrapper<>(subMap.values().iterator());
- }
-
- @Override public V removeNode(K key) throws IgniteCheckedException {
- return remove(key);
- }
-
- @Override public long treeSize() throws IgniteCheckedException {
- return size();
- }
-
/**
* Submap.
*/
- private class SubMap extends AbstractMap<K, V> implements ConcurrentNavigableMap<K, V>, IgniteTree<K, V> {
+ private class SubMap extends AbstractMap<K, V> implements ConcurrentNavigableMap<K, V> {
/** */
private final GridOffHeapSnapTreeMap<K,V> m;
@@ -4476,42 +4434,6 @@ public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer, V extends
@Override public NavigableSet<K> descendingKeySet() {
return descendingMap().navigableKeySet();
}
-
- /////////// IgniteTree
-
- @Override public V put(V value) throws IgniteCheckedException {
- return put((K)value, value);
- }
-
- @Override public V findOne(K key) throws IgniteCheckedException {
- return get(key);
- }
-
- @Override public GridCursor<V> findAll() throws IgniteCheckedException {
- return find(null, null);
- }
-
- @Override public GridCursor<V> find(K lower, K upper) throws IgniteCheckedException {
- return find(lower, true, upper, true);
- }
-
- @Override public GridCursor<V> find(K lower, boolean lowerInclusive, K upper, boolean upperInclusive)
- throws IgniteCheckedException {
- if (lower == null || upper == null)
- throw new NullPointerException();
-
- SubMap subMap = subMap(lower, lowerInclusive, upper, upperInclusive);
-
- return new GridCursorIteratorWrapper(subMap.values().iterator());
- }
-
- @Override public V removeNode(K key) throws IgniteCheckedException {
- return remove(key);
- }
-
- @Override public long treeSize() throws IgniteCheckedException {
- return size();
- }
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/0712a813/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java b/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
index 79c110d..dce2fb8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/snaptree/SnapTreeMap.java
@@ -107,7 +107,7 @@ import java.util.concurrent.ConcurrentNavigableMap;
*/
@SuppressWarnings("ALL")
public class SnapTreeMap<K, V> extends AbstractMap<K, V> implements ConcurrentNavigableMap<K, V>, Cloneable,
- Serializable, IgniteTree<K, V> {
+ Serializable {
/** */
private static final long serialVersionUID = 0L;
@@ -2347,43 +2347,7 @@ public class SnapTreeMap<K, V> extends AbstractMap<K, V> implements ConcurrentNa
return new SubMap(this, null, null, false, null, null, false, true);
}
- //////////////// IgniteTree
-
- @Override public GridCursor<V> find(K lower, boolean lowerInclusive,
- K upper, boolean upperInclusive) throws IgniteCheckedException {
- if (lower == null || upper == null)
- throw new NullPointerException();
-
- return new GridCursorIteratorWrapper<>(subMap(lower, lowerInclusive, upper, upperInclusive)
- .values().iterator());
- }
-
- public GridCursor<V> find(K lower, K upper) throws IgniteCheckedException {
- return find(lower, true, upper, true);
- }
-
- public GridCursor<V> findAll() throws IgniteCheckedException {
- return find(null, null);
- }
-
- @Override public V findOne(K key) throws IgniteCheckedException {
- return get(key);
- }
-
- @Override public long treeSize() throws IgniteCheckedException {
- return size();
- }
-
- @Override public V put(V value) throws IgniteCheckedException {
- return put((K)value, value);
- }
-
- @Override public V removeNode(K key) throws IgniteCheckedException {
- return remove(key);
- }
-
- private static class SubMap<K, V> extends AbstractMap<K, V> implements ConcurrentNavigableMap<K, V>, Serializable,
- IgniteTree<K, V> {
+ private static class SubMap<K, V> extends AbstractMap<K, V> implements ConcurrentNavigableMap<K, V>, Serializable {
/** */
private static final long serialVersionUID = 0L;
@@ -2905,42 +2869,6 @@ public class SnapTreeMap<K, V> extends AbstractMap<K, V> implements ConcurrentNa
minCmp = minKey == null ? null : m.comparable(minKey);
maxCmp = maxKey == null ? null : m.comparable(maxKey);
}
-
- /////// IgniteTree
-
- @Override public V findOne(K key) throws IgniteCheckedException {
- return get(key);
- }
-
- @Override public GridCursor<V> find(K lower, boolean lowerInclusive,
- K upper, boolean upperInclusive) throws IgniteCheckedException {
-
- if (lower == null || upper == null)
- throw new NullPointerException();
-
- return new GridCursorIteratorWrapper<>(subMap(lower, lowerInclusive, upper, upperInclusive)
- .values().iterator());
- }
-
- public GridCursor<V> find(K lower, K upper) throws IgniteCheckedException {
- return find(lower, true, upper, true);
- }
-
- public GridCursor<V> findAll() throws IgniteCheckedException {
- return find(null, null);
- }
-
- @Override public long treeSize() throws IgniteCheckedException {
- return size();
- }
-
- @Override public V put(V value) throws IgniteCheckedException {
- return put((K)value, value);
- }
-
- @Override public V removeNode(K key) throws IgniteCheckedException {
- return remove(key);
- }
}
//////// Serialization
http://git-wip-us.apache.org/repos/asf/ignite/blob/0712a813/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java
index 88edaf1..4dcb7a9 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java
@@ -184,12 +184,8 @@ public class BPlusTreeSelfTest extends GridCommonAbstractTest {
map.put(i, i);
}
- checkCursor(tree.findAll(), map.values().iterator());
+ checkCursor(tree.find(null, null), map.values().iterator());
checkCursor(tree.find(10L, 70L), map.subMap(10L, true, 70L, true).values().iterator());
- checkCursor(tree.find(10L, true, 50L, false), map.subMap(10L, true, 50L, false).values().iterator());
- checkCursor(tree.find(10L, false, 50L, true), map.subMap(10L, false, 50L, true).values().iterator());
- checkCursor(tree.find(10L, false, 50L, false), map.subMap(10L, false, 50L, false).values().iterator());
- checkCursor(tree.find(10L, true, 50L, true), map.subMap(10L, true, 50L, true).values().iterator());
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/0712a813/modules/geospatial/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2SpatialIndex.java
----------------------------------------------------------------------
diff --git a/modules/geospatial/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2SpatialIndex.java b/modules/geospatial/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2SpatialIndex.java
index ed91800..b6060b4 100644
--- a/modules/geospatial/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2SpatialIndex.java
+++ b/modules/geospatial/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2SpatialIndex.java
@@ -28,6 +28,11 @@ import java.util.Map;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
+
+import org.apache.ignite.*;
+import org.apache.ignite.internal.processors.query.h2.*;
+import org.apache.ignite.internal.util.*;
+import org.apache.ignite.internal.util.lang.*;
import org.h2.engine.Session;
import org.h2.index.Cursor;
import org.h2.index.IndexType;
@@ -119,7 +124,7 @@ public class GridH2SpatialIndex extends GridH2IndexBase implements SpatialIndex
}
/** {@inheritDoc} */
- @Nullable @Override protected Object doTakeSnapshot() {
+ @Nullable @Override protected IgniteTree doTakeSnapshot() {
return null; // TODO We do not support snapshots, but probably this is possible.
}
@@ -258,7 +263,7 @@ public class GridH2SpatialIndex extends GridH2IndexBase implements SpatialIndex
try {
checkClosed();
- return new GridH2Cursor(rowIterator(treeMap.keySet().iterator(), filter));
+ return new H2Cursor(rowIterator(treeMap.keySet().iterator(), filter));
}
finally {
l.unlock();
@@ -280,9 +285,9 @@ public class GridH2SpatialIndex extends GridH2IndexBase implements SpatialIndex
* @param filter Table filter.
* @return Iterator over rows.
*/
- private Iterator<GridH2Row> rowIterator(Iterator<SpatialKey> i, TableFilter filter) {
+ private GridCursor<GridH2Row> rowIterator(Iterator<SpatialKey> i, TableFilter filter) {
if (!i.hasNext())
- return Collections.emptyIterator();
+ return EMPTY_CURSOR;
List<GridH2Row> rows = new ArrayList<>();
@@ -295,7 +300,7 @@ public class GridH2SpatialIndex extends GridH2IndexBase implements SpatialIndex
}
while (i.hasNext());
- return filter(rows.iterator(), threadLocalFilter());
+ return filter(new GridCursorIteratorWrapper(rows.iterator()), threadLocalFilter());
}
/** {@inheritDoc} */
@@ -310,9 +315,12 @@ public class GridH2SpatialIndex extends GridH2IndexBase implements SpatialIndex
if (!first)
throw DbException.throwInternalError("Spatial Index can only be fetch by ascending order");
- Iterator<GridH2Row> iter = rowIterator(treeMap.keySet().iterator(), null);
+ GridCursor<GridH2Row> iter = rowIterator(treeMap.keySet().iterator(), null);
- return new SingleRowCursor(iter.hasNext() ? iter.next() : null);
+ return new SingleRowCursor(iter.next() ? iter.get() : null);
+ }
+ catch (IgniteCheckedException e) {
+ throw DbException.convert(e);
}
finally {
l.unlock();
@@ -339,7 +347,7 @@ public class GridH2SpatialIndex extends GridH2IndexBase implements SpatialIndex
if (intersection == null)
return find(filter.getSession(), null, null);
- return new GridH2Cursor(rowIterator(treeMap.findIntersectingKeys(getEnvelope(intersection, 0)), filter));
+ return new H2Cursor(rowIterator(treeMap.findIntersectingKeys(getEnvelope(intersection, 0)), filter));
}
finally {
l.unlock();
http://git-wip-us.apache.org/repos/asf/ignite/blob/0712a813/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java
index 95114a2..cc71813 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Cursor.java
@@ -50,6 +50,10 @@ public class H2Cursor implements Cursor {
this.filter = filter;
}
+ public H2Cursor(GridCursor<GridH2Row> cursor) {
+ this(cursor, null);
+ }
+
/** {@inheritDoc} */
@Override public Row get() {
try {
http://git-wip-us.apache.org/repos/asf/ignite/blob/0712a813/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
index b56b1ed..f685f3a 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
@@ -207,10 +207,8 @@ public class H2TreeIndex extends GridH2IndexBase {
}
/** {@inheritDoc} */
- @Nullable @Override protected Object doTakeSnapshot() {
- assert false;
-
- return this;
+ @Nullable @Override protected IgniteTree<SearchRow, GridH2Row> doTakeSnapshot() {
+ return tree;
}
protected IgniteTree<SearchRow, GridH2Row> treeForRead() {
http://git-wip-us.apache.org/repos/asf/ignite/blob/0712a813/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 84d3b6a..56c9edc 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
@@ -276,7 +276,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
*
* @return Snapshot or {@code null}.
*/
- @Nullable protected abstract Object doTakeSnapshot();
+ @Nullable protected abstract IgniteTree doTakeSnapshot();
/**
* @return Thread local snapshot.
@@ -456,12 +456,10 @@ public abstract class GridH2IndexBase extends BaseIndex {
if (msg.bounds() != null) {
// This is the first request containing all the search rows.
- Object snapshot0 = qctx.getSnapshot(idxId);
+ IgniteTree snapshotTree = qctx.getSnapshot(idxId);
assert !msg.bounds().isEmpty() : "empty bounds";
- IgniteTree snapshotTree = (IgniteTree)snapshot0;
-
src = new RangeSource(msg.bounds(), snapshotTree, qctx.filter());
}
else {
http://git-wip-us.apache.org/repos/asf/ignite/blob/0712a813/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 f442e4e..d1f2d28 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
@@ -17,9 +17,7 @@
package org.apache.ignite.internal.processors.query.h2.opt;
-import java.util.Comparator;
-import java.util.List;
-import java.util.NavigableMap;
+import java.util.*;
import java.util.concurrent.ConcurrentSkipListMap;
import org.apache.ignite.*;
@@ -50,7 +48,7 @@ import org.jetbrains.annotations.Nullable;
@SuppressWarnings("ComparatorNotSerializable")
public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridSearchRowPointer> {
/** */
- private final IgniteTree<GridSearchRowPointer, GridH2Row> tree;
+ private final IgniteNavigableMapTree tree;
/** */
private final boolean snapshotEnabled;
@@ -78,7 +76,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
snapshotEnabled = desc == null || desc.snapshotableIndex();
if (snapshotEnabled) {
- tree = new SnapTreeMap<GridSearchRowPointer, GridH2Row>(this) {
+ tree = new IgniteNavigableMapTree(new SnapTreeMap<GridSearchRowPointer, GridH2Row>(this) {
@Override protected void afterNodeUpdate_nl(Node<GridSearchRowPointer, GridH2Row> node, Object val) {
if (val != null)
node.key = (GridSearchRowPointer)val;
@@ -90,7 +88,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
return super.comparable(key);
}
- };
+ });
}
else {
tree = new IgniteNavigableMapTree(
@@ -114,7 +112,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
snapshotEnabled = true;
- tree = new GridOffHeapSnapTreeMap<GridSearchRowPointer, GridH2Row>(desc, desc, desc.memory(), desc.guard(), this) {
+ tree = new IgniteNavigableMapTree(new GridOffHeapSnapTreeMap<GridSearchRowPointer, GridH2Row>(desc, desc, desc.memory(), desc.guard(), this) {
@Override protected void afterNodeUpdate_nl(long node, GridH2Row val) {
final long oldKey = keyPtr(node);
@@ -135,19 +133,17 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
return super.comparable(key);
}
- };
+ });
}
initDistributedJoinMessaging(tbl);
}
/** {@inheritDoc} */
- @Override protected Object doTakeSnapshot() {
+ @Override protected IgniteTree doTakeSnapshot() {
assert snapshotEnabled;
- return tree instanceof SnapTreeMap ?
- ((SnapTreeMap)tree).clone() :
- ((GridOffHeapSnapTreeMap)tree).clone();
+ return tree.clone();
}
/** {@inheritDoc} */
@@ -167,9 +163,6 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
@Override public void destroy() {
assert threadLocalSnapshot() == null;
- if (tree instanceof AutoCloseable)
- U.closeQuiet((AutoCloseable)tree);
-
super.destroy();
}
@@ -180,7 +173,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
// Fast path if we don't need to perform any filtering.
if (f == null || f.forSpace((getTable()).spaceName()) == null)
try {
- return treeForRead().treeSize();
+ return treeForRead().size();
} catch (IgniteCheckedException e) {
throw DbException.convert(e);
}
@@ -338,7 +331,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
try {
// We take exclusive bounds because it is possible that one search row will be equal to multiple key rows
// in tree and we must return them all.
- return tree.find(first, false, last, false);
+ return tree.find(first, last);
}
catch (IgniteCheckedException e) {
throw DbException.convert(e);
@@ -377,7 +370,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
/** {@inheritDoc} */
@Override public GridH2Row remove(SearchRow row) {
try {
- return tree.removeNode(comparable(row, 0));
+ return tree.remove(comparable(row, 0));
}
catch (IgniteCheckedException e) {
throw DbException.convert(e);
@@ -487,7 +480,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
long i = 0;
try {
- GridCursor<GridH2Row> cursor = tree.findAll();
+ GridCursor<GridH2Row> cursor = tree.find(null, null);
while(cursor.next()) {
GridH2Row row = cursor.get();
@@ -524,33 +517,35 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
return tree.get(key);
}
- @Override public GridCursor<GridH2Row> find(GridSearchRowPointer lower, boolean lowerInclusive,
- GridSearchRowPointer upper, boolean upperInclusive)
+ @Override public GridCursor<GridH2Row> find(GridSearchRowPointer lower, GridSearchRowPointer upper)
throws IgniteCheckedException {
if (lower == null || upper == null)
throw new NullPointerException();
NavigableMap<GridSearchRowPointer, GridH2Row> subMap =
- tree.subMap(lower, lowerInclusive, upper, upperInclusive);
+ tree.subMap(lower, false, upper, false);
return new GridCursorIteratorWrapper<GridH2Row>(subMap.values().iterator());
}
- public GridCursor<GridH2Row> find(GridSearchRowPointer lower, GridSearchRowPointer upper)
- throws IgniteCheckedException {
- return find(lower, true, upper, true);
+ @Override public GridH2Row remove(GridSearchRowPointer key) throws IgniteCheckedException {
+ return tree.remove(key);
}
- public GridCursor<GridH2Row> findAll() throws IgniteCheckedException {
- return find(null, null);
+ @Override public long size() throws IgniteCheckedException {
+ return tree.size();
}
- @Override public GridH2Row removeNode(GridSearchRowPointer key) throws IgniteCheckedException {
- return tree.remove(key);
- }
+ @Override public IgniteNavigableMapTree clone() {
+ AbstractMap copy;
- @Override public long treeSize() throws IgniteCheckedException {
- return tree.size();
+ try {
+ copy = (AbstractMap) super.clone();
+ } catch (final CloneNotSupportedException e) {
+ throw DbException.convert(e);
+ }
+
+ return new IgniteNavigableMapTree((NavigableMap)copy);
}
}
}
\ No newline at end of file
[11/22] ignite git commit: ignite-gg-11414 Add iterator wrapper for
cursor
Posted by ag...@apache.org.
ignite-gg-11414 Add iterator wrapper for cursor
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c1c15a6d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c1c15a6d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c1c15a6d
Branch: refs/heads/ignite-3477
Commit: c1c15a6db0bd84de49c0f828cdeab1aed4bcd863
Parents: 8852c80
Author: Dmitriy Govorukhin <dg...@grigain.com>
Authored: Tue Jan 3 19:59:44 2017 +0300
Committer: Dmitriy Govorukhin <dg...@grigain.com>
Committed: Tue Jan 3 19:59:44 2017 +0300
----------------------------------------------------------------------
.../util/GridCursorIteratorWrapper.java | 8 +
.../ignite/internal/util/lang/GridCursor.java | 1 -
.../query/h2/database/H2PkHashIndex.java | 30 ++--
.../query/h2/database/H2TreeIndex.java | 5 +-
.../query/h2/opt/GridH2IndexBase.java | 163 ++++++++++++++-----
.../query/h2/opt/GridH2TreeIndex.java | 12 +-
.../IgniteDistributedJoinTestSuite.java | 38 +++++
7 files changed, 193 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/c1c15a6d/modules/core/src/main/java/org/apache/ignite/internal/util/GridCursorIteratorWrapper.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridCursorIteratorWrapper.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridCursorIteratorWrapper.java
index bd30ace..927e365 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridCursorIteratorWrapper.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridCursorIteratorWrapper.java
@@ -9,17 +9,25 @@ import java.util.*;
* Wrap {@code Iterator} and adapt it to {@code GridCursor}.
*/
public class GridCursorIteratorWrapper<V> implements GridCursor<V> {
+ /** Iterator. */
private Iterator<V> iter;
+
+ /** Next. */
private V next;
+ /**
+ * @param iter Iterator.
+ */
public GridCursorIteratorWrapper(Iterator<V> iter) {
this.iter = iter;
}
+ /** {@inheritDoc} */
@Override public V get() throws IgniteCheckedException {
return next;
}
+ /** {@inheritDoc} */
@Override public boolean next() throws IgniteCheckedException {
next = iter.hasNext() ? iter.next() : null;
http://git-wip-us.apache.org/repos/asf/ignite/blob/c1c15a6d/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridCursor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridCursor.java b/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridCursor.java
index da85f99..37d3a48 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridCursor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridCursor.java
@@ -18,7 +18,6 @@
package org.apache.ignite.internal.util.lang;
import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.internal.processors.cache.database.*;
/**
* Simple cursor abstraction. Initial state must be "before first".
http://git-wip-us.apache.org/repos/asf/ignite/blob/c1c15a6d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java
index b0647b6..eb34be6 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java
@@ -101,9 +101,8 @@ public class H2PkHashIndex extends GridH2IndexBase {
try {
List<GridCursor<? extends CacheDataRow>> cursors = new ArrayList<>();
- for (IgniteCacheOffheapManager.CacheDataStore store : cctx.offheap().cacheDataStores()) {
+ for (IgniteCacheOffheapManager.CacheDataStore store : cctx.offheap().cacheDataStores())
cursors.add(store.cursor(lowerObj, upperObj));
- }
return new H2Cursor(new CompositeGridCursor<>(cursors.iterator()), p);
}
@@ -123,9 +122,8 @@ public class H2PkHashIndex extends GridH2IndexBase {
for (IgniteCacheOffheapManager.CacheDataStore store : cctx.offheap().cacheDataStores()) {
CacheDataRow found = store.find(row.key);
- if (found != null) {
+ if (found != null)
tbl.rowDescriptor().createRow(row.key(), row.partition(), row.value(), row.version(), 0);
- }
}
return null;
@@ -191,7 +189,7 @@ public class H2PkHashIndex extends GridH2IndexBase {
}
/** {@inheritDoc} */
- @Override public Cursor findFirstOrLast(Session session, boolean b) {
+ @Override public Cursor findFirstOrLast(Session ses, boolean b) {
throw new UnsupportedOperationException();
}
@@ -283,30 +281,30 @@ public class H2PkHashIndex extends GridH2IndexBase {
*/
private static class CompositeGridCursor<T> implements GridCursor<T> {
/** */
- private final Iterator<GridCursor<? extends T>> iterator;
+ private final Iterator<GridCursor<? extends T>> iter;
/** */
- private GridCursor<? extends T> current;
+ private GridCursor<? extends T> curr;
/**
*
*/
- public CompositeGridCursor(Iterator<GridCursor<? extends T>> iterator) {
- this.iterator = iterator;
+ public CompositeGridCursor(Iterator<GridCursor<? extends T>> iter) {
+ this.iter = iter;
- if (iterator.hasNext())
- current = iterator.next();
+ if (iter.hasNext())
+ curr = iter.next();
}
/** {@inheritDoc} */
@Override public boolean next() throws IgniteCheckedException {
- if (current.next())
+ if (curr.next())
return true;
- while (iterator.hasNext()) {
- current = iterator.next();
+ while (iter.hasNext()) {
+ curr = iter.next();
- if (current.next())
+ if (curr.next())
return true;
}
@@ -315,7 +313,7 @@ public class H2PkHashIndex extends GridH2IndexBase {
/** {@inheritDoc} */
@Override public T get() throws IgniteCheckedException {
- return current.get();
+ return curr.get();
}
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/c1c15a6d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
index c1eb986..31df27c 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
@@ -219,11 +219,14 @@ public class H2TreeIndex extends GridH2IndexBase {
return tree;
}
+ /** {@inheritDoc} */
protected IgniteTree<SearchRow, GridH2Row> treeForRead() {
return tree;
}
- protected GridCursor<GridH2Row> doFind0(IgniteTree t,
+ /** {@inheritDoc} */
+ protected GridCursor<GridH2Row> doFind0(
+ IgniteTree t,
@Nullable SearchRow first,
boolean includeFirst,
@Nullable SearchRow last,
http://git-wip-us.apache.org/repos/asf/ignite/blob/c1c15a6d/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 bd569df..c5e836a 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
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.processors.query.h2.opt;
import java.util.*;
import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.ConcurrentNavigableMap;
import java.util.concurrent.Future;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
@@ -487,6 +486,8 @@ public abstract class GridH2IndexBase extends BaseIndex {
maxRows -= range.rows().size();
}
+ assert !ranges.isEmpty();
+
if (src.hasMoreRows()) {
// Save source for future fetches.
if (msg.bounds() != null)
@@ -497,8 +498,6 @@ public abstract class GridH2IndexBase extends BaseIndex {
qctx.putSource(node.id(), msg.batchLookupId(), null);
}
- assert !ranges.isEmpty();
-
res.ranges(ranges);
res.status(STATUS_OK);
}
@@ -1359,14 +1358,14 @@ public abstract class GridH2IndexBase extends BaseIndex {
int curRangeId = -1;
/** */
- GridCursor<GridH2Row> curRange = EMPTY_CURSOR;
-
- /** */
final IgniteTree tree;
/** */
final IndexingQueryFilter filter;
+ /** Iterator. */
+ Iterator<GridH2Row> iter = emptyIterator();
+
/**
* @param bounds Bounds.
* @param tree Snapshot.
@@ -1386,7 +1385,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
* @return {@code true} If there are more rows in this source.
*/
public boolean hasMoreRows() throws IgniteCheckedException {
- return boundsIter.hasNext() || curRange.next();
+ return boundsIter.hasNext() || iter.hasNext();
}
/**
@@ -1396,60 +1395,56 @@ public abstract class GridH2IndexBase extends BaseIndex {
public GridH2RowRange next(int maxRows) {
assert maxRows > 0 : maxRows;
- try {
- for (;;) {
- if (curRange.next()) {
- // Here we are getting last rows from previously partially fetched range.
- List<GridH2RowMessage> rows = new ArrayList<>();
+ for (; ; ) {
+ if (iter.hasNext()) {
+ // Here we are getting last rows from previously partially fetched range.
+ List<GridH2RowMessage> rows = new ArrayList<>();
- GridH2RowRange nextRange = new GridH2RowRange();
+ GridH2RowRange nextRange = new GridH2RowRange();
- nextRange.rangeId(curRangeId);
- nextRange.rows(rows);
+ nextRange.rangeId(curRangeId);
+ nextRange.rows(rows);
- do {
- rows.add(toRowMessage(curRange.get()));
- }
- while (rows.size() < maxRows && curRange.next());
+ do {
+ rows.add(toRowMessage(iter.next()));
+ }
+ while (rows.size() < maxRows && iter.hasNext());
- if (curRange.next())
- nextRange.setPartial();
- else
- curRange = EMPTY_CURSOR;
+ if (iter.hasNext())
+ nextRange.setPartial();
+ else
+ iter = emptyIterator();
- return nextRange;
- }
+ return nextRange;
+ }
- curRange = EMPTY_CURSOR;
+ iter = emptyIterator();
- if (!boundsIter.hasNext()) {
- boundsIter = emptyIterator();
+ if (!boundsIter.hasNext()) {
+ boundsIter = emptyIterator();
- return null;
- }
+ return null;
+ }
- GridH2RowRangeBounds bounds = boundsIter.next();
+ GridH2RowRangeBounds bounds = boundsIter.next();
- curRangeId = bounds.rangeId();
+ curRangeId = bounds.rangeId();
- SearchRow first = toSearchRow(bounds.first());
- SearchRow last = toSearchRow(bounds.last());
+ SearchRow first = toSearchRow(bounds.first());
+ SearchRow last = toSearchRow(bounds.last());
- IgniteTree t = tree != null ? tree : treeForRead();
+ IgniteTree t = tree != null ? tree : treeForRead();
- curRange = doFind0(t, first, true, last, filter);
+ iter = new CursorIteratorWrapper(doFind0(t, first, true, last, filter));
- if (!curRange.next()) {
- // We have to return empty range here.
- GridH2RowRange emptyRange = new GridH2RowRange();
+ if (!iter.hasNext()) {
+ // We have to return empty range here.
+ GridH2RowRange emptyRange = new GridH2RowRange();
- emptyRange.rangeId(curRangeId);
+ emptyRange.rangeId(curRangeId);
- return emptyRange;
- }
+ return emptyRange;
}
- } catch (IgniteCheckedException e) {
- throw DbException.convert(e);
}
}
}
@@ -1469,7 +1464,8 @@ public abstract class GridH2IndexBase extends BaseIndex {
* @param filter Filter.
* @return Iterator over rows in given range.
*/
- protected GridCursor<GridH2Row> doFind0(IgniteTree t,
+ protected GridCursor<GridH2Row> doFind0(
+ IgniteTree t,
@Nullable SearchRow first,
boolean includeFirst,
@Nullable SearchRow last,
@@ -1492,6 +1488,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
/** Is value required for filtering predicate? */
private final boolean isValRequired;
+ /** */
private GridH2Row next;
/**
@@ -1540,6 +1537,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
return fltr.apply(key, val);
}
+ /** {@inheritDoc} */
@Override public boolean next() throws IgniteCheckedException {
next = null;
@@ -1555,6 +1553,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
return false;
}
+ /** {@inheritDoc} */
@Override public GridH2Row get() throws IgniteCheckedException {
if (next == null)
throw new NoSuchElementException();
@@ -1563,6 +1562,80 @@ public abstract class GridH2IndexBase extends BaseIndex {
}
}
+ /**
+ *
+ */
+ private static final class CursorIteratorWrapper implements Iterator<GridH2Row> {
+ /** */
+ private final GridCursor<GridH2Row> cursor;
+
+ /** First next. */
+ private GridH2Row firstNext;
+
+ /** Second next. */
+ private GridH2Row secondNext;
+
+ /**
+ * @param cursor Cursor.
+ */
+ private CursorIteratorWrapper(GridCursor<GridH2Row> cursor) {
+ this.cursor = cursor;
+
+ fetch();
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean hasNext() {
+ return firstNext != null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public GridH2Row next() {
+ try {
+ if (firstNext != null) {
+ GridH2Row res = firstNext;
+
+ firstNext = secondNext;
+
+ if (cursor.next())
+ secondNext = cursor.get();
+ else
+ secondNext = null;
+ return res;
+ }
+ else
+ return null;
+ }
+ catch (Exception e) {
+ return null;
+ }
+ }
+
+ /**
+ *
+ */
+ private void fetch() {
+ try {
+ if (firstNext == null && secondNext == null) {
+ if (cursor.next()) {
+ firstNext = cursor.get();
+
+ if (cursor.next())
+ secondNext = cursor.get();
+ }
+ }
+ }
+ catch (IgniteCheckedException ignored) {
+
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override public void remove() {
+ throw new UnsupportedOperationException("operation is not supported");
+ }
+ }
+
/** Empty cursor. */
protected static final GridCursor<GridH2Row> EMPTY_CURSOR = new GridCursor<GridH2Row>() {
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/c1c15a6d/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 002b432..014cf2e 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
@@ -503,20 +503,27 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
* Adapter from {@link NavigableMap} to {@link IgniteTree}.
*/
private final class IgniteNavigableMapTree implements IgniteTree<GridSearchRowPointer, GridH2Row> {
- private NavigableMap<GridSearchRowPointer, GridH2Row> tree;
+ /** Tree. */
+ private final NavigableMap<GridSearchRowPointer, GridH2Row> tree;
+ /**
+ * @param tree Tree.
+ */
public IgniteNavigableMapTree(NavigableMap<GridSearchRowPointer, GridH2Row> tree) {
this.tree = tree;
}
+ /** {@inheritDoc} */
@Override public GridH2Row put(GridH2Row value) throws IgniteCheckedException {
return tree.put(value, value);
}
+ /** {@inheritDoc} */
@Override public GridH2Row findOne(GridSearchRowPointer key) throws IgniteCheckedException {
return tree.get(key);
}
+ /** {@inheritDoc} */
@Override public GridCursor<GridH2Row> find(GridSearchRowPointer lower, GridSearchRowPointer upper)
throws IgniteCheckedException {
if (lower == null || upper == null)
@@ -528,14 +535,17 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
return new GridCursorIteratorWrapper<GridH2Row>(subMap.values().iterator());
}
+ /** {@inheritDoc} */
@Override public GridH2Row remove(GridSearchRowPointer key) throws IgniteCheckedException {
return tree.remove(key);
}
+ /** {@inheritDoc} */
@Override public long size() throws IgniteCheckedException {
return tree.size();
}
+ /** {@inheritDoc} */
@Override public IgniteNavigableMapTree clone() {
AbstractMap copy;
http://git-wip-us.apache.org/repos/asf/ignite/blob/c1c15a6d/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteDistributedJoinTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteDistributedJoinTestSuite.java b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteDistributedJoinTestSuite.java
new file mode 100644
index 0000000..dca640f
--- /dev/null
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteDistributedJoinTestSuite.java
@@ -0,0 +1,38 @@
+package org.apache.ignite.testsuites;
+
+import junit.framework.TestSuite;
+import org.apache.ignite.internal.processors.cache.IgniteCacheDistributedJoinCollocatedAndNotTest;
+import org.apache.ignite.internal.processors.cache.IgniteCacheDistributedJoinCustomAffinityMapper;
+import org.apache.ignite.internal.processors.cache.IgniteCacheDistributedJoinNoIndexTest;
+import org.apache.ignite.internal.processors.cache.IgniteCacheDistributedJoinPartitionedAndReplicatedTest;
+import org.apache.ignite.internal.processors.cache.IgniteCacheDistributedJoinQueryConditionsTest;
+import org.apache.ignite.internal.processors.cache.IgniteCacheDistributedJoinTest;
+import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheQueryNodeRestartDistributedJoinSelfTest;
+import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheQueryStopOnCancelOrTimeoutDistributedJoinSelfTest;
+import org.apache.ignite.internal.processors.query.IgniteSqlDistributedJoinSelfTest;
+import org.apache.ignite.internal.processors.query.h2.sql.H2CompareBigQueryDistributedJoinsTest;
+
+/**
+ *
+ */
+public class IgniteDistributedJoinTestSuite extends TestSuite {
+ /**
+ *
+ */
+ public static TestSuite suite() {
+ TestSuite suite = new TestSuite("Distributed Joins Test Suite.");
+
+ suite.addTestSuite(H2CompareBigQueryDistributedJoinsTest.class);
+ suite.addTestSuite(IgniteCacheDistributedJoinCollocatedAndNotTest.class);
+ suite.addTestSuite(IgniteCacheDistributedJoinCustomAffinityMapper.class);
+ suite.addTestSuite(IgniteCacheDistributedJoinNoIndexTest.class);
+ suite.addTestSuite(IgniteCacheDistributedJoinPartitionedAndReplicatedTest.class);
+ suite.addTestSuite(IgniteCacheDistributedJoinQueryConditionsTest.class);
+ suite.addTestSuite(IgniteCacheDistributedJoinTest.class);
+ suite.addTestSuite(IgniteCacheQueryNodeRestartDistributedJoinSelfTest.class);
+ suite.addTestSuite(IgniteCacheQueryStopOnCancelOrTimeoutDistributedJoinSelfTest.class);
+ suite.addTestSuite(IgniteSqlDistributedJoinSelfTest.class);
+
+ return suite;
+ }
+}
[21/22] ignite git commit: ignite-gg-8.0.2.ea2 fix
CacheExpiryTest.iteratorNextShouldCallGetExpiryForAccessedEntry TCK test
Posted by ag...@apache.org.
ignite-gg-8.0.2.ea2 fix CacheExpiryTest.iteratorNextShouldCallGetExpiryForAccessedEntry TCK test
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/43eefb0c
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/43eefb0c
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/43eefb0c
Branch: refs/heads/ignite-3477
Commit: 43eefb0c77f448af9b3634414bef0e97cb2d7838
Parents: 2266e2a
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Wed Jan 11 15:30:52 2017 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Wed Jan 11 15:30:52 2017 +0300
----------------------------------------------------------------------
.../cache/query/GridCacheQueryManager.java | 23 ++--
...QueryNodeRestartDistributedJoinSelfTest.java | 104 +++++++++++--------
2 files changed, 78 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/43eefb0c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --git 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
index c584066..081a27c 100644
--- 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
@@ -69,7 +69,6 @@ import org.apache.ignite.internal.processors.cache.IgniteCacheExpiryPolicy;
import org.apache.ignite.internal.processors.cache.IgniteInternalCache;
import org.apache.ignite.internal.processors.cache.KeyCacheObject;
import org.apache.ignite.internal.processors.cache.database.CacheDataRow;
-import org.apache.ignite.internal.processors.cache.database.tree.BPlusTree;
import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter;
import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition;
import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtUnreservedPartitionException;
@@ -2897,6 +2896,9 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
/** */
private GridIterator<CacheDataRow> it;
+ /** Need advance. */
+ private boolean needAdvance;
+
/**
* @param it Iterator.
* @param plc Expiry policy.
@@ -2925,24 +2927,31 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
this.keepBinary = keepBinary;
expiryPlc = cctx.cache().expiryPolicy(plc);
- advance();
+ needAdvance = true;
}
/** {@inheritDoc} */
@Override public boolean onHasNext() {
+ if (needAdvance) {
+ advance();
+
+ needAdvance = false;
+ }
+
return next != null;
}
/** {@inheritDoc} */
@Override public IgniteBiTuple<K, V> onNext() {
+ if (needAdvance)
+ advance();
+ else
+ needAdvance = true;
+
if (next == null)
throw new NoSuchElementException();
- IgniteBiTuple<K, V> next0 = next;
-
- advance();
-
- return next0;
+ return next;
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/43eefb0c/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartDistributedJoinSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartDistributedJoinSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartDistributedJoinSelfTest.java
index ced28bc..d022b0f 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartDistributedJoinSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartDistributedJoinSelfTest.java
@@ -103,72 +103,86 @@ public class IgniteCacheQueryNodeRestartDistributedJoinSelfTest extends IgniteCa
final AtomicInteger qryCnt = new AtomicInteger();
final AtomicBoolean qrysDone = new AtomicBoolean();
+ final AtomicBoolean fail = new AtomicBoolean();
+
IgniteInternalFuture<?> fut1 = multithreadedAsync(new CAX() {
@Override public void applyx() throws IgniteCheckedException {
GridRandom rnd = new GridRandom();
- while (!qrysDone.get()) {
- int g;
+ try {
+ while (!qrysDone.get()) {
+ int g;
- do {
- g = rnd.nextInt(locks.length());
- }
- while (!locks.compareAndSet(g, 0, 1));
+ do {
+ g = rnd.nextInt(locks.length());
- if (rnd.nextBoolean()) {
- IgniteCache<?, ?> cache = grid(g).cache("pu");
+ if (fail.get())
+ return;
+ }
+ while (!locks.compareAndSet(g, 0, 1));
- SqlFieldsQuery qry;
+ if (rnd.nextBoolean()) {
+ IgniteCache<?, ?> cache = grid(g).cache("pu");
- if (broadcastQry)
- qry = new SqlFieldsQuery(QRY_0_BROADCAST).setDistributedJoins(true).setEnforceJoinOrder(true);
- else
- qry = new SqlFieldsQuery(QRY_0).setDistributedJoins(true);
+ SqlFieldsQuery qry;
- boolean smallPageSize = rnd.nextBoolean();
+ if (broadcastQry)
+ qry = new SqlFieldsQuery(QRY_0_BROADCAST).setDistributedJoins(true).setEnforceJoinOrder(true);
+ else
+ qry = new SqlFieldsQuery(QRY_0).setDistributedJoins(true);
- qry.setPageSize(smallPageSize ? 30 : 1000);
+ boolean smallPageSize = rnd.nextBoolean();
- try {
- assertEquals(pRes, cache.query(qry).getAll());
- }
- catch (CacheException e) {
- assertTrue("On large page size must retry.", smallPageSize);
+ qry.setPageSize(smallPageSize ? 30 : 1000);
+
+ try {
+ assertEquals(pRes, cache.query(qry).getAll());
+ }
+ catch (CacheException e) {
+ assertTrue("On large page size must retry.", smallPageSize);
- boolean failedOnRemoteFetch = false;
+ boolean failedOnRemoteFetch = false;
- for (Throwable th = e; th != null; th = th.getCause()) {
- if (!(th instanceof CacheException))
- continue;
+ for (Throwable th = e; th != null; th = th.getCause()) {
+ if (!(th instanceof CacheException))
+ continue;
- if (th.getMessage() != null &&
- th.getMessage().startsWith("Failed to fetch data from node:")) {
- failedOnRemoteFetch = true;
+ if (th.getMessage() != null &&
+ th.getMessage().startsWith("Failed to fetch data from node:")) {
+ failedOnRemoteFetch = true;
- break;
+ break;
+ }
}
- }
- if (!failedOnRemoteFetch) {
- e.printStackTrace();
+ if (!failedOnRemoteFetch) {
+ e.printStackTrace();
- fail("Must fail inside of GridResultPage.fetchNextPage or subclass.");
+ fail("Must fail inside of GridResultPage.fetchNextPage or subclass.");
+ }
}
}
- }
- else {
- IgniteCache<?, ?> cache = grid(g).cache("co");
+ else {
+ IgniteCache<?, ?> cache = grid(g).cache("co");
- assertEquals(rRes, cache.query(qry1).getAll());
- }
+ assertEquals(rRes, cache.query(qry1).getAll());
+ }
- locks.set(g, 0);
+ locks.set(g, 0);
- int c = qryCnt.incrementAndGet();
+ int c = qryCnt.incrementAndGet();
- if (c % logFreq == 0)
- info("Executed queries: " + c);
+ if (c % logFreq == 0)
+ info("Executed queries: " + c);
+ }
+ }catch (Throwable e){
+ e.printStackTrace();
+
+ error("Got exception: " + e.getMessage());
+
+ fail.set(true);
}
+
}
}, qryThreadNum, "query-thread");
@@ -186,6 +200,9 @@ public class IgniteCacheQueryNodeRestartDistributedJoinSelfTest extends IgniteCa
do {
g = rnd.nextInt(locks.length());
+
+ if (fail.get())
+ return null;
}
while (!locks.compareAndSet(g, 0, -1));
@@ -215,7 +232,7 @@ public class IgniteCacheQueryNodeRestartDistributedJoinSelfTest extends IgniteCa
Thread.sleep(duration);
- info("Stopping..");
+ info("Stopping...");
restartsDone.set(true);
qrysDone.set(true);
@@ -223,6 +240,9 @@ public class IgniteCacheQueryNodeRestartDistributedJoinSelfTest extends IgniteCa
fut2.get();
fut1.get();
+ if (fail.get())
+ fail("See message above");
+
info("Stopped.");
}
}
\ No newline at end of file