You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/02/14 13:11:20 UTC
[01/34] ignite git commit: IGNITE-3727: added ability intercept "stop
listener" message, check future status after invoke stopRemoteListen.
Repository: ignite
Updated Branches:
refs/heads/ignite-3727-2 [created] 68f2d38e3
IGNITE-3727: added ability intercept "stop listener" message, check future status after invoke stopRemoteListen.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/4e6605f1
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/4e6605f1
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/4e6605f1
Branch: refs/heads/ignite-3727-2
Commit: 4e6605f1691a43b2ba57da3d4eef98e6dd460a43
Parents: 2d5d5bc
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Tue Aug 30 18:38:13 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Tue Aug 30 18:38:13 2016 +0300
----------------------------------------------------------------------
.../ignite/messaging/GridMessagingSelfTest.java | 101 +++++++++++++++++--
1 file changed, 92 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/4e6605f1/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
index e796eb5..2e2afd4 100644
--- a/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
@@ -24,27 +24,26 @@ import java.io.ObjectOutput;
import java.io.Serializable;
import java.net.URL;
import java.net.URLClassLoader;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentLinkedDeque;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteMessaging;
+
+import org.apache.ignite.*;
import org.apache.ignite.cluster.ClusterGroup;
import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.managers.discovery.*;
+import org.apache.ignite.internal.processors.continuous.*;
import org.apache.ignite.internal.util.GridConcurrentHashSet;
import org.apache.ignite.internal.util.typedef.P2;
import org.apache.ignite.internal.util.typedef.PA;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteFuture;
import org.apache.ignite.resources.IgniteInstanceResource;
+import org.apache.ignite.spi.discovery.*;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
@@ -198,7 +197,7 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
@Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
IgniteConfiguration cfg = super.getConfiguration(gridName);
- TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+ TestTcpDiscoverySpi discoSpi = new TestTcpDiscoverySpi();
discoSpi.setIpFinder(ipFinder);
@@ -944,7 +943,7 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
* @throws Exception If error occurs.
*/
public void testSendMessageWithExternalClassLoader() throws Exception {
- URL[] urls = new URL[] { new URL(GridTestProperties.getProperty("p2p.uri.cls")) };
+ URL[] urls = new URL[] {new URL(GridTestProperties.getProperty("p2p.uri.cls"))};
ClassLoader extLdr = new URLClassLoader(urls);
@@ -1028,6 +1027,8 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
public void testAsync() throws Exception {
final AtomicInteger msgCnt = new AtomicInteger();
+ TestTcpDiscoverySpi discoSpi = (TestTcpDiscoverySpi)ignite2.configuration().getDiscoverySpi();
+
assertFalse(ignite2.message().isAsync());
final IgniteMessaging msg = ignite2.message().withAsync();
@@ -1085,6 +1086,8 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
assertEquals(1, msgCnt.get());
+ discoSpi.blockCustomEvent();
+
msg.stopRemoteListen(id);
IgniteFuture<?> stopFut = msg.future();
@@ -1099,8 +1102,14 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
}
}, IllegalStateException.class, null);
+ Assert.assertFalse(stopFut.isDone());
+
+ discoSpi.stopBlock();
+
stopFut.get();
+ Assert.assertTrue(stopFut.isDone());
+
message(ignite1.cluster().forRemotes()).send(topic, "msg2");
U.sleep(1000);
@@ -1109,6 +1118,80 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
}
/**
+ *
+ */
+ static class TestTcpDiscoverySpi extends TcpDiscoverySpi {
+ /** */
+ private boolean blockCustomEvt;
+
+ /** */
+ private final Object mux = new Object();
+
+ /** */
+ private List<DiscoverySpiCustomMessage> blockedMsgs = new ArrayList<>();
+
+ /** {@inheritDoc} */
+ @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) throws IgniteException {
+ synchronized (mux) {
+ if (blockCustomEvt) {
+ DiscoveryCustomMessage msg0 = GridTestUtils.getFieldValue(msg, "delegate");
+ if (msg0 instanceof StopRoutineDiscoveryMessage) {
+ log.info("Block custom message: " + msg0);
+ blockedMsgs.add(msg);
+
+ mux.notifyAll();
+ }
+ return;
+ }
+ }
+
+ super.sendCustomEvent(msg);
+ }
+
+ /**
+ *
+ */
+ public void blockCustomEvent() {
+ synchronized (mux) {
+ assert blockedMsgs.isEmpty() : blockedMsgs;
+
+ blockCustomEvt = true;
+ }
+ }
+
+ /**
+ * @throws InterruptedException If interrupted.
+ */
+ public void waitCustomEvent() throws InterruptedException {
+ synchronized (mux) {
+ while (blockedMsgs.isEmpty())
+ mux.wait();
+ }
+ }
+
+ /**
+ *
+ */
+ public void stopBlock() {
+ List<DiscoverySpiCustomMessage> msgs;
+
+ synchronized (this) {
+ msgs = new ArrayList<>(blockedMsgs);
+
+ blockCustomEvt = false;
+
+ blockedMsgs.clear();
+ }
+
+ for (DiscoverySpiCustomMessage msg : msgs) {
+ log.info("Resend blocked message: " + msg);
+
+ super.sendCustomEvent(msg);
+ }
+ }
+ }
+
+ /**
* Tests that message listener registers only for one oldest node.
*
* @throws Exception If an error occurred.
[14/34] ignite git commit: IGNITE-3727 send(..) javadoc update
Posted by sb...@apache.org.
IGNITE-3727 send(..) javadoc update
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e3855a35
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e3855a35
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e3855a35
Branch: refs/heads/ignite-3727-2
Commit: e3855a35b71a7f6e5bd96ab3b4572d11d049d6f7
Parents: 14e1a6b
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Fri Sep 9 11:11:00 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Fri Sep 9 11:11:00 2016 +0300
----------------------------------------------------------------------
.../core/src/main/java/org/apache/ignite/IgniteMessaging.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3855a35/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java b/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
index 23b29f3..00a4fc8 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
@@ -77,7 +77,8 @@ public interface IgniteMessaging extends IgniteAsyncSupport {
/**
* Sends given message with specified topic to the nodes in the underlying cluster group.
- * When you invoke method, all listeners who were registered on topic in the local node, will be executing in the same thread.
+ * When you invoke method, all listeners who were registered on topic in the local node, will executing in the same thread
+ * by default, or if you use {@link #withAsync()}, listeners will execute through thread pool, and current thread will not be block.
*
* @param topic Topic to send to, {@code null} for default topic.
* @param msg Message to send.
@@ -88,7 +89,8 @@ public interface IgniteMessaging extends IgniteAsyncSupport {
/**
* Sends given messages with the specified topic to the nodes in the underlying cluster group.
- * When you invoke method, all listeners who were registered on topic in the local node, will be executing in the same thread.
+ * When you invoke method, all listeners who were registered on topic in the local node, will executing in the same thread
+ * by default, or if you use {@link #withAsync()}, listeners will execute through thread pool, and current thread will not be block.
*
* @param topic Topic to send to, {@code null} for default topic.
* @param msgs Messages to send. Order of the sending is undefined. If the method produces
[07/34] ignite git commit: IGNITE-2539 issues reproduce test
Posted by sb...@apache.org.
IGNITE-2539 issues reproduce test
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/6485ae58
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/6485ae58
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/6485ae58
Branch: refs/heads/ignite-3727-2
Commit: 6485ae58c1f6dafdbfcf4de4f258f1386affa723
Parents: 784958b
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Thu Sep 8 14:55:09 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Thu Sep 8 14:55:09 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/util/IgniteUtils.java | 41 ++++
.../IssuesIGNITE2539ReproduceTest.java | 227 +++++++++++++++++++
2 files changed, 268 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/6485ae58/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index e3389d5..9fd4122 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -1244,6 +1244,47 @@ public abstract class IgniteUtils {
}
/**
+ * Performs thread dump and return all available info.
+ */
+ public static GridStringBuilder dumpThreads() {
+ ThreadMXBean mxBean = ManagementFactory.getThreadMXBean();
+
+ GridStringBuilder sb = new GridStringBuilder("Thread dump at ")
+ .a(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss z").format(new Date(U.currentTimeMillis()))).a(NL);
+
+ final Set<Long> deadlockedThreadsIds = getDeadlockedThreadIds(mxBean);
+
+ sb.a(NL);
+
+ if (deadlockedThreadsIds.isEmpty())
+ sb.a("No deadlocked threads detected.");
+ else
+ sb.a("Deadlocked threads detected (see thread dump below) " +
+ "[deadlockedThreadsCnt=" + deadlockedThreadsIds.size() + ']');
+
+ sb.a(NL);
+
+ ThreadInfo[] threadInfos =
+ mxBean.dumpAllThreads(mxBean.isObjectMonitorUsageSupported(), mxBean.isSynchronizerUsageSupported());
+
+ for (ThreadInfo info : threadInfos) {
+ printThreadInfo(info, sb, deadlockedThreadsIds);
+
+ sb.a(NL);
+
+ if (info.getLockedSynchronizers() != null && info.getLockedSynchronizers().length > 0) {
+ printSynchronizersInfo(info.getLockedSynchronizers(), sb);
+
+ sb.a(NL);
+ }
+ }
+
+ sb.a(NL);
+
+ return sb;
+ }
+
+ /**
* Get deadlocks from the thread bean.
* @param mxBean the bean
* @return the set of deadlocked threads (may be empty Set, but never null).
http://git-wip-us.apache.org/repos/asf/ignite/blob/6485ae58/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java b/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java
new file mode 100644
index 0000000..c39ebf0
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java
@@ -0,0 +1,227 @@
+package org.apache.ignite.cache.affinity.bugreproduce;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cache.*;
+import org.apache.ignite.cache.affinity.*;
+import org.apache.ignite.cache.affinity.rendezvous.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.util.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.testframework.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+/**
+ * Created by dgovorukhin on 01.09.2016.
+ */
+public class IssuesIGNITE2539ReproduceTest extends GridCommonAbstractTest {
+ /** */
+ protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+ /** */
+ private static final int ITERATIONS = 10;
+
+ /** partitioned cache name. */
+ private static final String CACHE_NAME_DHT_PARTITIONED = "cacheP";
+
+ /** replicated cache name. */
+ private static final String CACHE_NAME_DHT_REPLICATED = "cacheR";
+
+ /** Ignite. */
+ private static Ignite ignite1;
+
+ /** Ignite. */
+ private static Ignite ignite2;
+
+ /** Ignite. */
+ private static Ignite ignite3;
+
+ private static final AtomicReference<Throwable> exc = new AtomicReference<>();
+
+ private static final AtomicReference<GridStringBuilder> dump = new AtomicReference<>();
+
+ private static final AtomicReference<Thread> thr = new AtomicReference<>();
+
+ /**
+ * @return Affinity function to test.
+ */
+ private AffinityFunction affinityFunction() {
+ return new RendezvousAffinityFunction();
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void beforeTestsStarted() throws Exception {
+ ignite1 = startGrid(0);
+ ignite2 = startGrid(1);
+ ignite3 = startGrid(2);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTestsStopped() throws Exception {
+ stopAllGrids();
+ }
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration iCfg = super.getConfiguration(gridName);
+
+ ((TcpDiscoverySpi)iCfg.getDiscoverySpi()).setIpFinder(ipFinder);
+ iCfg.setRebalanceThreadPoolSize(2);
+
+ return iCfg;
+ }
+
+ /**
+ *
+ */
+ public void testCacheStopping() throws Exception {
+
+ final int delta = 5;
+
+ for (Thread worker : getExchangeWorkerThread()) {
+ worker.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
+ @Override public void uncaughtException(Thread t, Throwable e) {
+ dump.compareAndSet(null, U.dumpThreads());
+ exc.compareAndSet(null, e);
+ thr.compareAndSet(null, t);
+ }
+ });
+ }
+
+ GridTestUtils.runAsync(new Callable<Void>() {
+ @Override public Void call() throws Exception {
+
+ for (int start = 0; Ignition.allGrids().contains(ignite1); start += delta) {
+ fillWithCache(ignite2, delta, start, affinityFunction());
+
+ for (String victim : ignite2.cacheNames())
+ ignite2.getOrCreateCache(victim).put(start, delta);
+
+ for (String victim : ignite1.cacheNames())
+ ignite1.destroyCache(victim);
+ }
+ return null;
+ }
+ }, "CacheSerialKiller");
+
+ for (int i = delta; i < ITERATIONS + delta; i++)
+ startGrid(i);
+
+ U.sleep(500);
+
+ for (int i = delta; i < ITERATIONS + delta; i++)
+ stopGrid(i);
+
+ if (exc.get() != null) {
+ log.info(thr.get().getName());
+
+ Throwable e = exc.get();
+ log.error(e.getMessage(), e);
+
+ log.info(dump.toString());
+
+ exc.set(null);
+ dump.set(null);
+ thr.set(null);
+
+ fail("see all log");
+ }
+ }
+
+ /**
+ *
+ */
+ public void testCacheStopping2() throws Exception {
+
+ final int delta = 5;
+
+ int itr = 20;
+
+ for (int j = 0; j < itr; j++) {
+
+ AtomicReference<Throwable> exc = new AtomicReference<>();
+
+ AtomicBoolean asyncRun = new AtomicBoolean(true);
+
+ for (Thread worker : getExchangeWorkerThread()) {
+ worker.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
+ @Override public void uncaughtException(Thread t, Throwable e) {
+ exc.set(e);
+ }
+ });
+ }
+
+ Thread thread = new Thread(new Runnable() {
+ @Override public void run() {
+ for (int start = 0; asyncRun.get(); start += delta) {
+ fillWithCache(ignite2, delta, start, affinityFunction());
+
+ for (String victim : ignite2.cacheNames())
+ ignite2.getOrCreateCache(victim).put(start, delta);
+
+ for (String victim : ignite1.cacheNames())
+ ignite1.destroyCache(victim);
+ }
+ }
+ });
+ thread.start();
+
+ for (int i = delta; i < ITERATIONS + delta; i++)
+ startGrid(i);
+
+ U.sleep(500);
+
+ for (int i = delta; i < ITERATIONS + delta; i++)
+ stopGrid(i);
+
+ asyncRun.set(false);
+
+ thread.join();
+
+ if (exc.get() != null)
+ fail(exc.get().getMessage());
+
+ }
+ }
+
+ /**
+ *
+ */
+ private Iterable<Thread> getExchangeWorkerThread() {
+ Collection<Thread> exhcWorkers = new ArrayList<>();
+ for (Thread t : Thread.getAllStackTraces().keySet()) {
+ if (t.getName().contains("exchange-worker"))
+ exhcWorkers.add(t);
+ }
+ return exhcWorkers;
+ }
+
+ /** Put 2 * {@code iterations} caches inside ignite. */
+ private static void fillWithCache(Ignite ignite, int iterations, int start, AffinityFunction affinityFunction) {
+ for (int i = start; i < iterations + start; i++) {
+ CacheConfiguration<Integer, Integer> cachePCfg = new CacheConfiguration<>();
+
+ cachePCfg.setName(CACHE_NAME_DHT_PARTITIONED + i);
+ cachePCfg.setCacheMode(CacheMode.PARTITIONED);
+ cachePCfg.setBackups(1);
+ cachePCfg.setAffinity(affinityFunction);
+
+ ignite.getOrCreateCache(cachePCfg);
+
+ CacheConfiguration<Integer, Integer> cacheRCfg = new CacheConfiguration<>();
+
+ cacheRCfg.setName(CACHE_NAME_DHT_REPLICATED + i);
+ cacheRCfg.setCacheMode(CacheMode.REPLICATED);
+ cachePCfg.setBackups(0);
+ cachePCfg.setAffinity(affinityFunction);
+
+ ignite.getOrCreateCache(cacheRCfg);
+ }
+ }
+}
[32/34] ignite git commit: Merge remote-tracking branch
'remotes/origin/master' into ignite-3727-2
Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/91e83407/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/91e83407/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index 3d9238a,7ef7bc0..cda1321
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@@ -830,14 -785,36 +784,37 @@@ public class GridIoManager extends Grid
finally {
threadProcessingMessage(false);
- msgC.run();
+ if (msgC != null)
+ msgC.run();
}
}
+
+ @Override public String toString() {
+ return "Message closure [msg=" + msg + ']';
+ }
};
+ if (msg.topicOrdinal() == TOPIC_IO_TEST.ordinal()) {
+ IgniteIoTestMessage msg0 = (IgniteIoTestMessage)msg.message();
+
+ if (msg0.processFromNioThread()) {
+ c.run();
+
+ return;
+ }
+ }
+
+ if (ctx.config().getStripedPoolSize() > 0 &&
+ plc == GridIoPolicy.SYSTEM_POOL &&
+ msg.partition() != Integer.MIN_VALUE
+ ) {
+ ctx.getStripedExecutorService().execute(msg.partition(), c);
+
+ return;
+ }
+
try {
- pool(plc).execute(c);
+ pools.poolForPolicy(plc).execute(c);
}
catch (RejectedExecutionException e) {
U.error(log, "Failed to process regular message due to execution rejection. Increase the upper bound " +
http://git-wip-us.apache.org/repos/asf/ignite/blob/91e83407/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
index 3eb7e5f,9e20d2a..688edf7
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
@@@ -51,10 -53,11 +53,12 @@@ import org.apache.ignite.internal.produ
import org.apache.ignite.internal.util.nio.IgniteExceptionInNioWorkerSelfTest;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.marshaller.DynamicProxySerializationMultiJvmSelfTest;
+ import org.apache.ignite.marshaller.MarshallerContextSelfTest;
import org.apache.ignite.messaging.GridMessagingNoPeerClassLoadingSelfTest;
import org.apache.ignite.messaging.GridMessagingSelfTest;
+import org.apache.ignite.messaging.IgniteMessagingSendAsyncTest;
import org.apache.ignite.messaging.IgniteMessagingWithClientTest;
+ import org.apache.ignite.plugin.security.SecurityPermissionSetBuilderTest;
import org.apache.ignite.spi.GridSpiLocalHostInjectionTest;
import org.apache.ignite.startup.properties.NotStringSystemPropertyTest;
import org.apache.ignite.testframework.GridTestUtils;
http://git-wip-us.apache.org/repos/asf/ignite/blob/91e83407/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffle.java
----------------------------------------------------------------------
diff --cc modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffle.java
index d1b9eaa,8ffea8c..3db68c4
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffle.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffle.java
@@@ -117,7 -144,10 +144,10 @@@ public class HadoopShuffle extends Hado
private void send0(UUID nodeId, Object msg) throws IgniteCheckedException {
ClusterNode node = ctx.kernalContext().discovery().node(nodeId);
- ctx.kernalContext().io().sendUserMessage(F.asList(node), msg, GridTopic.TOPIC_HADOOP, false, 0, false);
+ if (msg instanceof Message)
+ ctx.kernalContext().io().send(node, GridTopic.TOPIC_HADOOP_MSG, (Message)msg, GridIoPolicy.PUBLIC_POOL);
+ else
- ctx.kernalContext().io().sendUserMessage(F.asList(node), msg, GridTopic.TOPIC_HADOOP, false, 0);
++ ctx.kernalContext().io().sendUserMessage(F.asList(node), msg, GridTopic.TOPIC_HADOOP, false, 0, false);
}
/**
[24/34] ignite git commit: Revert "IGNITE-2539 fix issue,
move cleanup code"
Posted by sb...@apache.org.
Revert "IGNITE-2539 fix issue, move cleanup code"
This reverts commit ccae9b0673ff169be94cfc393dfbd43f4867ffa5.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/62f91abd
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/62f91abd
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/62f91abd
Branch: refs/heads/ignite-3727-2
Commit: 62f91abd32a261cd9c1aaa29dce930fe96a748a7
Parents: 980df4e
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Tue Sep 13 14:39:17 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Tue Sep 13 14:39:17 2016 +0300
----------------------------------------------------------------------
.../cache/GridCachePartitionExchangeManager.java | 16 ++++++++++++++++
.../GridDhtPartitionsExchangeFuture.java | 18 +-----------------
2 files changed, 17 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/62f91abd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index b899240..4eb61e3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -957,6 +957,22 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
}
}
}
+
+ ExchangeFutureSet exchFuts0 = exchFuts;
+
+ if (exchFuts0 != null) {
+ int skipped = 0;
+
+ for (GridDhtPartitionsExchangeFuture fut : exchFuts0.values()) {
+ if (exchFut.exchangeId().topologyVersion().compareTo(fut.exchangeId().topologyVersion()) < 0)
+ continue;
+
+ skipped++;
+
+ if (skipped > 10)
+ fut.cleanUp();
+ }
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/62f91abd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index 39af156..80b3768 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -1110,25 +1110,9 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
return true;
}
- cleanUpExchFtr();
-
return dummy;
}
- private void cleanUpExchFtr() {
- int skipped = 0;
-
- for (GridDhtPartitionsExchangeFuture fut : cctx.exchange().exchangeFutures()) {
- if (exchId.topologyVersion().compareTo(fut.exchangeId().topologyVersion()) < 0)
- continue;
-
- skipped++;
-
- if (skipped > 10)
- fut.cleanUp();
- }
- }
-
/** {@inheritDoc} */
@Override public Throwable validateCache(GridCacheContext cctx) {
Throwable err = error();
@@ -1402,7 +1386,7 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
if (!crd.equals(node)) {
if (log.isDebugEnabled())
log.debug("Received full partition map from unexpected node [oldest=" + crd.id() +
- ", nodeId=" + node.id() + ']');
+ ", nodeId=" + node.id() + ']');
if (node.order() > crd.order())
fullMsgs.put(node, msg);
[21/34] ignite git commit: IGNITE-3727 fix notes from jira. (small
update)
Posted by sb...@apache.org.
IGNITE-3727 fix notes from jira. (small update)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/21e0093a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/21e0093a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/21e0093a
Branch: refs/heads/ignite-3727-2
Commit: 21e0093adf8978523e5c9451dd44f3087d65ca3d
Parents: 14cb9f5
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Tue Sep 13 13:00:17 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Tue Sep 13 13:00:17 2016 +0300
----------------------------------------------------------------------
.../org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/21e0093a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
index d98dedf..66c9ed0 100644
--- a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
@@ -120,7 +120,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
* @param msgStr Message string.
* @param cls Callback for compare result.
*/
- public void sendWith2Node(
+ private void sendWith2Node(
final Ignite ignite2,
final IgniteMessaging igniteMsg,
final String msgStr,
[22/34] ignite git commit: Revert "IGNITE-1678 code + test+ benchmark
config"
Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/980df4ea/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedAtomicSequenceMultiThreadedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedAtomicSequenceMultiThreadedTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedAtomicSequenceMultiThreadedTest.java
deleted file mode 100644
index 5a5f013..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedAtomicSequenceMultiThreadedTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.cache.datastructures.replicated;
-
-import org.apache.ignite.cache.CacheMode;
-import org.apache.ignite.internal.processors.cache.datastructures.GridCacheAtomicSequenceMultiThreadedAbstractTest;
-
-import static org.apache.ignite.cache.CacheMode.REPLICATED;
-
-/**
- * Cache partitioned multi-threaded tests.
- */
-public class GridCacheReplicatedAtomicSequenceMultiThreadedTest extends GridCacheAtomicSequenceMultiThreadedAbstractTest {
- /** {@inheritDoc} */
- @Override protected CacheMode atomicsCacheMode() {
- return REPLICATED;
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/980df4ea/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedSequenceApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedSequenceApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedSequenceApiSelfTest.java
index d13c525..31b8fad 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedSequenceApiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedSequenceApiSelfTest.java
@@ -30,8 +30,4 @@ public class GridCacheReplicatedSequenceApiSelfTest extends GridCacheSequenceApi
@Override protected CacheMode atomicsCacheMode() {
return REPLICATED;
}
-
- @Override protected int gridCount() {
- return 3;
- }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/980df4ea/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
index 66a7b00..d62369c 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
@@ -72,7 +72,6 @@ import org.apache.ignite.internal.processors.cache.datastructures.partitioned.Ig
import org.apache.ignite.internal.processors.cache.datastructures.partitioned.IgnitePartitionedSemaphoreSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.partitioned.IgnitePartitionedSetNoBackupsSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.replicated.GridCacheReplicatedAtomicReferenceApiSelfTest;
-import org.apache.ignite.internal.processors.cache.datastructures.replicated.GridCacheReplicatedAtomicSequenceMultiThreadedTest;
import org.apache.ignite.internal.processors.cache.datastructures.replicated.GridCacheReplicatedAtomicStampedApiSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.replicated.GridCacheReplicatedDataStructuresFailoverSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.replicated.GridCacheReplicatedQueueApiSelfTest;
@@ -167,7 +166,6 @@ public class IgniteCacheDataStructuresSelfTestSuite extends TestSuite {
suite.addTest(new TestSuite(IgniteReplicatedAtomicLongApiSelfTest.class));
suite.addTest(new TestSuite(GridCachePartitionedAtomicSequenceMultiThreadedTest.class));
- suite.addTest(new TestSuite(GridCacheReplicatedAtomicSequenceMultiThreadedTest.class));
suite.addTest(new TestSuite(GridCachePartitionedAtomicStampedApiSelfTest.class));
suite.addTest(new TestSuite(GridCacheReplicatedAtomicStampedApiSelfTest.class));
http://git-wip-us.apache.org/repos/asf/ignite/blob/980df4ea/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteAtomicSequenceBenchmark.java
----------------------------------------------------------------------
diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteAtomicSequenceBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteAtomicSequenceBenchmark.java
deleted file mode 100644
index 4b2f085..0000000
--- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteAtomicSequenceBenchmark.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.yardstick.cache;
-
-import java.util.Map;
-import org.apache.ignite.IgniteAtomicSequence;
-import org.apache.ignite.yardstick.IgniteAbstractBenchmark;
-import org.yardstickframework.BenchmarkConfiguration;
-
-/**
- * Ignite atomic sequence benchmark.
- */
-public class IgniteAtomicSequenceBenchmark extends IgniteAbstractBenchmark {
- /** Cache. */
- private IgniteAtomicSequence seq;
-
- /** {@inheritDoc} */
- @Override public void setUp(BenchmarkConfiguration cfg) throws Exception {
- super.setUp(cfg);
-
- seq = ignite().atomicSequence("benchSequence", 0, true);
- }
-
- /** {@inheritDoc} */
- @Override public boolean test(Map<Object, Object> ctx) throws Exception {
- seq.incrementAndGet();
-
- return true;
- }
-}
[06/34] ignite git commit: IGNITE-1678 code + test+ benchmark config
Posted by sb...@apache.org.
IGNITE-1678 code + test+ benchmark config
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/784958bf
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/784958bf
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/784958bf
Branch: refs/heads/ignite-3727-2
Commit: 784958bf6e0e8e81191af498f6a993b2bfd78204
Parents: cf4cd05
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Tue Sep 6 19:35:14 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Tue Sep 6 19:35:14 2016 +0300
----------------------------------------------------------------------
.../org/apache/ignite/IgniteAtomicSequence.java | 15 +
.../configuration/AtomicConfiguration.java | 25 +
.../datastructures/DataStructuresProcessor.java | 111 ++--
.../GridCacheAtomicSequenceImpl.java | 384 +++++-------
...AtomicSequenceMultiThreadedAbstractTest.java | 579 +++++++++++++++++++
.../GridCacheSequenceApiSelfAbstractTest.java | 101 +++-
...titionedAtomicSequenceMultiThreadedTest.java | 313 +---------
...GridCachePartitionedSequenceApiSelfTest.java | 4 +
...plicatedAtomicSequenceMultiThreadedTest.java | 33 ++
.../GridCacheReplicatedSequenceApiSelfTest.java | 4 +
.../IgniteCacheDataStructuresSelfTestSuite.java | 2 +
.../cache/IgniteAtomicSequenceBenchmark.java | 45 ++
12 files changed, 991 insertions(+), 625 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/784958bf/modules/core/src/main/java/org/apache/ignite/IgniteAtomicSequence.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteAtomicSequence.java b/modules/core/src/main/java/org/apache/ignite/IgniteAtomicSequence.java
index a1e1392..aa1cbdf 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteAtomicSequence.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteAtomicSequence.java
@@ -118,6 +118,21 @@ public interface IgniteAtomicSequence extends Closeable {
public void batchSize(int size);
/**
+ * Gets local reserve percentage for this atomic sequence. When a reserve percentage of a batch size
+ * is reached when sequence starts a new reservation in background.
+ *
+ * @return Sequence reserve pecentage.
+ */
+ public int reservePercentage();
+
+ /**
+ * Sets local reserve percentage for this atomic sequence.
+ *
+ * @param percentage Reserve pecentage. Must be between 0 and 100.
+ */
+ public void reservePercentage(int percentage);
+
+ /**
* Gets status of atomic sequence.
*
* @return {@code true} if atomic sequence was removed from cache, {@code false} otherwise.
http://git-wip-us.apache.org/repos/asf/ignite/blob/784958bf/modules/core/src/main/java/org/apache/ignite/configuration/AtomicConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/AtomicConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/AtomicConfiguration.java
index 6649b5e..ad96b73 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/AtomicConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/AtomicConfiguration.java
@@ -36,6 +36,9 @@ public class AtomicConfiguration {
/** Default atomic sequence reservation size. */
public static final int DFLT_ATOMIC_SEQUENCE_RESERVE_SIZE = 1000;
+ /** Default atomic sequence reservation size. */
+ public static final int DFLT_ATOMIC_SEQUENCE_RESERVE_PERCENTAGE = 80;
+
/** Default batch size for all cache's sequences. */
private int seqReserveSize = DFLT_ATOMIC_SEQUENCE_RESERVE_SIZE;
@@ -45,6 +48,9 @@ public class AtomicConfiguration {
/** Number of backups. */
private int backups = DFLT_BACKUPS;
+ /** Atomic sequence reservation percentage. */
+ private int atomicSeqReservePercentage = DFLT_ATOMIC_SEQUENCE_RESERVE_PERCENTAGE;
+
/**
* @return Number of backup nodes.
*/
@@ -98,6 +104,25 @@ public class AtomicConfiguration {
this.seqReserveSize = seqReserveSize;
}
+ /**
+ * Gets reserve percentage for configuration. When a reserve percentage of a batch size
+ * is reached when sequence starts a new reservation in background.
+ *
+ * @return Atomic sequence reservation percentage.
+ */
+ public int getAtomicSequenceReservePercentage() {
+ return atomicSeqReservePercentage;
+ }
+
+ /**
+ * Sets reserve percentage for configuration.
+ * *
+ * @param atomicSeqReservePercentage Atomic sequence reservation percentage.
+ */
+ public void setAtomicSequenceReservePercentage(int atomicSeqReservePercentage) {
+ this.atomicSeqReservePercentage = atomicSeqReservePercentage;
+ }
+
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(AtomicConfiguration.class, this);
http://git-wip-us.apache.org/repos/asf/ignite/blob/784958bf/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
index 1cad22f..eb81ca2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
@@ -36,6 +36,7 @@ import javax.cache.event.EventType;
import javax.cache.processor.EntryProcessor;
import javax.cache.processor.EntryProcessorException;
import javax.cache.processor.MutableEntry;
+
import org.apache.ignite.IgniteAtomicLong;
import org.apache.ignite.IgniteAtomicReference;
import org.apache.ignite.IgniteAtomicSequence;
@@ -357,9 +358,9 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
if (seqVal == null && !create)
return null;
- // We should use offset because we already reserved left side of range.
+ /* // We should use offset because we already reserved left side of range.
long off = atomicCfg.getAtomicSequenceReserveSize() > 1 ?
- atomicCfg.getAtomicSequenceReserveSize() - 1 : 1;
+ atomicCfg.getAtomicSequenceReserveSize() - 1 : 1;*/
long upBound;
long locCntr;
@@ -367,18 +368,16 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
if (seqVal == null) {
locCntr = initVal;
- upBound = locCntr + off;
+ upBound = locCntr + atomicCfg.getAtomicSequenceReserveSize();
- // Global counter must be more than reserved region.
- seqVal = new GridCacheAtomicSequenceValue(upBound + 1);
+ seqVal = new GridCacheAtomicSequenceValue(upBound);
}
else {
locCntr = seqVal.get();
- upBound = locCntr + off;
+ upBound = locCntr + atomicCfg.getAtomicSequenceReserveSize();
- // Global counter must be more than reserved region.
- seqVal.set(upBound + 1);
+ seqVal.set(upBound);
}
// Update global counter.
@@ -390,6 +389,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
seqView,
dsCacheCtx,
atomicCfg.getAtomicSequenceReserveSize(),
+ atomicCfg.getAtomicSequenceReservePercentage(),
locCntr,
upBound);
@@ -448,8 +448,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
* Gets an atomic long from cache or creates one if it's not cached.
*
* @param name Name of atomic long.
- * @param initVal Initial value for atomic long. If atomic long already cached, {@code initVal}
- * will be ignored.
+ * @param initVal Initial value for atomic long. If atomic long already cached, {@code initVal} will be ignored.
* @param create If {@code true} atomic long will be created in case it is not in cache.
* @return Atomic long.
* @throws IgniteCheckedException If loading failed.
@@ -526,8 +525,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
final DataStructureInfo dsInfo,
final boolean create,
Class<? extends T> cls)
- throws IgniteCheckedException
- {
+ throws IgniteCheckedException {
Map<String, DataStructureInfo> dsMap = utilityCache.get(DATA_STRUCTURES_KEY);
if (!create && (dsMap == null || !dsMap.containsKey(dsInfo.name)))
@@ -607,8 +605,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
String name,
DataStructureType type,
@Nullable final IgniteInClosureX<T> afterRmv)
- throws IgniteCheckedException
- {
+ throws IgniteCheckedException {
Map<String, DataStructureInfo> dsMap = utilityCache.get(DATA_STRUCTURES_KEY);
if (dsMap == null || !dsMap.containsKey(name))
@@ -656,8 +653,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
* Gets an atomic reference from cache or creates one if it's not cached.
*
* @param name Name of atomic reference.
- * @param initVal Initial value for atomic reference. If atomic reference already cached, {@code initVal}
- * will be ignored.
+ * @param initVal Initial value for atomic reference. If atomic reference already cached, {@code initVal} will be
+ * ignored.
* @param create If {@code true} atomic reference will be created in case it is not in cache.
* @return Atomic reference.
* @throws IgniteCheckedException If loading failed.
@@ -666,8 +663,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
public final <T> IgniteAtomicReference<T> atomicReference(final String name,
final T initVal,
final boolean create)
- throws IgniteCheckedException
- {
+ throws IgniteCheckedException {
A.notNull(name, "name");
awaitInitialization();
@@ -761,10 +757,10 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
* Gets an atomic stamped from cache or creates one if it's not cached.
*
* @param name Name of atomic stamped.
- * @param initVal Initial value for atomic stamped. If atomic stamped already cached, {@code initVal}
- * will be ignored.
- * @param initStamp Initial stamp for atomic stamped. If atomic stamped already cached, {@code initStamp}
- * will be ignored.
+ * @param initVal Initial value for atomic stamped. If atomic stamped already cached, {@code initVal} will be
+ * ignored.
+ * @param initStamp Initial stamp for atomic stamped. If atomic stamped already cached, {@code initStamp} will be
+ * ignored.
* @param create If {@code true} atomic stamped will be created in case it is not in cache.
* @return Atomic stamped.
* @throws IgniteCheckedException If loading failed.
@@ -1005,8 +1001,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
@Nullable private <T> T getCollection(final IgniteClosureX<GridCacheContext, T> c,
final DataStructureInfo dsInfo,
boolean create)
- throws IgniteCheckedException
- {
+ throws IgniteCheckedException {
awaitInitialization();
Map<String, DataStructureInfo> dsMap = utilityCache.get(DATA_STRUCTURES_KEY);
@@ -1083,8 +1078,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
@Nullable private static IgniteCheckedException validateDataStructure(
@Nullable Map<String, DataStructureInfo> dsMap,
DataStructureInfo info,
- boolean create)
- {
+ boolean create) {
if (dsMap == null)
return null;
@@ -1102,20 +1096,17 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
*
* @param name Name of the latch.
* @param cnt Initial count.
- * @param autoDel {@code True} to automatically delete latch from cache when
- * its count reaches zero.
- * @param create If {@code true} latch will be created in case it is not in cache,
- * if it is {@code false} all parameters except {@code name} are ignored.
- * @return Count down latch for the given name or {@code null} if it is not found and
- * {@code create} is false.
+ * @param autoDel {@code True} to automatically delete latch from cache when its count reaches zero.
+ * @param create If {@code true} latch will be created in case it is not in cache, if it is {@code false} all
+ * parameters except {@code name} are ignored.
+ * @return Count down latch for the given name or {@code null} if it is not found and {@code create} is false.
* @throws IgniteCheckedException If operation failed.
*/
public IgniteCountDownLatch countDownLatch(final String name,
final int cnt,
final boolean autoDel,
final boolean create)
- throws IgniteCheckedException
- {
+ throws IgniteCheckedException {
A.notNull(name, "name");
awaitInitialization();
@@ -1201,12 +1192,12 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
try (IgniteInternalTx tx = CU.txStartInternal(dsCacheCtx, dsView, PESSIMISTIC, REPEATABLE_READ)) {
// Check correctness type of removable object.
GridCacheCountDownLatchValue val =
- cast(dsView.get(key), GridCacheCountDownLatchValue.class);
+ cast(dsView.get(key), GridCacheCountDownLatchValue.class);
if (val != null) {
if (val.get() > 0) {
throw new IgniteCheckedException("Failed to remove count down latch " +
- "with non-zero count: " + val.get());
+ "with non-zero count: " + val.get());
}
dsView.remove(key);
@@ -1232,10 +1223,9 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
* @param name Name of the semaphore.
* @param cnt Initial count.
* @param failoverSafe {@code True} FailoverSafe parameter.
- * @param create If {@code true} semaphore will be created in case it is not in cache,
- * if it is {@code false} all parameters except {@code name} are ignored.
- * @return Semaphore for the given name or {@code null} if it is not found and
- * {@code create} is false.
+ * @param create If {@code true} semaphore will be created in case it is not in cache, if it is {@code false} all
+ * parameters except {@code name} are ignored.
+ * @return Semaphore for the given name or {@code null} if it is not found and {@code create} is false.
* @throws IgniteCheckedException If operation failed.
*/
public IgniteSemaphore semaphore(final String name, final int cnt, final boolean failoverSafe, final boolean create)
@@ -1351,11 +1341,11 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
* @param failoverSafe Flag indicating behaviour in case of failure.
* @param fair Flag indicating fairness policy of this lock.
* @param create If {@code true} reentrant lock will be created in case it is not in cache.
- * @return ReentrantLock for the given name or {@code null} if it is not found and
- * {@code create} is false.
+ * @return ReentrantLock for the given name or {@code null} if it is not found and {@code create} is false.
* @throws IgniteCheckedException If operation failed.
*/
- public IgniteLock reentrantLock(final String name, final boolean failoverSafe, final boolean fair, final boolean create)
+ public IgniteLock reentrantLock(final String name, final boolean failoverSafe, final boolean fair,
+ final boolean create)
throws IgniteCheckedException {
A.notNull(name, "name");
@@ -1532,8 +1522,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
/** {@inheritDoc} */
@Override public void onUpdated(
Iterable<CacheEntryEvent<? extends GridCacheInternalKey, ? extends GridCacheInternal>> evts)
- throws CacheEntryListenerException
- {
+ throws CacheEntryListenerException {
for (CacheEntryEvent<? extends GridCacheInternalKey, ? extends GridCacheInternal> evt : evts) {
if (evt.getEventType() == EventType.CREATED || evt.getEventType() == EventType.UPDATED) {
GridCacheInternal val0 = evt.getValue();
@@ -1603,8 +1592,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
}
else if (sem != null) {
U.error(log, "Failed to cast object " +
- "[expected=" + IgniteSemaphore.class.getSimpleName() +
- ", actual=" + sem.getClass() + ", value=" + sem + ']');
+ "[expected=" + IgniteSemaphore.class.getSimpleName() +
+ ", actual=" + sem.getClass() + ", value=" + sem + ']');
}
}
else if (val0 instanceof GridCacheLockState) {
@@ -1761,6 +1750,18 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
if (atomicCfg == null)
throw new IgniteException("Atomic data structure can not be created, " +
"need to provide IgniteAtomicConfiguration.");
+
+ if (atomicCfg.getAtomicSequenceReserveSize() <= 0)
+ throw new IgniteException(
+ "Atomic sequence can not be created, " +
+ "reserve size must be more than 0, but atomicSequenceReserveSize: " + atomicCfg.getAtomicSequenceReserveSize()
+ );
+
+ if (atomicCfg.getAtomicSequenceReservePercentage() > 100)
+ throw new IgniteException(
+ "Atomic sequence can not be created, reserve percentage must have value " +
+ "between 0 and 100, but atomicSequenceReservePercentage: " + atomicCfg.getAtomicSequenceReservePercentage()
+ );
}
/**
@@ -1779,7 +1780,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
col.cfg.getBackups() == cfg.getBackups() &&
col.cfg.getOffHeapMaxMemory() == cfg.getOffHeapMaxMemory() &&
((col.cfg.getNodeFilter() == null && cfg.getNodeFilter() == null) ||
- (col.cfg.getNodeFilter() != null && col.cfg.getNodeFilter().equals(cfg.getNodeFilter()))))
+ (col.cfg.getNodeFilter() != null && col.cfg.getNodeFilter().equals(cfg.getNodeFilter()))))
return col.cacheName;
}
@@ -1788,8 +1789,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
/**
* @param c Closure to run.
- * @throws IgniteCheckedException If failed.
* @return Closure return value.
+ * @throws IgniteCheckedException If failed.
*/
private static <T> T retryTopologySafe(IgniteOutClosureX<T> c) throws IgniteCheckedException {
for (int i = 0; i < GridCacheAdapter.MAX_RETRIES; i++) {
@@ -2144,8 +2145,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
@Override public IgniteCheckedException process(
MutableEntry<CacheDataStructuresConfigurationKey, Map<String, DataStructureInfo>> entry,
Object... args)
- throws EntryProcessorException
- {
+ throws EntryProcessorException {
Map<String, DataStructureInfo> map = entry.getValue();
if (map == null) {
@@ -2223,8 +2223,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
/** {@inheritDoc} */
@Override public T2<String, IgniteCheckedException> process(
MutableEntry<CacheDataStructuresConfigurationKey, Map<String, DataStructureInfo>> entry,
- Object... args)
- {
+ Object... args) {
Map<String, DataStructureInfo> map = entry.getValue();
CollectionInfo colInfo = (CollectionInfo)info.info;
@@ -2303,8 +2302,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
/** {@inheritDoc} */
@Override public String process(
MutableEntry<CacheDataStructuresCacheKey, List<CacheCollectionInfo>> entry,
- Object... args)
- {
+ Object... args) {
List<CacheCollectionInfo> list = entry.getValue();
if (list == null) {
@@ -2380,8 +2378,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
/** {@inheritDoc} */
@Override public T2<Boolean, IgniteCheckedException> process(
MutableEntry<CacheDataStructuresConfigurationKey, Map<String, DataStructureInfo>> entry,
- Object... args)
- {
+ Object... args) {
Map<String, DataStructureInfo> map = entry.getValue();
if (map == null)
http://git-wip-us.apache.org/repos/asf/ignite/blob/784958bf/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java
index 7474f46..77bbb41 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java
@@ -17,36 +17,21 @@
package org.apache.ignite.internal.processors.datastructures;
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.InvalidObjectException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.ObjectStreamException;
-import java.util.concurrent.Callable;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.locks.Condition;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
-import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.IgniteLogger;
-import org.apache.ignite.internal.GridKernalContext;
-import org.apache.ignite.internal.IgniteInternalFuture;
-import org.apache.ignite.internal.processors.cache.GridCacheContext;
-import org.apache.ignite.internal.processors.cache.IgniteInternalCache;
-import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
-import org.apache.ignite.internal.util.future.GridFinishedFuture;
-import org.apache.ignite.internal.util.typedef.internal.A;
-import org.apache.ignite.internal.util.typedef.internal.CU;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.lang.IgniteBiTuple;
-import org.jetbrains.annotations.Nullable;
-
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static org.apache.ignite.internal.util.typedef.internal.CU.retryTopologySafe;
-import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
-import static org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ;
+import org.apache.ignite.*;
+import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.transactions.*;
+import org.apache.ignite.internal.util.future.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
+
+import java.io.*;
+import java.util.concurrent.*;
+import java.util.concurrent.locks.*;
+
+import static org.apache.ignite.internal.util.typedef.internal.CU.*;
+import static org.apache.ignite.transactions.TransactionConcurrency.*;
+import static org.apache.ignite.transactions.TransactionIsolation.*;
/**
* Cache sequence implementation.
@@ -87,26 +72,32 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
/** Local value of sequence. */
private long locVal;
- /** Upper bound of local counter. */
- private long upBound;
+ /** Upper bound of local counter. */
+ private long upBound; // TODO should be not included
- /** Sequence batch size */
- private volatile int batchSize;
+ /** Reserved bottom bound of local counter (included). */
+ private long reservedBottomBound;
- /** Synchronization lock. */
- private final Lock lock = new ReentrantLock();
+ /** Reserved upper bound of local counter (not included). */
+ private long reservedUpBound;
+
+ /** A limit after which a new reservation should be done. */
+ private long newReservationLine;
- /** Await condition. */
- private Condition cond = lock.newCondition();
+ /** Whether reserveFuture already processed or not. */
+ private boolean isReserveFutResultsProcessed = true;
- /** Callable for execution {@link #incrementAndGet} operation in async and sync mode. */
- private final Callable<Long> incAndGetCall = internalUpdate(1, true);
+ /** default 80% */
+ private volatile int percentage;
- /** Callable for execution {@link #getAndIncrement} operation in async and sync mode. */
- private final Callable<Long> getAndIncCall = internalUpdate(1, false);
+ /** Sequence batch size */
+ private volatile int batchSize;
+
+ /** Synchronization lock. */
+ private final Lock lock = new ReentrantLock();
- /** Add and get cache call guard. */
- private final AtomicBoolean updateGuard = new AtomicBoolean();
+ /** Reservation future. */
+ private IgniteInternalFuture<?> reservationFut = new GridFinishedFuture<>();
/**
* Empty constructor required by {@link Externalizable}.
@@ -131,13 +122,15 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
IgniteInternalCache<GridCacheInternalKey, GridCacheAtomicSequenceValue> seqView,
GridCacheContext ctx,
int batchSize,
+ int percentage,
long locVal,
- long upBound)
- {
+ long upBound) {
assert key != null;
assert seqView != null;
assert ctx != null;
+ assert batchSize > 0 : "BatchSize: " + batchSize;
assert locVal <= upBound;
+ assert percentage >= 0 && percentage <= 100 : "Percentage: " + percentage;
this.batchSize = batchSize;
this.ctx = ctx;
@@ -146,6 +139,9 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
this.upBound = upBound;
this.locVal = locVal;
this.name = name;
+ this.percentage = percentage;
+
+ newReservationLine = locVal + (batchSize * percentage / 100);
log = ctx.logger(getClass());
}
@@ -172,7 +168,7 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
/** {@inheritDoc} */
@Override public long incrementAndGet() {
try {
- return internalUpdate(1, incAndGetCall, true);
+ return internalUpdate(1, true);
}
catch (IgniteCheckedException e) {
throw U.convertException(e);
@@ -182,7 +178,7 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
/** {@inheritDoc} */
@Override public long getAndIncrement() {
try {
- return internalUpdate(1, getAndIncCall, false);
+ return internalUpdate(1, false);
}
catch (IgniteCheckedException e) {
throw U.convertException(e);
@@ -194,7 +190,7 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
A.ensure(l > 0, " Parameter mustn't be less then 1: " + l);
try {
- return internalUpdate(l, null, true);
+ return internalUpdate(l, true);
}
catch (IgniteCheckedException e) {
throw U.convertException(e);
@@ -206,7 +202,7 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
A.ensure(l > 0, " Parameter mustn't be less then 1: " + l);
try {
- return internalUpdate(l, null, false);
+ return internalUpdate(l, false);
}
catch (IgniteCheckedException e) {
throw U.convertException(e);
@@ -217,162 +213,134 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
* Synchronous sequence update operation. Will add given amount to the sequence value.
*
* @param l Increment amount.
- * @param updateCall Cache call that will update sequence reservation count in accordance with l.
* @param updated If {@code true}, will return sequence value after update, otherwise will return sequence value
- * prior to update.
+ * prior to update.
* @return Sequence value.
* @throws IgniteCheckedException If update failed.
*/
@SuppressWarnings("SignalWithoutCorrespondingAwait")
- private long internalUpdate(long l, @Nullable Callable<Long> updateCall, boolean updated) throws IgniteCheckedException {
- checkRemoved();
-
+ private long internalUpdate(final long l, final boolean updated) throws IgniteCheckedException {
assert l > 0;
- lock.lock();
+ while (true) {
+ checkRemoved();
- try {
- // If reserved range isn't exhausted.
- if (locVal + l <= upBound) {
- long curVal = locVal;
+ lock.lock(); // TODO locks here?
- locVal += l;
+ try {
+ if (locVal + l >= newReservationLine && isReserveFutResultsProcessed && reservationFut.isDone())
+ reservationFut = runAsyncReservation(0);
- return updated ? locVal : curVal;
- }
- }
- finally {
- lock.unlock();
- }
+ // If reserved range isn't exhausted.
+ if (locVal + l < upBound) {
+ long curVal = locVal;
- if (updateCall == null)
- updateCall = internalUpdate(l, updated);
+ locVal += l;
- while (true) {
- if (updateGuard.compareAndSet(false, true)) {
- try {
- // This call must be outside lock.
- return CU.outTx(updateCall, ctx);
+ return updated ? locVal : curVal;
}
- finally {
- lock.lock();
- try {
- updateGuard.set(false);
+ if (!isReserveFutResultsProcessed && reservationFut.isDone()) {
+ isReserveFutResultsProcessed = true;
- cond.signalAll();
- }
- finally {
- lock.unlock();
- }
- }
- }
- else {
- lock.lock();
+ if (locVal + l < reservedUpBound) {
+ long curVal = locVal;
- try {
- while (locVal >= upBound && updateGuard.get())
- U.await(cond, 500, MILLISECONDS);
+ locVal = (locVal + l < reservedBottomBound) ? reservedBottomBound : locVal + l;
- checkRemoved();
+ upBound = reservedUpBound;
- // If reserved range isn't exhausted.
- if (locVal + l <= upBound) {
- long curVal = locVal;
+ return updated ? locVal : curVal;
+ }
+ else {
+ long diff = locVal + l - reservedUpBound;
- locVal += l;
+ long off = (diff / batchSize) * batchSize;
- return updated ? locVal : curVal;
+ reservationFut = runAsyncReservation(off);
}
}
- finally {
- lock.unlock();
- }
}
+ finally {
+ lock.unlock();
+ }
+
+ // If reserved range is exhausted.
+ reservationFut.get();
}
}
/**
- * Asynchronous sequence update operation. Will add given amount to the sequence value.
+ * Runs async reservation of new range for current node.
*
- * @param l Increment amount.
- * @param updateCall Cache call that will update sequence reservation count in accordance with l.
- * @param updated If {@code true}, will return sequence value after update, otherwise will return sequence value
- * prior to update.
- * @return Future indicating sequence value.
- * @throws IgniteCheckedException If update failed.
+ * @param off Offset.
+ * @return Future.
*/
- @SuppressWarnings("SignalWithoutCorrespondingAwait")
- private IgniteInternalFuture<Long> internalUpdateAsync(long l, @Nullable Callable<Long> updateCall, boolean updated)
- throws IgniteCheckedException {
- checkRemoved();
+ private IgniteInternalFuture<?> runAsyncReservation(final long off) {
+ assert off >= 0 : "Offset: " + off;
- A.ensure(l > 0, " Parameter mustn't be less then 1: " + l);
+ return ctx.kernalContext().closure().runLocalSafe(new Runnable() {
+ @Override public void run() {
+ Callable<Void> reserveCall = retryTopologySafe(new Callable<Void>() {
+ @Override public Void call() throws Exception {
+ try (IgniteInternalTx tx = CU.txStartInternal(ctx, seqView, PESSIMISTIC, REPEATABLE_READ)) {
+ GridCacheAtomicSequenceValue seq = seqView.get(key);
- lock.lock();
+ checkRemoved();
- try {
- // If reserved range isn't exhausted.
- if (locVal + l <= upBound) {
- long curVal = locVal;
+ assert seq != null;
- locVal += l;
+ long newUpBound = -1;
- return new GridFinishedFuture<>(updated ? locVal : curVal);
- }
- }
- finally {
- lock.unlock();
- }
+ lock.lock();
- if (updateCall == null)
- updateCall = internalUpdate(l, updated);
+ try {
+ assert isReserveFutResultsProcessed;
- while (true) {
- if (updateGuard.compareAndSet(false, true)) {
- try {
- // This call must be outside lock.
- return ctx.closures().callLocalSafe(updateCall, true);
- }
- finally {
- lock.lock();
+ isReserveFutResultsProcessed = false;
- try {
- updateGuard.set(false);
+ long curGlobalVal = seq.get();
- cond.signalAll();
- }
- finally {
- lock.unlock();
- }
- }
- }
- else {
- lock.lock();
+ reservedBottomBound = curGlobalVal + off;
- try {
- while (locVal >= upBound && updateGuard.get())
- U.await(cond, 500, MILLISECONDS);
+ newUpBound = reservedBottomBound + batchSize;
- checkRemoved();
+ reservedUpBound = newUpBound;
- // If reserved range isn't exhausted.
- if (locVal + l <= upBound) {
- long curVal = locVal;
+ newReservationLine = reservedBottomBound + (batchSize * percentage / 100);
+ }
+ finally {
+ lock.unlock();
+ }
+
+ seq.set(newUpBound);
- locVal += l;
+ seqView.put(key, seq);
- return new GridFinishedFuture<>(updated ? locVal : curVal);
+ tx.commit();
+ }
+ catch (Error | Exception e) {
+ U.error(log, "Failed to get and add: " + this, e);
+
+ throw e;
+ }
+
+ return null;
}
+ });
+
+ try {
+ CU.outTx(reserveCall, ctx);
}
- finally {
- lock.unlock();
+ catch (IgniteCheckedException e) {
+ throw new IgniteException(e);
}
}
- }
+ }, /*sys pool*/ false);
}
- /** Get local batch size for this sequences.
+ /**
+ * Get local batch size for this sequences.
*
* @return Sequence batch size.
*/
@@ -398,6 +366,25 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
}
}
+ /** {@inheritDoc} */
+ @Override public int reservePercentage() {
+ return percentage;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void reservePercentage(int percentage) {
+ A.ensure(percentage >= 0 && percentage <= 100, "Invalid reserve percentage: " + percentage);
+
+ lock.lock();
+
+ try {
+ this.percentage = percentage;
+ }
+ finally {
+ lock.unlock();
+ }
+ }
+
/**
* Check removed status.
*
@@ -465,89 +452,6 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
}
}
- /**
- * Method returns callable for execution all update operations in async and sync mode.
- *
- * @param l Value will be added to sequence.
- * @param updated If {@code true}, will return updated value, if {@code false}, will return previous value.
- * @return Callable for execution in async and sync mode.
- */
- @SuppressWarnings("TooBroadScope")
- private Callable<Long> internalUpdate(final long l, final boolean updated) {
- return retryTopologySafe(new Callable<Long>() {
- @Override public Long call() throws Exception {
- try (IgniteInternalTx tx = CU.txStartInternal(ctx, seqView, PESSIMISTIC, REPEATABLE_READ)) {
- GridCacheAtomicSequenceValue seq = seqView.get(key);
-
- checkRemoved();
-
- assert seq != null;
-
- long curLocVal;
-
- long newUpBound;
-
- lock.lock();
-
- try {
- curLocVal = locVal;
-
- // If local range was already reserved in another thread.
- if (locVal + l <= upBound) {
- long retVal = locVal;
-
- locVal += l;
-
- return updated ? locVal : retVal;
- }
-
- long curGlobalVal = seq.get();
-
- long newLocVal;
-
- /* We should use offset because we already reserved left side of range.*/
- long off = batchSize > 1 ? batchSize - 1 : 1;
-
- // Calculate new values for local counter, global counter and upper bound.
- if (curLocVal + l >= curGlobalVal) {
- newLocVal = curLocVal + l;
-
- newUpBound = newLocVal + off;
- }
- else {
- newLocVal = curGlobalVal;
-
- newUpBound = newLocVal + off;
- }
-
- locVal = newLocVal;
- upBound = newUpBound;
-
- if (updated)
- curLocVal = newLocVal;
- }
- finally {
- lock.unlock();
- }
-
- // Global counter must be more than reserved upper bound.
- seq.set(newUpBound + 1);
-
- seqView.put(key, seq);
-
- tx.commit();
-
- return curLocVal;
- }
- catch (Error | Exception e) {
- U.error(log, "Failed to get and add: " + this, e);
-
- throw e;
- }
- }
- });
- }
-
/** {@inheritDoc} */
@Override public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(ctx.kernalContext());
http://git-wip-us.apache.org/repos/asf/ignite/blob/784958bf/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAtomicSequenceMultiThreadedAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAtomicSequenceMultiThreadedAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAtomicSequenceMultiThreadedAbstractTest.java
new file mode 100644
index 0000000..10b57e8
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAtomicSequenceMultiThreadedAbstractTest.java
@@ -0,0 +1,579 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.datastructures;
+
+import java.util.Random;
+import java.util.UUID;
+import org.apache.ignite.IgniteAtomicSequence;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.configuration.AtomicConfiguration;
+import org.apache.ignite.internal.processors.datastructures.GridCacheAtomicSequenceImpl;
+import org.apache.ignite.internal.util.lang.GridAbsPredicate;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.testframework.GridTestUtils;
+
+/**
+ * Cache partitioned multi-threaded tests.
+ */
+public abstract class GridCacheAtomicSequenceMultiThreadedAbstractTest extends IgniteAtomicsAbstractTest {
+ /** Number of threads for multithreaded test. */
+ private static final int THREAD_NUM = 30;
+
+ /** Number of iterations per thread for multithreaded test. */
+ private static final int ITERATION_NUM = 10000;
+
+ /** {@inheritDoc} */
+ @Override protected int gridCount() {
+ return 1;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected AtomicConfiguration atomicConfiguration() {
+ AtomicConfiguration cfg = super.atomicConfiguration();
+
+ cfg.setBackups(1);
+ cfg.setAtomicSequenceReserveSize(10);
+
+ return cfg;
+ }
+
+ /** @throws Exception If failed. */
+ public void testValues() throws Exception {
+ String seqName = UUID.randomUUID().toString();
+
+ final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
+
+ // Local reservations.
+ assertEquals(1, seq.incrementAndGet());
+ assertEquals(1, seq.getAndIncrement()); // Seq = 2
+ assertEquals(3L, seq.incrementAndGet());
+ assertEquals(3L, seq.getAndIncrement()); // Seq=4
+
+ assertEquals(4, seq.getAndAdd(3));
+ assertEquals(9, seq.addAndGet(2));
+
+ assertEquals(new Long(9L), U.field(seq, "locVal"));
+ assertEquals(new Long(10L), U.field(seq, "upBound"));
+
+ // Cache calls.
+ assertEquals(10, seq.incrementAndGet());
+
+ assertEquals(new Long(10L), U.field(seq, "locVal"));
+ assertEquals(new Long(20L), U.field(seq, "upBound"));
+
+ seq.addAndGet(9);
+
+ assertEquals(new Long(19L), U.field(seq, "locVal"));
+ assertEquals(new Long(20L), U.field(seq, "upBound"));
+
+ assertEquals(20L, seq.incrementAndGet());
+
+ assertEquals(new Long(20L), U.field(seq, "locVal"));
+ assertEquals(new Long(30L), U.field(seq, "upBound"));
+
+ seq.addAndGet(9);
+
+ assertEquals(new Long(29L), U.field(seq, "locVal"));
+ assertEquals(new Long(30L), U.field(seq, "upBound"));
+
+ assertEquals(29, seq.getAndIncrement());
+
+ assertEquals(new Long(30L), U.field(seq, "locVal"));
+ assertEquals(new Long(40L), U.field(seq, "upBound"));
+
+ seq.addAndGet(9);
+
+ assertEquals(new Long(39L), U.field(seq, "locVal"));
+ assertEquals(new Long(40L), U.field(seq, "upBound"));
+
+ assertEquals(39L, seq.getAndIncrement());
+
+ assertEquals(new Long(40L), U.field(seq, "locVal"));
+ assertEquals(new Long(50L), U.field(seq, "upBound"));
+
+ seq.addAndGet(9);
+
+ assertEquals(new Long(49L), U.field(seq, "locVal"));
+ assertEquals(new Long(50L), U.field(seq, "upBound"));
+
+ assertEquals(50, seq.addAndGet(1));
+
+ assertEquals(new Long(50L), U.field(seq, "locVal"));
+ assertEquals(new Long(60L), U.field(seq, "upBound"));
+
+ seq.addAndGet(9);
+
+ assertEquals(new Long(59L), U.field(seq, "locVal"));
+ assertEquals(new Long(60L), U.field(seq, "upBound"));
+
+ assertEquals(59, seq.getAndAdd(1));
+
+ assertEquals(new Long(60L), U.field(seq, "locVal"));
+ assertEquals(new Long(70L), U.field(seq, "upBound"));
+ }
+
+ /** @throws Exception If failed. */
+ public void testValues2() throws Exception {
+ String seqName = UUID.randomUUID().toString();
+
+ final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 10, true);
+
+ assertSeqFields(seq, /*locVal*/ 10, /*upBound*/ 20, /*resBound*/ 18, /*resBottomBound*/ 0, /*resUpBound*/ 0);
+
+ assertEquals(17, seq.addAndGet(7));
+
+ assertSeqFields(seq, /*locVal*/ 17, /*upBound*/ 20, /*resBound*/ 18, /*resBottomBound*/ 0, /*resUpBound*/ 0);
+
+ assertEquals(18, seq.incrementAndGet());
+
+ GridTestUtils.waitForCondition(new GridAbsPredicate() {
+ @Override public boolean apply() {
+ return !F.eq(U.field(seq, "isReserveFutResultsProcessed"), true);
+ }
+ }, 1000);
+
+ assertSeqFields(seq, /*locVal*/ 18, /*upBound*/ 20, /*resBound*/ 28, /*resBottomBound*/ 20, /*resUpBound*/ 30);
+
+ assertEquals(19, seq.incrementAndGet());
+
+ assertSeqFields(seq, /*locVal*/ 19, /*upBound*/ 20, /*resBound*/ 28, /*resBottomBound*/ 20, /*resUpBound*/ 30);
+
+ assertEquals(20, seq.incrementAndGet());
+
+ assertSeqFields(seq, /*locVal*/ 20, /*upBound*/ 30, /*resBound*/ 28, /*resBottomBound*/ 20, /*resUpBound*/ 30);
+ }
+
+ /** @throws Exception If failed. */
+ public void testValuesPercentage50() throws Exception {
+ String seqName = UUID.randomUUID().toString();
+
+ final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
+
+ seq.reservePercentage(50);
+
+ assertSeqFields(seq, /*locVal*/ 0, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
+
+ // Exhaust a first reserved range to get recalculated values according to new reserve percentage.
+ assertEquals(10, seq.addAndGet(10));
+
+ assertSeqFields(seq, /*locVal*/ 10, /*upBound*/ 20, /*resBound*/ 15, /*resBottomBound*/ 10, /*resUpBound*/ 20);
+
+ assertEquals(15, seq.addAndGet(5));
+
+ GridTestUtils.waitForCondition(new GridAbsPredicate() {
+ @Override public boolean apply() {
+ return !F.eq(U.field(seq, "isReserveFutResultsProcessed"), true);
+ }
+ }, 1000);
+
+ assertSeqFields(seq, /*locVal*/ 15, /*upBound*/ 20, /*resBound*/ 25, /*resBottomBound*/ 20, /*resUpBound*/ 30);
+ }
+
+ /** @throws Exception If failed. */
+ public void testValuesPercentage0() throws Exception {
+ String seqName = UUID.randomUUID().toString();
+
+ final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
+
+ seq.reservePercentage(0);
+
+ assertSeqFields(seq, /*locVal*/ 0, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
+
+ // Exhaust a first reserved range to get recalculated values according to new reserve percentage.
+ assertEquals(10, seq.addAndGet(10));
+
+ assertSeqFields(seq, /*locVal*/ 10, /*upBound*/ 20, /*resBound*/ 10, /*resBottomBound*/ 10, /*resUpBound*/ 20);
+
+ assertEquals(11, seq.addAndGet(1));
+
+ GridTestUtils.waitForCondition(new GridAbsPredicate() {
+ @Override public boolean apply() {
+ return !F.eq(U.field(seq, "isReserveFutResultsProcessed"), true);
+ }
+ }, 1000);
+
+ assertSeqFields(seq, /*locVal*/ 11, /*upBound*/ 20, /*resBound*/ 20, /*resBottomBound*/ 20, /*resUpBound*/ 30);
+
+ assertEquals(12, seq.incrementAndGet());
+
+ assertSeqFields(seq, /*locVal*/ 12, /*upBound*/ 20, /*resBound*/ 20, /*resBottomBound*/ 20, /*resUpBound*/ 30);
+
+ assertEquals(20, seq.addAndGet(8));
+
+ assertSeqFields(seq, /*locVal*/ 20, /*upBound*/ 30, /*resBound*/ 20, /*resBottomBound*/ 20, /*resUpBound*/ 30);
+ }
+
+ /** @throws Exception If failed. */
+ public void testValuesPercentage100() throws Exception {
+ String seqName = UUID.randomUUID().toString();
+
+ final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
+
+ seq.reservePercentage(100);
+
+ assertSeqFields(seq, /*locVal*/ 0, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
+
+ // Exhaust a first reserved range to get recalculated values according to new reserve percentage.
+ assertEquals(10, seq.addAndGet(10));
+
+ assertSeqFields(seq, /*locVal*/ 10, /*upBound*/ 20, /*resBound*/ 20, /*resBottomBound*/ 10, /*resUpBound*/ 20);
+
+ assertEquals(19, seq.addAndGet(9));
+
+ assertSeqFields(seq, /*locVal*/ 19, /*upBound*/ 20, /*resBound*/ 20, /*resBottomBound*/ 10, /*resUpBound*/ 20);
+
+ assertEquals(20, seq.incrementAndGet());
+
+ assertSeqFields(seq, /*locVal*/ 20, /*upBound*/ 30, /*resBound*/ 30, /*resBottomBound*/ 20, /*resUpBound*/ 30);
+ }
+
+ /** @throws Exception If failed. */
+ public void testValuesDoubleReservation() throws Exception {
+ String seqName = UUID.randomUUID().toString();
+
+ final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
+
+ assertSeqFields(seq, /*locVal*/ 0, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
+
+ assertEquals(30, seq.addAndGet(30));
+ }
+
+ /** @throws Exception If failed. */
+ public void testValues2Nodes() throws Exception {
+ String seqName = UUID.randomUUID().toString();
+
+ startGrid(1);
+
+ try {
+ final GridCacheAtomicSequenceImpl seq1 = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
+ final GridCacheAtomicSequenceImpl seq2 = (GridCacheAtomicSequenceImpl)grid(1).atomicSequence(seqName, 0, false);
+
+ assertSeqFields(seq1, /*locVal*/ 0, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
+ assertSeqFields(seq2, /*locVal*/ 10, /*upBound*/ 20, /*resBound*/ 18, /*resBottomBound*/ 0, /*resUpBound*/ 0);
+
+ assertEquals(1, seq1.incrementAndGet());
+ assertEquals(11, seq2.incrementAndGet());
+
+ assertSeqFields(seq1, /*locVal*/ 1, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
+ assertSeqFields(seq2, /*locVal*/ 11, /*upBound*/ 20, /*resBound*/ 18, /*resBottomBound*/ 0, /*resUpBound*/ 0);
+
+ assertEquals(7, seq1.addAndGet(6));
+ assertEquals(17, seq2.addAndGet(6));
+
+ assertSeqFields(seq1, /*locVal*/ 7, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
+ assertSeqFields(seq2, /*locVal*/ 17, /*upBound*/ 20, /*resBound*/ 18, /*resBottomBound*/ 0, /*resUpBound*/ 0);
+
+ // New reservation (reverse order)
+ assertEquals(18, seq2.incrementAndGet());
+
+ assertTrue(GridTestUtils.waitForCondition(new GridAbsPredicate() {
+ @Override public boolean apply() {
+ return !F.eq(U.field(seq2, "isReserveFutResultsProcessed"), true);
+ }
+ }, 1000));
+
+ assertEquals(8, seq1.incrementAndGet());
+
+ assertTrue(GridTestUtils.waitForCondition(new GridAbsPredicate() {
+ @Override public boolean apply() {
+ return !F.eq(U.field(seq1, "isReserveFutResultsProcessed"), true);
+ }
+ }, 1000));
+
+ assertSeqFields(seq1, /*locVal*/ 8, /*upBound*/ 10, /*resBound*/ 38, /*resBottomBound*/ 30, /*resUpBound*/ 40);
+ assertSeqFields(seq2, /*locVal*/ 18, /*upBound*/ 20, /*resBound*/ 28, /*resBottomBound*/ 20, /*resUpBound*/ 30);
+
+ assertEquals(30, seq1.addAndGet(7));
+ assertEquals(20, seq2.addAndGet(2));
+
+ assertSeqFields(seq1, /*locVal*/ 30, /*upBound*/ 40, /*resBound*/ 38, /*resBottomBound*/ 30, /*resUpBound*/ 40);
+ assertSeqFields(seq2, /*locVal*/ 20, /*upBound*/ 30, /*resBound*/ 28, /*resBottomBound*/ 20, /*resUpBound*/ 30);
+ }
+ finally {
+ stopGrid(1);
+ }
+ }
+
+ /**
+ * @param seq Sequence.
+ * @param locVal Local value.
+ * @param upBound Up bound.
+ * @param newReservationLine Reservation bnound.
+ * @param reservedBottomBound Reservation bottom bound.
+ * @param reservedUpBound Reservation up bound.
+ */
+ private void assertSeqFields(GridCacheAtomicSequenceImpl seq, long locVal, long upBound, long newReservationLine,
+ long reservedBottomBound, long reservedUpBound) {
+ assertEquals(new Long(locVal), U.field(seq, "locVal"));
+ assertEquals(new Long(upBound), U.field(seq, "upBound"));
+ assertEquals(new Long(newReservationLine), U.field(seq, "newReservationLine"));
+ assertEquals(new Long(reservedBottomBound), U.field(seq, "reservedBottomBound"));
+ assertEquals(new Long(reservedUpBound), U.field(seq, "reservedUpBound"));
+ }
+
+ /** @throws Exception If failed. */
+ public void testValues2NodesDoubleReservation() throws Exception {
+ String seqName = UUID.randomUUID().toString();
+
+ startGrid(1);
+
+ try {
+ final GridCacheAtomicSequenceImpl seq1 = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
+ final GridCacheAtomicSequenceImpl seq2 = (GridCacheAtomicSequenceImpl)grid(1).atomicSequence(seqName, 0, false);
+
+ assertEquals(1, seq1.incrementAndGet());
+ assertEquals(11, seq2.incrementAndGet());
+
+ assertEquals(new Long(1L), U.field(seq1, "locVal"));
+ assertEquals(new Long(10L), U.field(seq1, "upBound"));
+ assertEquals(new Long(11L), U.field(seq2, "locVal"));
+ assertEquals(new Long(20L), U.field(seq2, "upBound"));
+
+ assertEquals(31, seq2.addAndGet(20));
+
+ assertEquals(new Long(1L), U.field(seq1, "locVal"));
+ assertEquals(new Long(10L), U.field(seq1, "upBound"));
+ assertEquals(new Long(31L), U.field(seq2, "locVal"));
+ assertEquals(new Long(40L), U.field(seq2, "upBound"));
+
+ // Jump
+ assertEquals(40, seq1.addAndGet(23));
+ }
+ finally {
+ stopGrid(1);
+ }
+ }
+
+ /** @throws Exception If failed. */
+ public void testUpdatedSync() throws Exception {
+ checkUpdate(true);
+ }
+
+ /** @throws Exception If failed. */
+ public void testPreviousSync() throws Exception {
+ checkUpdate(false);
+ }
+
+ /** @throws Exception If failed. */
+ public void testIncrementAndGet() throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.incrementAndGet();
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /** @throws Exception If failed. */
+ public void testIncrementAndGet2Nodes() throws Exception {
+ startGrid(1);
+
+ try {
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq1 = grid(0).atomicSequence(seqName, 0L, true);
+ final IgniteAtomicSequence seq2 = grid(1).atomicSequence(seqName, 0L, true);
+
+ multithreaded(new Runnable() {
+ @Override public void run() {
+ for (int i = 0; i < ITERATION_NUM; i++) {
+ if (i % 2 == 0)
+ seq1.incrementAndGet();
+ else
+ seq2.incrementAndGet();
+ }
+ }
+ }, THREAD_NUM);
+
+ long seq1Val = seq1.get();
+ long seq2Val = seq2.get();
+
+ assertEquals(ITERATION_NUM * THREAD_NUM + (seq1Val < seq2Val ? 0 : 10), seq1Val);
+ assertEquals(ITERATION_NUM * THREAD_NUM + (seq1Val < seq2Val ? 10 : 0), seq2Val);
+ }
+ finally {
+ stopGrid(1);
+ }
+ }
+
+ /** @throws Exception If failed. */
+ public void testGetAndIncrement() throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.getAndIncrement();
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /** @throws Exception If failed. */
+ public void testAddAndGet() throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.addAndGet(5);
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(5 * ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /** @throws Exception If failed. */
+ public void testGetAndAdd() throws Exception {
+ checkGetAndAdd(5);
+ }
+
+ /** @throws Exception If failed. */
+ public void testGetAndAdd2() throws Exception {
+ checkGetAndAdd(3);
+ }
+
+ /**
+ * @param val Value.
+ * @throws Exception If failed.
+ */
+ private void checkGetAndAdd(final int val) throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.getAndAdd(val);
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(val * ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /** @throws Exception If failed. */
+ public void testMixed1() throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.incrementAndGet();
+ t.getAndIncrement();
+ t.incrementAndGet();
+ t.getAndIncrement();
+ t.getAndAdd(3);
+ t.addAndGet(3);
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(10 * ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /** @throws Exception If failed. */
+ public void testMixed2() throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.getAndAdd(2);
+ t.addAndGet(3);
+ t.addAndGet(5);
+ t.getAndAdd(7);
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(17 * ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /**
+ * Executes given closure in a given number of threads given number of times.
+ *
+ * @param c Closure to execute.
+ * @param seq Sequence to pass into closure.
+ * @param cnt Count of iterations per thread.
+ * @param threadCnt Thread count.
+ * @throws Exception If failed.
+ */
+ protected void runSequenceClosure(final GridInUnsafeClosure<IgniteAtomicSequence> c,
+ final IgniteAtomicSequence seq, final int cnt, final int threadCnt) throws Exception {
+ multithreaded(new Runnable() {
+ @Override public void run() {
+ try {
+ for (int i = 0; i < cnt; i++)
+ c.apply(seq);
+ }
+ catch (IgniteCheckedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }, threadCnt);
+ }
+
+ /**
+ * @param updated Whether use updated values.
+ * @throws Exception If failed.
+ */
+ @SuppressWarnings("IfMayBeConditional")
+ private void checkUpdate(boolean updated) throws Exception {
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ long curVal = 0;
+
+ Random r = new Random();
+
+ for (int i = 0; i < ITERATION_NUM; i++) {
+ long delta = r.nextInt(10) + 1;
+
+ long retVal = updated ? seq.addAndGet(delta) : seq.getAndAdd(delta);
+
+ assertEquals(updated ? curVal + delta : curVal, retVal);
+
+ curVal += delta;
+ }
+ }
+
+ /**
+ * Closure that throws exception.
+ *
+ * @param <E> Closure argument type.
+ */
+ private abstract static class GridInUnsafeClosure<E> {
+ public abstract void apply(E p) throws IgniteCheckedException;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/784958bf/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
index d988b2c..e7a477f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
@@ -18,12 +18,12 @@
package org.apache.ignite.internal.processors.cache.datastructures;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.Callable;
+
import org.apache.ignite.IgniteAtomicSequence;
import org.apache.ignite.configuration.AtomicConfiguration;
import org.apache.ignite.configuration.CacheConfiguration;
@@ -36,6 +36,7 @@ import org.apache.ignite.internal.processors.datastructures.GridCacheInternalKey
import org.apache.ignite.internal.util.typedef.G;
import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.transactions.Transaction;
+import org.eclipse.jetty.util.ConcurrentHashSet;
import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.cache.CacheMode.PARTITIONED;
@@ -119,7 +120,7 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
assertEquals(BATCH_SIZE, seq.batchSize());
}
- assertEquals(1, G.allGrids().size());
+ assertEquals(gridCount(), G.allGrids().size());
}
/** {@inheritDoc} */
@@ -308,9 +309,29 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
* @throws Exception If failed.
*/
public void testMultiThreadedSequenceIntegrity() throws Exception {
- multiThreadedSequenceIntegrity(1, 0);
- multiThreadedSequenceIntegrity(7, -1500);
- multiThreadedSequenceIntegrity(3, 345);
+ multiThreadedSequenceIntegrity(/*batchSize*/ 1, /*percentage*/ 30, /*initVal*/0);
+ multiThreadedSequenceIntegrity(/*batchSize*/ 7, /*percentage*/ 0, /*initVal*/-1500);
+ multiThreadedSequenceIntegrity(/*batchSize*/ 3, /*percentage*/ 100, /*initVal*/345);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testMultiNodeSequenceIntegrity() throws Exception {
+ if (gridCount() < 2)
+ return;
+
+ multiNodeSequenceIntegrity(/*batchSize*/ 1, /*percentage*/ 80, /*initVal*/0);
+ multiNodeSequenceIntegrity(/*batchSize*/ 1, /*percentage*/ 0, /*initVal*/-11);
+ multiNodeSequenceIntegrity(/*batchSize*/ 1, /*percentage*/ 100, /*initVal*/183);
+
+ multiNodeSequenceIntegrity(/*batchSize*/ 7, /*percentage*/ 20, /*initVal*/83);
+ multiNodeSequenceIntegrity(/*batchSize*/ 7, /*percentage*/ 0, /*initVal*/-17);
+ multiNodeSequenceIntegrity(/*batchSize*/ 7, /*percentage*/ 100, /*initVal*/11);
+
+ multiNodeSequenceIntegrity(/*batchSize*/ 11, /*percentage*/ 50, /*initVal*/-7);
+ multiNodeSequenceIntegrity(/*batchSize*/ 11, /*percentage*/ 0, /*initVal*/55);
+ multiNodeSequenceIntegrity(/*batchSize*/ 11, /*percentage*/ 100, /*initVal*/22);
}
/**
@@ -364,8 +385,8 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
* Sequence get and increment.
*
* @param seq Sequence for test.
- * @throws Exception If failed.
* @return Result of operation.
+ * @throws Exception If failed.
*/
private long getAndIncrement(IgniteAtomicSequence seq) throws Exception {
long locSeqVal = seq.get();
@@ -381,8 +402,8 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
* Sequence add and increment
*
* @param seq Sequence for test.
- * @throws Exception If failed.
* @return Result of operation.
+ * @throws Exception If failed.
*/
private long incrementAndGet(IgniteAtomicSequence seq) throws Exception {
long locSeqVal = seq.get();
@@ -399,8 +420,8 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
*
* @param seq Sequence for test.
* @param l Number of added elements.
- * @throws Exception If failed.
* @return Result of operation.
+ * @throws Exception If failed.
*/
private long addAndGet(IgniteAtomicSequence seq, long l) throws Exception {
long locSeqVal = seq.get();
@@ -417,8 +438,8 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
*
* @param seq Sequence for test.
* @param l Number of added elements.
- * @throws Exception If failed.
* @return Result of operation.
+ * @throws Exception If failed.
*/
private long getAndAdd(IgniteAtomicSequence seq, long l) throws Exception {
long locSeqVal = seq.get();
@@ -431,10 +452,10 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
}
/**
- * Sequence integrity.
+ * Sequence integrity.
*
* @param batchSize Sequence batch size.
- * @param initVal Sequence initial value.
+ * @param initVal Sequence initial value.
* @throws Exception If test fail.
*/
private void sequenceIntegrity(int batchSize, long initVal) throws Exception {
@@ -465,24 +486,24 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
}
/**
- * Multi-threaded integrity.
+ * Multi-threaded integrity.
*
* @param batchSize Sequence batch size.
- * @param initVal Sequence initial value.
+ * @param initVal Sequence initial value.
* @throws Exception If test fail.
*/
- private void multiThreadedSequenceIntegrity(int batchSize, long initVal) throws Exception {
+ private void multiThreadedSequenceIntegrity(int batchSize, int percentage, long initVal) throws Exception {
// Random sequence names.
String locSeqName = UUID.randomUUID().toString();
// Sequence.
- final IgniteAtomicSequence locSeq = grid().atomicSequence(locSeqName, initVal,
- true);
+ final IgniteAtomicSequence locSeq = grid().atomicSequence(locSeqName, initVal, true);
locSeq.batchSize(batchSize);
+ locSeq.reservePercentage(percentage);
// Result set.
- final Set<Long> resSet = Collections.synchronizedSet(new HashSet<Long>());
+ final Set<Long> resSet = new ConcurrentHashSet<>();
// Get sequence value and try to put it result set.
for (int i = 0; i < MAX_LOOPS_NUM; i++) {
@@ -521,7 +542,6 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
resSet.add(val);
-
if (i % 100 == 0)
info("Finished iteration 2: " + i);
}
@@ -539,6 +559,51 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
}
/**
+ * Multi-threaded integrity.
+ *
+ * @param batchSize Sequence batch size.
+ * @param initVal Sequence initial value.
+ * @throws Exception If test fail.
+ */
+ private void multiNodeSequenceIntegrity(int batchSize, int percentage, long initVal) throws Exception {
+ // Random sequence names.
+ String locSeqName = UUID.randomUUID().toString();
+
+ // Sequences.
+ final IgniteAtomicSequence[] locSeqs = new IgniteAtomicSequence[3];
+
+ for (int i = 0; i < locSeqs.length; i++) {
+ locSeqs[i] = grid(i).atomicSequence(locSeqName, initVal, true);
+
+ locSeqs[i].batchSize(batchSize);
+
+ locSeqs[i].reservePercentage(percentage);
+ }
+
+ final Set<Long> resSet = new ConcurrentHashSet<>();
+
+ multithreaded(
+ new Callable() {
+ @Nullable @Override public Object call() throws Exception {
+ // Get sequence value and try to put it result set.
+ for (int i = 0; i < MAX_LOOPS_NUM; i++) {
+ Long val = locSeqs[i % locSeqs.length].getAndIncrement();
+
+ assert !resSet.contains(val) : "Element already in set : " + val;
+
+ resSet.add(val);
+ }
+
+ return null;
+ }
+ }, THREAD_NUM);
+
+ assert resSet.size() == MAX_LOOPS_NUM * THREAD_NUM;
+
+ removeSequence(locSeqName);
+ }
+
+ /**
* Test sequence integrity.
*
* @param seq Sequence for test.
http://git-wip-us.apache.org/repos/asf/ignite/blob/784958bf/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
index 945650d..ac38fd5 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
@@ -17,324 +17,17 @@
package org.apache.ignite.internal.processors.cache.datastructures.partitioned;
-import java.util.Random;
-import java.util.UUID;
-import org.apache.ignite.IgniteAtomicSequence;
-import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.cache.CacheMode;
-import org.apache.ignite.configuration.AtomicConfiguration;
-import org.apache.ignite.internal.processors.cache.datastructures.IgniteAtomicsAbstractTest;
-import org.apache.ignite.internal.processors.datastructures.GridCacheAtomicSequenceImpl;
-import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.processors.cache.datastructures.GridCacheAtomicSequenceMultiThreadedAbstractTest;
import static org.apache.ignite.cache.CacheMode.PARTITIONED;
/**
* Cache partitioned multi-threaded tests.
*/
-public class GridCachePartitionedAtomicSequenceMultiThreadedTest extends IgniteAtomicsAbstractTest {
- /** Number of threads for multithreaded test. */
- private static final int THREAD_NUM = 30;
-
- /** Number of iterations per thread for multithreaded test. */
- private static final int ITERATION_NUM = 4000;
-
+public class GridCachePartitionedAtomicSequenceMultiThreadedTest extends GridCacheAtomicSequenceMultiThreadedAbstractTest {
/** {@inheritDoc} */
@Override protected CacheMode atomicsCacheMode() {
return PARTITIONED;
}
-
- /** {@inheritDoc} */
- @Override protected int gridCount() {
- return 1;
- }
-
- /** {@inheritDoc} */
- @Override protected AtomicConfiguration atomicConfiguration() {
- AtomicConfiguration cfg = super.atomicConfiguration();
-
- cfg.setBackups(1);
- cfg.setAtomicSequenceReserveSize(10);
-
- return cfg;
- }
-
- /** @throws Exception If failed. */
- public void testValues() throws Exception {
- String seqName = UUID.randomUUID().toString();
-
- final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
-
- // Local reservations.
- assertEquals(1, seq.incrementAndGet());
- assertEquals(1, seq.getAndIncrement()); // Seq = 2
- assertEquals(3L, seq.incrementAndGet());
- assertEquals(3L, seq.getAndIncrement()); // Seq=4
-
- assertEquals(4, seq.getAndAdd(3));
- assertEquals(9, seq.addAndGet(2));
-
- assertEquals(new Long(9L), U.field(seq, "locVal"));
- assertEquals(new Long(9L), U.field(seq, "upBound"));
-
- // Cache calls.
- assertEquals(10, seq.incrementAndGet());
-
- assertEquals(new Long(10L), U.field(seq, "locVal"));
- assertEquals(new Long(19L), U.field(seq, "upBound"));
-
- seq.addAndGet(9);
-
- assertEquals(new Long(19L), U.field(seq, "locVal"));
- assertEquals(new Long(19L), U.field(seq, "upBound"));
-
- assertEquals(20L, seq.incrementAndGet());
-
- assertEquals(new Long(20L), U.field(seq, "locVal"));
- assertEquals(new Long(29L), U.field(seq, "upBound"));
-
- seq.addAndGet(9);
-
- assertEquals(new Long(29L), U.field(seq, "locVal"));
- assertEquals(new Long(29L), U.field(seq, "upBound"));
-
- assertEquals(29, seq.getAndIncrement());
-
- assertEquals(new Long(30L), U.field(seq, "locVal"));
- assertEquals(new Long(39L), U.field(seq, "upBound"));
-
- seq.addAndGet(9);
-
- assertEquals(new Long(39L), U.field(seq, "locVal"));
- assertEquals(new Long(39L), U.field(seq, "upBound"));
-
- assertEquals(39L, seq.getAndIncrement());
-
- assertEquals(new Long(40L), U.field(seq, "locVal"));
- assertEquals(new Long(49L), U.field(seq, "upBound"));
-
- seq.addAndGet(9);
-
- assertEquals(new Long(49L), U.field(seq, "locVal"));
- assertEquals(new Long(49L), U.field(seq, "upBound"));
-
- assertEquals(50, seq.addAndGet(1));
-
- assertEquals(new Long(50L), U.field(seq, "locVal"));
- assertEquals(new Long(59L), U.field(seq, "upBound"));
-
- seq.addAndGet(9);
-
- assertEquals(new Long(59L), U.field(seq, "locVal"));
- assertEquals(new Long(59L), U.field(seq, "upBound"));
-
- assertEquals(59, seq.getAndAdd(1));
-
- assertEquals(new Long(60L), U.field(seq, "locVal"));
- assertEquals(new Long(69L), U.field(seq, "upBound"));
- }
-
- /** @throws Exception If failed. */
- public void testUpdatedSync() throws Exception {
- checkUpdate(true);
- }
-
- /** @throws Exception If failed. */
- public void testPreviousSync() throws Exception {
- checkUpdate(false);
- }
-
- /** @throws Exception If failed. */
- public void testIncrementAndGet() throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.incrementAndGet();
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /** @throws Exception If failed. */
- public void testIncrementAndGetAsync() throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.incrementAndGet();
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /** @throws Exception If failed. */
- public void testGetAndIncrement() throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.getAndIncrement();
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /** @throws Exception If failed. */
- public void testGetAndIncrementAsync() throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.getAndIncrement();
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /** @throws Exception If failed. */
- public void testAddAndGet() throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.addAndGet(5);
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(5 * ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /** @throws Exception If failed. */
- public void testGetAndAdd() throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.getAndAdd(5);
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(5 * ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /** @throws Exception If failed. */
- public void testMixed1() throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.incrementAndGet();
- t.getAndIncrement();
- t.incrementAndGet();
- t.getAndIncrement();
- t.getAndAdd(3);
- t.addAndGet(3);
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(10 * ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /** @throws Exception If failed. */
- public void testMixed2() throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.getAndAdd(2);
- t.addAndGet(3);
- t.addAndGet(5);
- t.getAndAdd(7);
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(17 * ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /**
- * Executes given closure in a given number of threads given number of times.
- *
- * @param c Closure to execute.
- * @param seq Sequence to pass into closure.
- * @param cnt Count of iterations per thread.
- * @param threadCnt Thread count.
- * @throws Exception If failed.
- */
- protected void runSequenceClosure(final GridInUnsafeClosure<IgniteAtomicSequence> c,
- final IgniteAtomicSequence seq, final int cnt, final int threadCnt) throws Exception {
- multithreaded(new Runnable() {
- @Override public void run() {
- try {
- for (int i = 0; i < cnt; i++)
- c.apply(seq);
- }
- catch (IgniteCheckedException e) {
- throw new RuntimeException(e);
- }
- }
- }, threadCnt);
- }
-
- /**
- * @param updated Whether use updated values.
- * @throws Exception If failed.
- */
- @SuppressWarnings("IfMayBeConditional")
- private void checkUpdate(boolean updated) throws Exception {
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- long curVal = 0;
-
- Random r = new Random();
-
- for (int i = 0; i < ITERATION_NUM; i++) {
- long delta = r.nextInt(10) + 1;
-
- long retVal = updated ? seq.addAndGet(delta) : seq.getAndAdd(delta);
-
- assertEquals(updated ? curVal + delta : curVal, retVal);
-
- curVal += delta;
- }
- }
-
- /**
- * Closure that throws exception.
- *
- * @param <E> Closure argument type.
- */
- private abstract static class GridInUnsafeClosure<E> {
- public abstract void apply(E p) throws IgniteCheckedException;
- }
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/784958bf/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedSequenceApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedSequenceApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedSequenceApiSelfTest.java
index adc2ab3..ae03348 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedSequenceApiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedSequenceApiSelfTest.java
@@ -40,4 +40,8 @@ public class GridCachePartitionedSequenceApiSelfTest extends GridCacheSequenceAp
return atomicCfg;
}
+
+ @Override protected int gridCount() {
+ return 3;
+ }
}
\ No newline at end of file
[13/34] ignite git commit: IGNITE-3727 start/stop async remote
listener test
Posted by sb...@apache.org.
IGNITE-3727 start/stop async remote listener test
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/14e1a6b3
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/14e1a6b3
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/14e1a6b3
Branch: refs/heads/ignite-3727-2
Commit: 14e1a6b300109e84bf1a0652673fa674a9ea83b3
Parents: 271619d
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Thu Sep 8 20:24:08 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Thu Sep 8 20:24:08 2016 +0300
----------------------------------------------------------------------
.../ignite/messaging/GridMessagingSelfTest.java | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/14e1a6b3/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
index 2e2afd4..c6ce0dc 100644
--- a/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
@@ -1045,6 +1045,8 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
}
}, IllegalStateException.class, null);
+ discoSpi.blockCustomEvent();
+
final String topic = "topic";
UUID id = msg.remoteListen(topic, new P2<UUID, Object>() {
@@ -1060,9 +1062,13 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
Assert.assertNull(id);
- IgniteFuture<UUID> fut = msg.future();
+ IgniteFuture<UUID> starFut = msg.future();
+
+ Assert.assertNotNull(starFut);
+
+ Assert.assertFalse(starFut.isDone());
- Assert.assertNotNull(fut);
+ discoSpi.stopBlock();
GridTestUtils.assertThrows(log, new Callable<Void>() {
@Override public Void call() throws Exception {
@@ -1072,10 +1078,12 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
}
}, IllegalStateException.class, null);
- id = fut.get();
+ id = starFut.get();
Assert.assertNotNull(id);
+ Assert.assertTrue(starFut.isDone());
+
message(ignite1.cluster().forRemotes()).send(topic, "msg1");
GridTestUtils.waitForCondition(new PA() {
@@ -1086,8 +1094,6 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
assertEquals(1, msgCnt.get());
- discoSpi.blockCustomEvent();
-
msg.stopRemoteListen(id);
IgniteFuture<?> stopFut = msg.future();
@@ -1135,7 +1141,7 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
synchronized (mux) {
if (blockCustomEvt) {
DiscoveryCustomMessage msg0 = GridTestUtils.getFieldValue(msg, "delegate");
- if (msg0 instanceof StopRoutineDiscoveryMessage) {
+ if (msg0 instanceof StopRoutineDiscoveryMessage || msg0 instanceof StartRoutineDiscoveryMessage) {
log.info("Block custom message: " + msg0);
blockedMsgs.add(msg);
[03/34] ignite git commit: IGNITE-3727: added comment for message
send method, details behavior
Posted by sb...@apache.org.
IGNITE-3727: added comment for message send method, details behavior
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/1f31fdb4
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/1f31fdb4
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/1f31fdb4
Branch: refs/heads/ignite-3727-2
Commit: 1f31fdb47b7b0f8d621ee1c96927038591cd369d
Parents: bb899bd
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Fri Sep 2 17:15:44 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Fri Sep 2 17:15:44 2016 +0300
----------------------------------------------------------------------
modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/1f31fdb4/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java b/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
index ab554af..a9dc043 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
@@ -77,6 +77,7 @@ public interface IgniteMessaging extends IgniteAsyncSupport {
/**
* Sends given message with specified topic to the nodes in the underlying cluster group.
+ * When you invoke method, all listeners who were registered on the local node{@link #localListen} or {@link #remoteListen}, will be executing in the same thread.
*
* @param topic Topic to send to, {@code null} for default topic.
* @param msg Message to send.
@@ -87,6 +88,7 @@ public interface IgniteMessaging extends IgniteAsyncSupport {
/**
* Sends given messages with the specified topic to the nodes in the underlying cluster group.
+ * When you invoke method, all listeners who were registered on local node {@link #localListen} or {@link #remoteListen}, will be executing in the same thread.
*
* @param topic Topic to send to, {@code null} for default topic.
* @param msgs Messages to send. Order of the sending is undefined. If the method produces
[27/34] ignite git commit: ignite-3727 added test for sendOrdered +
javadoc (behavior sendOrdered)
Posted by sb...@apache.org.
ignite-3727 added test for sendOrdered + javadoc (behavior sendOrdered)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/de59444b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/de59444b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/de59444b
Branch: refs/heads/ignite-3727-2
Commit: de59444b235ae325bb35976dbd0f211ce8dfb69c
Parents: 60b030c
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Wed Sep 14 11:18:10 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Wed Sep 14 11:18:10 2016 +0300
----------------------------------------------------------------------
.../java/org/apache/ignite/IgniteMessaging.java | 4 +-
.../messaging/IgniteMessagingSendAsyncTest.java | 147 ++++++++++++++++++-
2 files changed, 149 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/de59444b/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java b/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
index 00a4fc8..b0cbe1d 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
@@ -103,7 +103,9 @@ public interface IgniteMessaging extends IgniteAsyncSupport {
/**
* Sends given message with specified topic to the nodes in the underlying cluster group. Messages sent with
* this method will arrive in the same order they were sent. Note that if a topic is used
- * for ordered messages, then it cannot be reused for non-ordered messages.
+ * for ordered messages, then it cannot be reused for non-ordered messages. Note if you have local listener
+ * on this topic, all messages will process through thread pool, and current thread will never be blocked
+ * when you invoke sendOrdered, no matter which mode you used (default or {@link #withAsync()}).
* <p>
* The {@code timeout} parameter specifies how long an out-of-order message will stay in a queue,
* waiting for messages that are ordered ahead of it to arrive. If timeout expires, then all ordered
http://git-wip-us.apache.org/repos/asf/ignite/blob/de59444b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
index 66c9ed0..4cfff38 100644
--- a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
@@ -17,6 +17,7 @@
package org.apache.ignite.messaging;
+import com.google.common.collect.Lists;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteMessaging;
import org.apache.ignite.lang.IgniteBiInClosure;
@@ -25,6 +26,7 @@ import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.junit.Assert;
import java.io.Serializable;
+import java.util.List;
import java.util.UUID;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicReference;
@@ -65,7 +67,6 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
Assert.assertEquals(msgStr, msg);
}
});
-
}
/**
@@ -116,6 +117,72 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
+ * Test for check, that SendOrdered work in our thread pool. 1 node in topology.
+ */
+ public void testSendOrderedDefaultMode() throws Exception {
+ Ignite ignite1 = startGrid(1);
+
+ final List<String> msgs = orderedMsg();
+
+ sendOrdered(ignite1.message(), msgs, new IgniteBiInClosure< List<String>, List<Thread>> () {
+ @Override public void apply(List<String> received, List<Thread> threads) {
+ assertFalse(threads.contains(Thread.currentThread()));
+ assertTrue(msgs.equals(received));
+ }
+ });
+ }
+
+ /**
+ * Test for check, that SendOrdered work in our thread pool. 1 node in topology.
+ */
+ public void testSendOrderedAsyncMode() throws Exception {
+ Ignite ignite1 = startGrid(1);
+
+ final List<String> msgs = orderedMsg();
+
+ sendOrdered(ignite1.message().withAsync(), msgs, new IgniteBiInClosure< List<String>, List<Thread>> () {
+ @Override public void apply(List<String> received, List<Thread> threads) {
+ assertFalse(threads.contains(Thread.currentThread()));
+ assertTrue(msgs.equals(received));
+ }
+ });
+ }
+
+ /**
+ * Test for check, that SendOrdered work in our thread pool. 2 node in topology.
+ */
+ public void testSendOrderedDefaultMode2Node() throws Exception {
+ Ignite ignite1 = startGrid(1);
+ Ignite ignite2 = startGrid(2);
+
+ final List<String> msgs = orderedMsg();
+
+ sendOrderedWith2Node(ignite2, ignite1.message(), msgs, new IgniteBiInClosure<List<String>, List<Thread>>() {
+ @Override public void apply(List<String> received, List<Thread> threads) {
+ assertFalse(threads.contains(Thread.currentThread()));
+ assertTrue(msgs.equals(received));
+ }
+ });
+ }
+
+ /**
+ * Test for check, that SendOrdered work in our thread pool. 2 node in topology.
+ */
+ public void testSendOrderedAsyncMode2Node() throws Exception {
+ Ignite ignite1 = startGrid(1);
+ Ignite ignite2 = startGrid(2);
+
+ final List<String> msgs = orderedMsg();
+
+ sendOrderedWith2Node(ignite2, ignite1.message().withAsync(), msgs, new IgniteBiInClosure<List<String>, List<Thread>>() {
+ @Override public void apply(List<String> received, List<Thread> threads) {
+ assertFalse(threads.contains(Thread.currentThread()));
+ assertTrue(msgs.equals(received));
+ }
+ });
+ }
+
+ /**
* @param igniteMsg Ignite message.
* @param msgStr Message string.
* @param cls Callback for compare result.
@@ -171,4 +238,82 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
cls.apply(val.get(), thread.get());
}
+
+ /**
+ * @param ignite2 Ignite 2.
+ * @param igniteMsg Ignite message.
+ * @param msgs messages for send.
+ * @param cls Callback for compare result.
+ */
+ private void sendOrderedWith2Node(
+ final Ignite ignite2,
+ final IgniteMessaging igniteMsg,
+ final List<String> msgs,
+ final IgniteBiInClosure<List<String>,List<Thread>> cls
+ ) throws Exception {
+
+ final CountDownLatch latch = new CountDownLatch(msgs.size());
+
+ final List<String> received = Lists.newArrayList();
+
+ ignite2.message().localListen(TOPIC, new IgniteBiPredicate<UUID, String>() {
+ @Override public boolean apply(UUID uuid, String msg) {
+ received.add(msg);
+ latch.countDown();
+ return true;
+ }
+ });
+
+ sendOrdered(igniteMsg, msgs, cls);
+
+ latch.await();
+
+ assertTrue(msgs.equals(received));
+
+ }
+
+ /**
+ * @param igniteMsg Ignite message.
+ * @param msgs messages for send.
+ * @param cls Callback for compare result.
+ */
+ private void sendOrdered(
+ final IgniteMessaging igniteMsg,
+ final List<String> msgs,
+ final IgniteBiInClosure<List<String>,List<Thread>> cls
+ ) throws InterruptedException {
+
+ final CountDownLatch latch = new CountDownLatch(msgs.size());
+
+ final List<String> received = Lists.newArrayList();
+ final List<Thread> threads = Lists.newArrayList();
+
+ for (String msg : msgs)
+ igniteMsg.sendOrdered(TOPIC, msg, 1000);
+
+ igniteMsg.localListen(TOPIC, new IgniteBiPredicate<UUID, String>() {
+ @Override public boolean apply(UUID uuid, String s) {
+ received.add(s);
+ threads.add(Thread.currentThread());
+ latch.countDown();
+ return true;
+ }
+ });
+
+ latch.await();
+
+ cls.apply(received, threads);
+ }
+
+ /**
+ * @return List ordered messages
+ */
+ private List<String> orderedMsg() {
+ final List<String> msgs = Lists.newArrayList();
+
+ for (int i = 0; i < 1000; i++)
+ msgs.add("" + i);
+
+ return msgs;
+ }
}
[33/34] ignite git commit: Merge remote-tracking branch
'remotes/origin/master' into ignite-3727-2
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/master' into ignite-3727-2
# Conflicts:
# modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffle.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/91e83407
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/91e83407
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/91e83407
Branch: refs/heads/ignite-3727-2
Commit: 91e834078402dcab161cdac7f9b4a72f89c80135
Parents: 000bb8e 8e12513
Author: sboikov <sb...@gridgain.com>
Authored: Tue Feb 14 15:40:47 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Feb 14 15:40:47 2017 +0300
----------------------------------------------------------------------
.gitignore | 1 +
DEVNOTES.txt | 3 +
NOTICE | 2 +-
README.md | 8 +
RELEASE_NOTES.txt | 22 +
assembly/LICENSE_FABRIC | 35 +-
assembly/LICENSE_HADOOP | 17 +-
assembly/NOTICE_FABRIC | 2 +-
assembly/NOTICE_HADOOP | 2 +-
assembly/dependencies-fabric-lgpl.xml | 2 +
assembly/dependencies-fabric.xml | 2 +
assembly/release-base.xml | 5 +
assembly/release-fabric-base.xml | 1 +
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/bin/h2-server.bat | 2 +-
examples/schema-import/bin/h2-server.sh | 4 +-
.../schema-import/bin/schema-import.properties | 2 +-
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 +-
.../src/main/resources/META-INF/licenses.txt.vm | 7 +-
modules/aws/pom.xml | 2 +-
.../tcp/ipfinder/s3/TcpDiscoveryS3IpFinder.java | 37 +-
.../s3/S3CheckpointManagerSelfTest.java | 3 +
.../checkpoint/s3/S3CheckpointSpiSelfTest.java | 4 +
.../s3/S3CheckpointSpiStartStopSelfTest.java | 7 +
.../s3/S3SessionCheckpointSelfTest.java | 2 +
.../TcpDiscoveryS3IpFinderAbstractSelfTest.java | 84 +
...3IpFinderAwsCredentialsProviderSelfTest.java | 46 +
...scoveryS3IpFinderAwsCredentialsSelfTest.java | 45 +
.../s3/TcpDiscoveryS3IpFinderSelfTest.java | 72 -
.../ignite/testsuites/IgniteS3TestSuite.java | 39 +-
modules/benchmarks/pom.xml | 2 +-
.../jmh/misc/JmhIncrementBenchmark.java | 95 +
modules/camel/pom.xml | 2 +-
.../stream/camel/IgniteCamelStreamerTest.java | 4 +-
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 +-
.../ClientAbstractMultiNodeSelfTest.java | 8 +-
.../client/router/TcpSslRouterSelfTest.java | 7 +-
.../client/suite/IgniteClientTestSuite.java | 75 +-
.../jdbc2/JdbcAbstractDmlStatementSelfTest.java | 263 +
.../JdbcAbstractUpdateStatementSelfTest.java | 37 +
...BinaryMarshallerInsertStatementSelfTest.java | 35 +
...cBinaryMarshallerMergeStatementSelfTest.java | 35 +
.../jdbc2/JdbcDeleteStatementSelfTest.java | 49 +
.../jdbc2/JdbcInsertStatementSelfTest.java | 122 +
.../jdbc2/JdbcMergeStatementSelfTest.java | 91 +
.../internal/jdbc2/JdbcMetadataSelfTest.java | 2 +-
.../internal/jdbc2/JdbcNoDefaultCacheTest.java | 40 +-
.../internal/jdbc2/JdbcResultSetSelfTest.java | 109 +-
.../rest/ClientMemcachedProtocolSelfTest.java | 4 +-
.../rest/RestProcessorMultiStartSelfTest.java | 48 +-
.../rest/protocols/tcp/MockNioSession.java | 25 +-
.../tcp/redis/RedisProtocolSelfTest.java | 559 +
.../ignite/jdbc/JdbcMetadataSelfTest.java | 4 +-
.../jdbc/suite/IgniteJdbcDriverTestSuite.java | 8 +-
modules/cloud/pom.xml | 8 +-
.../TcpDiscoveryCloudIpFinderSelfTest.java | 6 +-
.../ignite/testsuites/IgniteCloudTestSuite.java | 5 +-
modules/codegen/pom.xml | 2 +-
.../ignite/codegen/MessageCodeGenerator.java | 2 +-
modules/core/pom.xml | 2 +-
modules/core/src/main/java/META-INF/NOTICE | 2 +-
.../src/main/java/org/apache/ignite/Ignite.java | 77 +-
.../java/org/apache/ignite/IgniteCache.java | 23 +-
.../org/apache/ignite/IgniteDataStreamer.java | 2 +-
.../java/org/apache/ignite/IgniteLogger.java | 10 +-
.../java/org/apache/ignite/IgniteScheduler.java | 13 +
.../java/org/apache/ignite/IgniteServices.java | 64 +-
.../apache/ignite/IgniteSystemProperties.java | 76 +
.../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 | 47 +
.../ignite/cache/affinity/AffinityKey.java | 4 +-
.../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 | 34 +-
.../org/apache/ignite/cache/query/SqlQuery.java | 50 +
.../cache/store/CacheLoadOnlyStoreAdapter.java | 6 +-
.../ignite/cache/store/CacheStoreAdapter.java | 6 +
.../store/jdbc/CacheAbstractJdbcStore.java | 220 +-
.../cache/store/jdbc/CacheJdbcBlobStore.java | 4 +-
.../store/jdbc/CacheJdbcBlobStoreFactory.java | 2 +-
.../cache/store/jdbc/CacheJdbcPojoStore.java | 39 +-
.../store/jdbc/CacheJdbcPojoStoreFactory.java | 45 +-
.../ignite/cache/store/jdbc/JdbcType.java | 2 +-
.../store/jdbc/JdbcTypesDefaultTransformer.java | 119 +-
.../cache/store/jdbc/JdbcTypesTransformer.java | 17 +
.../store/jdbc/dialect/BasicJdbcDialect.java | 43 +-
.../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 | 101 +-
.../configuration/FileSystemConfiguration.java | 2 +-
.../configuration/IgniteConfiguration.java | 68 +-
.../org/apache/ignite/events/CacheEvent.java | 6 +-
.../ignite/events/CacheQueryReadEvent.java | 8 +-
.../java/org/apache/ignite/igfs/IgfsPath.java | 14 +-
.../org/apache/ignite/igfs/IgfsPathSummary.java | 3 +-
.../local/LocalIgfsSecondaryFileSystem.java | 118 +-
.../internal/ComputeTaskInternalFuture.java | 11 +
.../internal/GridEventConsumeHandler.java | 20 +-
.../ignite/internal/GridJobContextImpl.java | 4 +-
.../internal/GridJobSiblingsResponse.java | 3 +-
.../ignite/internal/GridKernalContext.java | 41 +
.../ignite/internal/GridKernalContextImpl.java | 69 +-
.../internal/GridMessageListenHandler.java | 18 +-
.../internal/GridPerformanceSuggestions.java | 92 -
.../ignite/internal/GridTaskSessionImpl.java | 15 +-
.../org/apache/ignite/internal/GridTopic.java | 8 +-
.../ignite/internal/IgniteComponentType.java | 11 +-
.../ignite/internal/IgniteInternalFuture.java | 11 +
.../apache/ignite/internal/IgniteKernal.java | 263 +-
.../ignite/internal/IgniteSchedulerImpl.java | 18 +
.../ignite/internal/IgniteServicesImpl.java | 13 +-
.../ignite/internal/IgniteVersionUtils.java | 2 +-
.../org/apache/ignite/internal/IgnitionEx.java | 206 +-
.../ignite/internal/MarshallerContextImpl.java | 16 +-
.../internal/StripedExecutorMXBeanAdapter.java | 90 +
.../internal/binary/BinaryClassDescriptor.java | 82 +-
.../ignite/internal/binary/BinaryContext.java | 102 +-
.../internal/binary/BinaryEnumObjectImpl.java | 22 +-
.../ignite/internal/binary/BinaryFieldImpl.java | 10 +-
.../internal/binary/BinaryMarshaller.java | 3 +-
.../ignite/internal/binary/BinaryMetadata.java | 5 +-
.../ignite/internal/binary/BinaryObjectEx.java | 8 +
.../internal/binary/BinaryObjectExImpl.java | 255 +-
.../internal/binary/BinaryObjectImpl.java | 68 +-
.../binary/BinaryObjectOffheapImpl.java | 69 +-
.../internal/binary/BinaryPrimitives.java | 30 +-
.../binary/BinarySerializedFieldComparator.java | 343 +
.../ignite/internal/binary/BinaryTypeProxy.java | 15 +-
.../ignite/internal/binary/BinaryUtils.java | 23 +-
.../internal/binary/BinaryWriterExImpl.java | 77 +-
.../internal/binary/GridBinaryMarshaller.java | 2 +-
.../binary/builder/BinaryBuilderReader.java | 11 +
.../binary/builder/BinaryBuilderSerializer.java | 4 +
.../binary/builder/BinaryObjectBuilderImpl.java | 44 +-
.../streams/BinaryAbstractInputStream.java | 5 +
.../streams/BinaryAbstractOutputStream.java | 5 +
.../binary/streams/BinaryHeapInputStream.java | 9 +-
.../binary/streams/BinaryHeapOutputStream.java | 7 +-
.../streams/BinaryMemoryAllocatorChunk.java | 3 +-
.../streams/BinaryOffheapInputStream.java | 14 +-
.../streams/BinaryOffheapOutputStream.java | 8 +-
.../internal/binary/streams/BinaryStream.java | 12 +-
.../GridClientConnectionManagerAdapter.java | 8 +-
.../impl/connection/GridClientTopology.java | 53 +-
.../GridClientOptimizedMarshaller.java | 5 +-
.../GridClientZipOptimizedMarshaller.java | 5 +-
.../impl/GridRouterCommandLineStartup.java | 4 +-
.../client/router/impl/GridTcpRouterImpl.java | 1 +
.../cluster/ClusterNodeLocalMapImpl.java | 1 -
.../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 | 48 +
.../ignite/internal/jdbc2/JdbcStatement.java | 211 +-
.../apache/ignite/internal/jdbc2/JdbcUtils.java | 25 +-
.../internal/managers/GridManagerAdapter.java | 15 +
.../checkpoint/GridCheckpointManager.java | 6 +-
.../managers/communication/GridIoManager.java | 373 +-
.../managers/communication/GridIoMessage.java | 13 +
.../communication/GridIoMessageFactory.java | 82 +-
.../communication/IgniteIoTestMessage.java | 235 +
.../deployment/GridDeploymentCommunication.java | 4 +-
.../GridDeploymentPerVersionStore.java | 2 +-
.../discovery/GridDiscoveryManager.java | 195 +-
.../eventstorage/GridEventStorageManager.java | 18 +-
.../loadbalancer/GridLoadBalancerManager.java | 10 +-
.../swapspace/GridSwapSpaceManager.java | 13 +-
.../internal/mxbean/IgniteStandardMXBean.java | 12 +-
.../processors/affinity/AffinityAssignment.java | 88 +
.../affinity/GridAffinityAssignment.java | 8 +-
.../affinity/GridAffinityAssignmentCache.java | 35 +-
.../affinity/GridAffinityProcessor.java | 91 +-
.../processors/affinity/GridAffinityUtils.java | 12 +-
.../affinity/HistoryAffinityAssignment.java | 169 +
.../cache/CacheAffinitySharedManager.java | 57 +-
.../cache/CacheEntrySerializablePredicate.java | 4 +-
.../cache/CacheEvictableEntryImpl.java | 4 +-
.../cache/CacheInvokeDirectResult.java | 6 +-
.../processors/cache/CacheInvokeResult.java | 2 +-
.../processors/cache/CacheLazyEntry.java | 4 +-
.../processors/cache/CacheLockCandidates.java | 42 +
.../cache/CacheLockCandidatesList.java | 71 +
.../processors/cache/CacheMetricsImpl.java | 10 +-
.../processors/cache/CacheObjectAdapter.java | 7 +-
.../cache/CacheStoreBalancingWrapper.java | 6 +
.../cache/DynamicCacheChangeBatch.java | 7 +
.../processors/cache/EntryGetResult.java | 65 +
.../processors/cache/GridCacheAdapter.java | 915 +-
.../cache/GridCacheAffinityManager.java | 66 +-
.../processors/cache/GridCacheAtomicFuture.java | 3 +-
.../cache/GridCacheClearAllRunnable.java | 58 +-
.../processors/cache/GridCacheContext.java | 21 +-
.../cache/GridCacheDeploymentManager.java | 8 +-
.../processors/cache/GridCacheEntryEx.java | 59 +-
.../processors/cache/GridCacheEventManager.java | 10 +-
.../cache/GridCacheEvictionManager.java | 6 +-
.../processors/cache/GridCacheIoManager.java | 89 +-
.../cache/GridCacheLoaderWriterStore.java | 6 +
.../processors/cache/GridCacheMapEntry.java | 303 +-
.../processors/cache/GridCacheMessage.java | 11 +-
.../processors/cache/GridCacheMvcc.java | 376 +-
.../processors/cache/GridCacheMvccCallback.java | 4 +-
.../cache/GridCacheMvccCandidate.java | 89 +-
.../processors/cache/GridCacheMvccManager.java | 96 +-
.../GridCachePartitionExchangeManager.java | 468 +-
.../processors/cache/GridCachePreloader.java | 28 +-
.../cache/GridCachePreloaderAdapter.java | 20 +-
.../processors/cache/GridCacheProcessor.java | 426 +-
.../processors/cache/GridCacheReturn.java | 2 +-
.../GridCacheReturnCompletableWrapper.java | 101 +
.../cache/GridCacheSharedContext.java | 25 +-
.../cache/GridCacheSharedTtlCleanupManager.java | 132 +
.../processors/cache/GridCacheSwapManager.java | 24 +-
.../processors/cache/GridCacheTtlManager.java | 147 +-
.../processors/cache/GridCacheUtilityKey.java | 6 +-
.../processors/cache/GridCacheUtils.java | 161 +-
.../cache/GridDeferredAckMessageSender.java | 219 +
.../processors/cache/IgniteCacheProxy.java | 100 +-
.../processors/cache/QueryCursorImpl.java | 115 +-
.../processors/cache/ReaderArguments.java | 74 +
.../cache/affinity/GridCacheAffinityImpl.java | 16 +-
.../binary/CacheObjectBinaryProcessorImpl.java | 5 +-
.../CacheDataStructuresManager.java | 8 +-
.../distributed/GridCacheTxRecoveryFuture.java | 4 +-
.../GridDistributedCacheAdapter.java | 9 +-
.../distributed/GridDistributedCacheEntry.java | 306 +-
.../distributed/GridDistributedLockRequest.java | 5 +
.../GridDistributedLockResponse.java | 5 +-
.../GridDistributedTxPrepareRequest.java | 4 +-
.../GridDistributedTxPrepareResponse.java | 4 +-
.../GridDistributedTxRemoteAdapter.java | 67 +-
.../GridDistributedUnlockRequest.java | 5 +
.../dht/GridClientPartitionTopology.java | 148 +-
.../dht/GridDhtAffinityAssignmentRequest.java | 2 +-
.../dht/GridDhtAffinityAssignmentResponse.java | 12 +-
.../dht/GridDhtAssignmentFetchFuture.java | 3 +-
.../distributed/dht/GridDhtCacheAdapter.java | 38 +-
.../distributed/dht/GridDhtCacheEntry.java | 34 +-
.../cache/distributed/dht/GridDhtGetFuture.java | 85 +-
.../distributed/dht/GridDhtGetSingleFuture.java | 77 +-
.../distributed/dht/GridDhtLocalPartition.java | 133 +-
.../distributed/dht/GridDhtLockFuture.java | 66 +-
.../distributed/dht/GridDhtLockResponse.java | 9 +-
.../dht/GridDhtPartitionTopology.java | 32 +-
.../dht/GridDhtPartitionTopologyImpl.java | 317 +-
.../dht/GridDhtTransactionalCacheAdapter.java | 22 +-
.../distributed/dht/GridDhtTxFinishFuture.java | 94 +-
.../distributed/dht/GridDhtTxFinishRequest.java | 33 +-
.../dht/GridDhtTxFinishResponse.java | 56 +-
.../cache/distributed/dht/GridDhtTxLocal.java | 126 +-
.../distributed/dht/GridDhtTxLocalAdapter.java | 18 +-
.../dht/GridDhtTxOnePhaseCommitAckRequest.java | 134 +
.../distributed/dht/GridDhtTxPrepareFuture.java | 64 +-
.../dht/GridDhtTxPrepareRequest.java | 93 +-
.../cache/distributed/dht/GridDhtTxRemote.java | 8 +-
.../distributed/dht/GridDhtUnlockRequest.java | 3 +-
.../dht/GridPartitionedGetFuture.java | 13 +-
.../dht/GridPartitionedSingleGetFuture.java | 14 +-
.../GridDhtAtomicAbstractUpdateFuture.java | 471 +
.../GridDhtAtomicAbstractUpdateRequest.java | 287 +
.../dht/atomic/GridDhtAtomicCache.java | 862 +-
.../atomic/GridDhtAtomicSingleUpdateFuture.java | 190 +
.../GridDhtAtomicSingleUpdateRequest.java | 683 +
.../dht/atomic/GridDhtAtomicUpdateFuture.java | 423 +-
.../dht/atomic/GridDhtAtomicUpdateRequest.java | 317 +-
.../dht/atomic/GridDhtAtomicUpdateResponse.java | 4 +-
...idNearAtomicAbstractSingleUpdateRequest.java | 562 +
.../GridNearAtomicAbstractUpdateFuture.java | 47 +-
.../GridNearAtomicAbstractUpdateRequest.java | 226 +
.../atomic/GridNearAtomicFullUpdateRequest.java | 1024 ++
...GridNearAtomicSingleUpdateFilterRequest.java | 226 +
.../GridNearAtomicSingleUpdateFuture.java | 179 +-
...GridNearAtomicSingleUpdateInvokeRequest.java | 307 +
.../GridNearAtomicSingleUpdateRequest.java | 360 +
.../dht/atomic/GridNearAtomicUpdateFuture.java | 99 +-
.../dht/atomic/GridNearAtomicUpdateRequest.java | 1092 --
.../atomic/GridNearAtomicUpdateResponse.java | 4 +-
.../dht/colocated/GridDhtColocatedCache.java | 39 +-
.../colocated/GridDhtColocatedLockFuture.java | 26 +-
.../colocated/GridDhtDetachedCacheEntry.java | 5 +
.../dht/preloader/GridDhtForceKeysFuture.java | 8 +-
.../dht/preloader/GridDhtForceKeysResponse.java | 4 +-
.../GridDhtPartitionDemandMessage.java | 4 +-
.../dht/preloader/GridDhtPartitionDemander.java | 286 +-
.../dht/preloader/GridDhtPartitionFullMap.java | 36 +-
.../dht/preloader/GridDhtPartitionMap2.java | 56 +-
.../dht/preloader/GridDhtPartitionSupplier.java | 12 +-
.../GridDhtPartitionsAbstractMessage.java | 40 +-
.../GridDhtPartitionsExchangeFuture.java | 171 +-
.../preloader/GridDhtPartitionsFullMessage.java | 150 +-
.../GridDhtPartitionsSingleMessage.java | 132 +-
.../GridDhtPartitionsSingleRequest.java | 4 +-
.../dht/preloader/GridDhtPreloader.java | 62 +-
.../distributed/near/GridNearAtomicCache.java | 86 +-
.../distributed/near/GridNearCacheAdapter.java | 7 +
.../distributed/near/GridNearCacheEntry.java | 50 +-
.../distributed/near/GridNearGetFuture.java | 31 +-
.../distributed/near/GridNearGetRequest.java | 82 +-
.../distributed/near/GridNearGetResponse.java | 4 +-
.../distributed/near/GridNearLockFuture.java | 18 +-
.../distributed/near/GridNearLockRequest.java | 81 +-
...arOptimisticSerializableTxPrepareFuture.java | 10 +-
.../near/GridNearOptimisticTxPrepareFuture.java | 33 +-
.../GridNearPessimisticTxPrepareFuture.java | 8 +-
.../near/GridNearSingleGetRequest.java | 57 +-
.../near/GridNearSingleGetResponse.java | 4 +-
.../near/GridNearTransactionalCache.java | 13 +-
.../near/GridNearTxFinishFuture.java | 173 +-
.../near/GridNearTxFinishResponse.java | 4 +-
.../cache/distributed/near/GridNearTxLocal.java | 67 +-
.../processors/cache/local/GridLocalCache.java | 1 +
.../cache/local/GridLocalCacheEntry.java | 173 +-
.../cache/local/GridLocalLockFuture.java | 2 +-
.../local/atomic/GridLocalAtomicCache.java | 186 +-
.../processors/cache/query/CacheQuery.java | 2 -
.../processors/cache/query/CacheQueryType.java | 2 +-
.../query/GridCacheDistributedQueryManager.java | 2 +-
.../cache/query/GridCacheLocalQueryFuture.java | 4 +-
.../cache/query/GridCacheQueryAdapter.java | 22 +-
.../GridCacheQueryDetailMetricsAdapter.java | 248 +
.../query/GridCacheQueryDetailMetricsKey.java | 82 +
.../query/GridCacheQueryFutureAdapter.java | 2 -
.../cache/query/GridCacheQueryManager.java | 285 +-
.../query/GridCacheQueryMetricsAdapter.java | 37 +-
.../cache/query/GridCacheQueryRequest.java | 20 +-
.../cache/query/GridCacheQueryResponse.java | 4 +-
.../cache/query/GridCacheSqlQuery.java | 10 +-
.../cache/query/GridCacheTwoStepQuery.java | 253 -
.../cache/query/IgniteQueryErrorCode.java | 91 +
.../continuous/CacheContinuousQueryEvent.java | 8 +-
.../continuous/CacheContinuousQueryHandler.java | 122 +-
.../CacheContinuousQueryListener.java | 4 +-
.../continuous/CacheContinuousQueryManager.java | 12 +-
.../jdbc/GridCacheQueryJdbcMetadataTask.java | 4 +-
.../query/jdbc/GridCacheQueryJdbcTask.java | 6 +-
.../cache/store/CacheStoreManager.java | 4 +-
.../store/GridCacheStoreManagerAdapter.java | 66 +-
.../cache/store/GridCacheWriteBehindStore.java | 10 +-
.../cache/transactions/IgniteTxAdapter.java | 50 +-
.../cache/transactions/IgniteTxEntry.java | 51 +-
.../cache/transactions/IgniteTxHandler.java | 186 +-
.../transactions/IgniteTxLocalAdapter.java | 245 +-
.../cache/transactions/IgniteTxLocalEx.java | 3 +
.../cache/transactions/IgniteTxManager.java | 174 +-
.../cache/transactions/IgniteTxStateImpl.java | 1 -
.../cache/transactions/TxDeadlockDetection.java | 2 +-
.../cache/transactions/TxEntryValueHolder.java | 6 +-
.../GridCacheLazyPlainVersionedEntry.java | 6 +
.../version/GridCachePlainVersionedEntry.java | 5 +-
.../version/GridCacheRawVersionedEntry.java | 8 +-
.../GridCacheVersionConflictContext.java | 2 +-
.../IgniteCacheObjectProcessorImpl.java | 10 +-
.../processors/clock/GridClockServer.java | 4 +-
.../clock/GridClockSyncProcessor.java | 2 +-
.../closure/GridClosureProcessor.java | 112 +-
.../processors/cluster/ClusterProcessor.java | 2 +-
.../processors/cluster/GridUpdateNotifier.java | 108 +-
.../continuous/GridContinuousHandler.java | 13 +-
.../continuous/GridContinuousMessage.java | 2 +-
.../continuous/GridContinuousProcessor.java | 52 +-
.../processors/continuous/StartRequestData.java | 4 +-
.../datastreamer/DataStreamProcessor.java | 119 +-
.../datastreamer/DataStreamerImpl.java | 615 +-
.../datastructures/CollocatedSetItemKey.java | 2 +-
.../GridCacheAtomicLongValue.java | 2 +
.../GridCacheAtomicSequenceImpl.java | 14 +-
.../GridCacheAtomicSequenceValue.java | 2 +
.../GridCacheCountDownLatchValue.java | 3 +
.../datastructures/GridCacheQueueAdapter.java | 2 +-
.../datastructures/GridCacheSetImpl.java | 2 +-
.../datastructures/GridCacheSetItemKey.java | 2 +-
.../datastructures/GridSetQueryPredicate.java | 2 +-
.../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 | 71 +-
.../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 | 18 +
.../processors/hadoop/HadoopTaskInfo.java | 43 +
.../io/PartiallyOffheapRawComparatorEx.java | 33 +
.../hadoop/message/HadoopMessage.java | 27 +
.../shuffle/HadoopDirectShuffleMessage.java | 273 +
.../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 | 146 +-
.../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 | 393 +-
.../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 | 33 +-
.../igfs/IgfsSecondaryFileSystemImpl.java | 2 +-
.../internal/processors/igfs/IgfsServer.java | 5 +-
.../processors/igfs/IgfsThreadFactory.java | 61 +
.../internal/processors/igfs/IgfsUtils.java | 21 +-
.../igfs/client/IgfsClientSizeCallable.java | 1 -
.../local/LocalFileSystemIgfsFile.java | 9 +-
.../secondary/local/LocalFileSystemUtils.java | 142 +
.../processors/job/GridJobProcessor.java | 23 +-
.../internal/processors/job/GridJobWorker.java | 97 +-
.../OsDiscoveryNodeValidationProcessor.java | 2 +-
.../internal/processors/odbc/IgniteTypes.java | 69 +
.../processors/odbc/OdbcMessageParser.java | 16 +
.../processors/odbc/OdbcNioListener.java | 2 +-
.../internal/processors/odbc/OdbcProcessor.java | 1 +
.../odbc/OdbcQueryExecuteRequest.java | 6 +-
.../odbc/OdbcQueryGetParamsMetaRequest.java | 60 +
.../odbc/OdbcQueryGetParamsMetaResult.java | 40 +
.../internal/processors/odbc/OdbcRequest.java | 3 +
.../processors/odbc/OdbcRequestHandler.java | 181 +-
.../internal/processors/odbc/OdbcTableMeta.java | 15 +-
.../internal/processors/odbc/OdbcTypes.java | 131 +
.../internal/processors/odbc/OdbcUtils.java | 89 +-
.../processors/odbc/escape/OdbcEscapeUtils.java | 52 +-
.../offheap/GridOffHeapProcessor.java | 18 +-
.../platform/PlatformAbstractBootstrap.java | 3 +-
.../platform/PlatformAbstractTarget.java | 290 +-
.../platform/PlatformAsyncTarget.java | 44 +
.../platform/PlatformConfigurationEx.java | 9 +-
.../platform/PlatformContextImpl.java | 5 +-
.../platform/PlatformNativeException.java | 3 +-
.../platform/PlatformNoopProcessor.java | 44 +-
.../processors/platform/PlatformProcessor.java | 51 +-
.../platform/PlatformProcessorImpl.java | 172 +-
.../processors/platform/PlatformTarget.java | 123 +-
.../platform/PlatformTargetProxy.java | 126 +
.../platform/PlatformTargetProxyImpl.java | 222 +
.../binary/PlatformBinaryProcessor.java | 96 +
.../platform/cache/PlatformCache.java | 1003 +-
.../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 | 44 +-
.../query/PlatformContinuousQueryProxy.java | 55 +
.../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 | 231 +-
.../utils/PlatformConfigurationUtils.java | 232 +-
.../platform/utils/PlatformFutureUtils.java | 18 +-
.../utils/PlatformListenableTarget.java | 62 +
.../platform/utils/PlatformUtils.java | 46 +-
.../PlatformDotNetSessionCacheExtension.java | 144 +
.../websession/PlatformDotNetSessionData.java | 260 +
.../PlatformDotNetSessionLockProcessor.java | 84 +
.../PlatformDotNetSessionLockResult.java | 106 +
...tformDotNetSessionSetAndUnlockProcessor.java | 179 +
.../internal/processors/pool/PoolProcessor.java | 154 +
.../processors/query/GridQueryCancel.java | 83 +
.../processors/query/GridQueryFieldsResult.java | 3 +-
.../query/GridQueryFieldsResultAdapter.java | 3 +-
.../processors/query/GridQueryIndexing.java | 36 +-
.../processors/query/GridQueryProcessor.java | 874 +-
.../processors/query/GridQueryProperty.java | 20 +
.../query/GridQueryTypeDescriptor.java | 32 +
.../processors/query/IgniteSQLException.java | 89 +
.../twostep/messages/GridQueryFailResponse.java | 36 +-
.../h2/twostep/messages/GridQueryRequest.java | 31 +-
.../resource/GridResourceProcessor.java | 2 +-
.../processors/rest/GridRestProcessor.java | 15 +
.../processors/rest/GridRestResponse.java | 2 +-
.../handlers/cache/GridCacheCommandHandler.java | 2 -
.../handlers/redis/GridRedisCommandHandler.java | 39 +
.../GridRedisConnectionCommandHandler.java | 74 +
.../redis/GridRedisRestCommandHandler.java | 102 +
.../exception/GridRedisGenericException.java | 37 +
.../redis/exception/GridRedisTypeException.java | 37 +
.../redis/key/GridRedisDelCommandHandler.java | 95 +
.../key/GridRedisExistsCommandHandler.java | 94 +
.../server/GridRedisDbSizeCommandHandler.java | 80 +
.../string/GridRedisAppendCommandHandler.java | 118 +
.../string/GridRedisGetCommandHandler.java | 107 +
.../string/GridRedisGetRangeCommandHandler.java | 128 +
.../string/GridRedisGetSetCommandHandler.java | 94 +
.../string/GridRedisIncrDecrCommandHandler.java | 193 +
.../string/GridRedisMGetCommandHandler.java | 94 +
.../string/GridRedisMSetCommandHandler.java | 91 +
.../string/GridRedisSetCommandHandler.java | 156 +
.../string/GridRedisSetRangeCommandHandler.java | 149 +
.../string/GridRedisStrlenCommandHandler.java | 89 +
.../handlers/task/GridTaskCommandHandler.java | 10 +-
.../protocols/tcp/GridClientPacketType.java | 3 +
.../tcp/GridTcpMemcachedNioListener.java | 15 +-
.../protocols/tcp/GridTcpRestNioListener.java | 16 +-
.../rest/protocols/tcp/GridTcpRestParser.java | 43 +-
.../rest/protocols/tcp/GridTcpRestProtocol.java | 1 +
.../protocols/tcp/redis/GridRedisCommand.java | 80 +
.../protocols/tcp/redis/GridRedisMessage.java | 219 +
.../tcp/redis/GridRedisNioListener.java | 146 +
.../tcp/redis/GridRedisProtocolParser.java | 314 +
.../service/GridServiceProcessor.java | 91 +-
.../processors/service/GridServiceProxy.java | 18 +-
.../session/GridTaskSessionProcessor.java | 9 +-
.../processors/task/GridTaskProcessor.java | 11 +-
.../processors/task/GridTaskWorker.java | 27 +-
.../suggestions/GridPerformanceSuggestions.java | 105 +
.../JvmConfigurationSuggestions.java | 104 +
.../suggestions/OsConfigurationSuggestions.java | 127 +
.../internal/suggestions/package-info.java | 21 +
.../util/GridBoundedConcurrentOrderedMap.java | 5 +
.../internal/util/GridBoundedPriorityQueue.java | 68 +
.../ignite/internal/util/GridHandleTable.java | 10 +-
.../ignite/internal/util/GridLogThrottle.java | 66 +-
.../internal/util/GridStripedSpinBusyLock.java | 2 +-
.../apache/ignite/internal/util/GridUnsafe.java | 69 +-
.../ignite/internal/util/HostAndPortRange.java | 2 +-
.../ignite/internal/util/IgniteUtils.java | 540 +-
.../internal/util/SerializableTransient.java | 58 +
.../ignite/internal/util/StripedExecutor.java | 718 +
.../util/future/GridCompoundFuture.java | 56 +-
.../util/future/GridFinishedFuture.java | 24 +
.../internal/util/future/GridFutureAdapter.java | 29 +-
.../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/GridMetadataAwareAdapter.java | 2 +-
.../util/lang/IgniteSingletonIterator.java | 56 +
.../nio/GridAbstractCommunicationClient.java | 12 +-
.../util/nio/GridCommunicationClient.java | 9 +-
.../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 | 124 +-
.../ignite/internal/util/nio/GridNioServer.java | 1513 +-
.../internal/util/nio/GridNioSession.java | 25 +-
.../internal/util/nio/GridNioSessionImpl.java | 65 +-
.../util/nio/GridNioSessionMetaKey.java | 7 +-
.../ignite/internal/util/nio/GridNioWorker.java | 48 +
.../util/nio/GridSelectorNioSessionImpl.java | 223 +-
.../util/nio/GridShmemCommunicationClient.java | 7 +-
.../util/nio/GridTcpNioCommunicationClient.java | 55 +-
.../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 | 658 +-
.../util/tostring/GridToStringInclude.java | 12 +-
.../util/tostring/GridToStringThreadLocal.java | 12 +-
.../cache/VisorCacheQueryDetailMetrics.java | 167 +
...sorCacheQueryDetailMetricsCollectorTask.java | 146 +
.../VisorCacheResetQueryDetailMetricsTask.java | 71 +
.../cache/VisorCacheResetQueryMetricsTask.java | 69 +
.../visor/cache/VisorCacheTypeMetadata.java | 70 +-
.../visor/misc/VisorResolveHostNameTask.java | 4 +-
.../visor/node/VisorIgfsConfiguration.java | 1 -
.../internal/visor/query/VisorQueryJob.java | 2 +-
.../query/VisorQueryScanSubstringFilter.java | 5 +-
.../internal/visor/query/VisorQueryUtils.java | 60 +
.../visor/service/VisorCancelServiceTask.java | 70 +
.../visor/service/VisorServiceDescriptor.java | 132 +
.../visor/service/VisorServiceTask.java | 75 +
.../internal/visor/util/VisorTaskUtils.java | 41 +-
.../ignite/lang/IgniteProductVersion.java | 2 +-
.../apache/ignite/logger/java/JavaLogger.java | 18 +-
.../logger/java/JavaLoggerFileHandler.java | 10 +-
.../ignite/marshaller/MarshallerUtils.java | 22 +
.../ignite/marshaller/jdk/JdkMarshaller.java | 13 +-
.../optimized/OptimizedClassDescriptor.java | 90 +-
.../optimized/OptimizedMarshaller.java | 22 +-
.../optimized/OptimizedMarshallerUtils.java | 4 +-
.../optimized/OptimizedObjectOutputStream.java | 25 +-
.../ignite/mxbean/StripedExecutorMXBean.java | 90 +
.../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 | 3 +-
.../spi/checkpoint/sharedfs/SharedFsUtils.java | 4 +-
.../communication/tcp/TcpCommunicationSpi.java | 1423 +-
.../tcp/TcpCommunicationSpiMBean.java | 38 +
.../ignite/spi/discovery/tcp/ClientImpl.java | 163 +-
.../ignite/spi/discovery/tcp/ServerImpl.java | 691 +-
.../spi/discovery/tcp/TcpDiscoveryImpl.java | 61 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 30 +-
.../tcp/internal/TcpDiscoveryStatistics.java | 12 +-
.../TcpDiscoveryMulticastIpFinder.java | 11 +-
.../sharedfs/TcpDiscoverySharedFsIpFinder.java | 2 +-
.../messages/TcpDiscoveryAbstractMessage.java | 28 +
.../messages/TcpDiscoveryClientAckResponse.java | 5 +
.../TcpDiscoveryClientHeartbeatMessage.java | 7 +-
.../TcpDiscoveryConnectionCheckMessage.java | 5 +
.../TcpDiscoveryCustomEventMessage.java | 3 +-
.../messages/TcpDiscoveryHeartbeatMessage.java | 5 +
.../TcpDiscoveryNodeAddFinishedMessage.java | 11 +
.../messages/TcpDiscoveryNodeAddedMessage.java | 33 +-
.../apache/ignite/spi/indexing/IndexingSpi.java | 3 +
.../RoundRobinGlobalLoadBalancer.java | 16 +-
.../roundrobin/RoundRobinLoadBalancingSpi.java | 16 +-
.../spi/swapspace/file/FileSwapSpaceSpi.java | 95 +-
.../org/apache/ignite/stream/StreamAdapter.java | 4 +-
.../ignite/stream/socket/SocketStreamer.java | 4 +-
.../ignite/thread/IgniteThreadFactory.java | 8 +-
.../apache/ignite/util/AttributeNodeFilter.java | 108 +
.../resources/META-INF/classnames.properties | 152 +-
.../core/src/main/resources/ignite.properties | 2 +-
modules/core/src/test/config/log4j-test.xml | 6 +
.../AbstractAffinityFunctionSelfTest.java | 2 +-
.../CacheJdbcPojoStoreAbstractSelfTest.java | 180 +-
...heJdbcPojoStoreBinaryMarshallerSelfTest.java | 26 +-
...reBinaryMarshallerWithSqlEscapeSelfTest.java | 28 +
...dbcPojoStoreOptimizedMarshallerSelfTest.java | 2 +-
...ptimizedMarshallerWithSqlEscapeSelfTest.java | 28 +
.../store/jdbc/CacheJdbcPojoStoreTest.java | 48 +-
...eJdbcStoreAbstractMultithreadedSelfTest.java | 17 +-
.../jdbc/JdbcTypesDefaultTransformerTest.java | 283 +
.../ignite/cache/store/jdbc/model/Gender.java | 41 +
.../ignite/cache/store/jdbc/model/Person.java | 33 +-
.../apache/ignite/igfs/IgfsPathSelfTest.java | 6 -
.../internal/ClusterGroupHostsSelfTest.java | 6 +-
.../ComputeJobCancelWithServiceSelfTest.java | 2 +-
.../internal/GridContinuousTaskSelfTest.java | 83 +-
.../GridEventStorageCheckAllEventsSelfTest.java | 2 +-
.../IgniteClientReconnectApiExceptionTest.java | 6 +-
.../IgniteClientReconnectCacheTest.java | 35 +
...niteClientReconnectFailoverAbstractTest.java | 4 +-
.../IgniteComputeTopologyExceptionTest.java | 5 +-
...RoundRobinErrorAfterClientReconnectTest.java | 99 +
.../IgniteSlowClientDetectionSelfTest.java | 1 +
.../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 | 464 +-
.../BinaryObjectBuilderAdditionalSelfTest.java | 157 +-
...naryObjectBuilderDefaultMappersSelfTest.java | 2 +-
.../binary/BinaryObjectToStringSelfTest.java | 92 +
.../BinarySerialiedFieldComparatorSelfTest.java | 568 +
...GridManagerLocalMessageListenerSelfTest.java | 222 +
.../managers/GridManagerStopSelfTest.java | 2 +
...unicationBalanceMultipleConnectionsTest.java | 28 +
...mmunicationBalancePairedConnectionsTest.java | 28 +
.../IgniteCommunicationBalanceTest.java | 354 +
.../communication/IgniteIoTestMessagesTest.java | 95 +
.../IgniteVariousConnectionNumberTest.java | 166 +
.../GridDiscoveryManagerAliveCacheSelfTest.java | 9 +-
.../GridDiscoveryManagerAttributesSelfTest.java | 4 +-
.../discovery/GridDiscoveryManagerSelfTest.java | 6 +-
.../BinaryObjectOffHeapUnswapTemporaryTest.java | 1 -
.../cache/CacheAffinityCallSelfTest.java | 8 +-
.../CacheAtomicSingleMessageCountSelfTest.java | 259 +
.../cache/CacheConcurrentReadThroughTest.java | 184 +
.../cache/CacheDeferredDeleteQueueTest.java | 134 +
.../cache/CacheEntryProcessorCopySelfTest.java | 6 +-
...CacheExchangeMessageDuplicatedStateTest.java | 393 +
.../cache/CacheGetEntryAbstractTest.java | 5 +-
.../processors/cache/CachePutIfAbsentTest.java | 161 +
.../cache/CacheRebalancingSelfTest.java | 75 +
.../CacheSerializableTransactionsTest.java | 674 +-
.../CacheStartupInDeploymentModesTest.java | 7 +-
.../cache/CacheStopAndDestroySelfTest.java | 6 +-
.../CacheSwapUnswapGetTestSmallQueueSize.java | 35 +
.../processors/cache/CacheTxFastFinishTest.java | 2 +-
.../cache/CrossCacheTxRandomOperationsTest.java | 30 +-
...idAbstractCacheInterceptorRebalanceTest.java | 358 +
.../cache/GridCacheAbstractFullApiSelfTest.java | 57 +-
.../GridCacheAtomicMessageCountSelfTest.java | 24 +-
.../cache/GridCacheBasicStoreAbstractTest.java | 2 +-
...heInterceptorAtomicOffheapRebalanceTest.java | 30 +
...GridCacheInterceptorAtomicRebalanceTest.java | 36 +
...ceptorTransactionalOffheapRebalanceTest.java | 35 +
...heInterceptorTransactionalRebalanceTest.java | 36 +
.../cache/GridCacheLifecycleAwareSelfTest.java | 33 +
.../GridCacheMissingCommitVersionSelfTest.java | 6 +-
.../cache/GridCacheMvccFlagsTest.java | 8 +-
.../cache/GridCacheMvccPartitionedSelfTest.java | 336 +-
.../processors/cache/GridCacheMvccSelfTest.java | 212 +-
.../cache/GridCacheOffHeapCleanupTest.java | 169 +
...CacheOffHeapMultiThreadedUpdateSelfTest.java | 6 +-
.../GridCachePartitionedAffinitySpreadTest.java | 7 +-
.../processors/cache/GridCacheStopSelfTest.java | 4 +-
...ridCacheStoreManagerDeserializationTest.java | 1 +
.../cache/GridCacheSwapCleanupTest.java | 99 +
.../processors/cache/GridCacheTestEntryEx.java | 119 +-
.../GridCacheTtlManagerEvictionSelfTest.java | 160 +
.../GridCacheTtlManagerNotificationTest.java | 107 +-
.../cache/GridCacheUtilsSelfTest.java | 66 +-
...calCacheStoreManagerDeserializationTest.java | 2 +-
...ProjectionForCachesOnDaemonNodeSelfTest.java | 8 +-
.../IgniteCacheAtomicStopBusySelfTest.java | 10 +-
.../IgniteCacheConfigVariationsFullApiTest.java | 15 +-
.../cache/IgniteCacheDynamicStopSelfTest.java | 48 +-
...niteCacheExpireAndUpdateConsistencyTest.java | 7 +
.../IgniteCacheInterceptorSelfTestSuite.java | 5 +
.../IgniteCacheP2pUnmarshallingErrorTest.java | 2 +-
.../cache/IgniteCachePeekModesAbstractTest.java | 10 +-
.../cache/IgniteCacheStoreCollectionTest.java | 1 -
.../cache/IgniteDynamicCacheStartSelfTest.java | 217 +-
...gniteTopologyValidatorAbstractCacheTest.java | 6 +-
...niteTopologyValidatorGridSplitCacheTest.java | 334 +
.../processors/cache/IgniteTxAbstractTest.java | 3 +-
.../cache/IgniteTxConfigCacheSelfTest.java | 2 +-
.../IgniteTxExceptionAbstractSelfTest.java | 3 +-
.../IgniteTxMultiThreadedAbstractTest.java | 4 +-
.../IgniteTxStoreExceptionAbstractSelfTest.java | 1 +
.../MarshallerCacheJobRunNodeRestartTest.java | 2 +-
...heapCacheMetricsForClusterGroupSelfTest.java | 141 +
.../cache/OffheapCacheOnClientsTest.java | 143 +
.../cache/WithKeepBinaryCacheFullApiTest.java | 10 +-
.../CacheKeepBinaryWithInterceptorTest.java | 1 -
...yAtomicEntryProcessorDeploymentSelfTest.java | 4 +-
.../GridCacheBinaryObjectsAbstractSelfTest.java | 304 +-
...IgniteCacheAbstractExecutionContextTest.java | 2 -
...eAbstractDataStructuresFailoverSelfTest.java | 16 +-
...actQueueFailoverDataConsistencySelfTest.java | 2 +-
...CacheAtomicReferenceApiSelfAbstractTest.java | 60 +-
...idCacheAtomicStampedApiSelfAbstractTest.java | 59 +
.../GridCacheQueueApiSelfAbstractTest.java | 124 +
.../GridCacheSetAbstractSelfTest.java | 53 +
.../IgniteAtomicLongApiAbstractSelfTest.java | 27 +
.../IgniteCountDownLatchAbstractSelfTest.java | 43 +
.../IgniteLockAbstractSelfTest.java | 78 +-
.../IgniteSemaphoreAbstractSelfTest.java | 52 +-
...SemaphoreFailoverSafeReleasePermitsTest.java | 129 +
...achePartitionedAtomicSequenceTxSelfTest.java | 169 +
.../CacheGetFutureHangsSelfTest.java | 6 +-
.../CacheLateAffinityAssignmentTest.java | 2 +-
...CacheLoadingConcurrentGridStartSelfTest.java | 255 +-
...ncurrentGridStartSelfTestAllowOverwrite.java | 30 +
.../CacheLockReleaseNodeLeaveTest.java | 135 +
...ridCachePartitionNotLoadedEventSelfTest.java | 4 +-
...eAtomicMessageRecovery10ConnectionsTest.java | 28 +
...micMessageRecoveryPairedConnectionsTest.java | 47 +
...niteCacheClientNodeChangingTopologyTest.java | 42 +-
...acheConnectionRecovery10ConnectionsTest.java | 35 +
.../distributed/IgniteCacheCreatePutTest.java | 2 +-
.../distributed/IgniteCacheGetRestartTest.java | 3 +
.../IgniteCacheMessageRecoveryAbstractTest.java | 24 +-
.../IgniteCacheMessageWriteTimeoutTest.java | 17 +-
...teSynchronizationModesMultithreadedTest.java | 8 +-
.../GridCacheDhtEvictionsDisabledSelfTest.java | 5 +-
.../distributed/dht/GridCacheDhtTestUtils.java | 232 -
.../IgniteCacheCrossCacheTxFailoverTest.java | 6 +-
.../dht/IgniteCacheMultiTxLockSelfTest.java | 6 +-
...artitionedBackupNodeFailureRecoveryTest.java | 193 +
...ePrimaryNodeFailureRecoveryAbstractTest.java | 4 +-
.../IgniteCachePutRetryAbstractSelfTest.java | 39 +-
...gniteCachePutRetryTransactionalSelfTest.java | 77 +-
.../AtomicPutAllChangingTopologyTest.java | 212 +
...eAtomicInvalidPartitionHandlingSelfTest.java | 6 +-
...nabledMultiNodeLongTxTimeoutFullApiTest.java | 2 +-
...tomicClientOnlyMultiNodeFullApiSelfTest.java | 17 +-
...eAtomicNearOnlyMultiNodeFullApiSelfTest.java | 17 +-
...erNoStripedPoolMultiNodeFullApiSelfTest.java | 35 +
...idCacheNearOnlyMultiNodeFullApiSelfTest.java | 4 +-
...achePartitionedMultiNodeFullApiSelfTest.java | 37 +-
...edNoStripedPoolMultiNodeFullApiSelfTest.java | 35 +
.../near/GridNearCacheStoreUpdateTest.java | 466 +
.../GridNearOffheapCacheStoreUpdateTest.java | 35 +
...cingDelayedPartitionMapExchangeSelfTest.java | 8 +-
.../GridCacheRebalancingSyncSelfTest.java | 20 +-
.../GridCacheReplicatedNodeRestartSelfTest.java | 3 +-
.../GridCacheSyncReplicatedPreloadSelfTest.java | 3 -
.../IgniteCacheSyncRebalanceModeSelfTest.java | 2 +-
.../GridCacheReplicatedPreloadSelfTest.java | 1 -
.../IgniteCacheExpiryPolicyAbstractTest.java | 4 +-
.../IgniteCacheExpiryPolicyTestSuite.java | 2 +
...eCacheExpiryPolicyWithStoreAbstractTest.java | 102 +
...eCacheOnlyOneTtlCleanupThreadExistsTest.java | 102 +
.../IgniteCacheTxExpiryPolicyWithStoreTest.java | 21 +
.../CacheOffHeapAndSwapMetricsSelfTest.java | 621 -
...LocalCacheOffHeapAndSwapMetricsSelfTest.java | 621 +
.../IgniteCacheQueryCacheDestroySelfTest.java | 142 +
.../cache/query/IndexingSpiQuerySelfTest.java | 396 +
.../cache/query/IndexingSpiQueryTxSelfTest.java | 162 +
.../IndexingSpiQueryWithH2IndexingSelfTest.java | 36 +
...eContinuousQueryAsyncFailoverTxSelfTest.java | 5 +
...ContinuousQueryFailoverAbstractSelfTest.java | 330 +-
.../CacheContinuousQueryFailoverTxSelfTest.java | 5 +
...eEntryProcessorExternalizableFailedTest.java | 588 +
.../ClientReconnectContinuousQueryTest.java | 201 +
...eContinuousQueryMultiNodesFilteringTest.java | 161 +
...dCacheContinuousQueryNodesFilteringTest.java | 2 +-
...IgniteCacheContinuousQueryReconnectTest.java | 12 +-
.../TxDeadlockDetectionNoHangsTest.java | 4 +-
.../transactions/TxDeadlockDetectionTest.java | 2 +-
.../TxOptimisticDeadlockDetectionTest.java | 31 +-
.../TxPessimisticDeadlockDetectionTest.java | 2 +-
.../closure/GridClosureSerializationTest.java | 177 +
...ComputeJobExecutionErrorToLogManualTest.java | 88 +
.../compute/PublicThreadpoolStarvationTest.java | 123 +
.../IgniteNoCustomEventsOnNodeStart.java | 7 +
.../DataStreamProcessorSelfTest.java | 4 +-
.../datastreamer/DataStreamerImplSelfTest.java | 172 +-
.../DataStreamerMultiThreadedSelfTest.java | 2 -
.../datastreamer/DataStreamerTimeoutTest.java | 92 +-
.../igfs/IgfsAbstractBaseSelfTest.java | 33 +-
.../processors/igfs/IgfsAbstractSelfTest.java | 214 +-
.../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/IgfsFileInfoSelfTest.java | 4 +-
.../processors/igfs/IgfsIgniteMock.java | 19 +
...SecondaryFileSystemDualAbstractSelfTest.java | 29 +-
...lSecondaryFileSystemProxyClientSelfTest.java | 28 +
...fsLocalSecondaryFileSystemProxySelfTest.java | 267 +
...IgfsLocalSecondaryFileSystemTestAdapter.java | 27 +-
.../igfs/IgfsMetaManagerSelfTest.java | 7 +-
.../processors/igfs/IgfsMetricsSelfTest.java | 21 +-
.../internal/processors/igfs/IgfsMock.java | 15 +-
.../igfs/IgfsModeResolverSelfTest.java | 14 +-
.../igfs/IgfsProcessorValidationSelfTest.java | 30 +
.../processors/igfs/IgfsProxySelfTest.java | 2 +-
...IpcEndpointRegistrationAbstractSelfTest.java | 76 +-
...dpointRegistrationOnLinuxAndMacSelfTest.java | 11 +-
.../processors/igfs/IgfsStreamsSelfTest.java | 4 +-
.../processors/igfs/IgfsTaskSelfTest.java | 87 +-
.../igfs/benchmark/IgfsBenchmark.java | 561 +
.../odbc/OdbcEscapeSequenceSelfTest.java | 131 +
.../cache/GridCacheCommandHandlerSelfTest.java | 1 -
.../handlers/log/GridLogCommandHandlerTest.java | 5 +-
...rviceDeploymentExceptionPropagationTest.java | 2 +-
.../GridServiceProcessorProxySelfTest.java | 2 +-
.../GridServiceProcessorStopSelfTest.java | 2 +-
...gniteServiceProxyTimeoutInitializedTest.java | 284 +
.../service/IgniteServiceReassignmentTest.java | 2 +-
...artupWithSpecifiedWorkDirectorySelfTest.java | 166 -
.../internal/util/IgniteUtilsSelfTest.java | 5 +-
.../internal/util/StripedExecutorTest.java | 168 +
.../util/future/GridFutureAdapterSelfTest.java | 123 +-
.../ipc/shmem/IgfsSharedMemoryTestServer.java | 4 +-
.../IpcSharedMemoryCrashDetectionSelfTest.java | 9 +-
.../IpcSharedMemoryBenchmarkReader.java | 2 +-
.../nio/impl/GridNioFilterChainSelfTest.java | 32 +-
.../unsafe/GridOffheapSnapTreeSelfTest.java | 7 +-
.../tostring/GridToStringBuilderSelfTest.java | 33 +-
.../lang/GridMetadataAwareAdapterSelfTest.java | 4 +-
.../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 +-
.../p2p/GridP2PSameClassLoaderSelfTest.java | 14 +-
.../platform/PlatformCacheWriteMetricsTask.java | 463 +
.../platform/PlatformEventsWriteEventTask.java | 9 -
.../ignite/platform/PlatformExceptionTask.java | 78 +
.../SecurityPermissionSetBuilderTest.java | 110 +
.../spi/GridTcpSpiForwardingSelfTest.java | 18 +-
...heckpointSpiMultipleDirectoriesSelfTest.java | 6 +-
.../GridAbstractCommunicationSelfTest.java | 2 -
.../GridTcpCommunicationSpiAbstractTest.java | 28 +-
...mmunicationSpiConcurrentConnectSelfTest.java | 96 +-
...nicationSpiConcurrentConnectSslSelfTest.java | 35 +
.../GridTcpCommunicationSpiConfigSelfTest.java | 5 +-
...cpCommunicationSpiMultithreadedSelfTest.java | 25 +-
...dTcpCommunicationSpiRecoveryAckSelfTest.java | 9 +-
...tionSpiRecoveryFailureDetectionSelfTest.java | 1 +
...ationSpiRecoveryNoPairedConnectionsTest.java | 28 +
...GridTcpCommunicationSpiRecoverySelfTest.java | 81 +-
...dTcpCommunicationSpiRecoverySslSelfTest.java | 35 +
...CommunicationSpiSslSmallBuffersSelfTest.java | 43 +
.../tcp/IgniteCacheSslStartStopSelfTest.java | 1 -
...CommunicationRecoveryAckClosureSelfTest.java | 9 +-
.../tcp/TcpCommunicationSpiDropNodesTest.java | 322 +
.../TcpCommunicationSpiFaultyClientTest.java | 265 +
.../local/GridLocalDeploymentSpiSelfTest.java | 6 +-
...lientDiscoverySpiFailureTimeoutSelfTest.java | 4 +-
.../tcp/TcpClientDiscoverySpiMulticastTest.java | 2 +-
.../spi/discovery/tcp/TcpDiscoverySelfTest.java | 144 +-
.../tcp/TcpDiscoverySnapshotHistoryTest.java | 14 +-
.../TcpDiscoverySpiFailureTimeoutSelfTest.java | 14 +-
.../TcpDiscoveryMulticastIpFinderSelfTest.java | 6 +-
.../GridInternalTasksLoadBalancingSelfTest.java | 201 +
.../GridSwapSpaceSpiAbstractSelfTest.java | 5 +-
.../file/GridFileSwapSpaceSpiSelfTest.java | 89 +
.../startup/GridRandomCommandLineLoader.java | 2 +-
.../testframework/GridSpiTestContext.java | 114 +-
.../ignite/testframework/GridTestNode.java | 1 +
.../ignite/testframework/GridTestUtils.java | 39 +-
.../ignite/testframework/IgniteTestSuite.java | 318 +-
.../testframework/junits/GridAbstractTest.java | 57 +-
.../junits/GridTestKernalContext.java | 6 +-
.../ignite/testframework/junits/IgniteMock.java | 25 +
.../junits/IgniteTestResources.java | 2 -
.../junits/common/GridCommonAbstractTest.java | 31 +-
.../junits/logger/GridTestLog4jLogger.java | 4 +-
.../multijvm/IgniteCacheProcessProxy.java | 16 +
.../junits/multijvm/IgniteProcessProxy.java | 15 +
.../junits/spi/GridSpiAbstractTest.java | 2 -
.../ignite/testsuites/IgniteBasicTestSuite.java | 10 +
.../testsuites/IgniteBinaryBasicTestSuite.java | 2 -
.../IgniteBinaryObjectsTestSuite.java | 12 +
.../IgniteCacheDataStructuresSelfTestSuite.java | 5 +-
.../IgniteCacheFailoverTestSuite.java | 3 +
.../IgniteCacheFullApiSelfTestSuite.java | 6 +
.../IgniteCacheMetricsSelfTestSuite.java | 6 +-
.../ignite/testsuites/IgniteCacheTestSuite.java | 33 +-
.../testsuites/IgniteCacheTestSuite2.java | 16 +
.../testsuites/IgniteCacheTestSuite4.java | 7 +
.../testsuites/IgniteCacheTestSuite5.java | 10 +-
.../testsuites/IgniteComputeGridTestSuite.java | 6 +
.../ignite/testsuites/IgniteIgfsTestSuite.java | 16 +
.../apache/ignite/testsuites/IgniteIgnore.java | 9 +-
.../testsuites/IgniteIgnoredTestSuite.java | 63 -
.../testsuites/IgniteKernalSelfTestSuite.java | 6 +-
.../testsuites/IgniteLangSelfTestSuite.java | 4 +-
...essagingConfigVariationFullApiTestSuite.java | 4 +-
.../IgniteSpiCommunicationSelfTestSuite.java | 18 +-
.../IgniteSpiDiscoverySelfTestSuite.java | 2 +-
.../IgniteSpiLoadBalancingSelfTestSuite.java | 34 +-
.../ignite/testsuites/IgniteSpiTestSuite.java | 6 +-
.../IgniteTopologyValidatorTestSuit.java | 1 +
.../testsuites/IgniteUtilSelfTestSuite.java | 2 +
.../ignite/thread/IgniteThreadPoolSizeTest.java | 131 +
.../util/AttributeNodeFilterSelfTest.java | 184 +
.../apache/ignite/util/GridLogThrottleTest.java | 27 +-
.../ignite/util/mbeans/GridMBeanSelfTest.java | 10 +-
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 | 5 +-
.../CacheConfigurationP2PTestClient.java | 5 +-
.../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 +-
.../apache/ignite/stream/flume/IgniteSink.java | 7 +-
modules/gce/pom.xml | 6 +-
.../gce/TcpDiscoveryGoogleStorageIpFinder.java | 4 +-
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 +-
.../io/BytesWritablePartiallyRawComparator.java | 51 +
.../hadoop/io/PartiallyRawComparator.java | 33 +
.../org/apache/ignite/hadoop/io/RawMemory.java | 86 +
.../hadoop/io/TextPartiallyRawComparator.java | 51 +
.../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 | 32 +-
.../processors/hadoop/HadoopSplitWrapper.java | 128 +
.../internal/processors/hadoop/HadoopUtils.java | 436 -
.../hadoop/counter/HadoopCounterAdapter.java | 1 +
.../counter/HadoopPerformanceCounter.java | 12 +-
.../hadoop/delegate/HadoopDelegateUtils.java | 138 +
.../HadoopFileSystemCounterWriterDelegate.java | 36 +
.../HadoopFileSystemFactoryDelegate.java | 36 +
.../HadoopIgfsSecondaryFileSystemDelegate.java | 28 +
.../hadoop/fs/HadoopFileSystemCacheUtils.java | 242 -
.../hadoop/fs/HadoopFileSystemsUtils.java | 51 -
.../hadoop/fs/HadoopLazyConcurrentMap.java | 212 -
.../hadoop/fs/HadoopLocalFileSystemV1.java | 39 -
.../hadoop/fs/HadoopLocalFileSystemV2.java | 88 -
.../processors/hadoop/fs/HadoopParameters.java | 94 -
.../hadoop/fs/HadoopRawLocalFileSystem.java | 314 -
.../processors/hadoop/igfs/HadoopIgfs.java | 202 -
.../igfs/HadoopIgfsCommunicationException.java | 57 -
.../hadoop/igfs/HadoopIgfsEndpoint.java | 4 +-
.../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 | 397 +
.../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 | 509 +
.../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 | 123 +
.../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 | 135 +
.../hadoop/impl/v1/HadoopV1OutputCollector.java | 138 +
.../hadoop/impl/v1/HadoopV1Partitioner.java | 44 +
.../hadoop/impl/v1/HadoopV1ReduceTask.java | 116 +
.../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 | 244 +
.../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 | 111 +
.../hadoop/impl/v2/HadoopV2Partitioner.java | 44 +
.../hadoop/impl/v2/HadoopV2ReduceTask.java | 105 +
.../hadoop/impl/v2/HadoopV2SetupTask.java | 66 +
.../hadoop/impl/v2/HadoopV2Splitter.java | 112 +
.../processors/hadoop/impl/v2/HadoopV2Task.java | 186 +
.../hadoop/impl/v2/HadoopV2TaskContext.java | 613 +
.../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 | 782 +-
.../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 | 235 +
.../direct/HadoopDirectDataOutputContext.java | 140 +
.../direct/HadoopDirectDataOutputState.java | 66 +
.../shuffle/streams/HadoopDataOutStream.java | 2 +-
.../taskexecutor/HadoopExecutorService.java | 6 +-
.../hadoop/taskexecutor/HadoopRunnableTask.java | 12 +-
.../external/HadoopExternalTaskExecutor.java | 13 +-
.../child/HadoopChildProcessRunner.java | 38 +-
.../child/HadoopExternalProcessStarter.java | 10 +-
.../HadoopExternalCommunication.java | 21 +-
.../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 | 432 +
.../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 | 271 +
.../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 | 409 +
.../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 | 2046 +++
...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 | 212 +
...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 | 6 +-
.../processors/query/h2/IgniteH2Indexing.java | 355 +-
.../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/GridH2IndexBase.java | 6 +-
.../query/h2/opt/GridH2RowDescriptor.java | 23 +
.../query/h2/opt/GridH2TreeIndex.java | 2 +-
.../processors/query/h2/sql/DmlAstUtils.java | 616 +
.../processors/query/h2/sql/GridSqlArray.java | 8 +
.../processors/query/h2/sql/GridSqlConst.java | 6 +
.../processors/query/h2/sql/GridSqlDelete.java | 68 +
.../query/h2/sql/GridSqlFunction.java | 5 +-
.../processors/query/h2/sql/GridSqlInsert.java | 149 +
.../processors/query/h2/sql/GridSqlKeyword.java | 46 +
.../processors/query/h2/sql/GridSqlMerge.java | 143 +
.../processors/query/h2/sql/GridSqlQuery.java | 44 +-
.../query/h2/sql/GridSqlQueryParser.java | 323 +-
.../query/h2/sql/GridSqlQuerySplitter.java | 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 | 169 +-
.../query/h2/twostep/msg/GridH2Geometry.java | 2 +-
.../h2/twostep/msg/GridH2QueryRequest.java | 42 +-
.../cache/BinarySerializationQuerySelfTest.java | 2 -
...CacheAbstractQueryDetailMetricsSelfTest.java | 572 +
.../CacheAbstractQueryMetricsSelfTest.java | 307 +-
.../cache/CacheConfigurationP2PTestServer.java | 2 -
.../CacheLocalQueryDetailMetricsSelfTest.java | 33 +
...edQueryDetailMetricsDistributedSelfTest.java | 33 +
...titionedQueryDetailMetricsLocalSelfTest.java | 33 +
.../CacheRandomOperationsMultithreadedTest.java | 4 +-
...edQueryDetailMetricsDistributedSelfTest.java | 33 +
...plicatedQueryDetailMetricsLocalSelfTest.java | 33 +
...CacheScanPartitionQueryFallbackSelfTest.java | 2 +-
.../ClientReconnectAfterClusterRestartTest.java | 4 +-
.../GridCacheQueryIndexDisabledSelfTest.java | 20 +-
...niteCacheAbstractInsertSqlQuerySelfTest.java | 559 +
.../cache/IgniteCacheAbstractQuerySelfTest.java | 297 +-
.../IgniteCacheAbstractSqlDmlQuerySelfTest.java | 243 +
.../IgniteCacheDeleteSqlQuerySelfTest.java | 106 +
.../IgniteCacheInsertSqlQuerySelfTest.java | 205 +
.../cache/IgniteCacheLargeResultSelfTest.java | 15 +-
...eLockPartitionOnAffinityRunAbstractTest.java | 1 -
...PartitionOnAffinityRunAtomicCacheOpTest.java | 11 +-
...niteCacheLockPartitionOnAffinityRunTest.java | 51 +-
...titionOnAffinityRunWithCollisionSpiTest.java | 10 +-
.../cache/IgniteCacheMergeSqlQuerySelfTest.java | 152 +
.../cache/IgniteCacheOffheapEvictQueryTest.java | 13 +-
...niteCacheP2pUnmarshallingQueryErrorTest.java | 4 +-
.../IgniteCacheQueryMultiThreadedSelfTest.java | 59 +
.../IgniteCacheUpdateSqlQuerySelfTest.java | 472 +
.../cache/QueryEntityCaseMismatchTest.java | 107 +
.../IgniteCacheAtomicFieldsQuerySelfTest.java | 21 -
...lientQueryReplicatedNodeRestartSelfTest.java | 7 +
...niteCacheDistributedQueryCancelSelfTest.java | 174 +
...butedQueryStopOnCancelOrTimeoutSelfTest.java | 262 +
...niteCachePartitionedFieldsQuerySelfTest.java | 25 +
.../IgniteCachePartitionedQuerySelfTest.java | 85 +
...cheQueryAbstractDistributedJoinSelfTest.java | 290 +
...QueryNodeRestartDistributedJoinSelfTest.java | 262 +-
.../IgniteCacheQueryNodeRestartSelfTest2.java | 127 +-
...nCancelOrTimeoutDistributedJoinSelfTest.java | 140 +
...gniteCacheReplicatedFieldsQuerySelfTest.java | 6 +-
.../IgniteCacheReplicatedQuerySelfTest.java | 6 +-
...eCacheLocalQueryCancelOrTimeoutSelfTest.java | 158 +
.../IgniteSqlEntryCacheModeAgnosticTest.java | 140 +
.../query/IgniteSqlSchemaIndexingTest.java | 15 +-
.../query/IgniteSqlSplitterSelfTest.java | 330 +-
.../h2/GridIndexingSpiAbstractSelfTest.java | 86 +-
.../query/h2/sql/BaseH2CompareQueryTest.java | 3 +-
.../query/h2/sql/GridQueryParsingTest.java | 118 +-
...narySimpleNameMapperCacheQueryTestSuite.java | 2 -
.../IgniteCacheQuerySelfTestSuite.java | 155 +-
.../IgniteCacheQuerySelfTestSuite2.java | 96 +-
.../IgniteCacheQuerySelfTestSuite3.java | 2 +
.../IgniteH2IndexingSpiTestSuite.java | 16 +-
modules/jcl/pom.xml | 2 +-
.../org/apache/ignite/logger/jcl/JclLogger.java | 9 +-
modules/jms11/pom.xml | 2 +-
.../apache/ignite/stream/jms11/JmsStreamer.java | 4 +-
.../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 | 52 +-
.../kafka/connect/IgniteSinkConstants.java | 3 +
.../stream/kafka/connect/IgniteSinkTask.java | 47 +-
.../serialization/CacheEventDeserializer.java | 3 +-
.../serialization/CacheEventSerializer.java | 3 +-
.../kafka/KafkaIgniteStreamerSelfTest.java | 36 +-
.../ignite/stream/kafka/TestKafkaBroker.java | 2 +-
.../kafka/connect/IgniteSinkConnectorMock.java | 30 +
.../kafka/connect/IgniteSinkConnectorTest.java | 84 +-
.../kafka/connect/IgniteSinkTaskMock.java | 29 +
.../connect/IgniteSourceConnectorTest.java | 2 +-
modules/kubernetes/DEVNOTES.txt | 63 +
modules/kubernetes/README.txt | 33 +
modules/kubernetes/config/Dockerfile | 45 +
modules/kubernetes/config/example-kube.xml | 44 +
.../kubernetes/config/ignite-deployment.yaml | 26 +
modules/kubernetes/config/ignite-service.yaml | 14 +
modules/kubernetes/config/run.sh | 50 +
modules/kubernetes/licenses/apache-2.0.txt | 202 +
modules/kubernetes/pom.xml | 93 +
.../TcpDiscoveryKubernetesIpFinder.java | 315 +
.../tcp/ipfinder/kubernetes/package-info.java | 22 +
.../TcpDiscoveryKubernetesIpFinderSelfTest.java | 93 +
.../tcp/ipfinder/kubernetes/package-info.java | 22 +
.../testsuites/IgniteKubernetesTestSuite.java | 41 +
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 +-
.../stream/mqtt/IgniteMqttStreamerTest.java | 4 +-
modules/osgi-karaf/pom.xml | 2 +-
modules/osgi-paxlogging/pom.xml | 2 +-
modules/osgi/pom.xml | 2 +-
.../BundleDelegatingClassLoader.java | 4 +-
.../classloaders/ContainerSweepClassLoader.java | 4 +-
modules/platforms/cpp/DEVNOTES.txt | 23 +-
modules/platforms/cpp/README.txt | 10 +-
modules/platforms/cpp/binary/Makefile.am | 9 +-
.../platforms/cpp/binary/include/Makefile.am | 6 +
.../cpp/binary/include/ignite/binary/binary.h | 15 +-
.../binary/binary_array_identity_resolver.h | 64 +
.../ignite/binary/binary_identity_resolver.h | 61 +
.../include/ignite/binary/binary_object.h | 78 +
.../include/ignite/binary/binary_raw_reader.h | 21 +
.../binary/include/ignite/binary/binary_type.h | 16 -
.../ignite/impl/binary/binary_object_header.h | 250 +
.../ignite/impl/binary/binary_object_impl.h | 109 +
.../ignite/impl/binary/binary_reader_impl.h | 9 +-
.../include/ignite/impl/binary/binary_schema.h | 2 +-
.../ignite/impl/binary/binary_type_impl.h | 149 +
.../ignite/impl/binary/binary_type_manager.h | 16 +-
.../ignite/impl/binary/binary_type_snapshot.h | 18 +-
.../include/ignite/impl/binary/binary_utils.h | 236 +-
.../ignite/impl/binary/binary_writer_impl.h | 11 +-
.../ignite/impl/interop/interop_output_stream.h | 10 +-
.../cpp/binary/project/vs/binary.vcxproj | 11 +-
.../binary/project/vs/binary.vcxproj.filters | 27 +
.../binary/binary_array_identity_resolver.cpp | 42 +
.../cpp/binary/src/binary/binary_type.cpp | 4 +-
.../src/impl/binary/binary_object_header.cpp | 51 +
.../src/impl/binary/binary_object_impl.cpp | 56 +
.../src/impl/binary/binary_reader_impl.cpp | 20 +-
.../src/impl/binary/binary_type_manager.cpp | 16 +-
.../cpp/binary/src/impl/binary/binary_utils.cpp | 169 +-
.../src/impl/binary/binary_writer_impl.cpp | 4 +-
.../binary/src/impl/interop/interop_memory.cpp | 2 +-
.../src/impl/interop/interop_output_stream.cpp | 5 +
modules/platforms/cpp/common/Makefile.am | 11 +-
.../platforms/cpp/common/include/Makefile.am | 6 +-
.../common/include/ignite/common/concurrent.h | 93 +-
.../include/ignite/common/dynamic_size_array.h | 2 +-
.../include/ignite/common/platform_utils.h | 79 +
.../include/ignite/common/reference_impl.h | 286 +
.../cpp/common/include/ignite/common/utils.h | 249 +-
.../cpp/common/include/ignite/ignite_error.h | 4 +-
.../cpp/common/include/ignite/reference.h | 564 +
.../os/linux/src/common/platform_utils.cpp | 81 +
.../cpp/common/os/linux/src/common/utils.cpp | 136 -
.../common/os/win/src/common/platform_utils.cpp | 88 +
.../cpp/common/os/win/src/common/utils.cpp | 142 -
.../cpp/common/project/vs/common.vcxproj | 8 +-
.../common/project/vs/common.vcxproj.filters | 18 +-
.../platforms/cpp/common/src/common/utils.cpp | 153 +
.../platforms/cpp/common/src/ignite_error.cpp | 4 +-
modules/platforms/cpp/configure.ac | 2 +-
modules/platforms/cpp/configure.acrel | 2 +-
modules/platforms/cpp/core-test/Makefile.am | 24 +-
.../cpp/core-test/config/cache-identity.xml | 121 +
.../core-test/config/cache-query-continuous.xml | 87 +
.../cpp/core-test/config/cache-query.xml | 12 +-
.../cpp/core-test/config/cache-test.xml | 1 +
.../platforms/cpp/core-test/config/invalid.xml | 39 +
.../core-test/include/ignite/binary_test_defs.h | 25 +
.../cpp/core-test/include/ignite/complex_type.h | 135 +
.../cpp/core-test/include/ignite/test_type.h | 186 +
.../cpp/core-test/include/ignite/test_utils.h | 63 +
.../cpp/core-test/project/vs/core-test.vcxproj | 20 +-
.../project/vs/core-test.vcxproj.filters | 40 +-
.../src/binary_identity_resolver_test.cpp | 522 +
.../cpp/core-test/src/binary_object_test.cpp | 282 +
.../cpp/core-test/src/binary_session_test.cpp | 4 +-
.../cpp/core-test/src/cache_query_test.cpp | 225 +-
.../platforms/cpp/core-test/src/cache_test.cpp | 43 +-
.../cpp/core-test/src/continuous_query_test.cpp | 584 +
.../cpp/core-test/src/decimal_test.cpp | 2 +-
.../cpp/core-test/src/handle_registry_test.cpp | 18 +-
.../cpp/core-test/src/ignition_test.cpp | 19 +-
.../cpp/core-test/src/interop_memory_test.cpp | 5 +-
.../cpp/core-test/src/interop_test.cpp | 51 +-
.../cpp/core-test/src/reference_test.cpp | 422 +
.../platforms/cpp/core-test/src/test_utils.cpp | 79 +
.../cpp/core-test/src/transactions_test.cpp | 23 +-
modules/platforms/cpp/core/Makefile.am | 7 +-
.../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 | 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 +
.../core/include/ignite/impl/handle_registry.h | 62 +-
.../include/ignite/impl/ignite_environment.h | 81 +-
.../ignite/impl/interop/interop_target.h | 18 +
.../cpp/core/include/ignite/impl/operations.h | 4 +-
modules/platforms/cpp/core/namespaces.dox | 74 +-
.../platforms/cpp/core/project/vs/core.vcxproj | 9 +-
.../cpp/core/project/vs/core.vcxproj.filters | 30 +
modules/platforms/cpp/core/src/ignition.cpp | 21 +-
.../impl/binary/binary_type_updater_impl.cpp | 13 +-
.../cpp/core/src/impl/cache/cache_impl.cpp | 68 +-
.../continuous/continuous_query_handle_impl.cpp | 96 +
.../core/src/impl/cache/query/query_impl.cpp | 15 +-
.../cpp/core/src/impl/handle_registry.cpp | 102 +-
.../cpp/core/src/impl/ignite_environment.cpp | 183 +-
.../platforms/cpp/core/src/impl/ignite_impl.cpp | 4 +-
.../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 | 3 +-
.../continuous-query-example/Makefile.am | 58 +
.../config/continuous-query-example.xml | 52 +
.../project/vs/continuous-query-example.vcxproj | 110 +
.../vs/continuous-query-example.vcxproj.filters | 35 +
.../src/continuous_query_example.cpp | 142 +
.../examples/include/ignite/examples/person.h | 2 +-
.../cpp/examples/odbc-example/Makefile.am | 6 +-
.../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 | 6 +-
.../putget-example/src/putget_example.cpp | 2 +-
.../cpp/examples/query-example/Makefile.am | 6 +-
.../query-example/src/query_example.cpp | 58 +-
modules/platforms/cpp/ignite/Makefile.am | 6 +-
.../cpp/ignite/project/vs/ignite.vcxproj | 4 +-
modules/platforms/cpp/jni/Makefile.am | 6 +-
.../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 | 2 +-
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 | 8 +-
.../cpp/odbc-test/config/queries-default.xml | 146 +
.../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 | 16 +
.../platforms/cpp/odbc-test/include/test_type.h | 62 +-
.../cpp/odbc-test/include/test_utils.h | 49 +-
.../cpp/odbc-test/project/vs/odbc-test.vcxproj | 7 +-
.../project/vs/odbc-test.vcxproj.filters | 9 +
.../cpp/odbc-test/src/api_robustness_test.cpp | 1196 ++
.../src/application_data_buffer_test.cpp | 153 +-
.../platforms/cpp/odbc-test/src/column_test.cpp | 199 +-
.../cpp/odbc-test/src/queries_test.cpp | 832 +-
.../platforms/cpp/odbc-test/src/row_test.cpp | 4 +-
.../src/sql_aggregate_functions_test.cpp | 5 +-
.../src/sql_date_time_functions_test.cpp | 26 +-
.../src/sql_esc_convert_function_test.cpp | 160 +
.../src/sql_numeric_functions_test.cpp | 1 +
.../cpp/odbc-test/src/sql_outer_join_test.cpp | 3 +-
.../odbc-test/src/sql_string_functions_test.cpp | 1 +
.../odbc-test/src/sql_test_suite_fixture.cpp | 105 +-
.../cpp/odbc-test/src/sql_types_test.cpp | 256 +
.../platforms/cpp/odbc-test/src/test_utils.cpp | 60 +-
.../cpp/odbc-test/src/utility_test.cpp | 27 +-
modules/platforms/cpp/odbc/Makefile.am | 12 +-
modules/platforms/cpp/odbc/README.txt | 23 +-
modules/platforms/cpp/odbc/include/Makefile.am | 3 +-
.../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 | 58 +-
.../include/ignite/odbc/config/configuration.h | 17 +-
.../ignite/odbc/config/connection_info.h | 2 -
.../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/log.h | 123 +
.../cpp/odbc/include/ignite/odbc/message.h | 138 +-
.../odbc/include/ignite/odbc/meta/column_meta.h | 2 -
.../odbc/include/ignite/odbc/query/data_query.h | 12 +-
.../cpp/odbc/include/ignite/odbc/query/query.h | 44 +-
.../cpp/odbc/include/ignite/odbc/statement.h | 308 +-
.../cpp/odbc/include/ignite/odbc/type_traits.h | 2 +-
.../cpp/odbc/include/ignite/odbc/utility.h | 35 +-
.../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/linux/src/system/socket_client.cpp | 9 +-
.../odbc/os/win/src/system/socket_client.cpp | 9 +-
.../src/system/ui/dsn_configuration_window.cpp | 18 +-
.../cpp/odbc/os/win/src/system_dsn.cpp | 17 +-
.../platforms/cpp/odbc/project/vs/module.def | 1 -
.../platforms/cpp/odbc/project/vs/odbc.vcxproj | 8 +-
.../cpp/odbc/project/vs/odbc.vcxproj.filters | 6 +
.../odbc/src/app/application_data_buffer.cpp | 448 +-
.../platforms/cpp/odbc/src/app/parameter.cpp | 133 +-
modules/platforms/cpp/odbc/src/column.cpp | 65 +-
modules/platforms/cpp/odbc/src/common_types.cpp | 3 +
.../cpp/odbc/src/config/configuration.cpp | 29 +-
.../cpp/odbc/src/config/connection_info.cpp | 302 +-
modules/platforms/cpp/odbc/src/connection.cpp | 42 +-
.../odbc/src/diagnostic/diagnosable_adapter.cpp | 3 +-
.../odbc/src/diagnostic/diagnostic_record.cpp | 72 +-
.../diagnostic/diagnostic_record_storage.cpp | 18 +
modules/platforms/cpp/odbc/src/entry_points.cpp | 151 +-
modules/platforms/cpp/odbc/src/log.cpp | 83 +
.../platforms/cpp/odbc/src/meta/column_meta.cpp | 4 -
modules/platforms/cpp/odbc/src/odbc.cpp | 696 +-
.../odbc/src/query/column_metadata_query.cpp | 15 +-
.../platforms/cpp/odbc/src/query/data_query.cpp | 29 +-
.../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 | 14 +-
.../cpp/odbc/src/query/type_info_query.cpp | 2 +-
modules/platforms/cpp/odbc/src/statement.cpp | 698 +-
modules/platforms/cpp/odbc/src/type_traits.cpp | 3 +
modules/platforms/cpp/odbc/src/utility.cpp | 53 +-
modules/platforms/cpp/project/vs/ignite.slnrel | 3 +
.../platforms/cpp/project/vs/ignite_x86.slnrel | 3 +
.../Apache.Ignite.AspNet.Tests.csproj | 82 +
.../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 | 14 +-
.../Apache.Ignite.AspNet.nuspec | 6 +-
.../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 +-
.../Apache.Ignite.Benchmarks.csproj | 5 +
.../Properties/AssemblyInfo.cs | 40 +-
.../Apache.Ignite.Core.Tests.NuGet.csproj | 21 +
.../EntityFrameworkCacheTest.cs | 62 +
.../Log4NetTest.cs | 87 +
.../Properties/AssemblyInfo.cs | 40 +-
.../packages.config | 4 +
.../Apache.Ignite.Core.Tests.TestDll.csproj | 5 +
.../Properties/AssemblyInfo.cs | 40 +-
.../Apache.Ignite.Core.Tests.csproj | 35 +-
.../AspNet/IgniteOutputCacheProviderTest.cs | 172 -
.../Binary/BinaryBuilderSelfTest.cs | 159 +-
.../BinaryBuilderSelfTestArrayIdentity.cs | 34 +
.../Binary/BinaryCompactFooterInteropTest.cs | 31 +-
.../Binary/BinaryEqualityComparerTest.cs | 279 +
.../Binary/BinaryReaderWriterTest.cs | 29 +
.../Binary/BinaryStructureTest.cs | 122 +
.../Binary/IO/BinaryStreamsTest.cs | 19 +
.../Affinity/AffinityFunctionSpringTest.cs | 38 +-
.../Cache/Affinity/AffinityFunctionTest.cs | 33 +-
.../Cache/CacheAbstractTest.cs | 683 +-
.../Cache/CacheAbstractTransactionalTest.cs | 904 ++
.../Cache/CacheConfigurationTest.cs | 30 +-
.../Cache/CacheLocalAtomicTest.cs | 5 -
.../Cache/CacheLocalTest.cs | 6 +-
.../Cache/CacheMetricsTest.cs | 252 +
.../CachePartitionedAtomicNearEnabledTest.cs | 5 -
.../Cache/CachePartitionedAtomicTest.cs | 5 -
.../Cache/CachePartitionedNearEnabledTest.cs | 7 +-
.../Cache/CachePartitionedTest.cs | 7 +-
.../Cache/CacheReplicatedAtomicTest.cs | 5 -
.../Cache/CacheReplicatedTest.cs | 7 +-
.../Cache/CacheSwapSpaceTest.cs | 122 +
.../Cache/CacheTestAsyncWrapper.cs | 13 +
.../Cache/Query/CacheDmlQueriesTest.cs | 296 +
.../Cache/Query/CacheLinqTest.cs | 168 +-
.../Query/CacheQueriesCodeConfigurationTest.cs | 17 +-
.../Cache/Query/CacheQueriesTest.cs | 58 +-
.../Cache/Store/CacheParallelLoadStoreTest.cs | 9 +-
.../Cache/Store/CacheStoreSessionTest.cs | 22 +-
.../Cache/Store/CacheStoreTest.cs | 363 +-
.../Cache/Store/CacheTestStore.cs | 14 +
.../Cache/Store/NamedNodeCacheStoreTest.cs | 34 +
.../Compute/ComputeApiTest.cs | 26 +
.../Dataload/DataStreamerTestTopologyChange.cs | 27 +-
.../Examples/Example.cs | 11 +-
.../Examples/ExamplesTest.cs | 126 +-
.../Apache.Ignite.Core.Tests/ExceptionsTest.cs | 41 +
.../Apache.Ignite.Core.Tests/ExecutableTest.cs | 64 +-
.../IgniteConfigurationSectionTest.cs | 20 +
.../IgniteConfigurationSerializerTest.cs | 94 +-
.../IgniteConfigurationTest.cs | 76 +-
.../Log/ConcurrentMemoryTarget.cs | 73 +
.../Log/Log4NetLoggerTest.cs | 188 +
.../Log/NLogLoggerTest.cs | 5 +-
.../Apache.Ignite.Core.Tests/MessagingTest.cs | 6 +-
.../Process/IgniteProcess.cs | 21 +-
.../ProjectFilesTest.cs | 98 +-
.../Properties/AssemblyInfo.cs | 40 +-
.../Apache.Ignite.Core.Tests/ReconnectTest.cs | 105 +-
.../Services/ServicesTest.cs | 48 +-
.../Apache.Ignite.Core.Tests/TestRunner.cs | 37 +-
.../Apache.Ignite.Core.Tests/TestUtils.cs | 9 +-
.../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.Schema.nuspec | 2 +-
.../Apache.Ignite.Core.csproj | 37 +-
.../Apache.Ignite.Core.nuspec | 2 +-
.../Binary/BinaryArrayEqualityComparer.cs | 149 +
.../Binary/BinaryConfiguration.cs | 29 +-
.../Binary/BinaryTypeConfiguration.cs | 14 +
.../dotnet/Apache.Ignite.Core/Binary/IBinary.cs | 3 +-
.../Cache/Configuration/CacheConfiguration.cs | 22 +
.../Cache/Configuration/QueryEntity.cs | 33 +-
.../Cache/Configuration/QueryField.cs | 6 +
.../dotnet/Apache.Ignite.Core/Cache/ICache.cs | 23 +-
.../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 | 124 +-
.../IgniteConfigurationSection.xsd | 82 +-
.../dotnet/Apache.Ignite.Core/Ignition.cs | 12 +
.../Apache.Ignite.Core/Impl/Binary/Binary.cs | 30 +-
.../Binary/BinaryEqualityComparerSerializer.cs | 99 +
.../Impl/Binary/BinaryFieldEqualityComparer.cs | 138 +
.../Impl/Binary/BinaryFullTypeDescriptor.cs | 21 +-
.../Impl/Binary/BinaryObject.cs | 31 +-
.../Impl/Binary/BinaryObjectBuilder.cs | 62 +-
.../Impl/Binary/BinaryObjectHeader.cs | 23 +-
.../Impl/Binary/BinaryObjectSchemaHolder.cs | 22 +
.../Impl/Binary/BinaryObjectSchemaSerializer.cs | 2 +-
.../Impl/Binary/BinaryProcessor.cs | 156 +
.../Impl/Binary/BinaryReader.cs | 152 +-
.../Binary/BinarySurrogateTypeDescriptor.cs | 6 +
.../Impl/Binary/BinarySystemHandlers.cs | 6 +-
.../Impl/Binary/BinaryUtils.cs | 28 +
.../Impl/Binary/BinaryWriter.cs | 17 +-
.../Impl/Binary/DateTimeHolder.cs | 35 +-
.../Impl/Binary/IBinaryEqualityComparer.cs | 53 +
.../Impl/Binary/IBinaryTypeDescriptor.cs | 5 +
.../Impl/Binary/Io/BinaryHeapStream.cs | 9 +
.../Impl/Binary/Io/BinaryStreamBase.cs | 17 +-
.../Impl/Binary/Io/IBinaryStream.cs | 11 +-
.../Impl/Binary/Io/IBinaryStreamProcessor.cs | 36 +
.../Impl/Binary/Marshaller.cs | 33 +-
.../Impl/Binary/SerializableObjectHolder.cs | 16 +
.../Impl/Cache/CacheAffinityImpl.cs | 5 +-
.../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs | 677 +-
.../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/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 | 26 +-
.../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 | 7 +-
.../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/Memory/PlatformMemoryStream.cs | 16 +
.../Impl/Messaging/Messaging.cs | 113 +-
.../Apache.Ignite.Core/Impl/PlatformTarget.cs | 268 +-
.../Impl/Services/Services.cs | 148 +-
.../Impl/SwapSpace/SwapSpaceSerializer.cs | 99 +
.../Transactions/CacheTransactionManager.cs | 161 +
.../Impl/Transactions/Transaction.cs | 8 +
.../Impl/Transactions/TransactionImpl.cs | 13 +
.../Impl/Transactions/TransactionsImpl.cs | 92 +-
.../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 | 573 +-
.../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 | 21 +-
.../TransactionDeadlockException.cs | 71 +
.../Apache.Ignite.EntityFramework.Tests.csproj | 101 +
.../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 | 100 +
.../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 | 310 +
.../Impl/DataReaderField.cs | 74 +
.../Impl/DataReaderResult.cs | 95 +
.../Impl/DbCache.cs | 295 +
.../Impl/DbCacheKey.cs | 92 +
.../Impl/DbCommandDefinitionProxy.cs | 51 +
.../Impl/DbCommandInfo.cs | 186 +
.../Impl/DbCommandProxy.cs | 264 +
.../Impl/DbProviderServicesProxy.cs | 169 +
.../Impl/DbTransactionInterceptor.cs | 134 +
.../Properties/AssemblyInfo.cs | 41 +
.../packages.config | 20 +
.../Apache.Ignite.Linq.csproj | 7 +-
.../Apache.Ignite.Linq.nuspec | 2 +-
.../Apache.Ignite.Linq/ICacheQueryable.cs | 32 +-
.../Impl/CacheQueryExpressionVisitor.cs | 139 +-
.../Impl/CacheQueryModelVisitor.cs | 3 +
.../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 | 81 +
.../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 | 9 +-
.../Apache.Ignite.NLog.nuspec | 2 +-
.../Properties/AssemblyInfo.cs | 8 +-
.../dotnet/Apache.Ignite.NLog/packages.config | 18 +
modules/platforms/dotnet/Apache.Ignite.sln | 66 +
.../dotnet/Apache.Ignite.sln.DotSettings | 3 +-
.../Apache.Ignite.sln.TeamCity.DotSettings | 1 +
.../dotnet/Apache.Ignite/Apache.Ignite.csproj | 5 +
.../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 | 154 +
modules/platforms/dotnet/README.txt | 13 +-
modules/platforms/dotnet/build.bat | 19 +
modules/platforms/dotnet/build.ps1 | 211 +
.../Apache.Ignite.Examples.csproj | 14 +
.../examples/Apache.Ignite.Examples/App.config | 3 +
.../DataStructures/AtomicLongExample.cs | 65 +
.../DataStructures/AtomicReferenceExample.cs | 65 +
.../DataStructures/AtomicSequenceExample.cs | 70 +
.../Datagrid/EntryProcessorExample.cs | 90 +
.../Datagrid/LinqExample.cs | 6 +-
.../Datagrid/MultiTieredCacheExample.cs | 138 +
.../Datagrid/NearCacheExample.cs | 87 +
.../Datagrid/OptimisticTransactionExample.cs | 110 +
.../Datagrid/QueryDmlExample.cs | 162 +
.../Datagrid/QueryExample.cs | 24 +-
.../TransactionDeadlockDetectionExample.cs | 121 +
.../Datagrid/TransactionExample.cs | 75 +-
.../Misc/ClientReconnectExample.cs | 159 +
.../Properties/AssemblyInfo.cs | 44 +-
.../Apache.Ignite.ExamplesDll.csproj | 10 +
.../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 +-
.../Services/MapService.cs | 2 -
modules/rest-http/pom.xml | 2 +-
modules/scalar-2.10/pom.xml | 4 +-
modules/scalar/pom.xml | 4 +-
modules/schedule/pom.xml | 2 +-
modules/schema-import-db/pom.xml | 2 +-
.../apache/ignite/schema/parser/DbColumn.java | 16 +-
.../parser/dialect/DatabaseMetadataDialect.java | 9 +
.../parser/dialect/JdbcMetadataDialect.java | 21 +-
.../parser/dialect/MySQLMetadataDialect.java | 24 +-
.../parser/dialect/OracleMetadataDialect.java | 5 +-
modules/schema-import/pom.xml | 2 +-
.../ignite/schema/model/PojoDescriptor.java | 24 +-
modules/slf4j/pom.xml | 2 +-
.../apache/ignite/logger/slf4j/Slf4jLogger.java | 11 +-
modules/spark-2.10/pom.xml | 2 +-
modules/spark/pom.xml | 2 +-
.../spark/JavaStandaloneIgniteRDDSelfTest.java | 3 +-
modules/spring/pom.xml | 2 +-
.../org/apache/ignite/IgniteSpringBean.java | 23 +-
.../util/spring/IgniteSpringHelperImpl.java | 8 +-
.../src/test/config/incorrect-store-cache.xml | 2 +
.../src/test/config/jdbc-pojo-store-builtin.xml | 23 +-
.../src/test/config/jdbc-pojo-store-obj.xml | 23 +-
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 +
.../ignite/internal/GridFactorySelfTest.java | 2 +-
.../internal/IgniteDynamicCacheConfigTest.java | 4 +-
.../p2p/GridP2PUserVersionChangeSelfTest.java | 7 +-
.../IgniteStartFromStreamConfigurationTest.java | 18 +-
.../testsuites/IgniteResourceSelfTestSuite.java | 11 +-
.../testsuites/IgniteSpringTestSuite.java | 20 +-
.../GridSpringTransactionManagerSelfTest.java | 2 +-
modules/ssh/pom.xml | 2 +-
modules/storm/pom.xml | 2 +-
modules/tools/pom.xml | 2 +-
.../ignite/tools/classgen/ClassesGenerator.java | 10 +-
modules/twitter/pom.xml | 2 +-
.../twitter/IgniteTwitterStreamerTest.java | 4 +-
modules/urideploy/pom.xml | 2 +-
.../spi/deployment/uri/UriDeploymentSpi.java | 4 +-
.../scanners/http/UriDeploymentHttpScanner.java | 8 +-
.../GridUriDeploymentFileProcessorSelfTest.java | 3 +-
modules/visor-console-2.10/pom.xml | 2 +-
modules/visor-console/pom.xml | 2 +-
.../commands/cache/VisorCacheCommand.scala | 7 +-
.../scala/org/apache/ignite/visor/visor.scala | 117 +-
.../commands/mem/VisorMemoryCommandSpec.scala | 33 +
modules/visor-plugins/pom.xml | 2 +-
modules/web-console/DEVNOTES.txt | 25 +-
modules/web-console/backend/.babelrc | 9 -
modules/web-console/backend/.eslintrc | 4 +-
modules/web-console/backend/.gitignore | 2 -
modules/web-console/backend/app/agent.js | 183 +-
modules/web-console/backend/app/app.js | 2 +
modules/web-console/backend/app/browser.js | 107 +-
modules/web-console/backend/app/index.js | 116 -
modules/web-console/backend/app/mongo.js | 312 +-
modules/web-console/backend/app/mongoose.js | 29 +
modules/web-console/backend/app/routes.js | 5 +-
modules/web-console/backend/app/settings.js | 10 +-
.../backend/config/settings.json.sample | 7 -
.../backend/errors/AuthFailedException.js | 2 +-
.../backend/errors/DuplicateKeyException.js | 2 +-
.../backend/errors/IllegalAccessError.js | 4 +-
.../backend/errors/IllegalArgumentException.js | 2 +-
.../backend/errors/MissingResourceException.js | 2 +-
modules/web-console/backend/errors/index.js | 14 +-
modules/web-console/backend/index.js | 91 +-
modules/web-console/backend/injector.js | 2 +-
modules/web-console/backend/middlewares/host.js | 7 +-
modules/web-console/backend/package.json | 23 +-
.../web-console/backend/routes/activities.js | 52 +
modules/web-console/backend/routes/admin.js | 2 +-
modules/web-console/backend/routes/agent.js | 12 +-
modules/web-console/backend/routes/demo.js | 25 +-
.../backend/routes/demo/domains.json | 15 +-
modules/web-console/backend/routes/profile.js | 3 +-
modules/web-console/backend/routes/public.js | 70 +-
.../web-console/backend/services/activities.js | 136 +
modules/web-console/backend/services/agents.js | 3 +-
modules/web-console/backend/services/auth.js | 83 +-
modules/web-console/backend/services/caches.js | 16 +-
.../web-console/backend/services/clusters.js | 19 +-
modules/web-console/backend/services/domains.js | 14 +-
modules/web-console/backend/services/igfss.js | 12 +-
modules/web-console/backend/services/mails.js | 16 +-
.../web-console/backend/services/notebooks.js | 14 +-
.../web-console/backend/services/sessions.js | 8 +-
modules/web-console/backend/services/spaces.js | 15 +
modules/web-console/backend/services/users.js | 13 +-
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 +
.../web-console/backend/test/data/accounts.json | 5 +-
.../web-console/backend/test/data/caches.json | 30 +-
.../web-console/backend/test/data/clusters.json | 10 +-
.../web-console/backend/test/data/domains.json | 10 +
.../web-console/backend/test/data/igfss.json | 4 +-
.../web-console/backend/test/data/spaces.json | 14 +
modules/web-console/backend/test/index.js | 35 +
modules/web-console/backend/test/injector.js | 43 +-
.../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 | 143 +-
.../backend/test/unit/ClusterService.test.js | 141 +-
.../backend/test/unit/DomainService.test.js | 153 +-
.../backend/test/unit/IgfsService.test.js | 131 +-
.../docker/compose/backend/.dockerignore | 2 +
.../docker/compose/backend/Dockerfile | 6 +-
.../web-console/docker/compose/backend/build.sh | 4 +-
.../docker/compose/docker-compose.yml | 5 -
.../docker/compose/frontend/DockerfileBuild | 4 +-
.../docker/compose/frontend/build.sh | 6 +-
.../compose/frontend/nginx/web-console.conf | 9 +
.../web-console/docker/standalone/.dockerignore | 5 +
.../web-console/docker/standalone/Dockerfile | 10 +-
modules/web-console/docker/standalone/build.sh | 4 +-
.../docker/standalone/docker-compose.yml | 7 +-
.../docker/standalone/nginx/web-console.conf | 9 +
modules/web-console/frontend/.eslintrc | 6 +-
modules/web-console/frontend/app/app.config.js | 21 +-
modules/web-console/frontend/app/app.js | 94 +-
.../activities-user-dialog.controller.js | 60 +
.../activities-user-dialog.jade | 36 +
.../components/activities-user-dialog/index.js | 36 +
.../form-field-datepicker.jade | 55 +
.../form-field-datepicker.scss | 20 +
.../list-of-registered-users/index.js | 28 +
.../list-of-registered-users.categories.js | 30 +
.../list-of-registered-users.column-defs.js | 80 +
.../list-of-registered-users.controller.js | 207 +
.../list-of-registered-users.jade | 54 +
.../ui-grid-header/ui-grid-header.jade | 27 +
.../ui-grid-header/ui-grid-header.scss | 84 +
.../ui-grid-settings/ui-grid-settings.jade | 33 +
.../ui-grid-settings/ui-grid-settings.scss | 70 +
.../controllers/reset-password.controller.js | 14 +-
.../app/core/activities/Activities.data.js | 39 +
.../frontend/app/core/admin/Admin.data.js | 77 +
modules/web-console/frontend/app/core/index.js | 25 +
.../web-console/frontend/app/data/dialects.json | 9 +
.../frontend/app/data/event-groups.json | 169 +
.../frontend/app/data/event-types.json | 169 -
modules/web-console/frontend/app/data/i18n.js | 38 +
.../frontend/app/data/java-classes.json | 4 +-
.../frontend/app/data/jdbc-types.json | 44 +
.../frontend/app/data/pom-dependencies.json | 14 +-
.../frontend/app/data/sql-keywords.json | 41 +
.../frontend/app/decorator/tooltip.js | 41 +-
.../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 | 2 +-
.../directives/ui-ace-docker/ui-ace-docker.jade | 2 +-
.../ui-ace-java/ui-ace-java.controller.js | 78 +-
.../ui-ace-java/ui-ace-java.directive.js | 100 +-
.../ui-ace-pojos/ui-ace-pojos.controller.js | 14 +-
.../directives/ui-ace-pojos/ui-ace-pojos.jade | 2 +-
.../ui-ace-pom/ui-ace-pom.controller.js | 4 +-
.../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 +
.../ui-ace-xml/ui-ace-xml.controller.js | 27 -
.../ui-ace-xml/ui-ace-xml.directive.js | 147 -
.../app/directives/ui-ace-xml/ui-ace-xml.jade | 17 -
.../frontend/app/filters/default-name.filter.js | 21 +
.../frontend/app/filters/duration.filter.js | 3 +
.../frontend/app/filters/hasPojo.filter.js | 5 +-
.../app/filters/uiGridSubcategories.filter.js | 24 +
.../frontend/app/helpers/jade/form.jade | 1 +
.../helpers/jade/form/form-field-checkbox.jade | 2 +-
.../helpers/jade/form/form-field-datalist.jade | 8 +-
.../helpers/jade/form/form-field-dropdown.jade | 11 +-
.../helpers/jade/form/form-field-feedback.jade | 5 +-
.../app/helpers/jade/form/form-field-label.jade | 4 +-
.../helpers/jade/form/form-field-number.jade | 9 +-
.../helpers/jade/form/form-field-password.jade | 47 +
.../app/helpers/jade/form/form-field-text.jade | 27 +-
.../frontend/app/helpers/jade/mixins.jade | 380 +-
.../frontend/app/modules/Demo/Demo.module.js | 166 -
.../frontend/app/modules/agent/agent.module.js | 10 +-
.../app/modules/branding/branding.provider.js | 2 +-
.../configuration/EventGroups.provider.js | 30 -
.../modules/configuration/Version.service.js | 95 +
.../configuration/configuration.module.js | 47 +-
.../generator/AbstractTransformer.js | 363 +
.../modules/configuration/generator/Beans.js | 394 +
.../generator/ConfigurationGenerator.js | 1882 +++
.../configuration/generator/Custom.service.js | 23 +
.../configuration/generator/Docker.service.js | 4 +-
.../configuration/generator/Java.service.js | 21 -
.../generator/JavaTransformer.service.js | 1750 +++
.../configuration/generator/Maven.service.js | 234 +
.../generator/PlatformGenerator.js | 522 +
.../configuration/generator/Pom.service.js | 226 -
.../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 +
.../configuration/generator/Xml.service.js | 21 -
.../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 +
.../frontend/app/modules/demo/Demo.module.js | 172 +
.../app/modules/form/field/input/select.scss | 21 -
.../app/modules/form/field/input/text.scss | 1 -
.../app/modules/form/field/tooltip.directive.js | 2 +-
.../frontend/app/modules/form/form.module.js | 10 +-
.../app/modules/form/group/tooltip.directive.js | 2 +-
.../app/modules/form/panel/field.directive.js | 4 +-
.../app/modules/form/panel/revert.directive.js | 4 +-
.../modules/form/services/FormGUID.service.js | 22 +
.../validator/java-built-in-class.directive.js | 6 +-
.../form/validator/java-identifier.directive.js | 8 +-
.../form/validator/java-keywords.directive.js | 17 +-
.../validator/java-package-name.directive.js | 4 +-
.../java-package-specified.directive.js | 11 +-
.../modules/form/validator/uuid.directive.js | 12 +-
.../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/sql/Notebook.data.js | 27 +-
.../app/modules/sql/Notebook.service.js | 2 +-
.../app/modules/sql/scan-filter-input.jade | 39 -
.../modules/sql/scan-filter-input.service.js | 51 -
.../frontend/app/modules/sql/sql.controller.js | 424 +-
.../frontend/app/modules/sql/sql.module.js | 4 +-
.../frontend/app/modules/states/admin.state.js | 2 +-
.../app/modules/states/configuration.state.js | 4 +-
.../states/configuration/caches/affinity.jade | 82 +
.../configuration/caches/client-near-cache.jade | 50 +
.../configuration/caches/concurrency.jade | 2 +-
.../states/configuration/caches/general.jade | 5 +-
.../states/configuration/caches/memory.jade | 21 +-
.../configuration/caches/near-cache-client.jade | 51 +
.../configuration/caches/near-cache-server.jade | 52 +
.../configuration/caches/node-filter.jade | 53 +-
.../states/configuration/caches/query.jade | 29 +-
.../states/configuration/caches/rebalance.jade | 5 +-
.../configuration/caches/server-near-cache.jade | 51 -
.../states/configuration/caches/statistics.jade | 2 +-
.../states/configuration/caches/store.jade | 104 +-
.../states/configuration/clusters/atomic.jade | 5 +-
.../configuration/clusters/attributes.jade | 6 +-
.../states/configuration/clusters/binary.jade | 30 +-
.../configuration/clusters/cache-key-cfg.jade | 13 +-
.../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 | 5 +-
.../clusters/collision/custom.jade | 4 +-
.../clusters/collision/fifo-queue.jade | 2 +-
.../clusters/collision/job-stealing.jade | 6 +-
.../clusters/collision/priority-queue.jade | 2 +-
.../configuration/clusters/communication.jade | 7 +-
.../configuration/clusters/connector.jade | 5 +-
.../configuration/clusters/deployment.jade | 134 +-
.../configuration/clusters/discovery.jade | 5 +-
.../states/configuration/clusters/events.jade | 39 +-
.../states/configuration/clusters/failover.jade | 23 +-
.../states/configuration/clusters/general.jade | 5 +-
.../clusters/general/discovery/cloud.jade | 2 +-
.../clusters/general/discovery/google.jade | 2 +-
.../clusters/general/discovery/jdbc.jade | 3 +-
.../clusters/general/discovery/multicast.jade | 2 +-
.../clusters/general/discovery/s3.jade | 2 +-
.../clusters/general/discovery/shared.jade | 2 +-
.../clusters/general/discovery/vm.jade | 2 +-
.../clusters/general/discovery/zookeeper.jade | 6 +-
.../bounded-exponential-backoff.jade | 2 +-
.../discovery/zookeeper/retrypolicy/custom.jade | 4 +-
.../retrypolicy/exponential-backoff.jade | 2 +-
.../zookeeper/retrypolicy/forever.jade | 2 +-
.../zookeeper/retrypolicy/n-times.jade | 2 +-
.../zookeeper/retrypolicy/one-time.jade | 2 +-
.../zookeeper/retrypolicy/until-elapsed.jade | 2 +-
.../states/configuration/clusters/igfs.jade | 5 +-
.../configuration/clusters/load-balancing.jade | 107 +
.../states/configuration/clusters/logger.jade | 2 +-
.../configuration/clusters/logger/custom.jade | 4 +-
.../configuration/clusters/logger/log4j.jade | 2 +-
.../configuration/clusters/logger/log4j2.jade | 2 +-
.../configuration/clusters/marshaller.jade | 5 +-
.../states/configuration/clusters/metrics.jade | 2 +-
.../states/configuration/clusters/odbc.jade | 48 +
.../states/configuration/clusters/ssl.jade | 11 +-
.../states/configuration/clusters/swap.jade | 5 +-
.../states/configuration/clusters/thread.jade | 2 +-
.../states/configuration/clusters/time.jade | 2 +-
.../configuration/clusters/transactions.jade | 8 +-
.../states/configuration/domains/general.jade | 18 +-
.../states/configuration/domains/query.jade | 66 +-
.../states/configuration/domains/store.jade | 27 +-
.../modules/states/configuration/igfs/dual.jade | 2 +-
.../states/configuration/igfs/fragmentizer.jade | 2 +-
.../states/configuration/igfs/general.jade | 5 +-
.../modules/states/configuration/igfs/ipc.jade | 4 +-
.../modules/states/configuration/igfs/misc.jade | 10 +-
.../states/configuration/igfs/secondary.jade | 5 +-
.../summary/summary-zipper.service.js | 37 +
.../configuration/summary/summary.controller.js | 133 +-
.../configuration/summary/summary.worker.js | 123 +
.../app/modules/user/AclRoute.provider.js | 31 +-
.../frontend/app/modules/user/Auth.service.js | 11 +-
.../frontend/app/modules/user/permissions.js | 2 +-
.../frontend/app/modules/user/user.module.js | 6 +-
.../app/modules/version/Version.provider.js | 32 -
.../app/services/ErrorPopover.service.js | 5 +-
.../frontend/app/services/FormUtils.service.js | 6 +-
.../frontend/app/services/JavaTypes.service.js | 222 +-
.../app/services/LegacyTable.service.js | 24 +-
.../app/services/LegacyUtils.service.js | 172 +-
.../frontend/app/services/Messages.service.js | 17 +-
.../frontend/app/services/SqlTypes.service.js | 65 +
modules/web-console/frontend/app/vendor.js | 4 +-
.../frontend/controllers/admin-controller.js | 92 -
.../frontend/controllers/caches-controller.js | 155 +-
.../frontend/controllers/clusters-controller.js | 227 +-
.../frontend/controllers/domains-controller.js | 280 +-
.../frontend/controllers/igfs-controller.js | 26 +-
.../frontend/controllers/profile-controller.js | 8 +-
.../frontend/generator/generator-common.js | 612 -
.../frontend/generator/generator-java.js | 3534 -----
.../frontend/generator/generator-optional.js | 25 -
.../frontend/generator/generator-properties.js | 175 -
.../frontend/generator/generator-readme.js | 85 -
.../frontend/generator/generator-xml.js | 2093 ---
.../frontend/gulpfile.babel.js/paths.js | 31 +-
.../frontend/gulpfile.babel.js/tasks/jade.js | 21 +-
.../frontend/gulpfile.babel.js/tasks/test.js | 92 -
.../frontend/gulpfile.babel.js/tasks/watch.js | 6 +-
.../gulpfile.babel.js/webpack/common.js | 24 +-
.../webpack/environments/development.js | 26 +-
.../webpack/environments/production.js | 3 +-
.../webpack/environments/test.js | 52 +
.../frontend/gulpfile.babel.js/webpack/index.js | 4 +-
.../webpack/plugins/progress.js | 82 -
modules/web-console/frontend/package.json | 189 +-
.../frontend/public/images/cache.png | Bin 23700 -> 24791 bytes
.../frontend/public/images/domains.png | Bin 23828 -> 22131 bytes
.../web-console/frontend/public/images/igfs.png | Bin 14307 -> 14139 bytes
.../frontend/public/images/query-chart.png | Bin 16637 -> 17142 bytes
.../frontend/public/images/query-metadata.png | Bin 32298 -> 39361 bytes
.../frontend/public/images/query-table.png | Bin 29189 -> 28065 bytes
.../frontend/public/images/summary.png | Bin 31997 -> 33650 bytes
.../stylesheets/_font-awesome-custom.scss | 67 +
.../frontend/public/stylesheets/form-field.scss | 145 +
.../frontend/public/stylesheets/style.scss | 235 +-
.../frontend/public/stylesheets/variables.scss | 1 +
.../frontend/test/karma.conf.babel.js | 91 +
modules/web-console/frontend/test/karma.conf.js | 98 +-
.../frontend/test/unit/JavaTransformer.test.js | 57 +
.../frontend/test/unit/JavaTypes.test.js | 110 +-
.../frontend/test/unit/SharpTransformer.test.js | 55 +
.../test/unit/SpringTransformer.test.js | 57 +
.../frontend/test/unit/SqlTypes.test.js | 51 +
.../frontend/test/unit/Version.test.js | 88 +
.../test/unit/defaultName.filter.test.js | 38 +
.../frontend/views/configuration/caches.jade | 22 +-
.../frontend/views/configuration/clusters.jade | 48 +-
.../views/configuration/domains-import.jade | 131 +-
.../frontend/views/configuration/domains.jade | 8 +-
.../frontend/views/configuration/igfs.jade | 14 +-
.../summary-project-structure.jade | 2 +-
.../frontend/views/configuration/summary.jade | 84 +-
.../frontend/views/includes/header.jade | 15 +-
.../frontend/views/settings/admin.jade | 61 +-
.../frontend/views/settings/profile.jade | 2 +-
.../frontend/views/sql/cache-metadata.jade | 2 +-
.../frontend/views/sql/notebook-new.jade | 4 +-
modules/web-console/frontend/views/sql/sql.jade | 223 +-
.../views/templates/agent-download.jade | 10 +-
.../frontend/views/templates/alert.jade | 2 +-
.../frontend/views/templates/batch-confirm.jade | 4 +-
.../frontend/views/templates/clone.jade | 6 +-
.../frontend/views/templates/confirm.jade | 4 +-
.../frontend/views/templates/demo-info.jade | 4 +-
.../views/templates/getting-started.jade | 4 +-
.../frontend/views/templates/message.jade | 4 +-
.../frontend/views/templates/select.jade | 4 +-
modules/web-console/pom.xml | 2 +-
modules/web-console/web-agent/README.txt | 6 +-
.../web-agent/bin/ignite-web-agent.bat | 11 +-
.../web-agent/bin/ignite-web-agent.sh | 8 +-
modules/web-console/web-agent/pom.xml | 2 +-
.../console/agent/AgentConfiguration.java | 5 +-
.../ignite/console/agent/AgentLauncher.java | 261 +-
.../apache/ignite/console/agent/AgentUtils.java | 80 +
.../console/agent/handlers/AbstractHandler.java | 110 -
.../agent/handlers/AbstractListener.java | 104 +
.../console/agent/handlers/DatabaseHandler.java | 298 -
.../agent/handlers/DatabaseListener.java | 316 +
.../console/agent/handlers/RestHandler.java | 276 -
.../console/agent/handlers/RestListener.java | 280 +
.../ignite/console/demo/AgentClusterDemo.java | 476 +-
.../ignite/console/demo/AgentDemoUtils.java | 79 +
.../demo/service/DemoCachesLoadService.java | 456 +
.../service/DemoRandomCacheLoadService.java | 120 +
.../service/DemoServiceClusterSingleton.java | 41 +
.../demo/service/DemoServiceKeyAffinity.java | 41 +
.../service/DemoServiceMultipleInstances.java | 41 +
.../demo/service/DemoServiceNodeSingleton.java | 41 +
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 | 28 +-
.../IgniteWebSessionSelfTestSuite.java | 68 +-
.../WebSessionReplicatedSelfTest.java | 28 +
.../WebSessionReplicatedV1SelfTest.java | 28 +
.../internal/websession/WebSessionSelfTest.java | 8 +-
.../WebSessionTransactionalSelfTest.java | 48 +
.../WebSessionTransactionalV1SelfTest.java | 28 +
.../websession/WebSessionV1SelfTest.java | 28 +
modules/yardstick/DEVNOTES-standalone.txt | 15 +
modules/yardstick/DEVNOTES.txt | 20 +
modules/yardstick/README.txt | 117 +-
.../config/benchmark-bin-identity.properties | 94 +
.../config/benchmark-client-mode.properties | 2 +
.../config/benchmark-multicast.properties | 15 +
.../config/benchmark-sample.properties | 62 +
.../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 | 73 +-
.../config/ignite-bin-multicast-config.xml | 86 +
modules/yardstick/pom-standalone.xml | 209 +
modules/yardstick/pom.xml | 16 +-
.../yardstick/IgniteAbstractBenchmark.java | 30 +
.../yardstick/IgniteBenchmarkArguments.java | 11 +
.../ignite/yardstick/IgniteBenchmarkUtils.java | 48 +-
.../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 +
.../IgniteLegacyBinaryIdentityGetBenchmark.java | 30 +
.../IgniteLegacyBinaryIdentityPutBenchmark.java | 30 +
...IgnitePutIfAbsentIndexedValue1Benchmark.java | 45 +
.../cache/IgnitePutRemoveBenchmark.java | 42 +
.../cache/IgnitePutRemoveTxBenchmark.java | 30 +
.../cache/IgnitePutValue8Benchmark.java | 42 +
.../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 | 25 +-
.../yardstick/cache/model/SampleValue.java | 2 +
.../io/IgniteIoTestAbstractBenchmark.java | 61 +
.../io/IgniteIoTestSendAllBenchmark.java | 32 +
.../io/IgniteIoTestSendRandomBenchmark.java | 35 +
modules/yarn/pom.xml | 2 +-
.../apache/ignite/yarn/ApplicationMaster.java | 4 +-
.../org/apache/ignite/yarn/IgniteProvider.java | 4 +-
modules/zookeeper/pom.xml | 2 +-
.../tcp/ipfinder/zk/ZookeeperIpFinderTest.java | 2 +-
parent/pom.xml | 24 +-
pom.xml | 115 +-
2869 files changed, 231662 insertions(+), 135166 deletions(-)
----------------------------------------------------------------------
[08/34] ignite git commit: IGNITE-2539 fix issue, move cleanup code
Posted by sb...@apache.org.
IGNITE-2539 fix issue, move cleanup code
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ccae9b06
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ccae9b06
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ccae9b06
Branch: refs/heads/ignite-3727-2
Commit: ccae9b0673ff169be94cfc393dfbd43f4867ffa5
Parents: 6485ae5
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Thu Sep 8 14:57:25 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Thu Sep 8 14:57:25 2016 +0300
----------------------------------------------------------------------
.../cache/GridCachePartitionExchangeManager.java | 16 ----------------
.../GridDhtPartitionsExchangeFuture.java | 18 +++++++++++++++++-
2 files changed, 17 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ccae9b06/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index e6ab046..4dfa179 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -957,22 +957,6 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
}
}
}
-
- ExchangeFutureSet exchFuts0 = exchFuts;
-
- if (exchFuts0 != null) {
- int skipped = 0;
-
- for (GridDhtPartitionsExchangeFuture fut : exchFuts0.values()) {
- if (exchFut.exchangeId().topologyVersion().compareTo(fut.exchangeId().topologyVersion()) < 0)
- continue;
-
- skipped++;
-
- if (skipped > 10)
- fut.cleanUp();
- }
- }
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/ccae9b06/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index 80b3768..39af156 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -1110,9 +1110,25 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
return true;
}
+ cleanUpExchFtr();
+
return dummy;
}
+ private void cleanUpExchFtr() {
+ int skipped = 0;
+
+ for (GridDhtPartitionsExchangeFuture fut : cctx.exchange().exchangeFutures()) {
+ if (exchId.topologyVersion().compareTo(fut.exchangeId().topologyVersion()) < 0)
+ continue;
+
+ skipped++;
+
+ if (skipped > 10)
+ fut.cleanUp();
+ }
+ }
+
/** {@inheritDoc} */
@Override public Throwable validateCache(GridCacheContext cctx) {
Throwable err = error();
@@ -1386,7 +1402,7 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
if (!crd.equals(node)) {
if (log.isDebugEnabled())
log.debug("Received full partition map from unexpected node [oldest=" + crd.id() +
- ", nodeId=" + node.id() + ']');
+ ", nodeId=" + node.id() + ']');
if (node.order() > crd.order())
fullMsgs.put(node, msg);
[20/34] ignite git commit: IGNITE-3727 fix notes from jira.
Posted by sb...@apache.org.
IGNITE-3727 fix notes from jira.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/14cb9f5d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/14cb9f5d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/14cb9f5d
Branch: refs/heads/ignite-3727-2
Commit: 14cb9f5d3ea788f3cf4a96fe77c346c192173c5c
Parents: e4b44a8
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Tue Sep 13 12:57:59 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Tue Sep 13 12:57:59 2016 +0300
----------------------------------------------------------------------
.../messaging/IgniteMessagingSendAsyncTest.java | 81 ++++++++------------
.../ignite/testsuites/IgniteBasicTestSuite.java | 2 +
2 files changed, 32 insertions(+), 51 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/14cb9f5d/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
index 0187579..d98dedf 100644
--- a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
@@ -19,10 +19,12 @@ package org.apache.ignite.messaging;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteMessaging;
+import org.apache.ignite.lang.IgniteBiInClosure;
import org.apache.ignite.lang.IgniteBiPredicate;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.junit.Assert;
+import java.io.Serializable;
import java.util.UUID;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicReference;
@@ -30,28 +32,16 @@ import java.util.concurrent.atomic.AtomicReference;
/**
*
*/
-public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
- /**
- * Ignite instance for test.
- */
- private Ignite ignite1;
-
- private Ignite ignite2;
-
+public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest implements Serializable {
/**
* Topic name.
*/
private final String TOPIC = "topic";
/**
- * {@inheritDoc}
+ * Message string.
*/
- @Override protected void beforeTest() throws Exception {
- super.beforeTest();
-
- ignite1 = startGrid(1);
- ignite2 = startGrid(2);
- }
+ private final String msgStr = "message";
/**
* {@inheritDoc}
@@ -66,29 +56,26 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
* Test for check, that if use default mode, local listeners execute
* in the same thread. 1 node in topology.
*/
- public void testSendDefaultMode() throws InterruptedException {
- stopGrid(2);
-
- final String msgStr = "message";
+ public void testSendDefaultMode() throws Exception {
+ Ignite ignite1 = startGrid(1);
- send(ignite1.message(), msgStr, new ProcedureApply() {
+ send(ignite1.message(), msgStr, new IgniteBiInClosure<String, Thread> () {
@Override public void apply(String msg, Thread thread) {
Assert.assertEquals(Thread.currentThread(), thread);
Assert.assertEquals(msgStr, msg);
}
});
+
}
/**
* Test for check, that if use async mode, local listeners execute
* in another thread(through pool). 1 node in topology.
*/
- public void testSendAsyncMode() throws InterruptedException {
- stopGrid(2);
-
- final String msgStr = "message";
+ public void testSendAsyncMode() throws Exception {
+ Ignite ignite1 = startGrid(1);
- send(ignite1.message().withAsync(), msgStr, new ProcedureApply() {
+ send(ignite1.message().withAsync(), msgStr, new IgniteBiInClosure<String, Thread> () {
@Override public void apply(String msg, Thread thread) {
Assert.assertTrue(!Thread.currentThread().equals(thread));
Assert.assertEquals(msgStr, msg);
@@ -101,10 +88,11 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
* in the same thread. 2 node in topology.
*/
public void testSendDefaultMode2Node() throws Exception {
- final String msgStr = "message";
+ Ignite ignite1 = startGrid(1);
+ Ignite ignite2 = startGrid(2);
- sendWith2Node(ignite1.message(), msgStr, new ProcedureApply() {
- @Override public void apply(String msg, Thread thread) {
+ sendWith2Node(ignite2, ignite1.message(), msgStr, new IgniteBiInClosure<String, Thread> () {
+ @Override public void apply(String msg, Thread thread) {
Assert.assertEquals(Thread.currentThread(), thread);
Assert.assertEquals(msgStr, msg);
}
@@ -116,10 +104,11 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
* in another thread(through pool). 2 node in topology.
*/
public void testSendAsyncMode2Node() throws Exception {
- final String msgStr = "message";
+ Ignite ignite1 = startGrid(1);
+ Ignite ignite2 = startGrid(2);
- sendWith2Node(ignite1.message().withAsync(), msgStr, new ProcedureApply() {
- @Override public void apply(String msg, Thread thread) {
+ sendWith2Node(ignite2, ignite1.message().withAsync(), msgStr, new IgniteBiInClosure<String, Thread> () {
+ @Override public void apply(String msg, Thread thread) {
Assert.assertTrue(!Thread.currentThread().equals(thread));
Assert.assertEquals(msgStr, msg);
}
@@ -131,10 +120,11 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
* @param msgStr Message string.
* @param cls Callback for compare result.
*/
- private void sendWith2Node(
- final IgniteMessaging igniteMsg,
- final String msgStr,
- final ProcedureApply cls
+ public void sendWith2Node(
+ final Ignite ignite2,
+ final IgniteMessaging igniteMsg,
+ final String msgStr,
+ final IgniteBiInClosure<String,Thread> cls
) throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
@@ -142,7 +132,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
@Override public boolean apply(UUID uuid, String msg) {
Assert.assertEquals(msgStr, msg);
latch.countDown();
- return false;
+ return true;
}
});
@@ -157,9 +147,9 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
* @param cls Callback for compare result.
*/
private void send(
- IgniteMessaging igniteMsg,
- String msgStr,
- ProcedureApply cls
+ final IgniteMessaging igniteMsg,
+ final String msgStr,
+ final IgniteBiInClosure<String,Thread> cls
) throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(1);
@@ -171,7 +161,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
thread.set(Thread.currentThread());
val.set(msgStr);
latch.countDown();
- return false;
+ return true;
}
});
@@ -181,15 +171,4 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
cls.apply(val.get(), thread.get());
}
-
- /**
- * Only for this test procedure.
- */
- private interface ProcedureApply {
- /**
- * @param val Value.
- * @param thread Thread.
- */
- void apply(String val, Thread thread);
- }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/14cb9f5d/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
index 2717b06..3eb7e5f 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
@@ -53,6 +53,7 @@ import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.marshaller.DynamicProxySerializationMultiJvmSelfTest;
import org.apache.ignite.messaging.GridMessagingNoPeerClassLoadingSelfTest;
import org.apache.ignite.messaging.GridMessagingSelfTest;
+import org.apache.ignite.messaging.IgniteMessagingSendAsyncTest;
import org.apache.ignite.messaging.IgniteMessagingWithClientTest;
import org.apache.ignite.spi.GridSpiLocalHostInjectionTest;
import org.apache.ignite.startup.properties.NotStringSystemPropertyTest;
@@ -97,6 +98,7 @@ public class IgniteBasicTestSuite extends TestSuite {
suite.addTest(new TestSuite(GridSelfTest.class));
suite.addTest(new TestSuite(ClusterGroupHostsSelfTest.class));
suite.addTest(new TestSuite(IgniteMessagingWithClientTest.class));
+ suite.addTest(new TestSuite(IgniteMessagingSendAsyncTest.class));
GridTestUtils.addTestIfNeeded(suite, ClusterGroupSelfTest.class, ignoredTests);
GridTestUtils.addTestIfNeeded(suite, GridMessagingSelfTest.class, ignoredTests);
[09/34] ignite git commit: IGNITE-3727 send message,
local listeners will execute through thread pool
Posted by sb...@apache.org.
IGNITE-3727 send message, local listeners will execute through thread pool
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/7e604242
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/7e604242
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/7e604242
Branch: refs/heads/ignite-3727-2
Commit: 7e6042420b804fffaed771767ba1f00e8bb5413d
Parents: ccae9b0
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Thu Sep 8 15:42:35 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Thu Sep 8 15:42:35 2016 +0300
----------------------------------------------------------------------
.../managers/communication/GridIoManager.java | 23 ++++++++++----------
1 file changed, 12 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/7e604242/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index 3fdda30..9d40bf9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@ -665,8 +665,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
case UTILITY_CACHE_POOL:
case MARSH_CACHE_POOL:
case IDX_POOL:
- case IGFS_POOL:
- {
+ case IGFS_POOL: {
if (msg.isOrdered())
processOrderedMessage(nodeId, msg, plc, msgC);
else
@@ -831,7 +830,8 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
finally {
threadProcessingMessage(false);
- msgC.run();
+ if (msgC != null)
+ msgC.run();
}
}
};
@@ -1290,7 +1290,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
if (ordered)
processOrderedMessage(locNodeId, ioMsg, plc, null);
else
- processRegularMessage0(ioMsg, locNodeId);
+ processRegularMessage(locNodeId, ioMsg, plc, null);
if (ackC != null)
ackC.apply(null);
@@ -1540,7 +1540,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
send(node, topic, (byte)-1, msg, plc, true, timeout, skipOnTimeout, ackC);
}
- /**
+ /**
* Sends a peer deployable user message.
*
* @param nodes Destination nodes.
@@ -1775,7 +1775,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
GridMessageListener lsnrs;
- for (;;) {
+ for (; ; ) {
lsnrs = listenerPutIfAbsent0(topic, lsnr);
if (lsnrs == null) {
@@ -1888,7 +1888,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
msgSets = map.values();
}
else {
- for (;;) {
+ for (; ; ) {
GridMessageListener lsnrs = listenerGet0(topic);
// If removing listener before subscription happened.
@@ -1952,8 +1952,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
if (rmv && log.isDebugEnabled())
log.debug("Removed message listener [topic=" + topic + ", lsnr=" + lsnr + ']');
- if (lsnr instanceof ArrayListener)
- {
+ if (lsnr instanceof ArrayListener) {
for (GridMessageListener childLsnr : ((ArrayListener)lsnr).arr)
closeListener(childLsnr);
}
@@ -1965,6 +1964,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
/**
* Closes a listener, if applicable.
+ *
* @param lsnr Listener.
*/
private void closeListener(GridMessageListener lsnr) {
@@ -2124,7 +2124,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
/**
* @param l Listener.
* @return {@code true} if listener was added. Add can fail if this instance is empty and is about to be removed
- * from map.
+ * from map.
*/
synchronized boolean add(GridMessageListener l) {
GridMessageListener[] arr0 = arr;
@@ -2166,7 +2166,8 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
}
/** {@inheritDoc} */
- @SuppressWarnings({"SynchronizationOnLocalVariableOrMethodParameter", "ConstantConditions",
+ @SuppressWarnings({
+ "SynchronizationOnLocalVariableOrMethodParameter", "ConstantConditions",
"OverlyStrongTypeCast"})
@Override public void onMessage(UUID nodeId, Object msg) {
if (!(msg instanceof GridIoUserMessage)) {
[04/34] ignite git commit: IGNITE-3727: update javadoc
Posted by sb...@apache.org.
IGNITE-3727: update javadoc
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/cf4cd05f
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/cf4cd05f
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/cf4cd05f
Branch: refs/heads/ignite-3727-2
Commit: cf4cd05f9abdbeae096c6eb2d364dd140b06bbdc
Parents: 1f31fdb
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Mon Sep 5 09:34:49 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Mon Sep 5 09:34:49 2016 +0300
----------------------------------------------------------------------
.../core/src/main/java/org/apache/ignite/IgniteMessaging.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/cf4cd05f/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java b/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
index a9dc043..23b29f3 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
@@ -77,7 +77,7 @@ public interface IgniteMessaging extends IgniteAsyncSupport {
/**
* Sends given message with specified topic to the nodes in the underlying cluster group.
- * When you invoke method, all listeners who were registered on the local node{@link #localListen} or {@link #remoteListen}, will be executing in the same thread.
+ * When you invoke method, all listeners who were registered on topic in the local node, will be executing in the same thread.
*
* @param topic Topic to send to, {@code null} for default topic.
* @param msg Message to send.
@@ -88,7 +88,7 @@ public interface IgniteMessaging extends IgniteAsyncSupport {
/**
* Sends given messages with the specified topic to the nodes in the underlying cluster group.
- * When you invoke method, all listeners who were registered on local node {@link #localListen} or {@link #remoteListen}, will be executing in the same thread.
+ * When you invoke method, all listeners who were registered on topic in the local node, will be executing in the same thread.
*
* @param topic Topic to send to, {@code null} for default topic.
* @param msgs Messages to send. Order of the sending is undefined. If the method produces
[25/34] ignite git commit: Revert "IGNITE-2539 issues reproduce test"
Posted by sb...@apache.org.
Revert "IGNITE-2539 issues reproduce test"
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a1f0db9d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a1f0db9d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a1f0db9d
Branch: refs/heads/ignite-3727-2
Commit: a1f0db9d5d3e63940f158cb30cfaf3d51f558630
Parents: 62f91ab
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Tue Sep 13 14:42:03 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Tue Sep 13 14:42:03 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/util/IgniteUtils.java | 41 ----
.../IssuesIGNITE2539ReproduceTest.java | 244 -------------------
2 files changed, 285 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a1f0db9d/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index c002177..93acc75 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -1254,47 +1254,6 @@ public abstract class IgniteUtils {
}
/**
- * Performs thread dump and return all available info.
- */
- public static GridStringBuilder dumpThreads() {
- ThreadMXBean mxBean = ManagementFactory.getThreadMXBean();
-
- GridStringBuilder sb = new GridStringBuilder("Thread dump at ")
- .a(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss z").format(new Date(U.currentTimeMillis()))).a(NL);
-
- final Set<Long> deadlockedThreadsIds = getDeadlockedThreadIds(mxBean);
-
- sb.a(NL);
-
- if (deadlockedThreadsIds.isEmpty())
- sb.a("No deadlocked threads detected.");
- else
- sb.a("Deadlocked threads detected (see thread dump below) " +
- "[deadlockedThreadsCnt=" + deadlockedThreadsIds.size() + ']');
-
- sb.a(NL);
-
- ThreadInfo[] threadInfos =
- mxBean.dumpAllThreads(mxBean.isObjectMonitorUsageSupported(), mxBean.isSynchronizerUsageSupported());
-
- for (ThreadInfo info : threadInfos) {
- printThreadInfo(info, sb, deadlockedThreadsIds);
-
- sb.a(NL);
-
- if (info.getLockedSynchronizers() != null && info.getLockedSynchronizers().length > 0) {
- printSynchronizersInfo(info.getLockedSynchronizers(), sb);
-
- sb.a(NL);
- }
- }
-
- sb.a(NL);
-
- return sb;
- }
-
- /**
* Get deadlocks from the thread bean.
* @param mxBean the bean
* @return the set of deadlocked threads (may be empty Set, but never null).
http://git-wip-us.apache.org/repos/asf/ignite/blob/a1f0db9d/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java b/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java
deleted file mode 100644
index dc120fb..0000000
--- a/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.cache.affinity.bugreproduce;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cache.*;
-import org.apache.ignite.cache.affinity.*;
-import org.apache.ignite.cache.affinity.rendezvous.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.internal.util.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.spi.discovery.tcp.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.apache.ignite.testframework.*;
-import org.apache.ignite.testframework.junits.common.*;
-
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-/**
- * Created by dgovorukhin on 01.09.2016.
- */
-public class IssuesIGNITE2539ReproduceTest extends GridCommonAbstractTest {
- /** */
- protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
-
- /** */
- private static final int ITERATIONS = 10;
-
- /** partitioned cache name. */
- private static final String CACHE_NAME_DHT_PARTITIONED = "cacheP";
-
- /** replicated cache name. */
- private static final String CACHE_NAME_DHT_REPLICATED = "cacheR";
-
- /** Ignite. */
- private static Ignite ignite1;
-
- /** Ignite. */
- private static Ignite ignite2;
-
- /** Ignite. */
- private static Ignite ignite3;
-
- private static final AtomicReference<Throwable> exc = new AtomicReference<>();
-
- private static final AtomicReference<GridStringBuilder> dump = new AtomicReference<>();
-
- private static final AtomicReference<Thread> thr = new AtomicReference<>();
-
- /**
- * @return Affinity function to test.
- */
- private AffinityFunction affinityFunction() {
- return new RendezvousAffinityFunction();
- }
-
- /** {@inheritDoc} */
- @Override protected void beforeTestsStarted() throws Exception {
- ignite1 = startGrid(0);
- ignite2 = startGrid(1);
- ignite3 = startGrid(2);
- }
-
- /** {@inheritDoc} */
- @Override protected void afterTestsStopped() throws Exception {
- stopAllGrids();
- }
-
- /** {@inheritDoc} */
- @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
- IgniteConfiguration iCfg = super.getConfiguration(gridName);
-
- ((TcpDiscoverySpi)iCfg.getDiscoverySpi()).setIpFinder(ipFinder);
- iCfg.setRebalanceThreadPoolSize(2);
-
- return iCfg;
- }
-
- /**
- *
- */
- public void testCacheStopping() throws Exception {
-
- final int delta = 5;
-
- for (Thread worker : getExchangeWorkerThread()) {
- worker.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
- @Override public void uncaughtException(Thread t, Throwable e) {
- dump.compareAndSet(null, U.dumpThreads());
- exc.compareAndSet(null, e);
- thr.compareAndSet(null, t);
- }
- });
- }
-
- GridTestUtils.runAsync(new Callable<Void>() {
- @Override public Void call() throws Exception {
-
- for (int start = 0; Ignition.allGrids().contains(ignite1); start += delta) {
- fillWithCache(ignite2, delta, start, affinityFunction());
-
- for (String victim : ignite2.cacheNames())
- ignite2.getOrCreateCache(victim).put(start, delta);
-
- for (String victim : ignite1.cacheNames())
- ignite1.destroyCache(victim);
- }
- return null;
- }
- }, "CacheSerialKiller");
-
- for (int i = delta; i < ITERATIONS + delta; i++)
- startGrid(i);
-
- U.sleep(500);
-
- for (int i = delta; i < ITERATIONS + delta; i++)
- stopGrid(i);
-
- if (exc.get() != null) {
- log.info(thr.get().getName());
-
- Throwable e = exc.get();
- log.error(e.getMessage(), e);
-
- log.info(dump.toString());
-
- exc.set(null);
- dump.set(null);
- thr.set(null);
-
- fail("see all log");
- }
- }
-
- /**
- *
- */
- public void testCacheStopping2() throws Exception {
-
- final int delta = 5;
-
- int itr = 20;
-
- for (int j = 0; j < itr; j++) {
-
- final AtomicReference<Throwable> exc = new AtomicReference<>();
-
- final AtomicBoolean asyncRun = new AtomicBoolean(true);
-
- for (Thread worker : getExchangeWorkerThread()) {
- worker.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
- @Override public void uncaughtException(Thread t, Throwable e) {
- exc.set(e);
- }
- });
- }
-
- Thread thread = new Thread(new Runnable() {
- @Override public void run() {
- for (int start = 0; asyncRun.get(); start += delta) {
- fillWithCache(ignite2, delta, start, affinityFunction());
-
- for (String victim : ignite2.cacheNames())
- ignite2.getOrCreateCache(victim).put(start, delta);
-
- for (String victim : ignite1.cacheNames())
- ignite1.destroyCache(victim);
- }
- }
- });
- thread.start();
-
- for (int i = delta; i < ITERATIONS + delta; i++)
- startGrid(i);
-
- U.sleep(500);
-
- for (int i = delta; i < ITERATIONS + delta; i++)
- stopGrid(i);
-
- asyncRun.set(false);
-
- thread.join();
-
- if (exc.get() != null)
- fail(exc.get().getMessage());
-
- }
- }
-
- /**
- *
- */
- private Iterable<Thread> getExchangeWorkerThread() {
- Collection<Thread> exhcWorkers = new ArrayList<>();
- for (Thread t : Thread.getAllStackTraces().keySet()) {
- if (t.getName().contains("exchange-worker"))
- exhcWorkers.add(t);
- }
- return exhcWorkers;
- }
-
- /** Put 2 * {@code iterations} caches inside ignite. */
- private static void fillWithCache(Ignite ignite, int iterations, int start, AffinityFunction affinityFunction) {
- for (int i = start; i < iterations + start; i++) {
- CacheConfiguration<Integer, Integer> cachePCfg = new CacheConfiguration<>();
-
- cachePCfg.setName(CACHE_NAME_DHT_PARTITIONED + i);
- cachePCfg.setCacheMode(CacheMode.PARTITIONED);
- cachePCfg.setBackups(1);
- cachePCfg.setAffinity(affinityFunction);
-
- ignite.getOrCreateCache(cachePCfg);
-
- CacheConfiguration<Integer, Integer> cacheRCfg = new CacheConfiguration<>();
-
- cacheRCfg.setName(CACHE_NAME_DHT_REPLICATED + i);
- cacheRCfg.setCacheMode(CacheMode.REPLICATED);
- cachePCfg.setBackups(0);
- cachePCfg.setAffinity(affinityFunction);
-
- ignite.getOrCreateCache(cacheRCfg);
- }
- }
-}
[16/34] ignite git commit: IGNITE-3727 test send sync/async and small
fix in code
Posted by sb...@apache.org.
IGNITE-3727 test send sync/async and small fix in code
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8b416e8b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8b416e8b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8b416e8b
Branch: refs/heads/ignite-3727-2
Commit: 8b416e8b2b3ea8f0a56eb9e41098df0b96a59cc9
Parents: e68a4fa
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Fri Sep 9 12:02:19 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Fri Sep 9 12:02:19 2016 +0300
----------------------------------------------------------------------
.../managers/communication/GridIoManager.java | 4 +-
.../messaging/IgniteMessagingSendAsyncTest.java | 140 +++++++++++++++++++
2 files changed, 142 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/8b416e8b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index 1ba649e..6f5421e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@ -1375,7 +1375,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
*/
public void send(ClusterNode node, GridTopic topic, Message msg, byte plc, boolean async)
throws IgniteCheckedException {
- send(node, topic, topic.ordinal(), msg, plc, false, 0, false, null, false);
+ send(node, topic, topic.ordinal(), msg, plc, false, 0, false, null, async);
}
/**
@@ -1614,7 +1614,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
if (ordered)
sendOrderedMessage(nodes, TOPIC_COMM_USER, ioMsg, PUBLIC_POOL, timeout, true);
else if (loc)
- send(F.first(nodes), TOPIC_COMM_USER, ioMsg, PUBLIC_POOL);
+ send(F.first(nodes), TOPIC_COMM_USER, ioMsg, PUBLIC_POOL, async);
else {
ClusterNode locNode = F.find(nodes, null, F.localNode(locNodeId));
http://git-wip-us.apache.org/repos/asf/ignite/blob/8b416e8b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
new file mode 100644
index 0000000..6f1188e
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
@@ -0,0 +1,140 @@
+/*
+* 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.messaging;
+
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteMessaging;
+import org.apache.ignite.lang.IgniteBiPredicate;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.junit.Assert;
+
+import java.util.UUID;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * Created by dgovorukhin on 09.09.2016.
+ */
+public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
+ /**
+ * Ignite instance for test.
+ */
+ private Ignite ignite;
+
+ /**
+ * Topic name.
+ */
+ private final String TOPIC = "topic";
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void beforeTest() throws Exception {
+ super.beforeTest();
+
+ ignite = startGrid(0);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void afterTest() throws Exception {
+ super.afterTest();
+
+ stopGrid(0);
+ }
+
+ /**
+ * Test for check, that if use default mode, local listeners execute
+ * in the same thread.
+ */
+ public void testSendDefaultMode() throws InterruptedException {
+ final String msgStr = "message";
+
+ send(ignite.message(), msgStr, new ProcedureApply() {
+ @Override
+ public void apply(String msg, Thread thread) {
+ Assert.assertEquals(Thread.currentThread(), thread);
+ Assert.assertEquals(msgStr, msg);
+ }
+ });
+
+ }
+
+ /**
+ * Test for check, that if use async mode, local listeners execute
+ * in another thread(through pool).
+ */
+ public void testSendAsyncMode() throws InterruptedException {
+ final String msgStr = "message";
+
+ send(ignite.message().withAsync(), msgStr, new ProcedureApply() {
+ @Override
+ public void apply(String msg, Thread thread) {
+ Assert.assertTrue(!Thread.currentThread().equals(thread));
+ Assert.assertEquals(msgStr, msg);
+ }
+ });
+ }
+
+ /**
+ * @param igniteMsg Ignite message.
+ * @param msgStr Message string.
+ * @param cls callback for compare result.
+ */
+ private void send(
+ IgniteMessaging igniteMsg,
+ String msgStr,
+ ProcedureApply cls
+ ) throws InterruptedException {
+ final CountDownLatch latch = new CountDownLatch(1);
+
+ final AtomicReference<Thread> thread = new AtomicReference<>();
+ final AtomicReference<String> val = new AtomicReference<>();
+
+ igniteMsg.localListen(TOPIC, new IgniteBiPredicate<UUID, String>() {
+ @Override
+ public boolean apply(UUID uuid, String msgStr) {
+ thread.set(Thread.currentThread());
+ val.set(msgStr);
+ latch.countDown();
+ return false;
+ }
+ });
+
+ igniteMsg.send(TOPIC, msgStr);
+
+ latch.await();
+
+ cls.apply(val.get(), thread.get());
+ }
+
+ /**
+ * only for this test procedure
+ */
+ private interface ProcedureApply {
+
+ /**
+ * @param val Value.
+ * @param thread Thread.
+ */
+ void apply(String val, Thread thread);
+ }
+
+}
[11/34] ignite git commit: IGNITE-3727 supported sync/async execution
for local listener
Posted by sb...@apache.org.
IGNITE-3727 supported sync/async execution for local listener
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a6980abb
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a6980abb
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a6980abb
Branch: refs/heads/ignite-3727-2
Commit: a6980abbf5d8ff80ed8a83f479729ef418dfa7c9
Parents: ecd3d93
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Thu Sep 8 20:02:43 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Thu Sep 8 20:02:43 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/IgniteMessagingImpl.java | 6 +-
.../internal/managers/GridManagerAdapter.java | 2 +-
.../managers/communication/GridIoManager.java | 40 +++--
.../communication/GridIoManagerSelfTest.java | 6 +-
...niteMessagingConfigVariationFullApiTest.java | 177 +++++++++++++++----
5 files changed, 175 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a6980abb/modules/core/src/main/java/org/apache/ignite/internal/IgniteMessagingImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteMessagingImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteMessagingImpl.java
index 2800777..e586aa2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteMessagingImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteMessagingImpl.java
@@ -86,7 +86,7 @@ public class IgniteMessagingImpl extends AsyncSupportAdapter<IgniteMessaging>
if (snapshot.isEmpty())
throw U.emptyTopologyException();
- ctx.io().sendUserMessage(snapshot, msg, topic, false, 0);
+ ctx.io().sendUserMessage(snapshot, msg, topic, false, 0, isAsync());
}
catch (IgniteCheckedException e) {
throw U.convertException(e);
@@ -111,7 +111,7 @@ public class IgniteMessagingImpl extends AsyncSupportAdapter<IgniteMessaging>
for (Object msg : msgs) {
A.notNull(msg, "msg");
- ctx.io().sendUserMessage(snapshot, msg, topic, false, 0);
+ ctx.io().sendUserMessage(snapshot, msg, topic, false, 0, isAsync());
}
}
catch (IgniteCheckedException e) {
@@ -137,7 +137,7 @@ public class IgniteMessagingImpl extends AsyncSupportAdapter<IgniteMessaging>
if (timeout == 0)
timeout = ctx.config().getNetworkTimeout();
- ctx.io().sendUserMessage(snapshot, msg, topic, true, timeout);
+ ctx.io().sendUserMessage(snapshot, msg, topic, true, timeout, isAsync());
}
catch (IgniteCheckedException e) {
throw U.convertException(e);
http://git-wip-us.apache.org/repos/asf/ignite/blob/a6980abb/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
index 4fe8ca8..43510f6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
@@ -389,7 +389,7 @@ public abstract class GridManagerAdapter<T extends IgniteSpi> implements GridMan
if (msg instanceof Message)
ctx.io().send(node, topic, (Message)msg, SYSTEM_POOL);
else
- ctx.io().sendUserMessage(Collections.singletonList(node), msg, topic, false, 0);
+ ctx.io().sendUserMessage(Collections.singletonList(node), msg, topic, false, 0, false);
}
catch (IgniteCheckedException e) {
throw unwrapException(e);
http://git-wip-us.apache.org/repos/asf/ignite/blob/a6980abb/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index 9d40bf9..124fba5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@ -1271,7 +1271,8 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
boolean ordered,
long timeout,
boolean skipOnTimeout,
- IgniteInClosure<IgniteException> ackC
+ IgniteInClosure<IgniteException> ackC,
+ boolean async
) throws IgniteCheckedException {
assert node != null;
assert topic != null;
@@ -1289,8 +1290,10 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
if (ordered)
processOrderedMessage(locNodeId, ioMsg, plc, null);
- else
+ else if (async)
processRegularMessage(locNodeId, ioMsg, plc, null);
+ else
+ processRegularMessage0(ioMsg, locNodeId);
if (ackC != null)
ackC.apply(null);
@@ -1346,7 +1349,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
if (node == null)
throw new IgniteCheckedException("Failed to send message to node (has node left grid?): " + nodeId);
- send(node, topic, topic.ordinal(), msg, plc, false, 0, false, null);
+ send(node, topic, topic.ordinal(), msg, plc, false, 0, false, null, false);
}
/**
@@ -1358,7 +1361,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
*/
public void send(ClusterNode node, Object topic, Message msg, byte plc)
throws IgniteCheckedException {
- send(node, topic, -1, msg, plc, false, 0, false, null);
+ send(node, topic, -1, msg, plc, false, 0, false, null, false);
}
/**
@@ -1368,9 +1371,9 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
* @param plc Type of processing.
* @throws IgniteCheckedException Thrown in case of any errors.
*/
- public void send(ClusterNode node, GridTopic topic, Message msg, byte plc)
+ public void send(ClusterNode node, GridTopic topic, Message msg, byte plc, boolean async)
throws IgniteCheckedException {
- send(node, topic, topic.ordinal(), msg, plc, false, 0, false, null);
+ send(node, topic, topic.ordinal(), msg, plc, false, 0, false, null, false);
}
/**
@@ -1383,7 +1386,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
*/
public void send(ClusterNode node, Object topic, int topicOrd, Message msg, byte plc)
throws IgniteCheckedException {
- send(node, topic, topicOrd, msg, plc, false, 0, false, null);
+ send(node, topic, topicOrd, msg, plc, false, 0, false, null, false);
}
/**
@@ -1405,7 +1408,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
) throws IgniteCheckedException {
assert timeout > 0 || skipOnTimeout;
- send(node, topic, (byte)-1, msg, plc, true, timeout, skipOnTimeout, null);
+ send(node, topic, (byte)-1, msg, plc, true, timeout, skipOnTimeout, null, false);
}
/**
@@ -1432,7 +1435,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
if (node == null)
throw new IgniteCheckedException("Failed to send message to node (has node left grid?): " + nodeId);
- send(node, topic, (byte)-1, msg, plc, true, timeout, skipOnTimeout, null);
+ send(node, topic, (byte)-1, msg, plc, true, timeout, skipOnTimeout, null, false);
}
/**
@@ -1445,7 +1448,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
*/
public void send(ClusterNode node, GridTopic topic, Message msg, byte plc,
IgniteInClosure<IgniteException> ackC) throws IgniteCheckedException {
- send(node, topic, topic.ordinal(), msg, plc, false, 0, false, ackC);
+ send(node, topic, topic.ordinal(), msg, plc, false, 0, false, ackC, false);
}
/**
@@ -1481,7 +1484,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
*/
public void send(ClusterNode node, Object topic, Message msg, byte plc, IgniteInClosure<IgniteException> ackC)
throws IgniteCheckedException {
- send(node, topic, -1, msg, plc, false, 0, false, ackC);
+ send(node, topic, -1, msg, plc, false, 0, false, ackC, false);
}
/**
@@ -1537,7 +1540,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
) throws IgniteCheckedException {
assert timeout > 0 || skipOnTimeout;
- send(node, topic, (byte)-1, msg, plc, true, timeout, skipOnTimeout, ackC);
+ send(node, topic, (byte)-1, msg, plc, true, timeout, skipOnTimeout, ackC, false);
}
/**
@@ -1548,7 +1551,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
* @throws IgniteCheckedException Thrown in case of any errors.
*/
public void sendUserMessage(Collection<? extends ClusterNode> nodes, Object msg) throws IgniteCheckedException {
- sendUserMessage(nodes, msg, null, false, 0);
+ sendUserMessage(nodes, msg, null, false, 0, false);
}
/**
@@ -1563,7 +1566,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
*/
@SuppressWarnings("ConstantConditions")
public void sendUserMessage(Collection<? extends ClusterNode> nodes, Object msg,
- @Nullable Object topic, boolean ordered, long timeout) throws IgniteCheckedException {
+ @Nullable Object topic, boolean ordered, long timeout, boolean async) throws IgniteCheckedException {
boolean loc = nodes.size() == 1 && F.first(nodes).id().equals(locNodeId);
byte[] serMsg = null;
@@ -1617,10 +1620,11 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
if (!rmtNodes.isEmpty())
send(rmtNodes, TOPIC_COMM_USER, ioMsg, PUBLIC_POOL);
- // Will call local listeners in current thread synchronously, so must go the last
+ // Will call local listeners in current thread synchronously or through pool,
+ // depending async flag, so must go the last
// to allow remote nodes execute the requested operation in parallel.
if (locNode != null)
- send(locNode, TOPIC_COMM_USER, ioMsg, PUBLIC_POOL);
+ send(locNode, TOPIC_COMM_USER, ioMsg, PUBLIC_POOL, async);
}
}
@@ -1687,7 +1691,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
if (node == null)
throw new IgniteCheckedException("Failed to send message to node (has node left grid?): " + nodeId);
- send(node, topic, (byte)-1, msg, plc, true, timeout, skipOnTimeout, ackC);
+ send(node, topic, (byte)-1, msg, plc, true, timeout, skipOnTimeout, ackC, false);
}
/**
@@ -1724,7 +1728,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
// messages to one node vs. many.
if (!nodes.isEmpty()) {
for (ClusterNode node : nodes)
- send(node, topic, topicOrd, msg, plc, ordered, timeout, skipOnTimeout, null);
+ send(node, topic, topicOrd, msg, plc, ordered, timeout, skipOnTimeout, null, false);
}
else if (log.isDebugEnabled())
log.debug("Failed to send message to empty nodes collection [topic=" + topic + ", msg=" +
http://git-wip-us.apache.org/repos/asf/ignite/blob/a6980abb/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerSelfTest.java
index c2cfa76..f5499d3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerSelfTest.java
@@ -145,7 +145,7 @@ public class GridIoManagerSelfTest extends GridCommonAbstractTest {
GridIoManager ioMgr = spy(new TestGridIoManager(ctx));
try {
- ioMgr.sendUserMessage(F.asList(locNode, rmtNode), msg, GridTopic.TOPIC_IGFS, false, 123L);
+ ioMgr.sendUserMessage(F.asList(locNode, rmtNode), msg, GridTopic.TOPIC_IGFS, false, 123L, false);
}
catch (IgniteCheckedException ignored) {
// No-op. We are using mocks so real sending is impossible.
@@ -169,7 +169,7 @@ public class GridIoManagerSelfTest extends GridCommonAbstractTest {
GridIoManager ioMgr = spy(new TestGridIoManager(ctx));
try {
- ioMgr.sendUserMessage(F.asList(locNode, rmtNode), msg, GridTopic.TOPIC_IGFS, true, 123L);
+ ioMgr.sendUserMessage(F.asList(locNode, rmtNode), msg, GridTopic.TOPIC_IGFS, true, 123L, false);
}
catch (Exception ignored) {
// No-op. We are using mocks so real sending is impossible.
@@ -196,7 +196,7 @@ public class GridIoManagerSelfTest extends GridCommonAbstractTest {
}
/** {@inheritDoc} */
- @Override public void send(ClusterNode node, GridTopic topic, Message msg, byte plc)
+ @Override public void send(ClusterNode node, GridTopic topic, Message msg, byte plc, boolean async)
throws IgniteCheckedException {
// No-op.
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/a6980abb/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java
index 31b0663..fe85970 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java
@@ -58,7 +58,18 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
public void testLocalServer() throws Exception {
runInAllDataModes(new TestRunnable() {
@Override public void run() throws Exception {
- localServerInternal();
+ localServerInternal(false);
+ }
+ });
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testLocalServerAsync() throws Exception {
+ runInAllDataModes(new TestRunnable() {
+ @Override public void run() throws Exception {
+ localServerInternal(true);
}
});
}
@@ -83,7 +94,21 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
runInAllDataModes(new TestRunnable() {
@Override public void run() throws Exception {
- serverClientMessage();
+ serverClientMessage(false);
+ }
+ });
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testServerClientMessageAsync() throws Exception {
+ if (!testsCfg.withClients())
+ return;
+
+ runInAllDataModes(new TestRunnable() {
+ @Override public void run() throws Exception {
+ serverClientMessage(true);
}
});
}
@@ -97,7 +122,21 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
runInAllDataModes(new TestRunnable() {
@Override public void run() throws Exception {
- clientClientMessage();
+ clientClientMessage(false);
+ }
+ });
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testClientClientMessageAsync() throws Exception {
+ if (!testsCfg.withClients())
+ return;
+
+ runInAllDataModes(new TestRunnable() {
+ @Override public void run() throws Exception {
+ clientClientMessage(false);
}
});
}
@@ -111,7 +150,21 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
runInAllDataModes(new TestRunnable() {
@Override public void run() throws Exception {
- clientServerMessage();
+ clientServerMessage(false);
+ }
+ });
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testClientServerMessageAsync() throws Exception {
+ if (!testsCfg.withClients())
+ return;
+
+ runInAllDataModes(new TestRunnable() {
+ @Override public void run() throws Exception {
+ clientServerMessage(true);
}
});
}
@@ -133,7 +186,18 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
public void testOrderedMessage() throws Exception {
runInAllDataModes(new TestRunnable() {
@Override public void run() throws Exception {
- orderedMessage();
+ orderedMessage(false);
+ }
+ });
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testOrderedMessageAsync() throws Exception {
+ runInAllDataModes(new TestRunnable() {
+ @Override public void run() throws Exception {
+ orderedMessage(true);
}
});
}
@@ -147,7 +211,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
runInAllDataModes(new TestRunnable() {
@Override public void run() throws Exception {
- clientServerOrderedMessage();
+ clientServerOrderedMessage(false);
}
});
}
@@ -155,13 +219,42 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
/**
* @throws Exception If failed.
*/
+ public void testClientServerOrderedMessageAsync() throws Exception {
+ if (!testsCfg.withClients())
+ return;
+
+ runInAllDataModes(new TestRunnable() {
+ @Override public void run() throws Exception {
+ clientServerOrderedMessage(true);
+ }
+ });
+ }
+
+
+ /**
+ * @throws Exception If failed.
+ */
public void testClientClientOrderedMessage() throws Exception {
if (!testsCfg.withClients())
return;
runInAllDataModes(new TestRunnable() {
@Override public void run() throws Exception {
- clientClientOrderedMessage();
+ clientClientOrderedMessage(true);
+ }
+ });
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testClientClientOrderedMessageAsync() throws Exception {
+ if (!testsCfg.withClients())
+ return;
+
+ runInAllDataModes(new TestRunnable() {
+ @Override public void run() throws Exception {
+ clientClientOrderedMessage(true);
}
});
}
@@ -175,7 +268,21 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
runInAllDataModes(new TestRunnable() {
@Override public void run() throws Exception {
- serverClientOrderedMessage();
+ serverClientOrderedMessage(false);
+ }
+ });
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testServerClientOrderedMessageAsync() throws Exception {
+ if (!testsCfg.withClients())
+ return;
+
+ runInAllDataModes(new TestRunnable() {
+ @Override public void run() throws Exception {
+ serverClientOrderedMessage(true);
}
});
}
@@ -184,7 +291,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
* Single server test.
* @throws Exception If failed.
*/
- private void localServerInternal() throws Exception {
+ private void localServerInternal(boolean async) throws Exception {
int messages = MSGS;
Ignite ignite = grid(SERVER_NODE_IDX);
@@ -197,7 +304,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
try {
for (int i = 0; i < messages; i++)
- sendMessage(ignite, grp, value(i));
+ sendMessage(ignite, grp, value(i), async);
assertTrue(LATCH.await(10, TimeUnit.SECONDS));
@@ -240,42 +347,43 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
* Server sends a message and client receives it.
* @throws Exception If failed.
*/
- private void serverClientMessage() throws Exception {
+ private void serverClientMessage(boolean async) throws Exception {
Ignite ignite = grid(SERVER_NODE_IDX);
ClusterGroup grp = ignite.cluster().forClients();
assert grp.nodes().size() > 0;
- registerListenerAndSendMessages(ignite, grp);
+ registerListenerAndSendMessages(ignite, grp, async);
}
/**
* Client sends a message and client receives it.
* @throws Exception If failed.
*/
- private void clientClientMessage() throws Exception {
+ private void clientClientMessage(boolean async) throws Exception {
Ignite ignite = grid(CLIENT_NODE_IDX);
ClusterGroup grp = ignite.cluster().forClients();
assert grp.nodes().size() > 0;
- registerListenerAndSendMessages(ignite, grp);
+ registerListenerAndSendMessages(ignite, grp, async);
}
/**
* Client sends a message and client receives it.
+ * @param async flag async mode
* @throws Exception If failed.
*/
- private void clientServerMessage() throws Exception {
+ private void clientServerMessage(boolean async) throws Exception {
Ignite ignite = grid(CLIENT_NODE_IDX);
ClusterGroup grp = ignite.cluster().forServers();
assert grp.nodes().size() > 0;
- registerListenerAndSendMessages(ignite, grp);
+ registerListenerAndSendMessages(ignite, grp, async);
}
/**
@@ -283,7 +391,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
* @param grp Cluster group.
* @throws Exception If fail.
*/
- private void registerListenerAndSendMessages(Ignite ignite, ClusterGroup grp) throws Exception {
+ private void registerListenerAndSendMessages(Ignite ignite, ClusterGroup grp, boolean async) throws Exception {
int messages = MSGS;
LATCH = new CountDownLatch(grp.nodes().size() * messages);
@@ -292,7 +400,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
try {
for (int i = 0; i < messages; i++)
- sendMessage(ignite, grp, value(i));
+ sendMessage(ignite, grp, value(i), async);
assertTrue(LATCH.await(10, TimeUnit.SECONDS));
@@ -338,56 +446,56 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
*
* @throws Exception If fail.
*/
- private void orderedMessage() throws Exception {
+ private void orderedMessage(boolean async) throws Exception {
Ignite ignite = grid(SERVER_NODE_IDX);
ClusterGroup grp = gridCount() > 1 ? ignite.cluster().forRemotes() : ignite.cluster().forLocal();
assert grp.nodes().size() > 0;
- registerListenerAndSendOrderedMessages(ignite, grp);
+ registerListenerAndSendOrderedMessages(ignite, grp, async);
}
/**
*
* @throws Exception If fail.
*/
- private void clientServerOrderedMessage() throws Exception {
+ private void clientServerOrderedMessage(boolean async) throws Exception {
Ignite ignite = grid(CLIENT_NODE_IDX);
ClusterGroup grp = ignite.cluster().forServers();
assert grp.nodes().size() > 0;
- registerListenerAndSendOrderedMessages(ignite, grp);
+ registerListenerAndSendOrderedMessages(ignite, grp, async);
}
/**
*
* @throws Exception If fail.
*/
- private void clientClientOrderedMessage() throws Exception {
+ private void clientClientOrderedMessage(boolean async) throws Exception {
Ignite ignite = grid(CLIENT_NODE_IDX);
ClusterGroup grp = ignite.cluster().forClients();
assert grp.nodes().size() > 0;
- registerListenerAndSendOrderedMessages(ignite, grp);
+ registerListenerAndSendOrderedMessages(ignite, grp, async);
}
/**
*
* @throws Exception If fail.
*/
- private void serverClientOrderedMessage() throws Exception {
+ private void serverClientOrderedMessage(boolean async) throws Exception {
Ignite ignite = grid(SERVER_NODE_IDX);
ClusterGroup grp = ignite.cluster().forClients();
assert grp.nodes().size() > 0;
- registerListenerAndSendOrderedMessages(ignite, grp);
+ registerListenerAndSendOrderedMessages(ignite, grp, async);
}
/**
@@ -395,7 +503,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
* @param grp Cluster group.
* @throws Exception If fail.
*/
- private void registerListenerAndSendOrderedMessages(Ignite ignite, ClusterGroup grp) throws Exception {
+ private void registerListenerAndSendOrderedMessages(Ignite ignite, ClusterGroup grp, boolean async) throws Exception {
int messages = MSGS;
LATCH = new CountDownLatch(grp.nodes().size() * messages);
@@ -403,8 +511,12 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
UUID opId = ignite.message(grp).remoteListen(MESSAGE_TOPIC, new OrderedMessageListener());
try {
- for (int i=0; i < messages; i++)
- ignite.message(grp).sendOrdered(MESSAGE_TOPIC, value(i), 2000);
+ for (int i=0; i < messages; i++){
+ if (async)
+ ignite.message(grp).withAsync().sendOrdered(MESSAGE_TOPIC, value(i), 2000);
+ else
+ ignite.message(grp).withAsync().sendOrdered(MESSAGE_TOPIC, value(i), 2000);
+ }
assertTrue(LATCH.await(10, TimeUnit.SECONDS));
@@ -420,8 +532,11 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
* @param grp Cluster group.
* @param msg Message.
*/
- private void sendMessage(Ignite nodeSnd, ClusterGroup grp, Object msg) {
- nodeSnd.message(grp).send(MESSAGE_TOPIC, msg);
+ private void sendMessage(Ignite nodeSnd, ClusterGroup grp, Object msg, boolean async) {
+ if (async)
+ nodeSnd.message(grp).withAsync().send(MESSAGE_TOPIC, msg);
+ else
+ nodeSnd.message(grp).send(MESSAGE_TOPIC, msg);
}
/**
[26/34] ignite git commit: IGNITE-3727 fix test
Posted by sb...@apache.org.
IGNITE-3727 fix test
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/60b030cd
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/60b030cd
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/60b030cd
Branch: refs/heads/ignite-3727-2
Commit: 60b030cdf27dfa6567630f3157e5e370a08834c1
Parents: a1f0db9
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Tue Sep 13 15:43:37 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Tue Sep 13 15:43:37 2016 +0300
----------------------------------------------------------------------
.../messaging/IgniteMessagingConfigVariationFullApiTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/60b030cd/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java
index fe85970..f66535a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java
@@ -515,7 +515,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
if (async)
ignite.message(grp).withAsync().sendOrdered(MESSAGE_TOPIC, value(i), 2000);
else
- ignite.message(grp).withAsync().sendOrdered(MESSAGE_TOPIC, value(i), 2000);
+ ignite.message(grp).sendOrdered(MESSAGE_TOPIC, value(i), 2000);
}
assertTrue(LATCH.await(10, TimeUnit.SECONDS));
[29/34] ignite git commit: ignite-3727 test fix
Posted by sb...@apache.org.
ignite-3727 test fix
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/af46faf5
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/af46faf5
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/af46faf5
Branch: refs/heads/ignite-3727-2
Commit: af46faf58957e55819dd0fe2664b753fa119975a
Parents: c9ed5c6
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Thu Sep 15 11:47:47 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Thu Sep 15 11:47:47 2016 +0300
----------------------------------------------------------------------
.../java/org/apache/ignite/messaging/GridMessagingSelfTest.java | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/af46faf5/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
index 07f9fe4..38e3064 100644
--- a/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
@@ -1086,6 +1086,8 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
Assert.assertTrue(starFut.isDone());
+ discoSpi.blockCustomEvent();
+
message(ignite1.cluster().forRemotes()).send(topic, "msg1");
GridTestUtils.waitForCondition(new PA() {
[30/34] ignite git commit: ignite-3727 fix method args
Posted by sb...@apache.org.
ignite-3727 fix method args
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ac58bb3b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ac58bb3b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ac58bb3b
Branch: refs/heads/ignite-3727-2
Commit: ac58bb3bcc21e055f8eb185b2c4d6dc664177b27
Parents: af46faf
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Thu Sep 15 16:54:20 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Thu Sep 15 16:54:20 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/hadoop/shuffle/HadoopShuffle.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ac58bb3b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffle.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffle.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffle.java
index 769bdc4..d1b9eaa 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffle.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffle.java
@@ -117,7 +117,7 @@ public class HadoopShuffle extends HadoopComponent {
private void send0(UUID nodeId, Object msg) throws IgniteCheckedException {
ClusterNode node = ctx.kernalContext().discovery().node(nodeId);
- ctx.kernalContext().io().sendUserMessage(F.asList(node), msg, GridTopic.TOPIC_HADOOP, false, 0);
+ ctx.kernalContext().io().sendUserMessage(F.asList(node), msg, GridTopic.TOPIC_HADOOP, false, 0, false);
}
/**
[28/34] ignite git commit: ignite-3727 added test for multi-thread
sendOrdered
Posted by sb...@apache.org.
ignite-3727 added test for multi-thread sendOrdered
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c9ed5c65
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c9ed5c65
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c9ed5c65
Branch: refs/heads/ignite-3727-2
Commit: c9ed5c6583e803110a34fc0126ae4e5af56331b1
Parents: de59444
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Wed Sep 14 12:58:20 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Wed Sep 14 12:58:20 2016 +0300
----------------------------------------------------------------------
.../messaging/IgniteMessagingSendAsyncTest.java | 191 ++++++++++++++++++-
1 file changed, 183 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/c9ed5c65/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
index 4cfff38..73baeba 100644
--- a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
@@ -18,16 +18,20 @@
package org.apache.ignite.messaging;
import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteMessaging;
import org.apache.ignite.lang.IgniteBiInClosure;
import org.apache.ignite.lang.IgniteBiPredicate;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.jsr166.ThreadLocalRandom8;
import org.junit.Assert;
import java.io.Serializable;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
+import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicReference;
@@ -45,6 +49,9 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
*/
private final String msgStr = "message";
+ /** Count threads for multi-thread test */
+ private final int threads = 10;
+
/**
* {@inheritDoc}
*/
@@ -183,6 +190,174 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
+ */
+ public void testSendOrderedDefaultModeMultiThreads() throws Exception {
+ Ignite ignite = startGrid(1);
+
+ sendOrderedMultiThreads(ignite.message());
+ }
+
+ /**
+ */
+ public void testSendOrderedAsyncModeMultiThreads() throws Exception {
+ Ignite ignite = startGrid(1);
+
+ sendOrderedMultiThreads(ignite.message().withAsync());
+ }
+
+ /**
+ */
+ public void testSendOrderedDefaultModeMultiThreadsWith2Node() throws Exception {
+ Ignite ignite1 = startGrid(1);
+ Ignite ignite2 = startGrid(2);
+
+ sendOrderedMultiThreadsWith2Node(ignite2, ignite1.message());
+ }
+
+ /**
+ */
+ public void testSendOrderedAsyncModeMultiThreadsWith2Node() throws Exception {
+ Ignite ignite1 = startGrid(1);
+ Ignite ignite2 = startGrid(2);
+
+ sendOrderedMultiThreadsWith2Node(ignite2, ignite1.message().withAsync());
+ }
+
+ /**
+ * @param ignite2 Ignite 2.
+ * @param ignMsg IgniteMessage.
+ */
+ private void sendOrderedMultiThreadsWith2Node(
+ final Ignite ignite2,
+ final IgniteMessaging ignMsg
+ ) throws InterruptedException {
+ final ConcurrentMap<String, List<String>> expMsg = Maps.newConcurrentMap();
+ final ConcurrentMap<String, List<String>> actlMsg = Maps.newConcurrentMap();
+
+ final List<String> msgs = orderedMsg();
+
+ sendOrderedMultiThreadsWith2Node(ignite2, ignMsg, expMsg, actlMsg, msgs);
+
+ }
+
+
+ /**
+ * @param ignMsg IgniteMessage.
+ */
+ private void sendOrderedMultiThreads(
+ final IgniteMessaging ignMsg
+ ) throws InterruptedException {
+ final ConcurrentMap<String, List<String>> expMsg = Maps.newConcurrentMap();
+ final ConcurrentMap<String, List<String>> actlMsg = Maps.newConcurrentMap();
+
+ final List<String> msgs = orderedMsg();
+
+ sendOrderedMultiThreads(ignMsg, expMsg, actlMsg, msgs);
+
+ }
+
+ /**
+ * @param ignite2 Ignite 2.
+ * @param ignMsg Ignite for send message.
+ * @param expMsg Expected messages map.
+ * @param actlMsg Actual message map.
+ * @param msgs List msgs.
+ */
+ private void sendOrderedMultiThreadsWith2Node(
+ final Ignite ignite2,
+ final IgniteMessaging ignMsg,
+ final ConcurrentMap<String, List<String>> expMsg,
+ final ConcurrentMap<String, List<String>> actlMsg,
+ final List<String> msgs
+ ) throws InterruptedException {
+ final CountDownLatch latch = new CountDownLatch(threads * msgs.size());
+
+ final ConcurrentMap<String, List<String>> actlMsgNode2 = Maps.newConcurrentMap();
+
+ ignite2.message().localListen(TOPIC, new IgniteBiPredicate<UUID, Message>() {
+ @Override public boolean apply(UUID uuid, Message msg) {
+ actlMsgNode2.putIfAbsent(msg.threadName, Lists.<String>newArrayList());
+ actlMsgNode2.get(msg.threadName).add(msg.message);
+ latch.countDown();
+ return true;
+ }
+ });
+
+ sendOrderedMultiThreads(ignMsg, expMsg, actlMsg, msgs);
+
+ latch.await();
+
+ assertEquals(expMsg.size(), actlMsgNode2.size());
+
+ for (Map.Entry<String, List<String>> entry : expMsg.entrySet())
+ assertTrue(actlMsgNode2.get(entry.getKey()).equals(entry.getValue()));
+ }
+
+ /**
+ * @param ignMsg Ignite for send message.
+ * @param expMsg Expected messages map.
+ * @param actlMsg Actual message map.
+ * @param msgs List msgs.
+ */
+ private void sendOrderedMultiThreads(
+ final IgniteMessaging ignMsg,
+ final ConcurrentMap<String, List<String>> expMsg,
+ final ConcurrentMap<String, List<String>> actlMsg,
+ final List<String> msgs
+ ) throws InterruptedException {
+ final CountDownLatch latch = new CountDownLatch(threads * msgs.size());
+
+ ignMsg.localListen(TOPIC, new IgniteBiPredicate<UUID, Message>() {
+ @Override public boolean apply(UUID uuid, Message msg) {
+ actlMsg.putIfAbsent(msg.threadName, Lists.<String>newArrayList());
+ actlMsg.get(msg.threadName).add(msg.message);
+ latch.countDown();
+ return true;
+ }
+ });
+
+ for (int i = 0; i < threads; i++)
+ new Thread(new Runnable() {
+ @Override public void run() {
+ String thdName = Thread.currentThread().getName();
+ List<String> exp = Lists.newArrayList();
+ expMsg.put(thdName, exp);
+
+ for (String msg : msgs) {
+ exp.add(msg);
+ ignMsg.sendOrdered(TOPIC, new Message(thdName, msg), 1000);
+ }
+
+ }
+ }).start();
+
+ latch.await();
+
+ assertEquals(expMsg.size(), actlMsg.size());
+
+ for (Map.Entry<String, List<String>> entry : expMsg.entrySet())
+ assertTrue(actlMsg.get(entry.getKey()).equals(entry.getValue()));
+ }
+
+ /**
+ */
+ private class Message implements Serializable{
+ /** Thread name. */
+ private String threadName;
+ /** Message. */
+ private String message;
+
+ /**
+ * @param threadName Thread name.
+ * @param msg Message.
+ */
+ private Message(String threadName, String msg) {
+ this.threadName = threadName;
+ this.message = msg;
+ }
+ }
+
+ /**
* @param igniteMsg Ignite message.
* @param msgStr Message string.
* @param cls Callback for compare result.
@@ -277,22 +452,22 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
* @param msgs messages for send.
* @param cls Callback for compare result.
*/
- private void sendOrdered(
+ private<T> void sendOrdered(
final IgniteMessaging igniteMsg,
- final List<String> msgs,
- final IgniteBiInClosure<List<String>,List<Thread>> cls
+ final List<T> msgs,
+ final IgniteBiInClosure<List<T>,List<Thread>> cls
) throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(msgs.size());
- final List<String> received = Lists.newArrayList();
+ final List<T> received = Lists.newArrayList();
final List<Thread> threads = Lists.newArrayList();
- for (String msg : msgs)
+ for (T msg : msgs)
igniteMsg.sendOrdered(TOPIC, msg, 1000);
- igniteMsg.localListen(TOPIC, new IgniteBiPredicate<UUID, String>() {
- @Override public boolean apply(UUID uuid, String s) {
+ igniteMsg.localListen(TOPIC, new IgniteBiPredicate<UUID, T>() {
+ @Override public boolean apply(UUID uuid, T s) {
received.add(s);
threads.add(Thread.currentThread());
latch.countDown();
@@ -312,7 +487,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
final List<String> msgs = Lists.newArrayList();
for (int i = 0; i < 1000; i++)
- msgs.add("" + i);
+ msgs.add("" + ThreadLocalRandom8.current().nextInt());
return msgs;
}
[10/34] ignite git commit: IGNITE-2539 fix code version pre 1.8 now
1.7
Posted by sb...@apache.org.
IGNITE-2539 fix code version pre 1.8 now 1.7
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ecd3d93e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ecd3d93e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ecd3d93e
Branch: refs/heads/ignite-3727-2
Commit: ecd3d93e69e4ffaceec49052181ad7a80b321152
Parents: 7e60424
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Thu Sep 8 19:08:32 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Thu Sep 8 19:08:32 2016 +0300
----------------------------------------------------------------------
.../affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ecd3d93e/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java b/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java
index c39ebf0..72854f7 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java
@@ -145,9 +145,9 @@ public class IssuesIGNITE2539ReproduceTest extends GridCommonAbstractTest {
for (int j = 0; j < itr; j++) {
- AtomicReference<Throwable> exc = new AtomicReference<>();
+ final AtomicReference<Throwable> exc = new AtomicReference<>();
- AtomicBoolean asyncRun = new AtomicBoolean(true);
+ final AtomicBoolean asyncRun = new AtomicBoolean(true);
for (Thread worker : getExchangeWorkerThread()) {
worker.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
[34/34] ignite git commit: Merge remote-tracking branch
'remotes/origin/master' into ignite-3727-2
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/master' into ignite-3727-2
# Conflicts:
# modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/HadoopShuffle.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/68f2d38e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/68f2d38e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/68f2d38e
Branch: refs/heads/ignite-3727-2
Commit: 68f2d38e3fda3adedc522d363bb02c2100a9a084
Parents: 91e8340
Author: sboikov <sb...@gridgain.com>
Authored: Tue Feb 14 16:08:26 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Feb 14 16:08:26 2017 +0300
----------------------------------------------------------------------
.../java/org/apache/ignite/IgniteMessaging.java | 10 +-
.../ignite/internal/IgniteMessagingImpl.java | 2 +-
.../managers/communication/GridIoManager.java | 3 +-
...niteMessagingConfigVariationFullApiTest.java | 20 +-
.../messaging/IgniteMessagingSendAsyncTest.java | 230 +++++++++++--------
5 files changed, 164 insertions(+), 101 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/68f2d38e/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java b/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
index b0cbe1d..d769eb2f 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteMessaging.java
@@ -77,8 +77,9 @@ public interface IgniteMessaging extends IgniteAsyncSupport {
/**
* Sends given message with specified topic to the nodes in the underlying cluster group.
- * When you invoke method, all listeners who were registered on topic in the local node, will executing in the same thread
- * by default, or if you use {@link #withAsync()}, listeners will execute through thread pool, and current thread will not be block.
+ * When you invoke method, all listeners who were registered on topic in the local node, will executing in
+ * the same thread by default, or if you use {@link #withAsync()}, listeners will execute
+ * through thread pool, and current thread will not be block.
*
* @param topic Topic to send to, {@code null} for default topic.
* @param msg Message to send.
@@ -89,8 +90,9 @@ public interface IgniteMessaging extends IgniteAsyncSupport {
/**
* Sends given messages with the specified topic to the nodes in the underlying cluster group.
- * When you invoke method, all listeners who were registered on topic in the local node, will executing in the same thread
- * by default, or if you use {@link #withAsync()}, listeners will execute through thread pool, and current thread will not be block.
+ * When you invoke method, all listeners who were registered on topic in the local node, will executing
+ * in the same thread by default, or if you use {@link #withAsync()}, listeners will execute
+ * through thread pool, and current thread will not be block.
*
* @param topic Topic to send to, {@code null} for default topic.
* @param msgs Messages to send. Order of the sending is undefined. If the method produces
http://git-wip-us.apache.org/repos/asf/ignite/blob/68f2d38e/modules/core/src/main/java/org/apache/ignite/internal/IgniteMessagingImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteMessagingImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteMessagingImpl.java
index e586aa2..541fad4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteMessagingImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteMessagingImpl.java
@@ -137,7 +137,7 @@ public class IgniteMessagingImpl extends AsyncSupportAdapter<IgniteMessaging>
if (timeout == 0)
timeout = ctx.config().getNetworkTimeout();
- ctx.io().sendUserMessage(snapshot, msg, topic, true, timeout, isAsync());
+ ctx.io().sendUserMessage(snapshot, msg, topic, true, timeout, false);
}
catch (IgniteCheckedException e) {
throw U.convertException(e);
http://git-wip-us.apache.org/repos/asf/ignite/blob/68f2d38e/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index cda1321..50a4efe 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@ -685,7 +685,8 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
case UTILITY_CACHE_POOL:
case MARSH_CACHE_POOL:
case IDX_POOL:
- case IGFS_POOL: {
+ case IGFS_POOL:
+ {
if (msg.isOrdered())
processOrderedMessage(nodeId, msg, plc, msgC);
else
http://git-wip-us.apache.org/repos/asf/ignite/blob/68f2d38e/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java
index f66535a..c6b46d2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/messaging/IgniteMessagingConfigVariationFullApiTest.java
@@ -289,6 +289,8 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
/**
* Single server test.
+ *
+ * @param async Async message send flag.
* @throws Exception If failed.
*/
private void localServerInternal(boolean async) throws Exception {
@@ -345,6 +347,8 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
/**
* Server sends a message and client receives it.
+ *
+ * @param async Async message send flag.
* @throws Exception If failed.
*/
private void serverClientMessage(boolean async) throws Exception {
@@ -359,6 +363,8 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
/**
* Client sends a message and client receives it.
+ *
+ * @param async Async message send flag.
* @throws Exception If failed.
*/
private void clientClientMessage(boolean async) throws Exception {
@@ -373,7 +379,8 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
/**
* Client sends a message and client receives it.
- * @param async flag async mode
+ *
+ * @param async Async message send flag.
* @throws Exception If failed.
*/
private void clientServerMessage(boolean async) throws Exception {
@@ -389,6 +396,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
/**
* @param ignite Ignite.
* @param grp Cluster group.
+ * @param async Async message send flag.
* @throws Exception If fail.
*/
private void registerListenerAndSendMessages(Ignite ignite, ClusterGroup grp, boolean async) throws Exception {
@@ -443,7 +451,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
}
/**
- *
+ * @param async Async message send flag.
* @throws Exception If fail.
*/
private void orderedMessage(boolean async) throws Exception {
@@ -457,7 +465,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
}
/**
- *
+ * @param async Async message send flag.
* @throws Exception If fail.
*/
private void clientServerOrderedMessage(boolean async) throws Exception {
@@ -471,7 +479,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
}
/**
- *
+ * @param async Async message send flag.
* @throws Exception If fail.
*/
private void clientClientOrderedMessage(boolean async) throws Exception {
@@ -485,7 +493,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
}
/**
- *
+ * @param async Async message send flag.
* @throws Exception If fail.
*/
private void serverClientOrderedMessage(boolean async) throws Exception {
@@ -501,6 +509,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
/**
* @param ignite Ignite.
* @param grp Cluster group.
+ * @param async Async message send flag.
* @throws Exception If fail.
*/
private void registerListenerAndSendOrderedMessages(Ignite ignite, ClusterGroup grp, boolean async) throws Exception {
@@ -531,6 +540,7 @@ public class IgniteMessagingConfigVariationFullApiTest extends IgniteConfigVaria
* @param nodeSnd Sender Ignite node.
* @param grp Cluster group.
* @param msg Message.
+ * @param async Async message send flag.
*/
private void sendMessage(Ignite nodeSnd, ClusterGroup grp, Object msg, boolean async) {
if (async)
http://git-wip-us.apache.org/repos/asf/ignite/blob/68f2d38e/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
index 73baeba..75e7d22 100644
--- a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
@@ -19,14 +19,6 @@ package org.apache.ignite.messaging;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteMessaging;
-import org.apache.ignite.lang.IgniteBiInClosure;
-import org.apache.ignite.lang.IgniteBiPredicate;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-import org.jsr166.ThreadLocalRandom8;
-import org.junit.Assert;
-
import java.io.Serializable;
import java.util.List;
import java.util.Map;
@@ -34,36 +26,54 @@ import java.util.UUID;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicReference;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteMessaging;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.lang.IgniteBiInClosure;
+import org.apache.ignite.lang.IgniteBiPredicate;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.jsr166.ThreadLocalRandom8;
+import org.junit.Assert;
/**
*
*/
public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest implements Serializable {
- /**
- * Topic name.
- */
+ /** */
+ private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+ /** Threads number for multi-thread tests. */
+ private static final int THREADS = 10;
+
+ /** */
private final String TOPIC = "topic";
- /**
- * Message string.
- */
+ /** */
private final String msgStr = "message";
- /** Count threads for multi-thread test */
- private final int threads = 10;
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
- /**
- * {@inheritDoc}
- */
- @Override protected void afterTest() throws Exception {
- super.afterTest();
+ ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
+
+ return cfg;
+ }
+ /** {@inheritDoc} */
+ @Override protected void afterTest() throws Exception {
stopAllGrids();
+
+ super.afterTest();
}
/**
- * Test for check, that if use default mode, local listeners execute
- * in the same thread. 1 node in topology.
+ * Checks if use default mode, local listeners execute in the same thread, 1 node in topology.
+ *
+ * @throws Exception If failed.
*/
public void testSendDefaultMode() throws Exception {
Ignite ignite1 = startGrid(1);
@@ -77,8 +87,9 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
- * Test for check, that if use async mode, local listeners execute
- * in another thread(through pool). 1 node in topology.
+ * Checks if use async mode, local listeners execute in another thread, 1 node in topology.
+ *
+ * @throws Exception If failed.
*/
public void testSendAsyncMode() throws Exception {
Ignite ignite1 = startGrid(1);
@@ -92,14 +103,15 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
- * Test for check, that if use default mode, local listeners execute
- * in the same thread. 2 node in topology.
+ * Checks if use default mode, local listeners execute in the same thread, 2 nodes in topology.
+ *
+ * @throws Exception If failed.
*/
- public void testSendDefaultMode2Node() throws Exception {
+ public void testSendDefaultMode2Nodes() throws Exception {
Ignite ignite1 = startGrid(1);
Ignite ignite2 = startGrid(2);
- sendWith2Node(ignite2, ignite1.message(), msgStr, new IgniteBiInClosure<String, Thread> () {
+ sendWith2Nodes(ignite2, ignite1.message(), msgStr, new IgniteBiInClosure<String, Thread> () {
@Override public void apply(String msg, Thread thread) {
Assert.assertEquals(Thread.currentThread(), thread);
Assert.assertEquals(msgStr, msg);
@@ -108,14 +120,15 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
- * Test for check, that if use async mode, local listeners execute
- * in another thread(through pool). 2 node in topology.
+ * Checks if use async mode, local listeners execute in another thread, 2 nodes in topology.
+ *
+ * @throws Exception If failed.
*/
public void testSendAsyncMode2Node() throws Exception {
Ignite ignite1 = startGrid(1);
Ignite ignite2 = startGrid(2);
- sendWith2Node(ignite2, ignite1.message().withAsync(), msgStr, new IgniteBiInClosure<String, Thread> () {
+ sendWith2Nodes(ignite2, ignite1.message().withAsync(), msgStr, new IgniteBiInClosure<String, Thread> () {
@Override public void apply(String msg, Thread thread) {
Assert.assertTrue(!Thread.currentThread().equals(thread));
Assert.assertEquals(msgStr, msg);
@@ -124,12 +137,14 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
- * Test for check, that SendOrdered work in our thread pool. 1 node in topology.
+ * Checks that sendOrdered works in thread pool, 1 node in topology.
+ *
+ * @throws Exception If failed.
*/
public void testSendOrderedDefaultMode() throws Exception {
Ignite ignite1 = startGrid(1);
- final List<String> msgs = orderedMsg();
+ final List<String> msgs = orderedMessages();
sendOrdered(ignite1.message(), msgs, new IgniteBiInClosure< List<String>, List<Thread>> () {
@Override public void apply(List<String> received, List<Thread> threads) {
@@ -140,12 +155,14 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
- * Test for check, that SendOrdered work in our thread pool. 1 node in topology.
+ * Checks that sendOrdered work in thread pool, 1 node in topology.
+ *
+ * @throws Exception If failed.
*/
public void testSendOrderedAsyncMode() throws Exception {
Ignite ignite1 = startGrid(1);
- final List<String> msgs = orderedMsg();
+ final List<String> msgs = orderedMessages();
sendOrdered(ignite1.message().withAsync(), msgs, new IgniteBiInClosure< List<String>, List<Thread>> () {
@Override public void apply(List<String> received, List<Thread> threads) {
@@ -156,13 +173,15 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
- * Test for check, that SendOrdered work in our thread pool. 2 node in topology.
+ * Checks that sendOrdered work in thread pool, 2 nodes in topology.
+ *
+ * @throws Exception If failed.
*/
public void testSendOrderedDefaultMode2Node() throws Exception {
Ignite ignite1 = startGrid(1);
Ignite ignite2 = startGrid(2);
- final List<String> msgs = orderedMsg();
+ final List<String> msgs = orderedMessages();
sendOrderedWith2Node(ignite2, ignite1.message(), msgs, new IgniteBiInClosure<List<String>, List<Thread>>() {
@Override public void apply(List<String> received, List<Thread> threads) {
@@ -173,13 +192,15 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
- * Test for check, that SendOrdered work in our thread pool. 2 node in topology.
+ * Checks that sendOrdered work in thread pool, 2 nodes in topology.
+ *
+ * @throws Exception If failed.
*/
public void testSendOrderedAsyncMode2Node() throws Exception {
Ignite ignite1 = startGrid(1);
Ignite ignite2 = startGrid(2);
- final List<String> msgs = orderedMsg();
+ final List<String> msgs = orderedMessages();
sendOrderedWith2Node(ignite2, ignite1.message().withAsync(), msgs, new IgniteBiInClosure<List<String>, List<Thread>>() {
@Override public void apply(List<String> received, List<Thread> threads) {
@@ -190,6 +211,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
+ * @throws Exception If failed.
*/
public void testSendOrderedDefaultModeMultiThreads() throws Exception {
Ignite ignite = startGrid(1);
@@ -198,6 +220,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
+ * @throws Exception If failed.
*/
public void testSendOrderedAsyncModeMultiThreads() throws Exception {
Ignite ignite = startGrid(1);
@@ -206,6 +229,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
+ * @throws Exception If failed.
*/
public void testSendOrderedDefaultModeMultiThreadsWith2Node() throws Exception {
Ignite ignite1 = startGrid(1);
@@ -215,6 +239,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
+ * @throws Exception If failed.
*/
public void testSendOrderedAsyncModeMultiThreadsWith2Node() throws Exception {
Ignite ignite1 = startGrid(1);
@@ -224,44 +249,45 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
- * @param ignite2 Ignite 2.
+ * @param ignite2 Second node.
* @param ignMsg IgniteMessage.
+ * @throws Exception If failed.
*/
private void sendOrderedMultiThreadsWith2Node(
final Ignite ignite2,
final IgniteMessaging ignMsg
- ) throws InterruptedException {
+ ) throws Exception {
final ConcurrentMap<String, List<String>> expMsg = Maps.newConcurrentMap();
final ConcurrentMap<String, List<String>> actlMsg = Maps.newConcurrentMap();
- final List<String> msgs = orderedMsg();
+ final List<String> msgs = orderedMessages();
sendOrderedMultiThreadsWith2Node(ignite2, ignMsg, expMsg, actlMsg, msgs);
}
-
/**
- * @param ignMsg IgniteMessage.
+ * @param ignMsg IgniteMessaging.
+ * @throws Exception If failed.
*/
private void sendOrderedMultiThreads(
final IgniteMessaging ignMsg
- ) throws InterruptedException {
+ ) throws Exception {
final ConcurrentMap<String, List<String>> expMsg = Maps.newConcurrentMap();
final ConcurrentMap<String, List<String>> actlMsg = Maps.newConcurrentMap();
- final List<String> msgs = orderedMsg();
+ final List<String> msgs = orderedMessages();
sendOrderedMultiThreads(ignMsg, expMsg, actlMsg, msgs);
-
}
/**
- * @param ignite2 Ignite 2.
+ * @param ignite2 Second node.
* @param ignMsg Ignite for send message.
* @param expMsg Expected messages map.
* @param actlMsg Actual message map.
- * @param msgs List msgs.
+ * @param msgs List of messages.
+ * @throws Exception If failed.
*/
private void sendOrderedMultiThreadsWith2Node(
final Ignite ignite2,
@@ -269,16 +295,19 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
final ConcurrentMap<String, List<String>> expMsg,
final ConcurrentMap<String, List<String>> actlMsg,
final List<String> msgs
- ) throws InterruptedException {
- final CountDownLatch latch = new CountDownLatch(threads * msgs.size());
+ ) throws Exception {
+ final CountDownLatch latch = new CountDownLatch(THREADS * msgs.size());
final ConcurrentMap<String, List<String>> actlMsgNode2 = Maps.newConcurrentMap();
ignite2.message().localListen(TOPIC, new IgniteBiPredicate<UUID, Message>() {
@Override public boolean apply(UUID uuid, Message msg) {
actlMsgNode2.putIfAbsent(msg.threadName, Lists.<String>newArrayList());
- actlMsgNode2.get(msg.threadName).add(msg.message);
+
+ actlMsgNode2.get(msg.threadName).add(msg.msg);
+
latch.countDown();
+
return true;
}
});
@@ -297,34 +326,41 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
* @param ignMsg Ignite for send message.
* @param expMsg Expected messages map.
* @param actlMsg Actual message map.
- * @param msgs List msgs.
+ * @param msgs List of messages.
+ * @throws Exception If failed.
*/
private void sendOrderedMultiThreads(
final IgniteMessaging ignMsg,
final ConcurrentMap<String, List<String>> expMsg,
final ConcurrentMap<String, List<String>> actlMsg,
final List<String> msgs
- ) throws InterruptedException {
- final CountDownLatch latch = new CountDownLatch(threads * msgs.size());
+ ) throws Exception {
+ final CountDownLatch latch = new CountDownLatch(THREADS * msgs.size());
ignMsg.localListen(TOPIC, new IgniteBiPredicate<UUID, Message>() {
@Override public boolean apply(UUID uuid, Message msg) {
actlMsg.putIfAbsent(msg.threadName, Lists.<String>newArrayList());
- actlMsg.get(msg.threadName).add(msg.message);
+
+ actlMsg.get(msg.threadName).add(msg.msg);
+
latch.countDown();
+
return true;
}
});
- for (int i = 0; i < threads; i++)
+ for (int i = 0; i < THREADS; i++)
new Thread(new Runnable() {
@Override public void run() {
String thdName = Thread.currentThread().getName();
+
List<String> exp = Lists.newArrayList();
+
expMsg.put(thdName, exp);
for (String msg : msgs) {
exp.add(msg);
+
ignMsg.sendOrdered(TOPIC, new Message(thdName, msg), 1000);
}
@@ -340,40 +376,26 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
- */
- private class Message implements Serializable{
- /** Thread name. */
- private String threadName;
- /** Message. */
- private String message;
-
- /**
- * @param threadName Thread name.
- * @param msg Message.
- */
- private Message(String threadName, String msg) {
- this.threadName = threadName;
- this.message = msg;
- }
- }
-
- /**
+ * @param ignite2 Second node.
* @param igniteMsg Ignite message.
* @param msgStr Message string.
* @param cls Callback for compare result.
+ * @throws Exception If failed.
*/
- private void sendWith2Node(
+ private void sendWith2Nodes(
final Ignite ignite2,
final IgniteMessaging igniteMsg,
final String msgStr,
- final IgniteBiInClosure<String,Thread> cls
+ final IgniteBiInClosure<String, Thread> cls
) throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
ignite2.message().localListen(TOPIC, new IgniteBiPredicate<UUID, String>() {
@Override public boolean apply(UUID uuid, String msg) {
Assert.assertEquals(msgStr, msg);
+
latch.countDown();
+
return true;
}
});
@@ -384,15 +406,16 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
- * @param igniteMsg Ignite message.
+ * @param igniteMsg Ignite messaging.
* @param msgStr Message string.
* @param cls Callback for compare result.
+ * @throws Exception If failed.
*/
private void send(
final IgniteMessaging igniteMsg,
final String msgStr,
- final IgniteBiInClosure<String,Thread> cls
- ) throws InterruptedException {
+ final IgniteBiInClosure<String, Thread> cls
+ ) throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final AtomicReference<Thread> thread = new AtomicReference<>();
@@ -401,8 +424,11 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
igniteMsg.localListen(TOPIC, new IgniteBiPredicate<UUID, String>() {
@Override public boolean apply(UUID uuid, String msgStr) {
thread.set(Thread.currentThread());
+
val.set(msgStr);
+
latch.countDown();
+
return true;
}
});
@@ -415,18 +441,18 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
- * @param ignite2 Ignite 2.
+ * @param ignite2 Second node.
* @param igniteMsg Ignite message.
* @param msgs messages for send.
* @param cls Callback for compare result.
+ * @throws Exception If failed.
*/
private void sendOrderedWith2Node(
final Ignite ignite2,
final IgniteMessaging igniteMsg,
final List<String> msgs,
- final IgniteBiInClosure<List<String>,List<Thread>> cls
+ final IgniteBiInClosure<List<String>, List<Thread>> cls
) throws Exception {
-
final CountDownLatch latch = new CountDownLatch(msgs.size());
final List<String> received = Lists.newArrayList();
@@ -434,7 +460,9 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
ignite2.message().localListen(TOPIC, new IgniteBiPredicate<UUID, String>() {
@Override public boolean apply(UUID uuid, String msg) {
received.add(msg);
+
latch.countDown();
+
return true;
}
});
@@ -444,20 +472,19 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
latch.await();
assertTrue(msgs.equals(received));
-
}
/**
* @param igniteMsg Ignite message.
* @param msgs messages for send.
* @param cls Callback for compare result.
+ * @throws Exception If failed.
*/
private<T> void sendOrdered(
final IgniteMessaging igniteMsg,
final List<T> msgs,
final IgniteBiInClosure<List<T>,List<Thread>> cls
- ) throws InterruptedException {
-
+ ) throws Exception {
final CountDownLatch latch = new CountDownLatch(msgs.size());
final List<T> received = Lists.newArrayList();
@@ -469,8 +496,11 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
igniteMsg.localListen(TOPIC, new IgniteBiPredicate<UUID, T>() {
@Override public boolean apply(UUID uuid, T s) {
received.add(s);
+
threads.add(Thread.currentThread());
+
latch.countDown();
+
return true;
}
});
@@ -481,14 +511,34 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest impleme
}
/**
- * @return List ordered messages
+ * @return List of ordered messages
*/
- private List<String> orderedMsg() {
+ private List<String> orderedMessages() {
final List<String> msgs = Lists.newArrayList();
for (int i = 0; i < 1000; i++)
- msgs.add("" + ThreadLocalRandom8.current().nextInt());
+ msgs.add(String.valueOf(ThreadLocalRandom8.current().nextInt()));
return msgs;
}
+
+ /**
+ *
+ */
+ private static class Message implements Serializable{
+ /** Thread name. */
+ private final String threadName;
+
+ /** Message. */
+ private final String msg;
+
+ /**
+ * @param threadName Thread name.
+ * @param msg Message.
+ */
+ private Message(String threadName, String msg) {
+ this.threadName = threadName;
+ this.msg = msg;
+ }
+ }
}
[23/34] ignite git commit: Revert "IGNITE-1678 code + test+ benchmark
config"
Posted by sb...@apache.org.
Revert "IGNITE-1678 code + test+ benchmark config"
This reverts commit 784958bf6e0e8e81191af498f6a993b2bfd78204.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/980df4ea
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/980df4ea
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/980df4ea
Branch: refs/heads/ignite-3727-2
Commit: 980df4ea1be385867c69d2fa977f22d808701aca
Parents: 21e0093
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Tue Sep 13 14:27:08 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Tue Sep 13 14:27:08 2016 +0300
----------------------------------------------------------------------
.../org/apache/ignite/IgniteAtomicSequence.java | 15 -
.../configuration/AtomicConfiguration.java | 25 -
.../datastructures/DataStructuresProcessor.java | 111 ++--
.../GridCacheAtomicSequenceImpl.java | 384 +++++++-----
...AtomicSequenceMultiThreadedAbstractTest.java | 579 -------------------
.../GridCacheSequenceApiSelfAbstractTest.java | 101 +---
...titionedAtomicSequenceMultiThreadedTest.java | 313 +++++++++-
...GridCachePartitionedSequenceApiSelfTest.java | 4 -
...plicatedAtomicSequenceMultiThreadedTest.java | 33 --
.../GridCacheReplicatedSequenceApiSelfTest.java | 4 -
.../IgniteCacheDataStructuresSelfTestSuite.java | 2 -
.../cache/IgniteAtomicSequenceBenchmark.java | 45 --
12 files changed, 625 insertions(+), 991 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/980df4ea/modules/core/src/main/java/org/apache/ignite/IgniteAtomicSequence.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteAtomicSequence.java b/modules/core/src/main/java/org/apache/ignite/IgniteAtomicSequence.java
index aa1cbdf..a1e1392 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteAtomicSequence.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteAtomicSequence.java
@@ -118,21 +118,6 @@ public interface IgniteAtomicSequence extends Closeable {
public void batchSize(int size);
/**
- * Gets local reserve percentage for this atomic sequence. When a reserve percentage of a batch size
- * is reached when sequence starts a new reservation in background.
- *
- * @return Sequence reserve pecentage.
- */
- public int reservePercentage();
-
- /**
- * Sets local reserve percentage for this atomic sequence.
- *
- * @param percentage Reserve pecentage. Must be between 0 and 100.
- */
- public void reservePercentage(int percentage);
-
- /**
* Gets status of atomic sequence.
*
* @return {@code true} if atomic sequence was removed from cache, {@code false} otherwise.
http://git-wip-us.apache.org/repos/asf/ignite/blob/980df4ea/modules/core/src/main/java/org/apache/ignite/configuration/AtomicConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/AtomicConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/AtomicConfiguration.java
index ad96b73..6649b5e 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/AtomicConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/AtomicConfiguration.java
@@ -36,9 +36,6 @@ public class AtomicConfiguration {
/** Default atomic sequence reservation size. */
public static final int DFLT_ATOMIC_SEQUENCE_RESERVE_SIZE = 1000;
- /** Default atomic sequence reservation size. */
- public static final int DFLT_ATOMIC_SEQUENCE_RESERVE_PERCENTAGE = 80;
-
/** Default batch size for all cache's sequences. */
private int seqReserveSize = DFLT_ATOMIC_SEQUENCE_RESERVE_SIZE;
@@ -48,9 +45,6 @@ public class AtomicConfiguration {
/** Number of backups. */
private int backups = DFLT_BACKUPS;
- /** Atomic sequence reservation percentage. */
- private int atomicSeqReservePercentage = DFLT_ATOMIC_SEQUENCE_RESERVE_PERCENTAGE;
-
/**
* @return Number of backup nodes.
*/
@@ -104,25 +98,6 @@ public class AtomicConfiguration {
this.seqReserveSize = seqReserveSize;
}
- /**
- * Gets reserve percentage for configuration. When a reserve percentage of a batch size
- * is reached when sequence starts a new reservation in background.
- *
- * @return Atomic sequence reservation percentage.
- */
- public int getAtomicSequenceReservePercentage() {
- return atomicSeqReservePercentage;
- }
-
- /**
- * Sets reserve percentage for configuration.
- * *
- * @param atomicSeqReservePercentage Atomic sequence reservation percentage.
- */
- public void setAtomicSequenceReservePercentage(int atomicSeqReservePercentage) {
- this.atomicSeqReservePercentage = atomicSeqReservePercentage;
- }
-
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(AtomicConfiguration.class, this);
http://git-wip-us.apache.org/repos/asf/ignite/blob/980df4ea/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
index eb81ca2..1cad22f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
@@ -36,7 +36,6 @@ import javax.cache.event.EventType;
import javax.cache.processor.EntryProcessor;
import javax.cache.processor.EntryProcessorException;
import javax.cache.processor.MutableEntry;
-
import org.apache.ignite.IgniteAtomicLong;
import org.apache.ignite.IgniteAtomicReference;
import org.apache.ignite.IgniteAtomicSequence;
@@ -358,9 +357,9 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
if (seqVal == null && !create)
return null;
- /* // We should use offset because we already reserved left side of range.
+ // We should use offset because we already reserved left side of range.
long off = atomicCfg.getAtomicSequenceReserveSize() > 1 ?
- atomicCfg.getAtomicSequenceReserveSize() - 1 : 1;*/
+ atomicCfg.getAtomicSequenceReserveSize() - 1 : 1;
long upBound;
long locCntr;
@@ -368,16 +367,18 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
if (seqVal == null) {
locCntr = initVal;
- upBound = locCntr + atomicCfg.getAtomicSequenceReserveSize();
+ upBound = locCntr + off;
- seqVal = new GridCacheAtomicSequenceValue(upBound);
+ // Global counter must be more than reserved region.
+ seqVal = new GridCacheAtomicSequenceValue(upBound + 1);
}
else {
locCntr = seqVal.get();
- upBound = locCntr + atomicCfg.getAtomicSequenceReserveSize();
+ upBound = locCntr + off;
- seqVal.set(upBound);
+ // Global counter must be more than reserved region.
+ seqVal.set(upBound + 1);
}
// Update global counter.
@@ -389,7 +390,6 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
seqView,
dsCacheCtx,
atomicCfg.getAtomicSequenceReserveSize(),
- atomicCfg.getAtomicSequenceReservePercentage(),
locCntr,
upBound);
@@ -448,7 +448,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
* Gets an atomic long from cache or creates one if it's not cached.
*
* @param name Name of atomic long.
- * @param initVal Initial value for atomic long. If atomic long already cached, {@code initVal} will be ignored.
+ * @param initVal Initial value for atomic long. If atomic long already cached, {@code initVal}
+ * will be ignored.
* @param create If {@code true} atomic long will be created in case it is not in cache.
* @return Atomic long.
* @throws IgniteCheckedException If loading failed.
@@ -525,7 +526,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
final DataStructureInfo dsInfo,
final boolean create,
Class<? extends T> cls)
- throws IgniteCheckedException {
+ throws IgniteCheckedException
+ {
Map<String, DataStructureInfo> dsMap = utilityCache.get(DATA_STRUCTURES_KEY);
if (!create && (dsMap == null || !dsMap.containsKey(dsInfo.name)))
@@ -605,7 +607,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
String name,
DataStructureType type,
@Nullable final IgniteInClosureX<T> afterRmv)
- throws IgniteCheckedException {
+ throws IgniteCheckedException
+ {
Map<String, DataStructureInfo> dsMap = utilityCache.get(DATA_STRUCTURES_KEY);
if (dsMap == null || !dsMap.containsKey(name))
@@ -653,8 +656,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
* Gets an atomic reference from cache or creates one if it's not cached.
*
* @param name Name of atomic reference.
- * @param initVal Initial value for atomic reference. If atomic reference already cached, {@code initVal} will be
- * ignored.
+ * @param initVal Initial value for atomic reference. If atomic reference already cached, {@code initVal}
+ * will be ignored.
* @param create If {@code true} atomic reference will be created in case it is not in cache.
* @return Atomic reference.
* @throws IgniteCheckedException If loading failed.
@@ -663,7 +666,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
public final <T> IgniteAtomicReference<T> atomicReference(final String name,
final T initVal,
final boolean create)
- throws IgniteCheckedException {
+ throws IgniteCheckedException
+ {
A.notNull(name, "name");
awaitInitialization();
@@ -757,10 +761,10 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
* Gets an atomic stamped from cache or creates one if it's not cached.
*
* @param name Name of atomic stamped.
- * @param initVal Initial value for atomic stamped. If atomic stamped already cached, {@code initVal} will be
- * ignored.
- * @param initStamp Initial stamp for atomic stamped. If atomic stamped already cached, {@code initStamp} will be
- * ignored.
+ * @param initVal Initial value for atomic stamped. If atomic stamped already cached, {@code initVal}
+ * will be ignored.
+ * @param initStamp Initial stamp for atomic stamped. If atomic stamped already cached, {@code initStamp}
+ * will be ignored.
* @param create If {@code true} atomic stamped will be created in case it is not in cache.
* @return Atomic stamped.
* @throws IgniteCheckedException If loading failed.
@@ -1001,7 +1005,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
@Nullable private <T> T getCollection(final IgniteClosureX<GridCacheContext, T> c,
final DataStructureInfo dsInfo,
boolean create)
- throws IgniteCheckedException {
+ throws IgniteCheckedException
+ {
awaitInitialization();
Map<String, DataStructureInfo> dsMap = utilityCache.get(DATA_STRUCTURES_KEY);
@@ -1078,7 +1083,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
@Nullable private static IgniteCheckedException validateDataStructure(
@Nullable Map<String, DataStructureInfo> dsMap,
DataStructureInfo info,
- boolean create) {
+ boolean create)
+ {
if (dsMap == null)
return null;
@@ -1096,17 +1102,20 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
*
* @param name Name of the latch.
* @param cnt Initial count.
- * @param autoDel {@code True} to automatically delete latch from cache when its count reaches zero.
- * @param create If {@code true} latch will be created in case it is not in cache, if it is {@code false} all
- * parameters except {@code name} are ignored.
- * @return Count down latch for the given name or {@code null} if it is not found and {@code create} is false.
+ * @param autoDel {@code True} to automatically delete latch from cache when
+ * its count reaches zero.
+ * @param create If {@code true} latch will be created in case it is not in cache,
+ * if it is {@code false} all parameters except {@code name} are ignored.
+ * @return Count down latch for the given name or {@code null} if it is not found and
+ * {@code create} is false.
* @throws IgniteCheckedException If operation failed.
*/
public IgniteCountDownLatch countDownLatch(final String name,
final int cnt,
final boolean autoDel,
final boolean create)
- throws IgniteCheckedException {
+ throws IgniteCheckedException
+ {
A.notNull(name, "name");
awaitInitialization();
@@ -1192,12 +1201,12 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
try (IgniteInternalTx tx = CU.txStartInternal(dsCacheCtx, dsView, PESSIMISTIC, REPEATABLE_READ)) {
// Check correctness type of removable object.
GridCacheCountDownLatchValue val =
- cast(dsView.get(key), GridCacheCountDownLatchValue.class);
+ cast(dsView.get(key), GridCacheCountDownLatchValue.class);
if (val != null) {
if (val.get() > 0) {
throw new IgniteCheckedException("Failed to remove count down latch " +
- "with non-zero count: " + val.get());
+ "with non-zero count: " + val.get());
}
dsView.remove(key);
@@ -1223,9 +1232,10 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
* @param name Name of the semaphore.
* @param cnt Initial count.
* @param failoverSafe {@code True} FailoverSafe parameter.
- * @param create If {@code true} semaphore will be created in case it is not in cache, if it is {@code false} all
- * parameters except {@code name} are ignored.
- * @return Semaphore for the given name or {@code null} if it is not found and {@code create} is false.
+ * @param create If {@code true} semaphore will be created in case it is not in cache,
+ * if it is {@code false} all parameters except {@code name} are ignored.
+ * @return Semaphore for the given name or {@code null} if it is not found and
+ * {@code create} is false.
* @throws IgniteCheckedException If operation failed.
*/
public IgniteSemaphore semaphore(final String name, final int cnt, final boolean failoverSafe, final boolean create)
@@ -1341,11 +1351,11 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
* @param failoverSafe Flag indicating behaviour in case of failure.
* @param fair Flag indicating fairness policy of this lock.
* @param create If {@code true} reentrant lock will be created in case it is not in cache.
- * @return ReentrantLock for the given name or {@code null} if it is not found and {@code create} is false.
+ * @return ReentrantLock for the given name or {@code null} if it is not found and
+ * {@code create} is false.
* @throws IgniteCheckedException If operation failed.
*/
- public IgniteLock reentrantLock(final String name, final boolean failoverSafe, final boolean fair,
- final boolean create)
+ public IgniteLock reentrantLock(final String name, final boolean failoverSafe, final boolean fair, final boolean create)
throws IgniteCheckedException {
A.notNull(name, "name");
@@ -1522,7 +1532,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
/** {@inheritDoc} */
@Override public void onUpdated(
Iterable<CacheEntryEvent<? extends GridCacheInternalKey, ? extends GridCacheInternal>> evts)
- throws CacheEntryListenerException {
+ throws CacheEntryListenerException
+ {
for (CacheEntryEvent<? extends GridCacheInternalKey, ? extends GridCacheInternal> evt : evts) {
if (evt.getEventType() == EventType.CREATED || evt.getEventType() == EventType.UPDATED) {
GridCacheInternal val0 = evt.getValue();
@@ -1592,8 +1603,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
}
else if (sem != null) {
U.error(log, "Failed to cast object " +
- "[expected=" + IgniteSemaphore.class.getSimpleName() +
- ", actual=" + sem.getClass() + ", value=" + sem + ']');
+ "[expected=" + IgniteSemaphore.class.getSimpleName() +
+ ", actual=" + sem.getClass() + ", value=" + sem + ']');
}
}
else if (val0 instanceof GridCacheLockState) {
@@ -1750,18 +1761,6 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
if (atomicCfg == null)
throw new IgniteException("Atomic data structure can not be created, " +
"need to provide IgniteAtomicConfiguration.");
-
- if (atomicCfg.getAtomicSequenceReserveSize() <= 0)
- throw new IgniteException(
- "Atomic sequence can not be created, " +
- "reserve size must be more than 0, but atomicSequenceReserveSize: " + atomicCfg.getAtomicSequenceReserveSize()
- );
-
- if (atomicCfg.getAtomicSequenceReservePercentage() > 100)
- throw new IgniteException(
- "Atomic sequence can not be created, reserve percentage must have value " +
- "between 0 and 100, but atomicSequenceReservePercentage: " + atomicCfg.getAtomicSequenceReservePercentage()
- );
}
/**
@@ -1780,7 +1779,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
col.cfg.getBackups() == cfg.getBackups() &&
col.cfg.getOffHeapMaxMemory() == cfg.getOffHeapMaxMemory() &&
((col.cfg.getNodeFilter() == null && cfg.getNodeFilter() == null) ||
- (col.cfg.getNodeFilter() != null && col.cfg.getNodeFilter().equals(cfg.getNodeFilter()))))
+ (col.cfg.getNodeFilter() != null && col.cfg.getNodeFilter().equals(cfg.getNodeFilter()))))
return col.cacheName;
}
@@ -1789,8 +1788,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
/**
* @param c Closure to run.
- * @return Closure return value.
* @throws IgniteCheckedException If failed.
+ * @return Closure return value.
*/
private static <T> T retryTopologySafe(IgniteOutClosureX<T> c) throws IgniteCheckedException {
for (int i = 0; i < GridCacheAdapter.MAX_RETRIES; i++) {
@@ -2145,7 +2144,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
@Override public IgniteCheckedException process(
MutableEntry<CacheDataStructuresConfigurationKey, Map<String, DataStructureInfo>> entry,
Object... args)
- throws EntryProcessorException {
+ throws EntryProcessorException
+ {
Map<String, DataStructureInfo> map = entry.getValue();
if (map == null) {
@@ -2223,7 +2223,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
/** {@inheritDoc} */
@Override public T2<String, IgniteCheckedException> process(
MutableEntry<CacheDataStructuresConfigurationKey, Map<String, DataStructureInfo>> entry,
- Object... args) {
+ Object... args)
+ {
Map<String, DataStructureInfo> map = entry.getValue();
CollectionInfo colInfo = (CollectionInfo)info.info;
@@ -2302,7 +2303,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
/** {@inheritDoc} */
@Override public String process(
MutableEntry<CacheDataStructuresCacheKey, List<CacheCollectionInfo>> entry,
- Object... args) {
+ Object... args)
+ {
List<CacheCollectionInfo> list = entry.getValue();
if (list == null) {
@@ -2378,7 +2380,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
/** {@inheritDoc} */
@Override public T2<Boolean, IgniteCheckedException> process(
MutableEntry<CacheDataStructuresConfigurationKey, Map<String, DataStructureInfo>> entry,
- Object... args) {
+ Object... args)
+ {
Map<String, DataStructureInfo> map = entry.getValue();
if (map == null)
http://git-wip-us.apache.org/repos/asf/ignite/blob/980df4ea/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java
index 77bbb41..7474f46 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java
@@ -17,21 +17,36 @@
package org.apache.ignite.internal.processors.datastructures;
-import org.apache.ignite.*;
-import org.apache.ignite.internal.*;
-import org.apache.ignite.internal.processors.cache.*;
-import org.apache.ignite.internal.processors.cache.transactions.*;
-import org.apache.ignite.internal.util.future.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.lang.*;
-
-import java.io.*;
-import java.util.concurrent.*;
-import java.util.concurrent.locks.*;
-
-import static org.apache.ignite.internal.util.typedef.internal.CU.*;
-import static org.apache.ignite.transactions.TransactionConcurrency.*;
-import static org.apache.ignite.transactions.TransactionIsolation.*;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.InvalidObjectException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.ObjectStreamException;
+import java.util.concurrent.Callable;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.locks.Condition;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.internal.GridKernalContext;
+import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.processors.cache.GridCacheContext;
+import org.apache.ignite.internal.processors.cache.IgniteInternalCache;
+import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
+import org.apache.ignite.internal.util.future.GridFinishedFuture;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.lang.IgniteBiTuple;
+import org.jetbrains.annotations.Nullable;
+
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+import static org.apache.ignite.internal.util.typedef.internal.CU.retryTopologySafe;
+import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
+import static org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ;
/**
* Cache sequence implementation.
@@ -72,32 +87,26 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
/** Local value of sequence. */
private long locVal;
- /** Upper bound of local counter. */
- private long upBound; // TODO should be not included
+ /** Upper bound of local counter. */
+ private long upBound;
- /** Reserved bottom bound of local counter (included). */
- private long reservedBottomBound;
-
- /** Reserved upper bound of local counter (not included). */
- private long reservedUpBound;
-
- /** A limit after which a new reservation should be done. */
- private long newReservationLine;
-
- /** Whether reserveFuture already processed or not. */
- private boolean isReserveFutResultsProcessed = true;
-
- /** default 80% */
- private volatile int percentage;
-
- /** Sequence batch size */
+ /** Sequence batch size */
private volatile int batchSize;
/** Synchronization lock. */
private final Lock lock = new ReentrantLock();
- /** Reservation future. */
- private IgniteInternalFuture<?> reservationFut = new GridFinishedFuture<>();
+ /** Await condition. */
+ private Condition cond = lock.newCondition();
+
+ /** Callable for execution {@link #incrementAndGet} operation in async and sync mode. */
+ private final Callable<Long> incAndGetCall = internalUpdate(1, true);
+
+ /** Callable for execution {@link #getAndIncrement} operation in async and sync mode. */
+ private final Callable<Long> getAndIncCall = internalUpdate(1, false);
+
+ /** Add and get cache call guard. */
+ private final AtomicBoolean updateGuard = new AtomicBoolean();
/**
* Empty constructor required by {@link Externalizable}.
@@ -122,15 +131,13 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
IgniteInternalCache<GridCacheInternalKey, GridCacheAtomicSequenceValue> seqView,
GridCacheContext ctx,
int batchSize,
- int percentage,
long locVal,
- long upBound) {
+ long upBound)
+ {
assert key != null;
assert seqView != null;
assert ctx != null;
- assert batchSize > 0 : "BatchSize: " + batchSize;
assert locVal <= upBound;
- assert percentage >= 0 && percentage <= 100 : "Percentage: " + percentage;
this.batchSize = batchSize;
this.ctx = ctx;
@@ -139,9 +146,6 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
this.upBound = upBound;
this.locVal = locVal;
this.name = name;
- this.percentage = percentage;
-
- newReservationLine = locVal + (batchSize * percentage / 100);
log = ctx.logger(getClass());
}
@@ -168,7 +172,7 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
/** {@inheritDoc} */
@Override public long incrementAndGet() {
try {
- return internalUpdate(1, true);
+ return internalUpdate(1, incAndGetCall, true);
}
catch (IgniteCheckedException e) {
throw U.convertException(e);
@@ -178,7 +182,7 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
/** {@inheritDoc} */
@Override public long getAndIncrement() {
try {
- return internalUpdate(1, false);
+ return internalUpdate(1, getAndIncCall, false);
}
catch (IgniteCheckedException e) {
throw U.convertException(e);
@@ -190,7 +194,7 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
A.ensure(l > 0, " Parameter mustn't be less then 1: " + l);
try {
- return internalUpdate(l, true);
+ return internalUpdate(l, null, true);
}
catch (IgniteCheckedException e) {
throw U.convertException(e);
@@ -202,7 +206,7 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
A.ensure(l > 0, " Parameter mustn't be less then 1: " + l);
try {
- return internalUpdate(l, false);
+ return internalUpdate(l, null, false);
}
catch (IgniteCheckedException e) {
throw U.convertException(e);
@@ -213,134 +217,162 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
* Synchronous sequence update operation. Will add given amount to the sequence value.
*
* @param l Increment amount.
+ * @param updateCall Cache call that will update sequence reservation count in accordance with l.
* @param updated If {@code true}, will return sequence value after update, otherwise will return sequence value
- * prior to update.
+ * prior to update.
* @return Sequence value.
* @throws IgniteCheckedException If update failed.
*/
@SuppressWarnings("SignalWithoutCorrespondingAwait")
- private long internalUpdate(final long l, final boolean updated) throws IgniteCheckedException {
+ private long internalUpdate(long l, @Nullable Callable<Long> updateCall, boolean updated) throws IgniteCheckedException {
+ checkRemoved();
+
assert l > 0;
- while (true) {
- checkRemoved();
+ lock.lock();
- lock.lock(); // TODO locks here?
+ try {
+ // If reserved range isn't exhausted.
+ if (locVal + l <= upBound) {
+ long curVal = locVal;
- try {
- if (locVal + l >= newReservationLine && isReserveFutResultsProcessed && reservationFut.isDone())
- reservationFut = runAsyncReservation(0);
+ locVal += l;
- // If reserved range isn't exhausted.
- if (locVal + l < upBound) {
- long curVal = locVal;
+ return updated ? locVal : curVal;
+ }
+ }
+ finally {
+ lock.unlock();
+ }
- locVal += l;
+ if (updateCall == null)
+ updateCall = internalUpdate(l, updated);
- return updated ? locVal : curVal;
+ while (true) {
+ if (updateGuard.compareAndSet(false, true)) {
+ try {
+ // This call must be outside lock.
+ return CU.outTx(updateCall, ctx);
}
+ finally {
+ lock.lock();
- if (!isReserveFutResultsProcessed && reservationFut.isDone()) {
- isReserveFutResultsProcessed = true;
+ try {
+ updateGuard.set(false);
- if (locVal + l < reservedUpBound) {
- long curVal = locVal;
+ cond.signalAll();
+ }
+ finally {
+ lock.unlock();
+ }
+ }
+ }
+ else {
+ lock.lock();
- locVal = (locVal + l < reservedBottomBound) ? reservedBottomBound : locVal + l;
+ try {
+ while (locVal >= upBound && updateGuard.get())
+ U.await(cond, 500, MILLISECONDS);
- upBound = reservedUpBound;
+ checkRemoved();
- return updated ? locVal : curVal;
- }
- else {
- long diff = locVal + l - reservedUpBound;
+ // If reserved range isn't exhausted.
+ if (locVal + l <= upBound) {
+ long curVal = locVal;
- long off = (diff / batchSize) * batchSize;
+ locVal += l;
- reservationFut = runAsyncReservation(off);
+ return updated ? locVal : curVal;
}
}
+ finally {
+ lock.unlock();
+ }
}
- finally {
- lock.unlock();
- }
-
- // If reserved range is exhausted.
- reservationFut.get();
}
}
/**
- * Runs async reservation of new range for current node.
+ * Asynchronous sequence update operation. Will add given amount to the sequence value.
*
- * @param off Offset.
- * @return Future.
+ * @param l Increment amount.
+ * @param updateCall Cache call that will update sequence reservation count in accordance with l.
+ * @param updated If {@code true}, will return sequence value after update, otherwise will return sequence value
+ * prior to update.
+ * @return Future indicating sequence value.
+ * @throws IgniteCheckedException If update failed.
*/
- private IgniteInternalFuture<?> runAsyncReservation(final long off) {
- assert off >= 0 : "Offset: " + off;
-
- return ctx.kernalContext().closure().runLocalSafe(new Runnable() {
- @Override public void run() {
- Callable<Void> reserveCall = retryTopologySafe(new Callable<Void>() {
- @Override public Void call() throws Exception {
- try (IgniteInternalTx tx = CU.txStartInternal(ctx, seqView, PESSIMISTIC, REPEATABLE_READ)) {
- GridCacheAtomicSequenceValue seq = seqView.get(key);
-
- checkRemoved();
-
- assert seq != null;
+ @SuppressWarnings("SignalWithoutCorrespondingAwait")
+ private IgniteInternalFuture<Long> internalUpdateAsync(long l, @Nullable Callable<Long> updateCall, boolean updated)
+ throws IgniteCheckedException {
+ checkRemoved();
- long newUpBound = -1;
+ A.ensure(l > 0, " Parameter mustn't be less then 1: " + l);
- lock.lock();
+ lock.lock();
- try {
- assert isReserveFutResultsProcessed;
+ try {
+ // If reserved range isn't exhausted.
+ if (locVal + l <= upBound) {
+ long curVal = locVal;
- isReserveFutResultsProcessed = false;
+ locVal += l;
- long curGlobalVal = seq.get();
+ return new GridFinishedFuture<>(updated ? locVal : curVal);
+ }
+ }
+ finally {
+ lock.unlock();
+ }
- reservedBottomBound = curGlobalVal + off;
+ if (updateCall == null)
+ updateCall = internalUpdate(l, updated);
- newUpBound = reservedBottomBound + batchSize;
+ while (true) {
+ if (updateGuard.compareAndSet(false, true)) {
+ try {
+ // This call must be outside lock.
+ return ctx.closures().callLocalSafe(updateCall, true);
+ }
+ finally {
+ lock.lock();
- reservedUpBound = newUpBound;
+ try {
+ updateGuard.set(false);
- newReservationLine = reservedBottomBound + (batchSize * percentage / 100);
- }
- finally {
- lock.unlock();
- }
+ cond.signalAll();
+ }
+ finally {
+ lock.unlock();
+ }
+ }
+ }
+ else {
+ lock.lock();
- seq.set(newUpBound);
+ try {
+ while (locVal >= upBound && updateGuard.get())
+ U.await(cond, 500, MILLISECONDS);
- seqView.put(key, seq);
+ checkRemoved();
- tx.commit();
- }
- catch (Error | Exception e) {
- U.error(log, "Failed to get and add: " + this, e);
+ // If reserved range isn't exhausted.
+ if (locVal + l <= upBound) {
+ long curVal = locVal;
- throw e;
- }
+ locVal += l;
- return null;
+ return new GridFinishedFuture<>(updated ? locVal : curVal);
}
- });
-
- try {
- CU.outTx(reserveCall, ctx);
}
- catch (IgniteCheckedException e) {
- throw new IgniteException(e);
+ finally {
+ lock.unlock();
}
}
- }, /*sys pool*/ false);
+ }
}
- /**
- * Get local batch size for this sequences.
+ /** Get local batch size for this sequences.
*
* @return Sequence batch size.
*/
@@ -366,25 +398,6 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
}
}
- /** {@inheritDoc} */
- @Override public int reservePercentage() {
- return percentage;
- }
-
- /** {@inheritDoc} */
- @Override public void reservePercentage(int percentage) {
- A.ensure(percentage >= 0 && percentage <= 100, "Invalid reserve percentage: " + percentage);
-
- lock.lock();
-
- try {
- this.percentage = percentage;
- }
- finally {
- lock.unlock();
- }
- }
-
/**
* Check removed status.
*
@@ -452,6 +465,89 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
}
}
+ /**
+ * Method returns callable for execution all update operations in async and sync mode.
+ *
+ * @param l Value will be added to sequence.
+ * @param updated If {@code true}, will return updated value, if {@code false}, will return previous value.
+ * @return Callable for execution in async and sync mode.
+ */
+ @SuppressWarnings("TooBroadScope")
+ private Callable<Long> internalUpdate(final long l, final boolean updated) {
+ return retryTopologySafe(new Callable<Long>() {
+ @Override public Long call() throws Exception {
+ try (IgniteInternalTx tx = CU.txStartInternal(ctx, seqView, PESSIMISTIC, REPEATABLE_READ)) {
+ GridCacheAtomicSequenceValue seq = seqView.get(key);
+
+ checkRemoved();
+
+ assert seq != null;
+
+ long curLocVal;
+
+ long newUpBound;
+
+ lock.lock();
+
+ try {
+ curLocVal = locVal;
+
+ // If local range was already reserved in another thread.
+ if (locVal + l <= upBound) {
+ long retVal = locVal;
+
+ locVal += l;
+
+ return updated ? locVal : retVal;
+ }
+
+ long curGlobalVal = seq.get();
+
+ long newLocVal;
+
+ /* We should use offset because we already reserved left side of range.*/
+ long off = batchSize > 1 ? batchSize - 1 : 1;
+
+ // Calculate new values for local counter, global counter and upper bound.
+ if (curLocVal + l >= curGlobalVal) {
+ newLocVal = curLocVal + l;
+
+ newUpBound = newLocVal + off;
+ }
+ else {
+ newLocVal = curGlobalVal;
+
+ newUpBound = newLocVal + off;
+ }
+
+ locVal = newLocVal;
+ upBound = newUpBound;
+
+ if (updated)
+ curLocVal = newLocVal;
+ }
+ finally {
+ lock.unlock();
+ }
+
+ // Global counter must be more than reserved upper bound.
+ seq.set(newUpBound + 1);
+
+ seqView.put(key, seq);
+
+ tx.commit();
+
+ return curLocVal;
+ }
+ catch (Error | Exception e) {
+ U.error(log, "Failed to get and add: " + this, e);
+
+ throw e;
+ }
+ }
+ });
+ }
+
/** {@inheritDoc} */
@Override public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(ctx.kernalContext());
http://git-wip-us.apache.org/repos/asf/ignite/blob/980df4ea/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAtomicSequenceMultiThreadedAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAtomicSequenceMultiThreadedAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAtomicSequenceMultiThreadedAbstractTest.java
deleted file mode 100644
index 10b57e8..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAtomicSequenceMultiThreadedAbstractTest.java
+++ /dev/null
@@ -1,579 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.cache.datastructures;
-
-import java.util.Random;
-import java.util.UUID;
-import org.apache.ignite.IgniteAtomicSequence;
-import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.configuration.AtomicConfiguration;
-import org.apache.ignite.internal.processors.datastructures.GridCacheAtomicSequenceImpl;
-import org.apache.ignite.internal.util.lang.GridAbsPredicate;
-import org.apache.ignite.internal.util.typedef.F;
-import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.testframework.GridTestUtils;
-
-/**
- * Cache partitioned multi-threaded tests.
- */
-public abstract class GridCacheAtomicSequenceMultiThreadedAbstractTest extends IgniteAtomicsAbstractTest {
- /** Number of threads for multithreaded test. */
- private static final int THREAD_NUM = 30;
-
- /** Number of iterations per thread for multithreaded test. */
- private static final int ITERATION_NUM = 10000;
-
- /** {@inheritDoc} */
- @Override protected int gridCount() {
- return 1;
- }
-
- /** {@inheritDoc} */
- @Override protected AtomicConfiguration atomicConfiguration() {
- AtomicConfiguration cfg = super.atomicConfiguration();
-
- cfg.setBackups(1);
- cfg.setAtomicSequenceReserveSize(10);
-
- return cfg;
- }
-
- /** @throws Exception If failed. */
- public void testValues() throws Exception {
- String seqName = UUID.randomUUID().toString();
-
- final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
-
- // Local reservations.
- assertEquals(1, seq.incrementAndGet());
- assertEquals(1, seq.getAndIncrement()); // Seq = 2
- assertEquals(3L, seq.incrementAndGet());
- assertEquals(3L, seq.getAndIncrement()); // Seq=4
-
- assertEquals(4, seq.getAndAdd(3));
- assertEquals(9, seq.addAndGet(2));
-
- assertEquals(new Long(9L), U.field(seq, "locVal"));
- assertEquals(new Long(10L), U.field(seq, "upBound"));
-
- // Cache calls.
- assertEquals(10, seq.incrementAndGet());
-
- assertEquals(new Long(10L), U.field(seq, "locVal"));
- assertEquals(new Long(20L), U.field(seq, "upBound"));
-
- seq.addAndGet(9);
-
- assertEquals(new Long(19L), U.field(seq, "locVal"));
- assertEquals(new Long(20L), U.field(seq, "upBound"));
-
- assertEquals(20L, seq.incrementAndGet());
-
- assertEquals(new Long(20L), U.field(seq, "locVal"));
- assertEquals(new Long(30L), U.field(seq, "upBound"));
-
- seq.addAndGet(9);
-
- assertEquals(new Long(29L), U.field(seq, "locVal"));
- assertEquals(new Long(30L), U.field(seq, "upBound"));
-
- assertEquals(29, seq.getAndIncrement());
-
- assertEquals(new Long(30L), U.field(seq, "locVal"));
- assertEquals(new Long(40L), U.field(seq, "upBound"));
-
- seq.addAndGet(9);
-
- assertEquals(new Long(39L), U.field(seq, "locVal"));
- assertEquals(new Long(40L), U.field(seq, "upBound"));
-
- assertEquals(39L, seq.getAndIncrement());
-
- assertEquals(new Long(40L), U.field(seq, "locVal"));
- assertEquals(new Long(50L), U.field(seq, "upBound"));
-
- seq.addAndGet(9);
-
- assertEquals(new Long(49L), U.field(seq, "locVal"));
- assertEquals(new Long(50L), U.field(seq, "upBound"));
-
- assertEquals(50, seq.addAndGet(1));
-
- assertEquals(new Long(50L), U.field(seq, "locVal"));
- assertEquals(new Long(60L), U.field(seq, "upBound"));
-
- seq.addAndGet(9);
-
- assertEquals(new Long(59L), U.field(seq, "locVal"));
- assertEquals(new Long(60L), U.field(seq, "upBound"));
-
- assertEquals(59, seq.getAndAdd(1));
-
- assertEquals(new Long(60L), U.field(seq, "locVal"));
- assertEquals(new Long(70L), U.field(seq, "upBound"));
- }
-
- /** @throws Exception If failed. */
- public void testValues2() throws Exception {
- String seqName = UUID.randomUUID().toString();
-
- final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 10, true);
-
- assertSeqFields(seq, /*locVal*/ 10, /*upBound*/ 20, /*resBound*/ 18, /*resBottomBound*/ 0, /*resUpBound*/ 0);
-
- assertEquals(17, seq.addAndGet(7));
-
- assertSeqFields(seq, /*locVal*/ 17, /*upBound*/ 20, /*resBound*/ 18, /*resBottomBound*/ 0, /*resUpBound*/ 0);
-
- assertEquals(18, seq.incrementAndGet());
-
- GridTestUtils.waitForCondition(new GridAbsPredicate() {
- @Override public boolean apply() {
- return !F.eq(U.field(seq, "isReserveFutResultsProcessed"), true);
- }
- }, 1000);
-
- assertSeqFields(seq, /*locVal*/ 18, /*upBound*/ 20, /*resBound*/ 28, /*resBottomBound*/ 20, /*resUpBound*/ 30);
-
- assertEquals(19, seq.incrementAndGet());
-
- assertSeqFields(seq, /*locVal*/ 19, /*upBound*/ 20, /*resBound*/ 28, /*resBottomBound*/ 20, /*resUpBound*/ 30);
-
- assertEquals(20, seq.incrementAndGet());
-
- assertSeqFields(seq, /*locVal*/ 20, /*upBound*/ 30, /*resBound*/ 28, /*resBottomBound*/ 20, /*resUpBound*/ 30);
- }
-
- /** @throws Exception If failed. */
- public void testValuesPercentage50() throws Exception {
- String seqName = UUID.randomUUID().toString();
-
- final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
-
- seq.reservePercentage(50);
-
- assertSeqFields(seq, /*locVal*/ 0, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
-
- // Exhaust a first reserved range to get recalculated values according to new reserve percentage.
- assertEquals(10, seq.addAndGet(10));
-
- assertSeqFields(seq, /*locVal*/ 10, /*upBound*/ 20, /*resBound*/ 15, /*resBottomBound*/ 10, /*resUpBound*/ 20);
-
- assertEquals(15, seq.addAndGet(5));
-
- GridTestUtils.waitForCondition(new GridAbsPredicate() {
- @Override public boolean apply() {
- return !F.eq(U.field(seq, "isReserveFutResultsProcessed"), true);
- }
- }, 1000);
-
- assertSeqFields(seq, /*locVal*/ 15, /*upBound*/ 20, /*resBound*/ 25, /*resBottomBound*/ 20, /*resUpBound*/ 30);
- }
-
- /** @throws Exception If failed. */
- public void testValuesPercentage0() throws Exception {
- String seqName = UUID.randomUUID().toString();
-
- final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
-
- seq.reservePercentage(0);
-
- assertSeqFields(seq, /*locVal*/ 0, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
-
- // Exhaust a first reserved range to get recalculated values according to new reserve percentage.
- assertEquals(10, seq.addAndGet(10));
-
- assertSeqFields(seq, /*locVal*/ 10, /*upBound*/ 20, /*resBound*/ 10, /*resBottomBound*/ 10, /*resUpBound*/ 20);
-
- assertEquals(11, seq.addAndGet(1));
-
- GridTestUtils.waitForCondition(new GridAbsPredicate() {
- @Override public boolean apply() {
- return !F.eq(U.field(seq, "isReserveFutResultsProcessed"), true);
- }
- }, 1000);
-
- assertSeqFields(seq, /*locVal*/ 11, /*upBound*/ 20, /*resBound*/ 20, /*resBottomBound*/ 20, /*resUpBound*/ 30);
-
- assertEquals(12, seq.incrementAndGet());
-
- assertSeqFields(seq, /*locVal*/ 12, /*upBound*/ 20, /*resBound*/ 20, /*resBottomBound*/ 20, /*resUpBound*/ 30);
-
- assertEquals(20, seq.addAndGet(8));
-
- assertSeqFields(seq, /*locVal*/ 20, /*upBound*/ 30, /*resBound*/ 20, /*resBottomBound*/ 20, /*resUpBound*/ 30);
- }
-
- /** @throws Exception If failed. */
- public void testValuesPercentage100() throws Exception {
- String seqName = UUID.randomUUID().toString();
-
- final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
-
- seq.reservePercentage(100);
-
- assertSeqFields(seq, /*locVal*/ 0, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
-
- // Exhaust a first reserved range to get recalculated values according to new reserve percentage.
- assertEquals(10, seq.addAndGet(10));
-
- assertSeqFields(seq, /*locVal*/ 10, /*upBound*/ 20, /*resBound*/ 20, /*resBottomBound*/ 10, /*resUpBound*/ 20);
-
- assertEquals(19, seq.addAndGet(9));
-
- assertSeqFields(seq, /*locVal*/ 19, /*upBound*/ 20, /*resBound*/ 20, /*resBottomBound*/ 10, /*resUpBound*/ 20);
-
- assertEquals(20, seq.incrementAndGet());
-
- assertSeqFields(seq, /*locVal*/ 20, /*upBound*/ 30, /*resBound*/ 30, /*resBottomBound*/ 20, /*resUpBound*/ 30);
- }
-
- /** @throws Exception If failed. */
- public void testValuesDoubleReservation() throws Exception {
- String seqName = UUID.randomUUID().toString();
-
- final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
-
- assertSeqFields(seq, /*locVal*/ 0, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
-
- assertEquals(30, seq.addAndGet(30));
- }
-
- /** @throws Exception If failed. */
- public void testValues2Nodes() throws Exception {
- String seqName = UUID.randomUUID().toString();
-
- startGrid(1);
-
- try {
- final GridCacheAtomicSequenceImpl seq1 = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
- final GridCacheAtomicSequenceImpl seq2 = (GridCacheAtomicSequenceImpl)grid(1).atomicSequence(seqName, 0, false);
-
- assertSeqFields(seq1, /*locVal*/ 0, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
- assertSeqFields(seq2, /*locVal*/ 10, /*upBound*/ 20, /*resBound*/ 18, /*resBottomBound*/ 0, /*resUpBound*/ 0);
-
- assertEquals(1, seq1.incrementAndGet());
- assertEquals(11, seq2.incrementAndGet());
-
- assertSeqFields(seq1, /*locVal*/ 1, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
- assertSeqFields(seq2, /*locVal*/ 11, /*upBound*/ 20, /*resBound*/ 18, /*resBottomBound*/ 0, /*resUpBound*/ 0);
-
- assertEquals(7, seq1.addAndGet(6));
- assertEquals(17, seq2.addAndGet(6));
-
- assertSeqFields(seq1, /*locVal*/ 7, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0);
- assertSeqFields(seq2, /*locVal*/ 17, /*upBound*/ 20, /*resBound*/ 18, /*resBottomBound*/ 0, /*resUpBound*/ 0);
-
- // New reservation (reverse order)
- assertEquals(18, seq2.incrementAndGet());
-
- assertTrue(GridTestUtils.waitForCondition(new GridAbsPredicate() {
- @Override public boolean apply() {
- return !F.eq(U.field(seq2, "isReserveFutResultsProcessed"), true);
- }
- }, 1000));
-
- assertEquals(8, seq1.incrementAndGet());
-
- assertTrue(GridTestUtils.waitForCondition(new GridAbsPredicate() {
- @Override public boolean apply() {
- return !F.eq(U.field(seq1, "isReserveFutResultsProcessed"), true);
- }
- }, 1000));
-
- assertSeqFields(seq1, /*locVal*/ 8, /*upBound*/ 10, /*resBound*/ 38, /*resBottomBound*/ 30, /*resUpBound*/ 40);
- assertSeqFields(seq2, /*locVal*/ 18, /*upBound*/ 20, /*resBound*/ 28, /*resBottomBound*/ 20, /*resUpBound*/ 30);
-
- assertEquals(30, seq1.addAndGet(7));
- assertEquals(20, seq2.addAndGet(2));
-
- assertSeqFields(seq1, /*locVal*/ 30, /*upBound*/ 40, /*resBound*/ 38, /*resBottomBound*/ 30, /*resUpBound*/ 40);
- assertSeqFields(seq2, /*locVal*/ 20, /*upBound*/ 30, /*resBound*/ 28, /*resBottomBound*/ 20, /*resUpBound*/ 30);
- }
- finally {
- stopGrid(1);
- }
- }
-
- /**
- * @param seq Sequence.
- * @param locVal Local value.
- * @param upBound Up bound.
- * @param newReservationLine Reservation bnound.
- * @param reservedBottomBound Reservation bottom bound.
- * @param reservedUpBound Reservation up bound.
- */
- private void assertSeqFields(GridCacheAtomicSequenceImpl seq, long locVal, long upBound, long newReservationLine,
- long reservedBottomBound, long reservedUpBound) {
- assertEquals(new Long(locVal), U.field(seq, "locVal"));
- assertEquals(new Long(upBound), U.field(seq, "upBound"));
- assertEquals(new Long(newReservationLine), U.field(seq, "newReservationLine"));
- assertEquals(new Long(reservedBottomBound), U.field(seq, "reservedBottomBound"));
- assertEquals(new Long(reservedUpBound), U.field(seq, "reservedUpBound"));
- }
-
- /** @throws Exception If failed. */
- public void testValues2NodesDoubleReservation() throws Exception {
- String seqName = UUID.randomUUID().toString();
-
- startGrid(1);
-
- try {
- final GridCacheAtomicSequenceImpl seq1 = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
- final GridCacheAtomicSequenceImpl seq2 = (GridCacheAtomicSequenceImpl)grid(1).atomicSequence(seqName, 0, false);
-
- assertEquals(1, seq1.incrementAndGet());
- assertEquals(11, seq2.incrementAndGet());
-
- assertEquals(new Long(1L), U.field(seq1, "locVal"));
- assertEquals(new Long(10L), U.field(seq1, "upBound"));
- assertEquals(new Long(11L), U.field(seq2, "locVal"));
- assertEquals(new Long(20L), U.field(seq2, "upBound"));
-
- assertEquals(31, seq2.addAndGet(20));
-
- assertEquals(new Long(1L), U.field(seq1, "locVal"));
- assertEquals(new Long(10L), U.field(seq1, "upBound"));
- assertEquals(new Long(31L), U.field(seq2, "locVal"));
- assertEquals(new Long(40L), U.field(seq2, "upBound"));
-
- // Jump
- assertEquals(40, seq1.addAndGet(23));
- }
- finally {
- stopGrid(1);
- }
- }
-
- /** @throws Exception If failed. */
- public void testUpdatedSync() throws Exception {
- checkUpdate(true);
- }
-
- /** @throws Exception If failed. */
- public void testPreviousSync() throws Exception {
- checkUpdate(false);
- }
-
- /** @throws Exception If failed. */
- public void testIncrementAndGet() throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.incrementAndGet();
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /** @throws Exception If failed. */
- public void testIncrementAndGet2Nodes() throws Exception {
- startGrid(1);
-
- try {
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq1 = grid(0).atomicSequence(seqName, 0L, true);
- final IgniteAtomicSequence seq2 = grid(1).atomicSequence(seqName, 0L, true);
-
- multithreaded(new Runnable() {
- @Override public void run() {
- for (int i = 0; i < ITERATION_NUM; i++) {
- if (i % 2 == 0)
- seq1.incrementAndGet();
- else
- seq2.incrementAndGet();
- }
- }
- }, THREAD_NUM);
-
- long seq1Val = seq1.get();
- long seq2Val = seq2.get();
-
- assertEquals(ITERATION_NUM * THREAD_NUM + (seq1Val < seq2Val ? 0 : 10), seq1Val);
- assertEquals(ITERATION_NUM * THREAD_NUM + (seq1Val < seq2Val ? 10 : 0), seq2Val);
- }
- finally {
- stopGrid(1);
- }
- }
-
- /** @throws Exception If failed. */
- public void testGetAndIncrement() throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.getAndIncrement();
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /** @throws Exception If failed. */
- public void testAddAndGet() throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.addAndGet(5);
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(5 * ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /** @throws Exception If failed. */
- public void testGetAndAdd() throws Exception {
- checkGetAndAdd(5);
- }
-
- /** @throws Exception If failed. */
- public void testGetAndAdd2() throws Exception {
- checkGetAndAdd(3);
- }
-
- /**
- * @param val Value.
- * @throws Exception If failed.
- */
- private void checkGetAndAdd(final int val) throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.getAndAdd(val);
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(val * ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /** @throws Exception If failed. */
- public void testMixed1() throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.incrementAndGet();
- t.getAndIncrement();
- t.incrementAndGet();
- t.getAndIncrement();
- t.getAndAdd(3);
- t.addAndGet(3);
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(10 * ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /** @throws Exception If failed. */
- public void testMixed2() throws Exception {
- // Random sequence names.
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
- @Override public void apply(IgniteAtomicSequence t) {
- t.getAndAdd(2);
- t.addAndGet(3);
- t.addAndGet(5);
- t.getAndAdd(7);
- }
- }, seq, ITERATION_NUM, THREAD_NUM);
-
- assertEquals(17 * ITERATION_NUM * THREAD_NUM, seq.get());
- }
-
- /**
- * Executes given closure in a given number of threads given number of times.
- *
- * @param c Closure to execute.
- * @param seq Sequence to pass into closure.
- * @param cnt Count of iterations per thread.
- * @param threadCnt Thread count.
- * @throws Exception If failed.
- */
- protected void runSequenceClosure(final GridInUnsafeClosure<IgniteAtomicSequence> c,
- final IgniteAtomicSequence seq, final int cnt, final int threadCnt) throws Exception {
- multithreaded(new Runnable() {
- @Override public void run() {
- try {
- for (int i = 0; i < cnt; i++)
- c.apply(seq);
- }
- catch (IgniteCheckedException e) {
- throw new RuntimeException(e);
- }
- }
- }, threadCnt);
- }
-
- /**
- * @param updated Whether use updated values.
- * @throws Exception If failed.
- */
- @SuppressWarnings("IfMayBeConditional")
- private void checkUpdate(boolean updated) throws Exception {
- String seqName = UUID.randomUUID().toString();
-
- final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
-
- long curVal = 0;
-
- Random r = new Random();
-
- for (int i = 0; i < ITERATION_NUM; i++) {
- long delta = r.nextInt(10) + 1;
-
- long retVal = updated ? seq.addAndGet(delta) : seq.getAndAdd(delta);
-
- assertEquals(updated ? curVal + delta : curVal, retVal);
-
- curVal += delta;
- }
- }
-
- /**
- * Closure that throws exception.
- *
- * @param <E> Closure argument type.
- */
- private abstract static class GridInUnsafeClosure<E> {
- public abstract void apply(E p) throws IgniteCheckedException;
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/980df4ea/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
index e7a477f..d988b2c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
@@ -18,12 +18,12 @@
package org.apache.ignite.internal.processors.cache.datastructures;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.Callable;
-
import org.apache.ignite.IgniteAtomicSequence;
import org.apache.ignite.configuration.AtomicConfiguration;
import org.apache.ignite.configuration.CacheConfiguration;
@@ -36,7 +36,6 @@ import org.apache.ignite.internal.processors.datastructures.GridCacheInternalKey
import org.apache.ignite.internal.util.typedef.G;
import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.transactions.Transaction;
-import org.eclipse.jetty.util.ConcurrentHashSet;
import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.cache.CacheMode.PARTITIONED;
@@ -120,7 +119,7 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
assertEquals(BATCH_SIZE, seq.batchSize());
}
- assertEquals(gridCount(), G.allGrids().size());
+ assertEquals(1, G.allGrids().size());
}
/** {@inheritDoc} */
@@ -309,29 +308,9 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
* @throws Exception If failed.
*/
public void testMultiThreadedSequenceIntegrity() throws Exception {
- multiThreadedSequenceIntegrity(/*batchSize*/ 1, /*percentage*/ 30, /*initVal*/0);
- multiThreadedSequenceIntegrity(/*batchSize*/ 7, /*percentage*/ 0, /*initVal*/-1500);
- multiThreadedSequenceIntegrity(/*batchSize*/ 3, /*percentage*/ 100, /*initVal*/345);
- }
-
- /**
- * @throws Exception If failed.
- */
- public void testMultiNodeSequenceIntegrity() throws Exception {
- if (gridCount() < 2)
- return;
-
- multiNodeSequenceIntegrity(/*batchSize*/ 1, /*percentage*/ 80, /*initVal*/0);
- multiNodeSequenceIntegrity(/*batchSize*/ 1, /*percentage*/ 0, /*initVal*/-11);
- multiNodeSequenceIntegrity(/*batchSize*/ 1, /*percentage*/ 100, /*initVal*/183);
-
- multiNodeSequenceIntegrity(/*batchSize*/ 7, /*percentage*/ 20, /*initVal*/83);
- multiNodeSequenceIntegrity(/*batchSize*/ 7, /*percentage*/ 0, /*initVal*/-17);
- multiNodeSequenceIntegrity(/*batchSize*/ 7, /*percentage*/ 100, /*initVal*/11);
-
- multiNodeSequenceIntegrity(/*batchSize*/ 11, /*percentage*/ 50, /*initVal*/-7);
- multiNodeSequenceIntegrity(/*batchSize*/ 11, /*percentage*/ 0, /*initVal*/55);
- multiNodeSequenceIntegrity(/*batchSize*/ 11, /*percentage*/ 100, /*initVal*/22);
+ multiThreadedSequenceIntegrity(1, 0);
+ multiThreadedSequenceIntegrity(7, -1500);
+ multiThreadedSequenceIntegrity(3, 345);
}
/**
@@ -385,8 +364,8 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
* Sequence get and increment.
*
* @param seq Sequence for test.
- * @return Result of operation.
* @throws Exception If failed.
+ * @return Result of operation.
*/
private long getAndIncrement(IgniteAtomicSequence seq) throws Exception {
long locSeqVal = seq.get();
@@ -402,8 +381,8 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
* Sequence add and increment
*
* @param seq Sequence for test.
- * @return Result of operation.
* @throws Exception If failed.
+ * @return Result of operation.
*/
private long incrementAndGet(IgniteAtomicSequence seq) throws Exception {
long locSeqVal = seq.get();
@@ -420,8 +399,8 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
*
* @param seq Sequence for test.
* @param l Number of added elements.
- * @return Result of operation.
* @throws Exception If failed.
+ * @return Result of operation.
*/
private long addAndGet(IgniteAtomicSequence seq, long l) throws Exception {
long locSeqVal = seq.get();
@@ -438,8 +417,8 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
*
* @param seq Sequence for test.
* @param l Number of added elements.
- * @return Result of operation.
* @throws Exception If failed.
+ * @return Result of operation.
*/
private long getAndAdd(IgniteAtomicSequence seq, long l) throws Exception {
long locSeqVal = seq.get();
@@ -452,10 +431,10 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
}
/**
- * Sequence integrity.
+ * Sequence integrity.
*
* @param batchSize Sequence batch size.
- * @param initVal Sequence initial value.
+ * @param initVal Sequence initial value.
* @throws Exception If test fail.
*/
private void sequenceIntegrity(int batchSize, long initVal) throws Exception {
@@ -486,24 +465,24 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
}
/**
- * Multi-threaded integrity.
+ * Multi-threaded integrity.
*
* @param batchSize Sequence batch size.
- * @param initVal Sequence initial value.
+ * @param initVal Sequence initial value.
* @throws Exception If test fail.
*/
- private void multiThreadedSequenceIntegrity(int batchSize, int percentage, long initVal) throws Exception {
+ private void multiThreadedSequenceIntegrity(int batchSize, long initVal) throws Exception {
// Random sequence names.
String locSeqName = UUID.randomUUID().toString();
// Sequence.
- final IgniteAtomicSequence locSeq = grid().atomicSequence(locSeqName, initVal, true);
+ final IgniteAtomicSequence locSeq = grid().atomicSequence(locSeqName, initVal,
+ true);
locSeq.batchSize(batchSize);
- locSeq.reservePercentage(percentage);
// Result set.
- final Set<Long> resSet = new ConcurrentHashSet<>();
+ final Set<Long> resSet = Collections.synchronizedSet(new HashSet<Long>());
// Get sequence value and try to put it result set.
for (int i = 0; i < MAX_LOOPS_NUM; i++) {
@@ -542,6 +521,7 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
resSet.add(val);
+
if (i % 100 == 0)
info("Finished iteration 2: " + i);
}
@@ -559,51 +539,6 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends IgniteAtomics
}
/**
- * Multi-threaded integrity.
- *
- * @param batchSize Sequence batch size.
- * @param initVal Sequence initial value.
- * @throws Exception If test fail.
- */
- private void multiNodeSequenceIntegrity(int batchSize, int percentage, long initVal) throws Exception {
- // Random sequence names.
- String locSeqName = UUID.randomUUID().toString();
-
- // Sequences.
- final IgniteAtomicSequence[] locSeqs = new IgniteAtomicSequence[3];
-
- for (int i = 0; i < locSeqs.length; i++) {
- locSeqs[i] = grid(i).atomicSequence(locSeqName, initVal, true);
-
- locSeqs[i].batchSize(batchSize);
-
- locSeqs[i].reservePercentage(percentage);
- }
-
- final Set<Long> resSet = new ConcurrentHashSet<>();
-
- multithreaded(
- new Callable() {
- @Nullable @Override public Object call() throws Exception {
- // Get sequence value and try to put it result set.
- for (int i = 0; i < MAX_LOOPS_NUM; i++) {
- Long val = locSeqs[i % locSeqs.length].getAndIncrement();
-
- assert !resSet.contains(val) : "Element already in set : " + val;
-
- resSet.add(val);
- }
-
- return null;
- }
- }, THREAD_NUM);
-
- assert resSet.size() == MAX_LOOPS_NUM * THREAD_NUM;
-
- removeSequence(locSeqName);
- }
-
- /**
* Test sequence integrity.
*
* @param seq Sequence for test.
http://git-wip-us.apache.org/repos/asf/ignite/blob/980df4ea/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
index ac38fd5..945650d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
@@ -17,17 +17,324 @@
package org.apache.ignite.internal.processors.cache.datastructures.partitioned;
+import java.util.Random;
+import java.util.UUID;
+import org.apache.ignite.IgniteAtomicSequence;
+import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.cache.CacheMode;
-import org.apache.ignite.internal.processors.cache.datastructures.GridCacheAtomicSequenceMultiThreadedAbstractTest;
+import org.apache.ignite.configuration.AtomicConfiguration;
+import org.apache.ignite.internal.processors.cache.datastructures.IgniteAtomicsAbstractTest;
+import org.apache.ignite.internal.processors.datastructures.GridCacheAtomicSequenceImpl;
+import org.apache.ignite.internal.util.typedef.internal.U;
import static org.apache.ignite.cache.CacheMode.PARTITIONED;
/**
* Cache partitioned multi-threaded tests.
*/
-public class GridCachePartitionedAtomicSequenceMultiThreadedTest extends GridCacheAtomicSequenceMultiThreadedAbstractTest {
+public class GridCachePartitionedAtomicSequenceMultiThreadedTest extends IgniteAtomicsAbstractTest {
+ /** Number of threads for multithreaded test. */
+ private static final int THREAD_NUM = 30;
+
+ /** Number of iterations per thread for multithreaded test. */
+ private static final int ITERATION_NUM = 4000;
+
/** {@inheritDoc} */
@Override protected CacheMode atomicsCacheMode() {
return PARTITIONED;
}
-}
+
+ /** {@inheritDoc} */
+ @Override protected int gridCount() {
+ return 1;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected AtomicConfiguration atomicConfiguration() {
+ AtomicConfiguration cfg = super.atomicConfiguration();
+
+ cfg.setBackups(1);
+ cfg.setAtomicSequenceReserveSize(10);
+
+ return cfg;
+ }
+
+ /** @throws Exception If failed. */
+ public void testValues() throws Exception {
+ String seqName = UUID.randomUUID().toString();
+
+ final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true);
+
+ // Local reservations.
+ assertEquals(1, seq.incrementAndGet());
+ assertEquals(1, seq.getAndIncrement()); // Seq = 2
+ assertEquals(3L, seq.incrementAndGet());
+ assertEquals(3L, seq.getAndIncrement()); // Seq=4
+
+ assertEquals(4, seq.getAndAdd(3));
+ assertEquals(9, seq.addAndGet(2));
+
+ assertEquals(new Long(9L), U.field(seq, "locVal"));
+ assertEquals(new Long(9L), U.field(seq, "upBound"));
+
+ // Cache calls.
+ assertEquals(10, seq.incrementAndGet());
+
+ assertEquals(new Long(10L), U.field(seq, "locVal"));
+ assertEquals(new Long(19L), U.field(seq, "upBound"));
+
+ seq.addAndGet(9);
+
+ assertEquals(new Long(19L), U.field(seq, "locVal"));
+ assertEquals(new Long(19L), U.field(seq, "upBound"));
+
+ assertEquals(20L, seq.incrementAndGet());
+
+ assertEquals(new Long(20L), U.field(seq, "locVal"));
+ assertEquals(new Long(29L), U.field(seq, "upBound"));
+
+ seq.addAndGet(9);
+
+ assertEquals(new Long(29L), U.field(seq, "locVal"));
+ assertEquals(new Long(29L), U.field(seq, "upBound"));
+
+ assertEquals(29, seq.getAndIncrement());
+
+ assertEquals(new Long(30L), U.field(seq, "locVal"));
+ assertEquals(new Long(39L), U.field(seq, "upBound"));
+
+ seq.addAndGet(9);
+
+ assertEquals(new Long(39L), U.field(seq, "locVal"));
+ assertEquals(new Long(39L), U.field(seq, "upBound"));
+
+ assertEquals(39L, seq.getAndIncrement());
+
+ assertEquals(new Long(40L), U.field(seq, "locVal"));
+ assertEquals(new Long(49L), U.field(seq, "upBound"));
+
+ seq.addAndGet(9);
+
+ assertEquals(new Long(49L), U.field(seq, "locVal"));
+ assertEquals(new Long(49L), U.field(seq, "upBound"));
+
+ assertEquals(50, seq.addAndGet(1));
+
+ assertEquals(new Long(50L), U.field(seq, "locVal"));
+ assertEquals(new Long(59L), U.field(seq, "upBound"));
+
+ seq.addAndGet(9);
+
+ assertEquals(new Long(59L), U.field(seq, "locVal"));
+ assertEquals(new Long(59L), U.field(seq, "upBound"));
+
+ assertEquals(59, seq.getAndAdd(1));
+
+ assertEquals(new Long(60L), U.field(seq, "locVal"));
+ assertEquals(new Long(69L), U.field(seq, "upBound"));
+ }
+
+ /** @throws Exception If failed. */
+ public void testUpdatedSync() throws Exception {
+ checkUpdate(true);
+ }
+
+ /** @throws Exception If failed. */
+ public void testPreviousSync() throws Exception {
+ checkUpdate(false);
+ }
+
+ /** @throws Exception If failed. */
+ public void testIncrementAndGet() throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.incrementAndGet();
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /** @throws Exception If failed. */
+ public void testIncrementAndGetAsync() throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.incrementAndGet();
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /** @throws Exception If failed. */
+ public void testGetAndIncrement() throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.getAndIncrement();
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /** @throws Exception If failed. */
+ public void testGetAndIncrementAsync() throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.getAndIncrement();
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /** @throws Exception If failed. */
+ public void testAddAndGet() throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.addAndGet(5);
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(5 * ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /** @throws Exception If failed. */
+ public void testGetAndAdd() throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.getAndAdd(5);
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(5 * ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /** @throws Exception If failed. */
+ public void testMixed1() throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.incrementAndGet();
+ t.getAndIncrement();
+ t.incrementAndGet();
+ t.getAndIncrement();
+ t.getAndAdd(3);
+ t.addAndGet(3);
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(10 * ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /** @throws Exception If failed. */
+ public void testMixed2() throws Exception {
+ // Random sequence names.
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ runSequenceClosure(new GridInUnsafeClosure<IgniteAtomicSequence>() {
+ @Override public void apply(IgniteAtomicSequence t) {
+ t.getAndAdd(2);
+ t.addAndGet(3);
+ t.addAndGet(5);
+ t.getAndAdd(7);
+ }
+ }, seq, ITERATION_NUM, THREAD_NUM);
+
+ assertEquals(17 * ITERATION_NUM * THREAD_NUM, seq.get());
+ }
+
+ /**
+ * Executes given closure in a given number of threads given number of times.
+ *
+ * @param c Closure to execute.
+ * @param seq Sequence to pass into closure.
+ * @param cnt Count of iterations per thread.
+ * @param threadCnt Thread count.
+ * @throws Exception If failed.
+ */
+ protected void runSequenceClosure(final GridInUnsafeClosure<IgniteAtomicSequence> c,
+ final IgniteAtomicSequence seq, final int cnt, final int threadCnt) throws Exception {
+ multithreaded(new Runnable() {
+ @Override public void run() {
+ try {
+ for (int i = 0; i < cnt; i++)
+ c.apply(seq);
+ }
+ catch (IgniteCheckedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }, threadCnt);
+ }
+
+ /**
+ * @param updated Whether use updated values.
+ * @throws Exception If failed.
+ */
+ @SuppressWarnings("IfMayBeConditional")
+ private void checkUpdate(boolean updated) throws Exception {
+ String seqName = UUID.randomUUID().toString();
+
+ final IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0L, true);
+
+ long curVal = 0;
+
+ Random r = new Random();
+
+ for (int i = 0; i < ITERATION_NUM; i++) {
+ long delta = r.nextInt(10) + 1;
+
+ long retVal = updated ? seq.addAndGet(delta) : seq.getAndAdd(delta);
+
+ assertEquals(updated ? curVal + delta : curVal, retVal);
+
+ curVal += delta;
+ }
+ }
+
+ /**
+ * Closure that throws exception.
+ *
+ * @param <E> Closure argument type.
+ */
+ private abstract static class GridInUnsafeClosure<E> {
+ public abstract void apply(E p) throws IgniteCheckedException;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/980df4ea/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedSequenceApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedSequenceApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedSequenceApiSelfTest.java
index ae03348..adc2ab3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedSequenceApiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedSequenceApiSelfTest.java
@@ -40,8 +40,4 @@ public class GridCachePartitionedSequenceApiSelfTest extends GridCacheSequenceAp
return atomicCfg;
}
-
- @Override protected int gridCount() {
- return 3;
- }
}
\ No newline at end of file
[12/34] ignite git commit: IGNITE-3727 license header
Posted by sb...@apache.org.
IGNITE-3727 license header
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/271619d5
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/271619d5
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/271619d5
Branch: refs/heads/ignite-3727-2
Commit: 271619d5d50aadd6f6de418725d81f53819953f2
Parents: a6980ab
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Thu Sep 8 20:10:39 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Thu Sep 8 20:10:39 2016 +0300
----------------------------------------------------------------------
.../IssuesIGNITE2539ReproduceTest.java | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/271619d5/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java b/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java
index 72854f7..dc120fb 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/affinity/bugreproduce/IssuesIGNITE2539ReproduceTest.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.cache.affinity.bugreproduce;
import org.apache.ignite.*;
[17/34] ignite git commit: IGNITE-3727 update test, added 2 new cases
Posted by sb...@apache.org.
IGNITE-3727 update test, added 2 new cases
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/190a5c99
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/190a5c99
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/190a5c99
Branch: refs/heads/ignite-3727-2
Commit: 190a5c99fae2fe16afea5a59ba5fd6ca6aef900c
Parents: 8b416e8
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Fri Sep 9 12:26:24 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Fri Sep 9 12:26:24 2016 +0300
----------------------------------------------------------------------
.../messaging/IgniteMessagingSendAsyncTest.java | 83 ++++++++++++++++++--
1 file changed, 75 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/190a5c99/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
index 6f1188e..91ac6e2 100644
--- a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
@@ -33,7 +33,9 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
/**
* Ignite instance for test.
*/
- private Ignite ignite;
+ private Ignite ignite1;
+
+ private Ignite ignite2;
/**
* Topic name.
@@ -47,7 +49,8 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
protected void beforeTest() throws Exception {
super.beforeTest();
- ignite = startGrid(0);
+ ignite1 = startGrid(1);
+ ignite2 = startGrid(2);
}
/**
@@ -57,17 +60,19 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
protected void afterTest() throws Exception {
super.afterTest();
- stopGrid(0);
+ stopAllGrids();
}
/**
* Test for check, that if use default mode, local listeners execute
- * in the same thread.
+ * in the same thread. 1 node in topology.
*/
public void testSendDefaultMode() throws InterruptedException {
+ stopGrid(2);
+
final String msgStr = "message";
- send(ignite.message(), msgStr, new ProcedureApply() {
+ send(ignite1.message(), msgStr, new ProcedureApply() {
@Override
public void apply(String msg, Thread thread) {
Assert.assertEquals(Thread.currentThread(), thread);
@@ -79,12 +84,46 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
/**
* Test for check, that if use async mode, local listeners execute
- * in another thread(through pool).
+ * in another thread(through pool). 1 node in topology.
*/
public void testSendAsyncMode() throws InterruptedException {
+ stopGrid(2);
+
+ final String msgStr = "message";
+
+ send(ignite1.message().withAsync(), msgStr, new ProcedureApply() {
+ @Override
+ public void apply(String msg, Thread thread) {
+ Assert.assertTrue(!Thread.currentThread().equals(thread));
+ Assert.assertEquals(msgStr, msg);
+ }
+ });
+ }
+
+ /**
+ * Test for check, that if use default mode, local listeners execute
+ * in the same thread. 2 node in topology.
+ */
+ public void testSendDefaultMode2Node() throws Exception {
+ final String msgStr = "message";
+
+ sendWith2Node(ignite1.message(), msgStr, new ProcedureApply() {
+ @Override
+ public void apply(String msg, Thread thread) {
+ Assert.assertEquals(Thread.currentThread(), thread);
+ Assert.assertEquals(msgStr, msg);
+ }
+ });
+ }
+
+ /**
+ * Test for check, that if use async mode, local listeners execute
+ * in another thread(through pool). 2 node in topology.
+ */
+ public void testSendAsyncMode2Node() throws Exception {
final String msgStr = "message";
- send(ignite.message().withAsync(), msgStr, new ProcedureApply() {
+ sendWith2Node(ignite1.message().withAsync(), msgStr, new ProcedureApply() {
@Override
public void apply(String msg, Thread thread) {
Assert.assertTrue(!Thread.currentThread().equals(thread));
@@ -96,7 +135,35 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
/**
* @param igniteMsg Ignite message.
* @param msgStr Message string.
- * @param cls callback for compare result.
+ * @param cls Callback for compare result.
+ */
+ public void sendWith2Node(
+ final IgniteMessaging igniteMsg,
+ final String msgStr,
+ final ProcedureApply cls
+ ) throws Exception {
+
+ final CountDownLatch latch = new CountDownLatch(1);
+
+ ignite2.message().localListen(TOPIC, new IgniteBiPredicate<UUID, String>() {
+ @Override
+ public boolean apply(UUID uuid, String msg) {
+ Assert.assertEquals(msgStr, msg);
+ latch.countDown();
+ return false;
+ }
+ });
+
+ send(igniteMsg, msgStr, cls);
+
+ latch.await();
+ }
+
+
+ /**
+ * @param igniteMsg Ignite message.
+ * @param msgStr Message string.
+ * @param cls Callback for compare result.
*/
private void send(
IgniteMessaging igniteMsg,
[05/34] ignite git commit: IGNITE-1678 code + test+ benchmark config
Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/784958bf/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedAtomicSequenceMultiThreadedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedAtomicSequenceMultiThreadedTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedAtomicSequenceMultiThreadedTest.java
new file mode 100644
index 0000000..5a5f013
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedAtomicSequenceMultiThreadedTest.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.datastructures.replicated;
+
+import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.internal.processors.cache.datastructures.GridCacheAtomicSequenceMultiThreadedAbstractTest;
+
+import static org.apache.ignite.cache.CacheMode.REPLICATED;
+
+/**
+ * Cache partitioned multi-threaded tests.
+ */
+public class GridCacheReplicatedAtomicSequenceMultiThreadedTest extends GridCacheAtomicSequenceMultiThreadedAbstractTest {
+ /** {@inheritDoc} */
+ @Override protected CacheMode atomicsCacheMode() {
+ return REPLICATED;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/784958bf/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedSequenceApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedSequenceApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedSequenceApiSelfTest.java
index 31b8fad..d13c525 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedSequenceApiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/replicated/GridCacheReplicatedSequenceApiSelfTest.java
@@ -30,4 +30,8 @@ public class GridCacheReplicatedSequenceApiSelfTest extends GridCacheSequenceApi
@Override protected CacheMode atomicsCacheMode() {
return REPLICATED;
}
+
+ @Override protected int gridCount() {
+ return 3;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/784958bf/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
index d62369c..66a7b00 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
@@ -72,6 +72,7 @@ import org.apache.ignite.internal.processors.cache.datastructures.partitioned.Ig
import org.apache.ignite.internal.processors.cache.datastructures.partitioned.IgnitePartitionedSemaphoreSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.partitioned.IgnitePartitionedSetNoBackupsSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.replicated.GridCacheReplicatedAtomicReferenceApiSelfTest;
+import org.apache.ignite.internal.processors.cache.datastructures.replicated.GridCacheReplicatedAtomicSequenceMultiThreadedTest;
import org.apache.ignite.internal.processors.cache.datastructures.replicated.GridCacheReplicatedAtomicStampedApiSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.replicated.GridCacheReplicatedDataStructuresFailoverSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.replicated.GridCacheReplicatedQueueApiSelfTest;
@@ -166,6 +167,7 @@ public class IgniteCacheDataStructuresSelfTestSuite extends TestSuite {
suite.addTest(new TestSuite(IgniteReplicatedAtomicLongApiSelfTest.class));
suite.addTest(new TestSuite(GridCachePartitionedAtomicSequenceMultiThreadedTest.class));
+ suite.addTest(new TestSuite(GridCacheReplicatedAtomicSequenceMultiThreadedTest.class));
suite.addTest(new TestSuite(GridCachePartitionedAtomicStampedApiSelfTest.class));
suite.addTest(new TestSuite(GridCacheReplicatedAtomicStampedApiSelfTest.class));
http://git-wip-us.apache.org/repos/asf/ignite/blob/784958bf/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteAtomicSequenceBenchmark.java
----------------------------------------------------------------------
diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteAtomicSequenceBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteAtomicSequenceBenchmark.java
new file mode 100644
index 0000000..4b2f085
--- /dev/null
+++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteAtomicSequenceBenchmark.java
@@ -0,0 +1,45 @@
+/*
+ * 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.yardstick.cache;
+
+import java.util.Map;
+import org.apache.ignite.IgniteAtomicSequence;
+import org.apache.ignite.yardstick.IgniteAbstractBenchmark;
+import org.yardstickframework.BenchmarkConfiguration;
+
+/**
+ * Ignite atomic sequence benchmark.
+ */
+public class IgniteAtomicSequenceBenchmark extends IgniteAbstractBenchmark {
+ /** Cache. */
+ private IgniteAtomicSequence seq;
+
+ /** {@inheritDoc} */
+ @Override public void setUp(BenchmarkConfiguration cfg) throws Exception {
+ super.setUp(cfg);
+
+ seq = ignite().atomicSequence("benchSequence", 0, true);
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean test(Map<Object, Object> ctx) throws Exception {
+ seq.incrementAndGet();
+
+ return true;
+ }
+}
[02/34] ignite git commit: IGNITE-613: particular solved problem,
check all node for result
Posted by sb...@apache.org.
IGNITE-613: particular solved problem, check all node for result
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/bb899bdb
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/bb899bdb
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/bb899bdb
Branch: refs/heads/ignite-3727-2
Commit: bb899bdbb253ac51c2ee3cc89e51ec4ab6e88157
Parents: 4e6605f
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Wed Aug 31 16:43:34 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Wed Aug 31 16:43:34 2016 +0300
----------------------------------------------------------------------
.../IgniteCacheReplicatedQuerySelfTest.java | 25 ++++++++++++--------
1 file changed, 15 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/bb899bdb/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java
index e462cce..85a70f3 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java
@@ -30,9 +30,8 @@ import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CountDownLatch;
import javax.cache.Cache;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.IgniteException;
+
+import org.apache.ignite.*;
import org.apache.ignite.cache.CacheMode;
import org.apache.ignite.cache.query.QueryCursor;
import org.apache.ignite.cache.query.SqlQuery;
@@ -285,7 +284,7 @@ public class IgniteCacheReplicatedQuerySelfTest extends IgniteCacheAbstractQuery
*/
private ConcurrentMap<UUID,
Map<Long, GridFutureAdapter<GridCloseableIterator<IgniteBiTuple<CacheKey, CacheValue>>>>>
- distributedQueryManagerQueryItersMap(Ignite g) {
+ distributedQueryManagerQueryItersMap(Ignite g) {
GridCacheContext ctx = ((IgniteKernal)g).internalCache().context();
Field qryItersField = ReflectionUtils.findField(ctx.queries().getClass(), "qryIters");
@@ -355,8 +354,6 @@ public class IgniteCacheReplicatedQuerySelfTest extends IgniteCacheAbstractQuery
* @throws Exception If failed.
*/
public void testNodeLeft() throws Exception {
- fail("https://issues.apache.org/jira/browse/IGNITE-613");
-
Ignite g = startGrid("client");
try {
@@ -375,10 +372,12 @@ public class IgniteCacheReplicatedQuerySelfTest extends IgniteCacheAbstractQuery
assertEquals(0, (int)q.iterator().next().getKey());
- ConcurrentMap<UUID, ConcurrentMap<Long, ?>> map = U.field(((IgniteH2Indexing)U.field(U.field(
- grid(0).context(), "qryProc"), "idx")).mapQueryExecutor(), "qryRess");
+ //need to check all node, where was query execution
+ ConcurrentMap<UUID, ConcurrentMap<Long, ?>> mapNode1 = qryResultMap(0);
+ ConcurrentMap<UUID, ConcurrentMap<Long, ?>> mapNode2 = qryResultMap(1);
+ ConcurrentMap<UUID, ConcurrentMap<Long, ?>> mapNode3 = qryResultMap(2);
- assertEquals(1, map.size());
+ assertEquals(1, mapNode1.size() + mapNode2.size() + mapNode3.size());
final UUID nodeId = g.cluster().localNode().id();
@@ -397,13 +396,19 @@ public class IgniteCacheReplicatedQuerySelfTest extends IgniteCacheAbstractQuery
latch.await();
- assertEquals(0, map.size());
+ assertEquals(0, mapNode1.size());
+ assertEquals(0, mapNode2.size());
+ assertEquals(0, mapNode3.size());
}
finally {
stopGrid("client");
}
}
+ private ConcurrentMap<UUID, ConcurrentMap<Long, ?>> qryResultMap(int node) {
+ return U.field(((IgniteH2Indexing)U.field((Object)U.field(grid(node).context(), "qryProc"), "idx")).mapQueryExecutor(), "qryRess");
+ }
+
/**
* @param cache Cache.
* @throws Exception If check failed.
[31/34] ignite git commit: ignite-3727 import updates
Posted by sb...@apache.org.
ignite-3727 import updates
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/000bb8e4
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/000bb8e4
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/000bb8e4
Branch: refs/heads/ignite-3727-2
Commit: 000bb8e40105329173bb5ca911b88abf29499a92
Parents: ac58bb3
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Thu Dec 15 11:11:47 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Thu Dec 15 11:11:47 2016 +0300
----------------------------------------------------------------------
.../ignite/messaging/GridMessagingSelfTest.java | 21 +++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/000bb8e4/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
index 38e3064..a166c3d 100644
--- a/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
@@ -24,26 +24,33 @@ import java.io.ObjectOutput;
import java.io.Serializable;
import java.net.URL;
import java.net.URLClassLoader;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentLinkedDeque;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.ignite.*;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.IgniteMessaging;
import org.apache.ignite.cluster.ClusterGroup;
import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.managers.discovery.*;
-import org.apache.ignite.internal.processors.continuous.*;
+import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
+import org.apache.ignite.internal.processors.continuous.StartRoutineDiscoveryMessage;
+import org.apache.ignite.internal.processors.continuous.StopRoutineDiscoveryMessage;
import org.apache.ignite.internal.util.GridConcurrentHashSet;
import org.apache.ignite.internal.util.typedef.P2;
import org.apache.ignite.internal.util.typedef.PA;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteFuture;
-import org.apache.ignite.resources.IgniteInstanceResource;
-import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.resources.IgniteInstanceResource;;
+import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
[19/34] ignite git commit: ignite-3727 minor
Posted by sb...@apache.org.
ignite-3727 minor
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e4b44a81
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e4b44a81
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e4b44a81
Branch: refs/heads/ignite-3727-2
Commit: e4b44a811e8d3145023252d76155deb286ed2d1c
Parents: 9cdc754
Author: sboikov <sb...@gridgain.com>
Authored: Mon Sep 12 23:23:07 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Sep 12 23:23:07 2016 +0300
----------------------------------------------------------------------
.../managers/communication/GridIoManager.java | 9 +--
.../ignite/messaging/GridMessagingSelfTest.java | 4 +
.../messaging/IgniteMessagingSendAsyncTest.java | 78 +++++++++-----------
3 files changed, 41 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e4b44a81/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index 6f5421e..3d9238a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@ -1782,7 +1782,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
GridMessageListener lsnrs;
- for (; ; ) {
+ for (;;) {
lsnrs = listenerPutIfAbsent0(topic, lsnr);
if (lsnrs == null) {
@@ -1895,7 +1895,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
msgSets = map.values();
}
else {
- for (; ; ) {
+ for (;;) {
GridMessageListener lsnrs = listenerGet0(topic);
// If removing listener before subscription happened.
@@ -2131,7 +2131,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
/**
* @param l Listener.
* @return {@code true} if listener was added. Add can fail if this instance is empty and is about to be removed
- * from map.
+ * from map.
*/
synchronized boolean add(GridMessageListener l) {
GridMessageListener[] arr0 = arr;
@@ -2173,8 +2173,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
}
/** {@inheritDoc} */
- @SuppressWarnings({
- "SynchronizationOnLocalVariableOrMethodParameter", "ConstantConditions",
+ @SuppressWarnings({"SynchronizationOnLocalVariableOrMethodParameter", "ConstantConditions",
"OverlyStrongTypeCast"})
@Override public void onMessage(UUID nodeId, Object msg) {
if (!(msg instanceof GridIoUserMessage)) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/e4b44a81/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
index c6ce0dc..07f9fe4 100644
--- a/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/GridMessagingSelfTest.java
@@ -1066,6 +1066,8 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
Assert.assertNotNull(starFut);
+ U.sleep(500);
+
Assert.assertFalse(starFut.isDone());
discoSpi.stopBlock();
@@ -1108,6 +1110,8 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest implements Ser
}
}, IllegalStateException.class, null);
+ U.sleep(500);
+
Assert.assertFalse(stopFut.isDone());
discoSpi.stopBlock();
http://git-wip-us.apache.org/repos/asf/ignite/blob/e4b44a81/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
index 91ac6e2..0187579 100644
--- a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingSendAsyncTest.java
@@ -1,19 +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.
-*/
+ * 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.messaging;
import org.apache.ignite.Ignite;
@@ -27,7 +28,7 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicReference;
/**
- * Created by dgovorukhin on 09.09.2016.
+ *
*/
public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
/**
@@ -45,8 +46,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
/**
* {@inheritDoc}
*/
- @Override
- protected void beforeTest() throws Exception {
+ @Override protected void beforeTest() throws Exception {
super.beforeTest();
ignite1 = startGrid(1);
@@ -56,8 +56,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
/**
* {@inheritDoc}
*/
- @Override
- protected void afterTest() throws Exception {
+ @Override protected void afterTest() throws Exception {
super.afterTest();
stopAllGrids();
@@ -73,13 +72,11 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
final String msgStr = "message";
send(ignite1.message(), msgStr, new ProcedureApply() {
- @Override
- public void apply(String msg, Thread thread) {
+ @Override public void apply(String msg, Thread thread) {
Assert.assertEquals(Thread.currentThread(), thread);
Assert.assertEquals(msgStr, msg);
}
});
-
}
/**
@@ -92,8 +89,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
final String msgStr = "message";
send(ignite1.message().withAsync(), msgStr, new ProcedureApply() {
- @Override
- public void apply(String msg, Thread thread) {
+ @Override public void apply(String msg, Thread thread) {
Assert.assertTrue(!Thread.currentThread().equals(thread));
Assert.assertEquals(msgStr, msg);
}
@@ -108,8 +104,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
final String msgStr = "message";
sendWith2Node(ignite1.message(), msgStr, new ProcedureApply() {
- @Override
- public void apply(String msg, Thread thread) {
+ @Override public void apply(String msg, Thread thread) {
Assert.assertEquals(Thread.currentThread(), thread);
Assert.assertEquals(msgStr, msg);
}
@@ -124,8 +119,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
final String msgStr = "message";
sendWith2Node(ignite1.message().withAsync(), msgStr, new ProcedureApply() {
- @Override
- public void apply(String msg, Thread thread) {
+ @Override public void apply(String msg, Thread thread) {
Assert.assertTrue(!Thread.currentThread().equals(thread));
Assert.assertEquals(msgStr, msg);
}
@@ -137,17 +131,15 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
* @param msgStr Message string.
* @param cls Callback for compare result.
*/
- public void sendWith2Node(
- final IgniteMessaging igniteMsg,
- final String msgStr,
- final ProcedureApply cls
+ private void sendWith2Node(
+ final IgniteMessaging igniteMsg,
+ final String msgStr,
+ final ProcedureApply cls
) throws Exception {
-
final CountDownLatch latch = new CountDownLatch(1);
ignite2.message().localListen(TOPIC, new IgniteBiPredicate<UUID, String>() {
- @Override
- public boolean apply(UUID uuid, String msg) {
+ @Override public boolean apply(UUID uuid, String msg) {
Assert.assertEquals(msgStr, msg);
latch.countDown();
return false;
@@ -159,16 +151,15 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
latch.await();
}
-
/**
* @param igniteMsg Ignite message.
* @param msgStr Message string.
* @param cls Callback for compare result.
*/
private void send(
- IgniteMessaging igniteMsg,
- String msgStr,
- ProcedureApply cls
+ IgniteMessaging igniteMsg,
+ String msgStr,
+ ProcedureApply cls
) throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(1);
@@ -176,8 +167,7 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
final AtomicReference<String> val = new AtomicReference<>();
igniteMsg.localListen(TOPIC, new IgniteBiPredicate<UUID, String>() {
- @Override
- public boolean apply(UUID uuid, String msgStr) {
+ @Override public boolean apply(UUID uuid, String msgStr) {
thread.set(Thread.currentThread());
val.set(msgStr);
latch.countDown();
@@ -193,15 +183,13 @@ public class IgniteMessagingSendAsyncTest extends GridCommonAbstractTest {
}
/**
- * only for this test procedure
+ * Only for this test procedure.
*/
private interface ProcedureApply {
-
/**
* @param val Value.
* @param thread Thread.
*/
void apply(String val, Thread thread);
}
-
}
[18/34] ignite git commit: merge from master
Posted by sb...@apache.org.
merge from master
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9cdc754a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9cdc754a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9cdc754a
Branch: refs/heads/ignite-3727-2
Commit: 9cdc754aaa367573dfc713230057e7094f678148
Parents: 190a5c9 04514fe
Author: sboikov <sb...@gridgain.com>
Authored: Mon Sep 12 22:46:48 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Sep 12 22:46:48 2016 +0300
----------------------------------------------------------------------
.../scripts/recreate-cassandra-artifacts.bat | 32 +-
.../java/org/apache/ignite/IgniteCache.java | 15 +
.../store/jdbc/dialect/SQLServerDialect.java | 2 +-
.../ignite/configuration/OdbcConfiguration.java | 98 +-
.../local/LocalIgfsSecondaryFileSystem.java | 53 +-
.../apache/ignite/internal/GridLoggerProxy.java | 3 +-
.../org/apache/ignite/internal/IgnitionEx.java | 17 +-
.../ignite/internal/binary/BinaryContext.java | 3 +
.../internal/binary/BinaryMarshaller.java | 28 +-
.../internal/binary/BinaryReaderExImpl.java | 24 +
.../internal/binary/BinaryReaderHandles.java | 2 +-
.../internal/binary/BinaryWriterExImpl.java | 18 +
.../binary/builder/BinaryObjectBuilderImpl.java | 2 +-
.../client/GridClientConfiguration.java | 1 -
.../internal/cluster/ClusterGroupAdapter.java | 2 +-
.../cluster/ClusterNodeLocalMapImpl.java | 3 +-
.../processors/cache/CacheLazyEntry.java | 2 +
.../EntryProcessorResourceInjectorProxy.java | 105 +
.../processors/cache/GridCacheAdapter.java | 2 +-
.../processors/cache/GridCacheContext.java | 2 +-
.../processors/cache/GridCacheMapEntry.java | 32 +-
.../GridCachePartitionExchangeManager.java | 7 +
.../processors/cache/GridCacheProcessor.java | 5 +-
.../processors/cache/GridCacheTtlManager.java | 24 +-
.../processors/cache/IgniteCacheProxy.java | 153 +-
.../binary/CacheObjectBinaryProcessorImpl.java | 40 +-
.../GridDistributedTxPrepareRequest.java | 4 +-
.../distributed/dht/GridDhtLockFuture.java | 53 +-
.../distributed/dht/GridDhtTxFinishFuture.java | 4 +-
.../cache/distributed/dht/GridDhtTxLocal.java | 26 +-
.../distributed/dht/GridDhtTxPrepareFuture.java | 101 +-
.../dht/GridDhtTxPrepareRequest.java | 4 +-
.../GridNearAtomicAbstractUpdateFuture.java | 69 +
.../GridNearAtomicSingleUpdateFuture.java | 87 +-
.../dht/atomic/GridNearAtomicUpdateFuture.java | 76 +-
.../colocated/GridDhtColocatedLockFuture.java | 37 +-
.../distributed/near/GridNearLockFuture.java | 90 +-
...arOptimisticSerializableTxPrepareFuture.java | 13 +-
.../near/GridNearOptimisticTxPrepareFuture.java | 263 +-
...ridNearOptimisticTxPrepareFutureAdapter.java | 5 +-
.../GridNearPessimisticTxPrepareFuture.java | 8 +-
.../near/GridNearTxFinishFuture.java | 5 +-
.../cache/distributed/near/GridNearTxLocal.java | 16 +-
.../near/GridNearTxPrepareRequest.java | 4 +-
.../local/atomic/GridLocalAtomicCache.java | 18 +-
.../processors/cache/query/CacheQuery.java | 11 +-
.../query/GridCacheDistributedQueryManager.java | 22 +-
.../cache/query/GridCacheLocalQueryManager.java | 3 +-
.../cache/query/GridCacheQueryAdapter.java | 69 +-
.../cache/query/GridCacheQueryBean.java | 8 +-
.../cache/query/GridCacheQueryInfo.java | 8 +-
.../cache/query/GridCacheQueryManager.java | 125 +-
.../cache/query/GridCacheQueryRequest.java | 6 +-
.../cache/query/GridCacheSqlQuery.java | 11 +-
.../cache/transactions/IgniteInternalTx.java | 3 +-
.../cache/transactions/IgniteTxAdapter.java | 37 +-
.../cache/transactions/IgniteTxHandler.java | 11 +-
.../transactions/IgniteTxLocalAdapter.java | 24 +-
.../cache/transactions/IgniteTxManager.java | 86 +-
.../cache/transactions/IgniteTxStateImpl.java | 11 +-
.../cache/transactions/TxDeadlockDetection.java | 51 +-
.../datastreamer/DataStreamerImpl.java | 88 +-
.../processors/igfs/IgfsDataManager.java | 2 +-
.../internal/processors/igfs/IgfsImpl.java | 216 +-
.../local/LocalFileSystemSizeVisitor.java | 60 +
.../processors/odbc/OdbcMessageParser.java | 10 +-
.../processors/odbc/OdbcNioListener.java | 2 +-
.../internal/processors/odbc/OdbcProcessor.java | 54 +-
.../processors/odbc/OdbcRequestHandler.java | 59 +-
.../odbc/escape/OdbcEscapeParseResult.java | 73 +
.../processors/odbc/escape/OdbcEscapeToken.java | 61 +
.../processors/odbc/escape/OdbcEscapeType.java | 112 +
.../processors/odbc/escape/OdbcEscapeUtils.java | 392 ++
.../query/PlatformAbstractQueryCursor.java | 11 +-
.../cache/query/PlatformFieldsQueryCursor.java | 6 +
.../processors/resource/GridResourceIoc.java | 438 ++-
.../resource/GridResourceProcessor.java | 396 +-
.../service/GridServiceProcessor.java | 18 +-
.../processors/task/GridTaskWorker.java | 2 +-
.../ignite/internal/util/IgniteUtils.java | 60 +-
.../util/future/GridCompoundFuture.java | 10 +
.../util/offheap/unsafe/GridUnsafeLru.java | 30 +-
.../visor/event/VisorGridDiscoveryEventV2.java | 80 +
.../visor/node/VisorNodeDataCollectorJob.java | 10 +-
.../internal/visor/util/VisorEventMapper.java | 96 +-
.../internal/visor/util/VisorTaskUtils.java | 22 +-
.../ignite/marshaller/AbstractMarshaller.java | 41 +-
.../AbstractNodeNameAwareMarshaller.java | 142 +
.../ignite/marshaller/MarshallerUtils.java | 58 +
.../ignite/marshaller/jdk/JdkMarshaller.java | 40 +-
.../optimized/OptimizedMarshaller.java | 12 +-
.../sharedfs/SharedFsCheckpointSpi.java | 7 +-
.../ignite/spi/discovery/tcp/ClientImpl.java | 18 +-
.../ignite/spi/discovery/tcp/ServerImpl.java | 29 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 20 +-
.../ignite/stream/socket/SocketStreamer.java | 18 +-
.../ignite/internal/ClusterGroupSelfTest.java | 2 +-
.../internal/GridEventStorageSelfTest.java | 97 +-
.../binary/BinaryMarshallerSelfTest.java | 38 +
.../BinaryObjectBuilderAdditionalSelfTest.java | 14 +
.../cache/GridCacheAbstractFullApiSelfTest.java | 393 +-
.../cache/GridCacheAbstractSelfTest.java | 140 +-
.../cache/GridLocalIgniteSerializationTest.java | 378 ++
.../cache/IgniteTxConfigCacheSelfTest.java | 91 +-
.../GridCacheTransformEventSelfTest.java | 66 +-
.../IgniteTxTimeoutAbstractTest.java | 8 +-
...tionedMultiNodeLongTxTimeoutFullApiTest.java | 34 +
...nabledMultiNodeLongTxTimeoutFullApiTest.java | 41 +
...ePartitionedBasicStoreMultiNodeSelfTest.java | 2 +
.../GridCacheRebalancingOrderingTest.java | 916 +++++
.../IgniteCacheExpiryPolicyAbstractTest.java | 14 +-
.../local/GridCacheLocalTxTimeoutSelfTest.java | 5 +-
.../GridCacheQueryTransformerSelfTest.java | 575 +++
.../transactions/DepthFirstSearchTest.java | 100 +-
.../TxDeadlockDetectionNoHangsTest.java | 246 ++
.../transactions/TxDeadlockDetectionTest.java | 13 +-
...timisticDeadlockDetectionCrossCacheTest.java | 257 ++
.../TxOptimisticDeadlockDetectionTest.java | 574 +++
...simisticDeadlockDetectionCrossCacheTest.java | 165 +-
.../TxPessimisticDeadlockDetectionTest.java | 50 +-
.../igfs/IgfsAbstractBaseSelfTest.java | 1066 ++++++
.../processors/igfs/IgfsAbstractSelfTest.java | 1043 +-----
...SecondaryFileSystemDualAbstractSelfTest.java | 206 +-
.../processors/igfs/IgfsMaxSizeSelfTest.java | 122 +
.../processors/igfs/IgfsProcessorSelfTest.java | 11 +-
.../processors/igfs/IgfsProxySelfTest.java | 32 +
.../processors/igfs/IgfsStreamsSelfTest.java | 2 +-
.../odbc/OdbcEscapeSequenceSelfTest.java | 778 ++++
.../odbc/OdbcProcessorValidationSelfTest.java | 37 +-
.../spi/discovery/tcp/TcpDiscoverySelfTest.java | 2 +-
.../multijvm/IgniteCacheProcessProxy.java | 6 +
.../ignite/testsuites/IgniteBasicTestSuite.java | 4 +
.../IgniteCacheFullApiSelfTestSuite.java | 4 +
.../ignite/testsuites/IgniteIgfsTestSuite.java | 3 +
.../TxDeadlockDetectionTestSuite.java | 6 +
.../query/h2/opt/GridH2ValueCacheObject.java | 8 -
...niteBinaryObjectLocalQueryArgumentsTest.java | 28 +
...aryObjectQueryArgumentsOffheapLocalTest.java | 28 +
...teBinaryObjectQueryArgumentsOffheapTest.java | 30 +
.../IgniteBinaryObjectQueryArgumentsTest.java | 472 ++-
.../IgniteCacheReplicatedQuerySelfTest.java | 49 +-
.../query/h2/sql/GridQueryParsingTest.java | 2 +-
.../IgniteCacheQuerySelfTestSuite.java | 11 +
.../kafka/connect/IgniteSinkConnector.java | 9 +
.../kafka/connect/IgniteSourceConnector.java | 9 +
.../kafka/connect/IgniteSinkConnectorTest.java | 15 +-
.../connect/IgniteSourceConnectorTest.java | 14 +-
.../osgi-karaf/src/main/resources/features.xml | 12 +-
.../ignite/impl/binary/binary_reader_impl.h | 2 +-
.../common/include/ignite/common/concurrent.h | 5 +-
.../cpp/common/include/ignite/common/utils.h | 7 +
.../cpp/common/include/ignite/ignite_error.h | 11 +-
.../cpp/common/os/win/src/common/utils.cpp | 20 +
.../cpp/common/src/common/big_integer.cpp | 1 -
.../platforms/cpp/common/src/ignite_error.cpp | 2 +-
.../cpp/core-test/src/cache_query_test.cpp | 300 +-
modules/platforms/cpp/core/Makefile.am | 1 +
modules/platforms/cpp/core/include/Makefile.am | 1 +
.../include/ignite/cache/query/query_cursor.h | 6 +-
.../ignite/cache/query/query_fields_cursor.h | 4 +-
.../cpp/core/include/ignite/ignition.h | 2 +-
.../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 +-
.../platforms/cpp/core/project/vs/core.vcxproj | 2 +
.../cpp/core/project/vs/core.vcxproj.filters | 6 +
modules/platforms/cpp/core/src/ignition.cpp | 8 +-
.../core/src/impl/cache/query/query_batch.cpp | 52 +
.../core/src/impl/cache/query/query_impl.cpp | 180 +-
modules/platforms/cpp/odbc-test/Makefile.am | 11 +
.../odbc-test/config/queries-test-noodbc.xml | 48 +-
.../cpp/odbc-test/config/queries-test.xml | 50 +-
.../platforms/cpp/odbc-test/include/Makefile.am | 4 +-
.../odbc-test/include/sql_test_suite_fixture.h | 197 +
.../cpp/odbc-test/include/test_utils.h | 45 +
.../cpp/odbc-test/project/vs/odbc-test.vcxproj | 14 +
.../project/vs/odbc-test.vcxproj.filters | 42 +
.../cpp/odbc-test/src/configuration_test.cpp | 20 +-
.../cpp/odbc-test/src/queries_test.cpp | 73 +-
.../src/sql_aggregate_functions_test.cpp | 249 ++
.../src/sql_date_time_functions_test.cpp | 213 ++
.../src/sql_numeric_functions_test.cpp | 309 ++
.../cpp/odbc-test/src/sql_operators_test.cpp | 214 ++
.../cpp/odbc-test/src/sql_outer_join_test.cpp | 498 +++
.../odbc-test/src/sql_string_functions_test.cpp | 354 ++
.../odbc-test/src/sql_system_functions_test.cpp | 47 +
.../odbc-test/src/sql_test_suite_fixture.cpp | 288 ++
.../cpp/odbc-test/src/sql_types_test.cpp | 60 +
.../src/sql_value_expressions_test.cpp | 94 +
.../platforms/cpp/odbc-test/src/test_utils.cpp | 36 +
modules/platforms/cpp/odbc/Makefile.am | 1 +
modules/platforms/cpp/odbc/include/Makefile.am | 1 +
.../platforms/cpp/odbc/include/ignite/odbc.h | 1 -
.../include/ignite/odbc/config/configuration.h | 129 +-
.../cpp/odbc/include/ignite/odbc/connection.h | 7 -
.../ignite/odbc/diagnostic/diagnostic_record.h | 2 +-
.../cpp/odbc/include/ignite/odbc/dsn_config.h | 61 +
.../odbc/include/ignite/odbc/protocol_version.h | 20 +-
.../cpp/odbc/include/ignite/odbc/result_page.h | 3 -
.../include/ignite/odbc/system/odbc_constants.h | 4 -
.../odbc/system/ui/dsn_configuration_window.h | 160 +
.../ignite/odbc/system/ui/custom_window.h | 189 +
.../win/include/ignite/odbc/system/ui/window.h | 201 +
.../odbc/os/win/src/system/ui/custom_window.cpp | 184 +
.../src/system/ui/dsn_configuration_window.cpp | 326 ++
.../cpp/odbc/os/win/src/system/ui/window.cpp | 192 +
.../cpp/odbc/os/win/src/system_dsn.cpp | 218 ++
.../platforms/cpp/odbc/project/vs/odbc.vcxproj | 25 +-
.../cpp/odbc/project/vs/odbc.vcxproj.filters | 30 +
modules/platforms/cpp/odbc/src/column.cpp | 14 +-
.../cpp/odbc/src/config/configuration.cpp | 27 +-
.../cpp/odbc/src/config/connection_info.cpp | 75 +-
modules/platforms/cpp/odbc/src/connection.cpp | 2 +-
.../odbc/src/diagnostic/diagnostic_record.cpp | 2 +-
.../diagnostic/diagnostic_record_storage.cpp | 2 +-
modules/platforms/cpp/odbc/src/dsn_config.cpp | 123 +
modules/platforms/cpp/odbc/src/entry_points.cpp | 8 -
modules/platforms/cpp/odbc/src/odbc.cpp | 88 +-
.../platforms/cpp/odbc/src/protocol_version.cpp | 23 +-
.../platforms/cpp/odbc/src/query/data_query.cpp | 8 +-
modules/platforms/cpp/odbc/src/utility.cpp | 14 +-
.../Apache.Ignite.Core.Tests.TestDll.csproj | 5 -
.../Cache/Affinity/AffinityFunctionContext.cs | 4 +-
.../Apache.Ignite.Core/Events/DiscoveryEvent.cs | 4 +-
.../Apache.Ignite.Core/Events/EventReader.cs | 6 +-
.../Impl/Binary/DateTimeHolder.cs | 4 +-
.../Impl/Binary/Marshaller.cs | 36 +-
.../Impl/Binary/SerializableObjectHolder.cs | 6 +-
.../Affinity/AffinityFunctionSerializer.cs | 2 +-
.../Impl/Cache/CacheEntryFilterHolder.cs | 10 +-
.../Impl/Cache/CacheEntryProcessorHolder.cs | 8 +-
.../Continuous/ContinuousQueryFilterHolder.cs | 8 +-
.../Impl/Cache/Query/FieldsQueryCursor.cs | 3 +
.../Impl/Compute/Closure/ComputeActionJob.cs | 6 +-
.../Impl/Compute/Closure/ComputeFuncJob.cs | 8 +-
.../Impl/Compute/Closure/ComputeOutFuncJob.cs | 9 +-
.../Impl/Compute/ComputeFunc.cs | 9 +-
.../Impl/Compute/ComputeJob.cs | 10 +-
.../Impl/Compute/ComputeJobHolder.cs | 8 +-
.../Impl/Compute/ComputeOutFunc.cs | 8 +-
.../Impl/Datastream/StreamReceiverHolder.cs | 2 +-
.../Apache.Ignite.Core/Impl/IgniteUtils.cs | 5 +-
.../Impl/Messaging/MessageListenerHolder.cs | 8 +-
.../Apache.Ignite.Linq.csproj | 5 -
.../Apache.Ignite.NLog.csproj | 5 -
.../dotnet/Apache.Ignite/Apache.Ignite.csproj | 5 -
.../GridTransformSpringInjectionSelfTest.java | 186 +
.../testsuites/IgniteSpringTestSuite.java | 7 +-
modules/storm/README.txt | 2 +-
modules/storm/pom.xml | 2 +-
.../ignite/stream/storm/StormStreamer.java | 10 +-
.../storm/StormIgniteStreamerSelfTest.java | 20 +-
.../ignite/stream/storm/TestStormSpout.java | 10 +-
.../ignite/visor/commands/VisorConsole.scala | 1 +
.../commands/cache/VisorCacheCommand.scala | 33 +-
.../commands/cache/VisorCacheResetCommand.scala | 129 +
.../cache/VisorCacheResetCommandSpec.scala | 114 +
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 | 22 +-
modules/web-console/backend/.babelrc | 9 +
modules/web-console/backend/.eslintrc | 188 +
modules/web-console/backend/.gitignore | 8 +
.../web-console/backend/agent_dists/README.txt | 7 +
modules/web-console/backend/app/agent.js | 753 ++++
modules/web-console/backend/app/app.js | 61 +
modules/web-console/backend/app/browser.js | 404 ++
modules/web-console/backend/app/configure.js | 86 +
modules/web-console/backend/app/index.js | 116 +
modules/web-console/backend/app/mongo.js | 673 ++++
modules/web-console/backend/app/nconf.js | 48 +
modules/web-console/backend/app/routes.js | 64 +
modules/web-console/backend/app/settings.js | 80 +
.../backend/config/settings.json.sample | 30 +
.../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 | 39 +
modules/web-console/backend/index.js | 19 +
modules/web-console/backend/injector.js | 30 +
modules/web-console/backend/middlewares/api.js | 44 +
modules/web-console/backend/middlewares/host.js | 39 +
modules/web-console/backend/middlewares/user.js | 36 +
modules/web-console/backend/package.json | 71 +
modules/web-console/backend/routes/admin.js | 84 +
modules/web-console/backend/routes/agent.js | 53 +
modules/web-console/backend/routes/caches.js | 65 +
modules/web-console/backend/routes/clusters.js | 64 +
.../web-console/backend/routes/configuration.js | 41 +
modules/web-console/backend/routes/demo.js | 133 +
.../web-console/backend/routes/demo/caches.json | 87 +
.../backend/routes/demo/clusters.json | 50 +
.../backend/routes/demo/domains.json | 307 ++
.../web-console/backend/routes/demo/igfss.json | 10 +
modules/web-console/backend/routes/domains.js | 76 +
modules/web-console/backend/routes/igfss.js | 65 +
modules/web-console/backend/routes/notebooks.js | 80 +
modules/web-console/backend/routes/profile.js | 73 +
modules/web-console/backend/routes/public.js | 168 +
modules/web-console/backend/services/agents.js | 82 +
modules/web-console/backend/services/auth.js | 47 +
modules/web-console/backend/services/caches.js | 144 +
.../web-console/backend/services/clusters.js | 141 +
.../backend/services/configurations.js | 59 +
modules/web-console/backend/services/domains.js | 187 +
modules/web-console/backend/services/igfss.js | 136 +
modules/web-console/backend/services/mails.js | 131 +
.../web-console/backend/services/notebooks.js | 104 +
.../web-console/backend/services/sessions.js | 63 +
modules/web-console/backend/services/spaces.js | 75 +
modules/web-console/backend/services/users.js | 229 ++
.../backend/test/config/settings.json | 20 +
.../web-console/backend/test/data/accounts.json | 18 +
.../web-console/backend/test/data/caches.json | 87 +
.../web-console/backend/test/data/clusters.json | 50 +
.../web-console/backend/test/data/domains.json | 307 ++
.../web-console/backend/test/data/igfss.json | 10 +
modules/web-console/backend/test/injector.js | 31 +
.../backend/test/unit/CacheService.test.js | 192 +
.../backend/test/unit/ClusterService.test.js | 190 +
.../backend/test/unit/DomainService.test.js | 198 +
.../backend/test/unit/IgfsService.test.js | 190 +
.../docker/compose/backend/.dockerignore | 1 +
.../docker/compose/backend/Dockerfile | 30 +
.../web-console/docker/compose/backend/build.sh | 57 +
.../docker/compose/docker-compose.yml | 59 +
.../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 | 59 +
.../web-console/docker/standalone/.dockerignore | 2 +
.../web-console/docker/standalone/Dockerfile | 87 +
modules/web-console/docker/standalone/build.sh | 59 +
.../docker/standalone/docker-compose.yml | 41 +
.../web-console/docker/standalone/entrypoint.sh | 23 +
.../docker/standalone/nginx/nginx.conf | 55 +
.../docker/standalone/nginx/web-console.conf | 54 +
modules/web-console/frontend/.babelrc | 9 +
modules/web-console/frontend/.eslintrc | 202 +
modules/web-console/frontend/.gitignore | 7 +
modules/web-console/frontend/app/app.config.js | 86 +
modules/web-console/frontend/app/app.js | 270 ++
.../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 +
.../frontend/app/data/event-types.json | 169 +
.../frontend/app/data/getting-started.json | 109 +
.../frontend/app/data/java-classes.json | 19 +
.../frontend/app/data/java-keywords.json | 55 +
.../frontend/app/data/java-primitives.json | 9 +
.../frontend/app/data/pom-dependencies.json | 20 +
.../frontend/app/decorator/select.js | 77 +
.../frontend/app/decorator/tooltip.js | 56 +
.../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 +
.../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 | 147 +
.../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 +
.../app/directives/ui-ace-tabs.directive.js | 24 +
.../ui-ace-xml/ui-ace-xml.controller.js | 27 +
.../ui-ace-xml/ui-ace-xml.directive.js | 147 +
.../app/directives/ui-ace-xml/ui-ace-xml.jade | 17 +
.../frontend/app/filters/byName.filter.js | 23 +
.../app/filters/domainsValidation.filter.js | 33 +
.../frontend/app/filters/duration.filter.js | 38 +
.../frontend/app/filters/hasPojo.filter.js | 18 +
.../frontend/app/helpers/jade/form.jade | 27 +
.../helpers/jade/form/form-field-checkbox.jade | 38 +
.../helpers/jade/form/form-field-datalist.jade | 51 +
.../app/helpers/jade/form/form-field-down.jade | 18 +
.../helpers/jade/form/form-field-dropdown.jade | 50 +
.../helpers/jade/form/form-field-feedback.jade | 29 +
.../app/helpers/jade/form/form-field-label.jade | 23 +
.../helpers/jade/form/form-field-number.jade | 52 +
.../app/helpers/jade/form/form-field-text.jade | 47 +
.../app/helpers/jade/form/form-field-up.jade | 18 +
.../app/helpers/jade/form/form-group.jade | 23 +
.../frontend/app/helpers/jade/mixins.jade | 541 +++
.../frontend/app/modules/Demo/Demo.module.js | 166 +
.../frontend/app/modules/ace.module.js | 269 ++
.../frontend/app/modules/agent/agent.module.js | 341 ++
.../app/modules/branding/branding.module.js | 45 +
.../app/modules/branding/branding.provider.js | 111 +
.../app/modules/branding/features.directive.js | 35 +
.../app/modules/branding/footer.directive.js | 34 +
.../modules/branding/header-logo.directive.js | 34 +
.../app/modules/branding/header-logo.jade | 18 +
.../modules/branding/header-title.directive.js | 35 +
.../branding/powered-by-apache.directive.js | 35 +
.../app/modules/branding/powered-by-apache.jade | 18 +
.../app/modules/branding/terms.directive.js | 30 +
.../configuration/EventGroups.provider.js | 30 +
.../modules/configuration/Sidebar.provider.js | 39 +
.../configuration/configuration.module.js | 41 +
.../configuration/generator/Docker.service.js | 78 +
.../configuration/generator/Java.service.js | 21 +
.../configuration/generator/Pom.service.js | 226 ++
.../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 +
.../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/select.scss | 21 +
.../app/modules/form/field/input/text.scss | 41 +
.../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 | 96 +
.../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 +
.../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 +
.../modules/form/validator/uuid.directive.js | 37 +
.../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/socket.module.js | 41 +
.../frontend/app/modules/sql/Notebook.data.js | 157 +
.../app/modules/sql/Notebook.service.js | 74 +
.../app/modules/sql/notebook.controller.js | 60 +
.../app/modules/sql/scan-filter-input.jade | 39 +
.../modules/sql/scan-filter-input.service.js | 51 +
.../frontend/app/modules/sql/sql.controller.js | 1632 ++++++++
.../frontend/app/modules/sql/sql.module.js | 60 +
.../frontend/app/modules/states/admin.state.js | 35 +
.../app/modules/states/configuration.state.js | 97 +
.../configuration/Configuration.resource.js | 42 +
.../configuration/caches/concurrency.jade | 65 +
.../states/configuration/caches/general.jade | 66 +
.../states/configuration/caches/memory.jade | 102 +
.../configuration/caches/node-filter.jade | 108 +
.../states/configuration/caches/query.jade | 95 +
.../states/configuration/caches/rebalance.jade | 65 +
.../configuration/caches/server-near-cache.jade | 51 +
.../states/configuration/caches/statistics.jade | 39 +
.../states/configuration/caches/store.jade | 244 ++
.../states/configuration/clusters/atomic.jade | 53 +
.../configuration/clusters/attributes.jade | 57 +
.../states/configuration/clusters/binary.jade | 77 +
.../configuration/clusters/cache-key-cfg.jade | 53 +
.../configuration/clusters/collision.jade | 62 +
.../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 | 99 +
.../configuration/clusters/connector.jade | 103 +
.../configuration/clusters/deployment.jade | 113 +
.../configuration/clusters/discovery.jade | 87 +
.../states/configuration/clusters/events.jade | 37 +
.../states/configuration/clusters/failover.jade | 72 +
.../states/configuration/clusters/general.jade | 73 +
.../clusters/general/discovery/cloud.jade | 134 +
.../clusters/general/discovery/google.jade | 38 +
.../clusters/general/discovery/jdbc.jade | 32 +
.../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 | 83 +
.../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 | 37 +
.../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 | 75 +
.../states/configuration/clusters/metrics.jade | 51 +
.../states/configuration/clusters/ssl.jade | 109 +
.../states/configuration/clusters/swap.jade | 71 +
.../states/configuration/clusters/thread.jade | 48 +
.../states/configuration/clusters/time.jade | 47 +
.../configuration/clusters/transactions.jade | 69 +
.../states/configuration/domains/general.jade | 46 +
.../states/configuration/domains/query.jade | 170 +
.../states/configuration/domains/store.jade | 126 +
.../modules/states/configuration/igfs/dual.jade | 42 +
.../states/configuration/igfs/fragmentizer.jade | 43 +
.../states/configuration/igfs/general.jade | 54 +
.../modules/states/configuration/igfs/ipc.jade | 60 +
.../modules/states/configuration/igfs/misc.jade | 108 +
.../states/configuration/igfs/secondary.jade | 44 +
.../configuration/preview-panel.directive.js | 239 ++
.../summary/summary-tabs.directive.js | 50 +
.../configuration/summary/summary.controller.js | 365 ++
.../frontend/app/modules/states/errors.state.js | 43 +
.../frontend/app/modules/states/logout.state.js | 35 +
.../app/modules/states/password.state.js | 46 +
.../app/modules/states/profile.state.js | 35 +
.../frontend/app/modules/states/signin.state.js | 43 +
.../app/modules/user/AclRoute.provider.js | 47 +
.../frontend/app/modules/user/Auth.service.js | 56 +
.../frontend/app/modules/user/User.service.js | 51 +
.../frontend/app/modules/user/permissions.js | 28 +
.../frontend/app/modules/user/user.module.js | 73 +
.../app/modules/version/Version.provider.js | 32 +
.../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 | 126 +
.../frontend/app/services/Focus.service.js | 33 +
.../frontend/app/services/FormUtils.service.js | 435 +++
.../app/services/InetAddress.service.js | 53 +
.../frontend/app/services/JavaTypes.service.js | 93 +
.../app/services/LegacyTable.service.js | 209 ++
.../app/services/LegacyUtils.service.js | 572 +++
.../frontend/app/services/Messages.service.js | 63 +
.../app/services/ModelNormalizer.service.js | 59 +
.../app/services/UnsavedChangesGuard.service.js | 38 +
modules/web-console/frontend/app/vendor.js | 55 +
.../frontend/controllers/admin-controller.js | 92 +
.../frontend/controllers/caches-controller.js | 524 +++
.../frontend/controllers/clusters-controller.js | 689 ++++
.../frontend/controllers/domains-controller.js | 1792 +++++++++
.../frontend/controllers/igfs-controller.js | 416 +++
.../frontend/controllers/profile-controller.js | 94 +
.../frontend/generator/generator-common.js | 612 +++
.../frontend/generator/generator-java.js | 3534 ++++++++++++++++++
.../frontend/generator/generator-optional.js | 25 +
.../frontend/generator/generator-properties.js | 175 +
.../frontend/generator/generator-readme.js | 85 +
.../frontend/generator/generator-xml.js | 2093 +++++++++++
.../frontend/gulpfile.babel.js/index.js | 26 +
.../frontend/gulpfile.babel.js/paths.js | 74 +
.../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 | 40 +
.../frontend/gulpfile.babel.js/tasks/test.js | 92 +
.../frontend/gulpfile.babel.js/tasks/watch.js | 31 +
.../gulpfile.babel.js/webpack/common.js | 189 +
.../webpack/environments/development.js | 69 +
.../webpack/environments/production.js | 45 +
.../frontend/gulpfile.babel.js/webpack/index.js | 32 +
.../webpack/plugins/progress.js | 82 +
.../frontend/ignite_modules/README.txt | 6 +
.../frontend/ignite_modules/index.js | 27 +
modules/web-console/frontend/package.json | 125 +
modules/web-console/frontend/public/favicon.ico | Bin 0 -> 1150 bytes
.../frontend/public/images/cache.png | Bin 0 -> 23700 bytes
.../frontend/public/images/cluster.png | Bin 0 -> 29376 bytes
.../frontend/public/images/docker.png | Bin 0 -> 521 bytes
.../frontend/public/images/domains.png | Bin 0 -> 23828 bytes
.../web-console/frontend/public/images/igfs.png | Bin 0 -> 14307 bytes
.../frontend/public/images/ignite-logo.png | Bin 0 -> 1982 bytes
.../frontend/public/images/ignite-logo@2x.png | Bin 0 -> 3325 bytes
.../frontend/public/images/ignite-puzzle.png | Bin 0 -> 71974 bytes
.../web-console/frontend/public/images/java.png | Bin 0 -> 170 bytes
.../frontend/public/images/pb-ignite.png | Bin 0 -> 3493 bytes
.../frontend/public/images/pb-ignite@2x.png | Bin 0 -> 8558 bytes
.../frontend/public/images/query-chart.png | Bin 0 -> 16637 bytes
.../frontend/public/images/query-metadata.png | Bin 0 -> 32298 bytes
.../frontend/public/images/query-table.png | Bin 0 -> 29189 bytes
.../frontend/public/images/summary.png | Bin 0 -> 31997 bytes
.../web-console/frontend/public/images/xml.png | Bin 0 -> 232 bytes
.../public/stylesheets/_bootstrap-custom.scss | 65 +
.../stylesheets/_bootstrap-variables.scss | 891 +++++
.../stylesheets/_font-awesome-custom.scss | 32 +
.../public/stylesheets/blocks/error.scss | 31 +
.../frontend/public/stylesheets/style.scss | 2171 +++++++++++
.../frontend/public/stylesheets/variables.scss | 28 +
.../frontend/test/e2e/exampe.test.js | 40 +
modules/web-console/frontend/test/karma.conf.js | 113 +
.../frontend/test/protractor.conf.js | 50 +
.../frontend/test/unit/JavaTypes.test.js | 69 +
.../frontend/test/unit/UserAuth.test.js | 35 +
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 | 53 +
.../frontend/views/configuration/clusters.jade | 66 +
.../views/configuration/domains-import.jade | 223 ++
.../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 | 122 +
.../frontend/views/includes/footer.jade | 23 +
.../frontend/views/includes/header.jade | 51 +
modules/web-console/frontend/views/index.jade | 47 +
modules/web-console/frontend/views/reset.jade | 48 +
.../frontend/views/settings/admin.jade | 76 +
.../frontend/views/settings/profile.jade | 76 +
modules/web-console/frontend/views/signin.jade | 163 +
.../frontend/views/sql/cache-metadata.jade | 40 +
.../frontend/views/sql/chart-settings.jade | 40 +
.../frontend/views/sql/notebook-new.jade | 31 +
.../frontend/views/sql/paragraph-rate.jade | 31 +
modules/web-console/frontend/views/sql/sql.jade | 193 +
.../views/templates/agent-download.jade | 48 +
.../frontend/views/templates/alert.jade | 21 +
.../frontend/views/templates/batch-confirm.jade | 32 +
.../frontend/views/templates/clone.jade | 37 +
.../frontend/views/templates/confirm.jade | 31 +
.../frontend/views/templates/demo-info.jade | 45 +
.../frontend/views/templates/dropdown.jade | 24 +
.../views/templates/getting-started.jade | 32 +
.../frontend/views/templates/message.jade | 26 +
.../frontend/views/templates/pagination.jade | 32 +
.../frontend/views/templates/select.jade | 26 +
.../views/templates/validation-error.jade | 25 +
modules/web-console/pom.xml | 33 +-
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 | 70 +
.../web-agent/bin/ignite-web-agent.sh | 87 +
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 | 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 | 641 ++++
.../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 +
.../IgniteInvokeWithInjectionBenchmark.java | 74 +
.../IgniteInvokeWithInjectionTxBenchmark.java | 30 +
parent/pom.xml | 4 +-
pom.xml | 2 +-
1117 files changed, 61336 insertions(+), 44728 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/9cdc754a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/9cdc754a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
[15/34] ignite git commit: IGNITE-3727 GridIO javadoc update
Posted by sb...@apache.org.
IGNITE-3727 GridIO javadoc update
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e68a4fa2
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e68a4fa2
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e68a4fa2
Branch: refs/heads/ignite-3727-2
Commit: e68a4fa2f25c9533dd38bbe25a6a98b804b5ca35
Parents: e3855a3
Author: DmitriyGovorukhin <dg...@gridgain.com>
Authored: Fri Sep 9 11:17:41 2016 +0300
Committer: DmitriyGovorukhin <dg...@gridgain.com>
Committed: Fri Sep 9 11:17:41 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/managers/communication/GridIoManager.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e68a4fa2/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index 124fba5..1ba649e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@ -1260,6 +1260,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
* @param timeout Timeout.
* @param skipOnTimeout Whether message can be skipped on timeout.
* @param ackC Ack closure.
+ * @param async Async flag.
* @throws IgniteCheckedException Thrown in case of any errors.
*/
private void send(
@@ -1369,6 +1370,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
* @param topic Topic to send the message to.
* @param msg Message to send.
* @param plc Type of processing.
+ * @param async Async flag.
* @throws IgniteCheckedException Thrown in case of any errors.
*/
public void send(ClusterNode node, GridTopic topic, Message msg, byte plc, boolean async)
@@ -1562,6 +1564,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
* @param topic Message topic to use.
* @param ordered Is message ordered?
* @param timeout Message timeout in milliseconds for ordered messages.
+ * @param async Async flag.
* @throws IgniteCheckedException Thrown in case of any errors.
*/
@SuppressWarnings("ConstantConditions")