You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2015/06/19 11:37:05 UTC
[01/50] incubator-ignite git commit: ignite-484-1 - small page test +
race fix
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-gg-10411 28adb89e7 -> 0759fc9eb
ignite-484-1 - small page test + race fix
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8e8433b6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8e8433b6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8e8433b6
Branch: refs/heads/ignite-gg-10411
Commit: 8e8433b6cc07afcdd88a0a570887fe0353e59ee7
Parents: 7e3f924
Author: S.Vladykin <sv...@gridgain.com>
Authored: Tue Jun 16 13:37:19 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Tue Jun 16 13:37:19 2015 +0300
----------------------------------------------------------------------
.../query/h2/twostep/GridMergeIndex.java | 17 +++++++---
.../h2/twostep/GridMergeIndexUnsorted.java | 5 +--
.../h2/twostep/GridReduceQueryExecutor.java | 4 +--
.../query/h2/twostep/GridResultPage.java | 19 ++++++-----
.../IgniteCacheQueryNodeRestartSelfTest2.java | 34 +++++++++++++++++++-
5 files changed, 59 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8e8433b6/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndex.java
index 9136821..af29647 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndex.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndex.java
@@ -96,7 +96,11 @@ public abstract class GridMergeIndex extends BaseIndex {
* @param nodeId Node ID.
*/
public void fail(UUID nodeId) {
- addPage0(new GridResultPage(null, nodeId, null, false));
+ addPage0(new GridResultPage(null, nodeId, null) {
+ @Override public boolean isFail() {
+ return true;
+ }
+ });
}
/**
@@ -134,10 +138,13 @@ public abstract class GridMergeIndex extends BaseIndex {
}
}
- if (last)
- last = lastSubmitted.compareAndSet(false, true);
-
- addPage0(new GridResultPage(null, page.source(), null, last));
+ if (last && lastSubmitted.compareAndSet(false, true)) {
+ addPage0(new GridResultPage(null, page.source(), null) {
+ @Override public boolean isLast() {
+ return true;
+ }
+ });
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8e8433b6/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexUnsorted.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexUnsorted.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexUnsorted.java
index fdee17a..e0a07ec 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexUnsorted.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexUnsorted.java
@@ -44,8 +44,9 @@ public class GridMergeIndexUnsorted extends GridMergeIndex {
/** {@inheritDoc} */
@Override protected void addPage0(GridResultPage page) {
- if (page.rowsInPage() != 0 || page.isLast() || queue.isEmpty())
- queue.add(page);
+ assert page.rowsInPage() > 0 || page.isLast() || page.isFail();
+
+ queue.add(page);
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8e8433b6/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
index 343a439..c570d24 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
@@ -229,7 +229,7 @@ public class GridReduceQueryExecutor {
GridResultPage page;
try {
- page = new GridResultPage(ctx, node.id(), msg, false) {
+ page = new GridResultPage(ctx, node.id(), msg) {
@Override public void fetchNextPage() {
Object errState = r.state.get();
@@ -251,7 +251,7 @@ public class GridReduceQueryExecutor {
ctx.io().send(node, GridTopic.TOPIC_QUERY, msg0, GridIoPolicy.PUBLIC_POOL);
}
catch (IgniteCheckedException e) {
- throw new CacheException(e);
+ throw new CacheException("Failed to fetch data from node: " + node.id(), e);
}
}
};
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8e8433b6/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridResultPage.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridResultPage.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridResultPage.java
index 35bfab9..c9a7e48 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridResultPage.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridResultPage.java
@@ -43,27 +43,19 @@ public class GridResultPage {
private final int rowsInPage;
/** */
- private final boolean last;
-
- /** */
private Iterator<Value[]> rows;
/**
* @param ctx Kernal context.
* @param src Source.
* @param res Response.
- * @param last If this is the globally last page.
*/
@SuppressWarnings("unchecked")
- public GridResultPage(final GridKernalContext ctx, UUID src, GridQueryNextPageResponse res, boolean last) {
+ public GridResultPage(final GridKernalContext ctx, UUID src, GridQueryNextPageResponse res) {
assert src != null;
this.src = src;
this.res = res;
- this.last = last;
-
- if (last)
- assert res == null : "The last page must be dummy.";
// res == null means that it is a terminating dummy page for the given source node ID.
if (res != null) {
@@ -117,10 +109,17 @@ public class GridResultPage {
}
/**
+ * @return {@code true} If this is a dummy fail page.
+ */
+ public boolean isFail() {
+ return false;
+ }
+
+ /**
* @return {@code true} If this is a dummy last page for all the sources.
*/
public boolean isLast() {
- return last;
+ return false;
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8e8433b6/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java
index e65cc13..d440b13 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java
@@ -32,6 +32,7 @@ import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
import org.apache.ignite.testframework.junits.common.*;
+import javax.cache.*;
import java.io.*;
import java.util.*;
import java.util.concurrent.*;
@@ -215,7 +216,38 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest
if (rnd.nextBoolean()) { // Partitioned query.
IgniteCache<?,?> cache = grid(g).cache("pu");
- assertEquals(pRes, cache.query(new SqlFieldsQuery(PARTITIONED_QRY)).getAll());
+ SqlFieldsQuery qry = new SqlFieldsQuery(PARTITIONED_QRY);
+
+ boolean smallPageSize = rnd.nextBoolean();
+
+ if (smallPageSize)
+ qry.setPageSize(3);
+
+ try {
+ assertEquals(pRes, cache.query(qry).getAll());
+ }
+ catch (CacheException e) {
+ assertTrue("On large page size must retry.", smallPageSize);
+
+ boolean failedOnRemoteFetch = false;
+
+ for (Throwable th = e; th != null; th = th.getCause()) {
+ if (!(th instanceof CacheException))
+ continue;
+
+ if (th.getMessage().startsWith("Failed to fetch data from node:")) {
+ failedOnRemoteFetch = true;
+
+ break;
+ }
+ }
+
+ if (!failedOnRemoteFetch) {
+ e.printStackTrace();
+
+ fail("Must fail inside of GridResultPage.fetchNextPage or subclass.");
+ }
+ }
}
else { // Replicated query.
IgniteCache<?,?> cache = grid(g).cache("co");
[21/50] incubator-ignite git commit: ignite-484-1 - error messages
Posted by vo...@apache.org.
ignite-484-1 - error messages
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/e602ca01
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/e602ca01
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/e602ca01
Branch: refs/heads/ignite-gg-10411
Commit: e602ca01e48fd43f4cc33b729078c105d84601f6
Parents: efb4244
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jun 17 20:15:45 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jun 17 20:15:45 2015 +0300
----------------------------------------------------------------------
.../query/h2/twostep/GridMapQueryExecutor.java | 4 +--
.../h2/twostep/GridReduceQueryExecutor.java | 31 ++++++++++----------
2 files changed, 17 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e602ca01/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
index 2503a87..ba95d43 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
@@ -401,7 +401,7 @@ public class GridMapQueryExecutor {
}
}
catch (IgniteCheckedException e) {
- throw new CacheException(e);
+ throw new CacheException("Failed to unmarshall parameters.", e);
}
List<String> caches = (List<String>)F.concat(true, req.space(), req.extraSpaces());
@@ -422,7 +422,7 @@ public class GridMapQueryExecutor {
GridCacheContext<?,?> mainCctx = cacheContext(req.space());
if (mainCctx == null)
- throw new CacheException("Cache was destroyed: " + req.space());
+ throw new CacheException("Failed to find cache: " + req.space());
qr = new QueryResults(req.requestId(), qrys.size(), mainCctx);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e602ca01/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
index b956167..32d1c95 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
@@ -338,7 +338,7 @@ public class GridReduceQueryExecutor {
Set<ClusterNode> nodes = new HashSet<>(dataNodes(space, topVer));
if (F.isEmpty(nodes))
- throw new CacheException("No data nodes found for cache: " + space);
+ throw new CacheException("Failed to find data nodes for cache: " + space);
if (!F.isEmpty(extraSpaces)) {
for (String extraSpace : extraSpaces) {
@@ -349,12 +349,12 @@ public class GridReduceQueryExecutor {
if (cctx.isReplicated() && !extraCctx.isReplicated())
throw new CacheException("Queries running on replicated cache should not contain JOINs " +
- "with partitioned tables.");
+ "with partitioned tables [rCache=" + cctx.name() + ", pCache=" + extraSpace + "]");
Collection<ClusterNode> extraNodes = dataNodes(extraSpace, topVer);
if (F.isEmpty(extraNodes))
- throw new CacheException("No data nodes found for cache: " + extraSpace);
+ throw new CacheException("Failed to find data nodes for cache: " + extraSpace);
if (cctx.isReplicated() && extraCctx.isReplicated()) {
nodes.retainAll(extraNodes);
@@ -363,8 +363,8 @@ public class GridReduceQueryExecutor {
if (isPreloadingActive(cctx, extraSpaces))
return null; // Retry.
else
- throw new CacheException("Caches '" + cctx.name() + "' and '" + extraSpace +
- "' have distinct set of data nodes.");
+ throw new CacheException("Caches have distinct sets of data nodes [cache1=" + cctx.name() +
+ ", cache2=" + extraSpace + "]");
}
}
else if (!cctx.isReplicated() && extraCctx.isReplicated()) {
@@ -372,16 +372,16 @@ public class GridReduceQueryExecutor {
if (isPreloadingActive(cctx, extraSpaces))
return null; // Retry.
else
- throw new CacheException("Caches '" + cctx.name() + "' and '" + extraSpace +
- "' have distinct set of data nodes.");
+ throw new CacheException("Caches have distinct sets of data nodes [cache1=" + cctx.name() +
+ ", cache2=" + extraSpace + "]");
}
else if (!cctx.isReplicated() && !extraCctx.isReplicated()) {
if (extraNodes.size() != nodes.size() || !nodes.containsAll(extraNodes))
if (isPreloadingActive(cctx, extraSpaces))
return null; // Retry.
else
- throw new CacheException("Caches '" + cctx.name() + "' and '" + extraSpace +
- "' have distinct set of data nodes.");
+ throw new CacheException("Caches have distinct sets of data nodes [cache1=" + cctx.name() +
+ ", cache2=" + extraSpace + "]");
}
else
throw new IllegalStateException();
@@ -586,7 +586,7 @@ public class GridReduceQueryExecutor {
if (!extraCctx.isReplicated())
throw new CacheException("Queries running on replicated cache should not contain JOINs " +
- "with partitioned tables.");
+ "with tables in partitioned caches [rCache=" + cctx.name() + ", pCache=" + extraSpace + "]");
Set<ClusterNode> extraOwners = replicatedUnstableDataNodes(extraCctx);
@@ -628,7 +628,7 @@ public class GridReduceQueryExecutor {
Set<ClusterNode> dataNodes = new HashSet<>(dataNodes(space, NONE));
if (dataNodes.isEmpty())
- throw new CacheException("No data nodes found for cache '" + space + "'");
+ throw new CacheException("Failed to find data nodes for cache: " + space);
// Find all the nodes owning all the partitions for replicated cache.
for (int p = 0, parts = cctx.affinity().partitions(); p < parts; p++) {
@@ -670,8 +670,8 @@ public class GridReduceQueryExecutor {
int parts = extraCctx.affinity().partitions();
if (parts != partsCnt)
- throw new CacheException("Number of partitions must be the same for correct collocation in " +
- "caches " + cctx.name() + " and " + extraSpace + ".");
+ throw new CacheException("Number of partitions must be the same for correct collocation [cache1=" +
+ cctx.name() + ", parts1=" + partsCnt + ", cache2=" + extraSpace + ", parts2=" + parts + "]");
}
}
@@ -685,7 +685,7 @@ public class GridReduceQueryExecutor {
if (!F.isEmpty(dataNodes(cctx.name(), NONE)))
return null; // Retry.
- throw new CacheException("No data nodes found for cache '" + cctx.name() + "' for partition " + p);
+ throw new CacheException("Failed to find data nodes [cache=" + cctx.name() + ", part=" + p + "]");
}
partLocs[p] = new HashSet<>(owners);
@@ -707,8 +707,7 @@ public class GridReduceQueryExecutor {
if (!F.isEmpty(dataNodes(extraSpace, NONE)))
return null; // Retry.
- throw new CacheException("No data nodes found for cache '" + extraSpace +
- "' for partition " + p);
+ throw new CacheException("Failed to find data nodes [cache=" + extraSpace + ", part=" + p + "]");
}
if (partLocs[p] == null)
[18/50] incubator-ignite git commit: # i-484-1 review
Posted by vo...@apache.org.
# i-484-1 review
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/42982382
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/42982382
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/42982382
Branch: refs/heads/ignite-gg-10411
Commit: 42982382ee92bc12073beac34d72590bf905ed3e
Parents: 10febf2
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Wed Jun 17 18:12:49 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Wed Jun 17 18:12:49 2015 +0300
----------------------------------------------------------------------
.../processors/query/h2/twostep/GridReduceQueryExecutor.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/42982382/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
index c570d24..6c407d9 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
@@ -438,7 +438,8 @@ public class GridReduceQueryExecutor {
assert !nodes.isEmpty();
if (cctx.isReplicated() || qry.explain()) {
- assert qry.explain() || !nodes.contains(ctx.cluster().get().localNode()) : "We must be on a client node.";
+ assert qry.explain() || !nodes.contains(ctx.cluster().get().localNode()) :
+ "We must be on a client node.";
// Select random data node to run query on a replicated data or get EXPLAIN PLAN from a single node.
nodes = Collections.singleton(F.rand(nodes));
[31/50] incubator-ignite git commit: # ignite-sprint-6 more info in
test assert
Posted by vo...@apache.org.
# ignite-sprint-6 more info in test assert
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/d874b00d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/d874b00d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/d874b00d
Branch: refs/heads/ignite-gg-10411
Commit: d874b00dcb1687339adc34b6212e8cbc5b9ffe16
Parents: 6c683c2
Author: sboikov <sb...@gridgain.com>
Authored: Thu Jun 18 11:07:04 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Jun 18 11:07:04 2015 +0300
----------------------------------------------------------------------
.../IgniteCacheAbstractStopBusySelfTest.java | 30 ++++++++++++--------
.../IgniteCacheAtomicStopBusySelfTest.java | 8 +++---
...gniteCacheTransactionalStopBusySelfTest.java | 8 +++---
3 files changed, 26 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d874b00d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractStopBusySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractStopBusySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractStopBusySelfTest.java
index 10b14cc..074f6ff 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractStopBusySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractStopBusySelfTest.java
@@ -36,9 +36,13 @@ import org.apache.ignite.testframework.junits.common.*;
import org.jetbrains.annotations.*;
import java.io.*;
+import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.*;
+import static org.apache.ignite.cache.CacheRebalanceMode.*;
+import static org.apache.ignite.cache.CacheWriteSynchronizationMode.*;
+
/**
*
*/
@@ -53,7 +57,7 @@ public abstract class IgniteCacheAbstractStopBusySelfTest extends GridCommonAbst
public static final String CACHE_NAME = "StopTest";
/** */
- public static final TcpDiscoveryIpFinder finder = new TcpDiscoveryVmIpFinder(true);
+ public final TcpDiscoveryIpFinder finder = new TcpDiscoveryVmIpFinder(true);
/** */
private AtomicBoolean suspended = new AtomicBoolean(false);
@@ -62,7 +66,7 @@ public abstract class IgniteCacheAbstractStopBusySelfTest extends GridCommonAbst
private CountDownLatch blocked;
/** */
- protected AtomicReference<Class> bannedMessage = new AtomicReference<>();
+ protected AtomicReference<Class> bannedMsg = new AtomicReference<>();
/**
* @return Cache mode.
@@ -93,9 +97,9 @@ public abstract class IgniteCacheAbstractStopBusySelfTest extends GridCommonAbst
if (gridName.endsWith(String.valueOf(CLN_GRD)))
cfg.setClientMode(true);
- cacheCfg.setRebalanceMode(CacheRebalanceMode.SYNC);
+ cacheCfg.setRebalanceMode(SYNC);
- cacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
+ cacheCfg.setWriteSynchronizationMode(FULL_SYNC);
cacheCfg.setBackups(1);
@@ -125,14 +129,14 @@ public abstract class IgniteCacheAbstractStopBusySelfTest extends GridCommonAbst
TimeUnit.MILLISECONDS.sleep(100L);
}
- assert clientNode().cluster().nodes().size() == 2;
+ assertEquals(2, clientNode().cluster().nodes().size());
}
/** {@inheritDoc} */
@Override protected void afterTest() throws Exception {
suspended.set(false);
- bannedMessage.set(null);
+ bannedMsg.set(null);
afterTestsStopped();
@@ -140,7 +144,9 @@ public abstract class IgniteCacheAbstractStopBusySelfTest extends GridCommonAbst
stopGrid(CLN_GRD);
- assert G.allGrids().isEmpty();
+ List<Ignite> nodes = G.allGrids();
+
+ assertTrue("Unexpected nodes: " + nodes, nodes.isEmpty());
}
/**
@@ -203,12 +209,11 @@ public abstract class IgniteCacheAbstractStopBusySelfTest extends GridCommonAbst
* @throws Exception If failed.
*/
public void testGet() throws Exception {
- bannedMessage.set(GridNearGetRequest.class);
+ bannedMsg.set(GridNearGetRequest.class);
executeTest(new Callable<Integer>() {
/** {@inheritDoc} */
- @Override
- public Integer call() throws Exception {
+ @Override public Integer call() throws Exception {
info("Start operation.");
Integer put = (Integer) clientCache().get(1);
@@ -318,6 +323,7 @@ public abstract class IgniteCacheAbstractStopBusySelfTest extends GridCommonAbst
* @return Cache configuration.
* @throws Exception In case of error.
*/
+ @SuppressWarnings("unchecked")
private CacheConfiguration cacheConfiguration(@Nullable String cacheName) throws Exception {
CacheConfiguration cfg = defaultCacheConfiguration();
@@ -339,10 +345,10 @@ public abstract class IgniteCacheAbstractStopBusySelfTest extends GridCommonAbst
/** {@inheritDoc} */
@Override public void sendMessage(ClusterNode node, Message msg) throws IgniteSpiException {
if (suspended.get()) {
- assert bannedMessage.get() != null;
+ assert bannedMsg.get() != null;
if (msg instanceof GridIoMessage
- && ((GridIoMessage)msg).message().getClass().equals(bannedMessage.get())) {
+ && ((GridIoMessage)msg).message().getClass().equals(bannedMsg.get())) {
blocked.countDown();
return;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d874b00d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAtomicStopBusySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAtomicStopBusySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAtomicStopBusySelfTest.java
index bae1601..ed15724 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAtomicStopBusySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAtomicStopBusySelfTest.java
@@ -31,28 +31,28 @@ public class IgniteCacheAtomicStopBusySelfTest extends IgniteCacheAbstractStopBu
/** {@inheritDoc} */
@Override public void testPut() throws Exception {
- bannedMessage.set(GridNearAtomicUpdateRequest.class);
+ bannedMsg.set(GridNearAtomicUpdateRequest.class);
super.testPut();
}
/** {@inheritDoc} */
@Override public void testPutBatch() throws Exception {
- bannedMessage.set(GridNearAtomicUpdateRequest.class);
+ bannedMsg.set(GridNearAtomicUpdateRequest.class);
super.testPut();
}
/** {@inheritDoc} */
@Override public void testPutAsync() throws Exception {
- bannedMessage.set(GridNearAtomicUpdateRequest.class);
+ bannedMsg.set(GridNearAtomicUpdateRequest.class);
super.testPut();
}
/** {@inheritDoc} */
@Override public void testRemove() throws Exception {
- bannedMessage.set(GridNearAtomicUpdateRequest.class);
+ bannedMsg.set(GridNearAtomicUpdateRequest.class);
super.testPut();
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d874b00d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTransactionalStopBusySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTransactionalStopBusySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTransactionalStopBusySelfTest.java
index fe1b266..e87a772 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTransactionalStopBusySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTransactionalStopBusySelfTest.java
@@ -30,28 +30,28 @@ public class IgniteCacheTransactionalStopBusySelfTest extends IgniteCacheAbstrac
/** {@inheritDoc} */
@Override public void testPut() throws Exception {
- bannedMessage.set(GridNearTxPrepareRequest.class);
+ bannedMsg.set(GridNearTxPrepareRequest.class);
super.testPut();
}
/** {@inheritDoc} */
@Override public void testPutBatch() throws Exception {
- bannedMessage.set(GridNearTxPrepareRequest.class);
+ bannedMsg.set(GridNearTxPrepareRequest.class);
super.testPut();
}
/** {@inheritDoc} */
@Override public void testPutAsync() throws Exception {
- bannedMessage.set(GridNearTxPrepareRequest.class);
+ bannedMsg.set(GridNearTxPrepareRequest.class);
super.testPut();
}
/** {@inheritDoc} */
@Override public void testRemove() throws Exception {
- bannedMessage.set(GridNearTxPrepareRequest.class);
+ bannedMsg.set(GridNearTxPrepareRequest.class);
super.testPut();
}
[47/50] incubator-ignite git commit: # ignite-sprint-7 disabled shmem
for test
Posted by vo...@apache.org.
# ignite-sprint-7 disabled shmem for test
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/edc9a1c4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/edc9a1c4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/edc9a1c4
Branch: refs/heads/ignite-gg-10411
Commit: edc9a1c4b13afb8ef36a961f4d5b252135b916b6
Parents: 044f17d
Author: sboikov <sb...@gridgain.com>
Authored: Thu Jun 18 16:31:57 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Jun 18 16:31:57 2015 +0300
----------------------------------------------------------------------
.../processors/cache/distributed/IgniteCacheManyClientsTest.java | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/edc9a1c4/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java
index c3223a2..48884de 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java
@@ -63,6 +63,7 @@ public class IgniteCacheManyClientsTest extends GridCommonAbstractTest {
cfg.setTimeServerPortRange(200);
((TcpCommunicationSpi)cfg.getCommunicationSpi()).setLocalPortRange(200);
+ ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
((TcpDiscoverySpi)cfg.getDiscoverySpi()).setJoinTimeout(2 * 60_000);
[17/50] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-1020' into ignite-sprint-6
Posted by vo...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-1020' into ignite-sprint-6
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/af829d0e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/af829d0e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/af829d0e
Branch: refs/heads/ignite-gg-10411
Commit: af829d0ee0a646ac7ed96c65ddda7fc6f38212b0
Parents: 5218210 674072a
Author: sboikov <sb...@gridgain.com>
Authored: Wed Jun 17 17:19:58 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Jun 17 17:19:58 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheAdapter.java | 4 +
.../processors/cache/IgniteCacheProxy.java | 7 +
.../dht/GridDhtTransactionalCacheAdapter.java | 2 +-
.../cache/transactions/IgniteTxHandler.java | 2 +-
.../transactions/IgniteTxLocalAdapter.java | 12 +-
.../dr/IgniteDrDataStreamerCacheUpdater.java | 7 +-
.../CacheStoreUsageMultinodeAbstractTest.java | 305 +++++++++++++++++++
...eUsageMultinodeDynamicStartAbstractTest.java | 169 ++++++++++
...oreUsageMultinodeDynamicStartAtomicTest.java | 32 ++
...heStoreUsageMultinodeDynamicStartTxTest.java | 32 ++
...reUsageMultinodeStaticStartAbstractTest.java | 158 ++++++++++
...toreUsageMultinodeStaticStartAtomicTest.java | 32 ++
...cheStoreUsageMultinodeStaticStartTxTest.java | 32 ++
.../testsuites/IgniteCacheTestSuite4.java | 4 +
14 files changed, 791 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
[09/50] incubator-ignite git commit: Merge branches 'ignite-484-1'
and 'ignite-sprint-6' of
https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-484-1
Posted by vo...@apache.org.
Merge branches 'ignite-484-1' and 'ignite-sprint-6' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-484-1
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/0b8587ba
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/0b8587ba
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/0b8587ba
Branch: refs/heads/ignite-gg-10411
Commit: 0b8587ba81400a5227e8d3bb8be52f8c0d7d179f
Parents: c1fc7b5 5218210
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jun 17 14:40:23 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jun 17 14:40:23 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/IgniteKernal.java | 13 +-----------
.../client/GridClientConfiguration.java | 2 +-
.../GridClientOptimizedMarshaller.java | 21 ++++++++++++++++++++
.../impl/GridTcpRouterNioListenerAdapter.java | 2 +-
.../rest/protocols/tcp/GridTcpRestProtocol.java | 3 ++-
.../ignite/internal/util/IgniteUtils.java | 21 ++++++++++++++++++++
6 files changed, 47 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
[39/50] incubator-ignite git commit: Merge remote-tracking branch
'origin/ignite-sprint-6' into ignite-sprint-6
Posted by vo...@apache.org.
Merge remote-tracking branch 'origin/ignite-sprint-6' into ignite-sprint-6
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/cb862b65
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/cb862b65
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/cb862b65
Branch: refs/heads/ignite-gg-10411
Commit: cb862b65ffc1e0ecfc9a93b6af10881586df1ede
Parents: 5011c2b ca81476
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Thu Jun 18 14:50:56 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Thu Jun 18 14:50:56 2015 +0300
----------------------------------------------------------------------
.../datastreamer/DataStreamerMultiThreadedSelfTest.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
[19/50] incubator-ignite git commit: ignite-484-1 - improved retry
Posted by vo...@apache.org.
ignite-484-1 - improved retry
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/94060c9e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/94060c9e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/94060c9e
Branch: refs/heads/ignite-gg-10411
Commit: 94060c9ef41161c7262a28044ddb176f86814b01
Parents: 10febf2
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jun 17 19:46:42 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jun 17 19:46:42 2015 +0300
----------------------------------------------------------------------
.../query/h2/twostep/GridMapQueryExecutor.java | 26 ++++--
.../h2/twostep/GridReduceQueryExecutor.java | 86 ++++++++++++++------
...lientQueryReplicatedNodeRestartSelfTest.java | 50 ++++++++++--
3 files changed, 125 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/94060c9e/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
index aaf64ee..2503a87 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
@@ -48,6 +48,7 @@ import java.util.concurrent.*;
import java.util.concurrent.atomic.*;
import static org.apache.ignite.events.EventType.*;
+import static org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion.*;
import static org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState.*;
import static org.apache.ignite.internal.processors.query.h2.twostep.msg.GridH2ValueMessageFactory.*;
@@ -230,6 +231,15 @@ public class GridMapQueryExecutor {
}
/**
+ * @param cctx Cache context.
+ * @param p Partition ID.
+ * @return Partition.
+ */
+ private GridDhtLocalPartition partition(GridCacheContext<?, ?> cctx, int p) {
+ return cctx.topology().localPartition(p, NONE, false);
+ }
+
+ /**
* @param cacheNames Cache names.
* @param topVer Topology version.
* @param explicitParts Explicit partitions list.
@@ -263,10 +273,12 @@ public class GridMapQueryExecutor {
GridReservable r = reservations.get(grpKey);
if (explicitParts == null && r != null) { // Try to reserve group partition if any and no explicits.
- if (!r.reserve())
- return false; // We need explicit partitions here -> retry.
+ if (r != ReplicatedReservation.INSTANCE) {
+ if (!r.reserve())
+ return false; // We need explicit partitions here -> retry.
- reserved.add(r);
+ reserved.add(r);
+ }
}
else { // Try to reserve partitions one by one.
int partsCnt = cctx.affinity().partitions();
@@ -274,7 +286,7 @@ public class GridMapQueryExecutor {
if (cctx.isReplicated()) { // Check all the partitions are in owning state for replicated cache.
if (r == null) { // Check only once.
for (int p = 0; p < partsCnt; p++) {
- GridDhtLocalPartition part = cctx.topology().localPartition(p, topVer, false);
+ GridDhtLocalPartition part = partition(cctx, p);
// We don't need to reserve partitions because they will not be evicted in replicated caches.
if (part == null || part.state() != OWNING)
@@ -290,7 +302,7 @@ public class GridMapQueryExecutor {
partIds = cctx.affinity().primaryPartitions(ctx.localNodeId(), topVer);
for (int partId : partIds) {
- GridDhtLocalPartition part = cctx.topology().localPartition(partId, topVer, false);
+ GridDhtLocalPartition part = partition(cctx, partId);
if (part == null || part.state() != OWNING || !part.reserve())
return false;
@@ -806,12 +818,12 @@ public class GridMapQueryExecutor {
/** {@inheritDoc} */
@Override public boolean reserve() {
- return true;
+ throw new IllegalStateException();
}
/** {@inheritDoc} */
@Override public void release() {
- // No-op.
+ throw new IllegalStateException();
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/94060c9e/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
index c570d24..6635dde 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
@@ -335,7 +335,7 @@ public class GridReduceQueryExecutor {
) {
String space = cctx.name();
- Set<ClusterNode> nodes = new HashSet<>(ctx.discovery().cacheAffinityNodes(space, topVer));
+ Set<ClusterNode> nodes = new HashSet<>(dataNodes(space, topVer));
if (F.isEmpty(nodes))
throw new CacheException("No data nodes found for cache: " + space);
@@ -351,7 +351,7 @@ public class GridReduceQueryExecutor {
throw new CacheException("Queries running on replicated cache should not contain JOINs " +
"with partitioned tables.");
- Collection<ClusterNode> extraNodes = ctx.discovery().cacheAffinityNodes(extraSpace, topVer);
+ Collection<ClusterNode> extraNodes = dataNodes(extraSpace, topVer);
if (F.isEmpty(extraNodes))
throw new CacheException("No data nodes found for cache: " + extraSpace);
@@ -398,7 +398,18 @@ public class GridReduceQueryExecutor {
* @return Cursor.
*/
public Iterator<List<?>> query(GridCacheContext<?,?> cctx, GridCacheTwoStepQuery qry, boolean keepPortable) {
- for (;;) {
+ for (int attempt = 0;; attempt++) {
+ if (attempt != 0) {
+ try {
+ Thread.sleep(attempt * 10); // Wait for exchange.
+ }
+ catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+
+ throw new CacheException("Query was interrupted.", e);
+ }
+ }
+
long qryReqId = reqIdGen.incrementAndGet();
QueryRun r = new QueryRun();
@@ -422,9 +433,9 @@ public class GridReduceQueryExecutor {
if (isPreloadingActive(cctx, extraSpaces)) {
if (cctx.isReplicated())
- nodes = replicatedDataNodes(cctx, extraSpaces);
+ nodes = replicatedUnstableDataNodes(cctx, extraSpaces);
else {
- partsMap = partitionLocations(cctx, extraSpaces);
+ partsMap = partitionedUnstableDataNodes(cctx, extraSpaces);
nodes = partsMap == null ? null : partsMap.keySet();
}
@@ -538,9 +549,6 @@ public class GridReduceQueryExecutor {
catch (IgniteCheckedException | RuntimeException e) {
U.closeQuiet(r.conn);
- if (e instanceof CacheException)
- throw (CacheException)e;
-
throw new CacheException("Failed to run reduce query locally.", e);
}
finally {
@@ -559,10 +567,14 @@ public class GridReduceQueryExecutor {
* @param extraSpaces Extra spaces.
* @return Collection of all data nodes owning all the caches or {@code null} for retry.
*/
- private Collection<ClusterNode> replicatedDataNodes(final GridCacheContext<?,?> cctx, List<String> extraSpaces) {
+ private Collection<ClusterNode> replicatedUnstableDataNodes(final GridCacheContext<?,?> cctx,
+ List<String> extraSpaces) {
assert cctx.isReplicated() : cctx.name() + " must be replicated";
- Set<ClusterNode> nodes = owningReplicatedDataNodes(cctx);
+ Set<ClusterNode> nodes = replicatedUnstableDataNodes(cctx);
+
+ if (F.isEmpty(nodes))
+ return null; // Retry.
if (!F.isEmpty(extraSpaces)) {
for (String extraSpace : extraSpaces) {
@@ -575,7 +587,12 @@ public class GridReduceQueryExecutor {
throw new CacheException("Queries running on replicated cache should not contain JOINs " +
"with partitioned tables.");
- nodes.retainAll(owningReplicatedDataNodes(extraCctx));
+ Set<ClusterNode> extraOwners = replicatedUnstableDataNodes(extraCctx);
+
+ if (F.isEmpty(extraOwners))
+ return null; // Retry.
+
+ nodes.retainAll(extraOwners);
if (nodes.isEmpty())
return null; // Retry.
@@ -586,34 +603,43 @@ public class GridReduceQueryExecutor {
}
/**
+ * @param space Cache name.
+ * @param topVer Topology version.
+ * @return Collection of data nodes.
+ */
+ private Collection<ClusterNode> dataNodes(String space, AffinityTopologyVersion topVer) {
+ Collection<ClusterNode> res = ctx.discovery().cacheAffinityNodes(space, topVer);
+
+ return res != null ? res : Collections.<ClusterNode>emptySet();
+ }
+
+ /**
* Collects all the nodes owning all the partitions for the given replicated cache.
*
* @param cctx Cache context.
- * @return Owning nodes.
+ * @return Owning nodes or {@code null} if we can't find owners for some partitions.
*/
- private Set<ClusterNode> owningReplicatedDataNodes(GridCacheContext<?,?> cctx) {
+ private Set<ClusterNode> replicatedUnstableDataNodes(GridCacheContext<?,?> cctx) {
assert cctx.isReplicated() : cctx.name() + " must be replicated";
String space = cctx.name();
- Set<ClusterNode> dataNodes = new HashSet<>(ctx.discovery().cacheAffinityNodes(space, NONE));
+ Set<ClusterNode> dataNodes = new HashSet<>(dataNodes(space, NONE));
if (dataNodes.isEmpty())
throw new CacheException("No data nodes found for cache '" + space + "'");
// Find all the nodes owning all the partitions for replicated cache.
- for (int p = 0, extraParts = cctx.affinity().partitions(); p < extraParts; p++) {
+ for (int p = 0, parts = cctx.affinity().partitions(); p < parts; p++) {
List<ClusterNode> owners = cctx.topology().owners(p);
- if (owners.isEmpty())
- throw new CacheException("No data nodes found for cache '" + space +
- "' for partition " + p);
+ if (F.isEmpty(owners))
+ return null; // Retry.
dataNodes.retainAll(owners);
if (dataNodes.isEmpty())
- throw new CacheException("No data nodes found for cache '" + space +
- "' owning all the partitions.");
+ return null; // Retry.
}
return dataNodes;
@@ -627,7 +653,8 @@ public class GridReduceQueryExecutor {
* @return Partition mapping or {@code null} if we can't calculate it due to repartitioning and we need to retry.
*/
@SuppressWarnings("unchecked")
- private Map<ClusterNode, IntArray> partitionLocations(final GridCacheContext<?,?> cctx, List<String> extraSpaces) {
+ private Map<ClusterNode, IntArray> partitionedUnstableDataNodes(final GridCacheContext<?,?> cctx,
+ List<String> extraSpaces) {
assert !cctx.isReplicated() && !cctx.isLocal() : cctx.name() + " must be partitioned";
final int partsCnt = cctx.affinity().partitions();
@@ -653,8 +680,12 @@ public class GridReduceQueryExecutor {
for (int p = 0, parts = cctx.affinity().partitions(); p < parts; p++) {
List<ClusterNode> owners = cctx.topology().owners(p);
- if (F.isEmpty(owners))
+ if (F.isEmpty(owners)) {
+ if (!F.isEmpty(dataNodes(cctx.name(), NONE)))
+ return null; // Retry.
+
throw new CacheException("No data nodes found for cache '" + cctx.name() + "' for partition " + p);
+ }
partLocs[p] = new HashSet<>(owners);
}
@@ -671,9 +702,13 @@ public class GridReduceQueryExecutor {
for (int p = 0, parts = extraCctx.affinity().partitions(); p < parts; p++) {
List<ClusterNode> owners = extraCctx.topology().owners(p);
- if (F.isEmpty(owners))
+ if (F.isEmpty(owners)) {
+ if (!F.isEmpty(dataNodes(extraSpace, NONE)))
+ return null; // Retry.
+
throw new CacheException("No data nodes found for cache '" + extraSpace +
"' for partition " + p);
+ }
if (partLocs[p] == null)
partLocs[p] = new HashSet<>(owners);
@@ -693,7 +728,10 @@ public class GridReduceQueryExecutor {
if (!extraCctx.isReplicated())
continue;
- Set<ClusterNode> dataNodes = owningReplicatedDataNodes(extraCctx);
+ Set<ClusterNode> dataNodes = replicatedUnstableDataNodes(extraCctx);
+
+ if (F.isEmpty(dataNodes))
+ return null; // Retry.
for (Set<ClusterNode> partLoc : partLocs) {
partLoc.retainAll(dataNodes);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/94060c9e/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java
index 23f44c0..3f23005 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java
@@ -64,6 +64,9 @@ public class IgniteCacheClientQueryReplicatedNodeRestartSelfTest extends GridCom
};
/** */
+ private static final List<List<?>> FAKE = new LinkedList<>();
+
+ /** */
private static final int GRID_CNT = 5;
/** */
@@ -191,7 +194,7 @@ public class IgniteCacheClientQueryReplicatedNodeRestartSelfTest extends GridCom
public void testRestarts() throws Exception {
int duration = 90 * 1000;
int qryThreadNum = 5;
- int restartThreadsNum = 2; // 2 of 4 data nodes
+ int restartThreadsNum = 3; // 3 of 4 data nodes
final int nodeLifeTime = 2 * 1000;
final int logFreq = 10;
@@ -212,13 +215,32 @@ public class IgniteCacheClientQueryReplicatedNodeRestartSelfTest extends GridCom
final AtomicInteger qryCnt = new AtomicInteger();
final AtomicBoolean qrysDone = new AtomicBoolean();
+ final List<Integer> cacheSize = new ArrayList<>(4);
+
for (int i = 0; i < GRID_CNT - 1; i++) {
- for (String cacheName : F.asList("co", "pr", "pe", "pu"))
- assertClient(grid(i).cache(cacheName), false);
+ int j = 0;
+
+ for (String cacheName : F.asList("co", "pr", "pe", "pu")) {
+ IgniteCache<?,?> cache = grid(i).cache(cacheName);
+
+ assertClient(cache, false);
+
+ if (i == 0)
+ cacheSize.add(cache.size());
+ else
+ assertEquals(cacheSize.get(j++).intValue(), cache.size());
+ }
}
- for (String cacheName : F.asList("co", "pr", "pe", "pu"))
- assertClient(grid(GRID_CNT - 1).cache(cacheName), true);
+ int j = 0;
+
+ for (String cacheName : F.asList("co", "pr", "pe", "pu")) {
+ IgniteCache<?,?> cache = grid(GRID_CNT - 1).cache(cacheName);
+
+ assertClient(cache, true);
+
+ assertEquals(cacheSize.get(j++).intValue(), cache.size());
+ }
final IgniteCache<?,?> clientCache = grid(GRID_CNT - 1).cache("pu");
@@ -234,8 +256,10 @@ public class IgniteCacheClientQueryReplicatedNodeRestartSelfTest extends GridCom
if (smallPageSize)
qry.setPageSize(3);
+ List<List<?>> res;
+
try {
- assertEquals(pRes, clientCache.query(qry).getAll());
+ res = clientCache.query(qry).getAll();
}
catch (CacheException e) {
assertTrue("On large page size must retry.", smallPageSize);
@@ -259,6 +283,20 @@ public class IgniteCacheClientQueryReplicatedNodeRestartSelfTest extends GridCom
fail("Must fail inside of GridResultPage.fetchNextPage or subclass.");
}
+
+ res = FAKE;
+ }
+
+ if (res != FAKE && !res.equals(pRes)) {
+ int j = 0;
+
+ // Check for data loss.
+ for (String cacheName : F.asList("co", "pr", "pe", "pu")) {
+ assertEquals(cacheName, cacheSize.get(j++).intValue(),
+ grid(GRID_CNT - 1).cache(cacheName).size());
+ }
+
+ assertEquals(pRes, res); // Fail with nice message.
}
int c = qryCnt.incrementAndGet();
[15/50] incubator-ignite git commit: 1.1.4-SNAPSHOT
Posted by vo...@apache.org.
1.1.4-SNAPSHOT
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/489ab0f1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/489ab0f1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/489ab0f1
Branch: refs/heads/ignite-gg-10411
Commit: 489ab0f1a6b24460bf1896798780b2203a1f5d27
Parents: 8c2553e
Author: Ignite Teamcity <ig...@apache.org>
Authored: Wed Jun 17 16:54:34 2015 +0300
Committer: Ignite Teamcity <ig...@apache.org>
Committed: Wed Jun 17 16:54:34 2015 +0300
----------------------------------------------------------------------
examples/pom.xml | 2 +-
modules/aop/pom.xml | 2 +-
modules/aws/pom.xml | 2 +-
modules/clients/pom.xml | 2 +-
modules/cloud/pom.xml | 2 +-
modules/codegen/pom.xml | 2 +-
modules/core/pom.xml | 2 +-
modules/core/src/main/resources/ignite.properties | 2 +-
modules/extdata/p2p/pom.xml | 2 +-
modules/extdata/uri/pom.xml | 2 +-
modules/gce/pom.xml | 2 +-
modules/geospatial/pom.xml | 2 +-
modules/hadoop/pom.xml | 2 +-
modules/hibernate/pom.xml | 2 +-
modules/indexing/pom.xml | 2 +-
modules/jcl/pom.xml | 2 +-
modules/jta/pom.xml | 2 +-
modules/log4j/pom.xml | 2 +-
modules/mesos/pom.xml | 2 +-
modules/rest-http/pom.xml | 2 +-
modules/scalar-2.10/pom.xml | 2 +-
modules/scalar/pom.xml | 2 +-
modules/schedule/pom.xml | 2 +-
modules/schema-import/pom.xml | 2 +-
modules/slf4j/pom.xml | 2 +-
modules/spark-2.10/pom.xml | 2 +-
modules/spark/pom.xml | 2 +-
modules/spring/pom.xml | 2 +-
modules/ssh/pom.xml | 2 +-
modules/tools/pom.xml | 2 +-
modules/urideploy/pom.xml | 2 +-
modules/visor-console-2.10/pom.xml | 2 +-
modules/visor-console/pom.xml | 2 +-
modules/visor-plugins/pom.xml | 2 +-
modules/web/pom.xml | 2 +-
modules/yardstick/pom.xml | 2 +-
pom.xml | 2 +-
37 files changed, 37 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/examples/pom.xml
----------------------------------------------------------------------
diff --git a/examples/pom.xml b/examples/pom.xml
index 016b3ce..834b5b4 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -28,7 +28,7 @@
</parent>
<artifactId>ignite-examples</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/aop/pom.xml
----------------------------------------------------------------------
diff --git a/modules/aop/pom.xml b/modules/aop/pom.xml
index e04f183..e9cc980 100644
--- a/modules/aop/pom.xml
+++ b/modules/aop/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-aop</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/aws/pom.xml
----------------------------------------------------------------------
diff --git a/modules/aws/pom.xml b/modules/aws/pom.xml
index f7fdfbc..1d3b1f3 100644
--- a/modules/aws/pom.xml
+++ b/modules/aws/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-aws</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/clients/pom.xml
----------------------------------------------------------------------
diff --git a/modules/clients/pom.xml b/modules/clients/pom.xml
index 7842c47..6b28630 100644
--- a/modules/clients/pom.xml
+++ b/modules/clients/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-clients</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/cloud/pom.xml
----------------------------------------------------------------------
diff --git a/modules/cloud/pom.xml b/modules/cloud/pom.xml
index 579c6a0..0c9cd3d 100644
--- a/modules/cloud/pom.xml
+++ b/modules/cloud/pom.xml
@@ -29,7 +29,7 @@
</parent>
<artifactId>ignite-cloud</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<properties>
<jcloud.version>1.9.0</jcloud.version>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/codegen/pom.xml
----------------------------------------------------------------------
diff --git a/modules/codegen/pom.xml b/modules/codegen/pom.xml
index 9d375cc..5b7f518 100644
--- a/modules/codegen/pom.xml
+++ b/modules/codegen/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-codegen</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index a0ee32e..d84cef0 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-core</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/core/src/main/resources/ignite.properties
----------------------------------------------------------------------
diff --git a/modules/core/src/main/resources/ignite.properties b/modules/core/src/main/resources/ignite.properties
index 5171bd6..1be362f 100644
--- a/modules/core/src/main/resources/ignite.properties
+++ b/modules/core/src/main/resources/ignite.properties
@@ -15,7 +15,7 @@
# limitations under the License.
#
-ignite.version=1.1.2-SNAPSHOT
+ignite.version=1.1.4-SNAPSHOT
ignite.build=0
ignite.revision=DEV
ignite.rel.date=01011970
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/extdata/p2p/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/pom.xml b/modules/extdata/p2p/pom.xml
index 4546112..d849117 100644
--- a/modules/extdata/p2p/pom.xml
+++ b/modules/extdata/p2p/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-extdata-p2p</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/extdata/uri/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/uri/pom.xml b/modules/extdata/uri/pom.xml
index be0c73b..e62738e 100644
--- a/modules/extdata/uri/pom.xml
+++ b/modules/extdata/uri/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-extdata-uri</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/gce/pom.xml
----------------------------------------------------------------------
diff --git a/modules/gce/pom.xml b/modules/gce/pom.xml
index e0a5d1d..ff582bd 100644
--- a/modules/gce/pom.xml
+++ b/modules/gce/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-gce</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/geospatial/pom.xml
----------------------------------------------------------------------
diff --git a/modules/geospatial/pom.xml b/modules/geospatial/pom.xml
index d9bd236..bcad0b0 100644
--- a/modules/geospatial/pom.xml
+++ b/modules/geospatial/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-geospatial</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/hadoop/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hadoop/pom.xml b/modules/hadoop/pom.xml
index dd7c9b7..1884271 100644
--- a/modules/hadoop/pom.xml
+++ b/modules/hadoop/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-hadoop</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/hibernate/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hibernate/pom.xml b/modules/hibernate/pom.xml
index d7e098c..dac4b3b 100644
--- a/modules/hibernate/pom.xml
+++ b/modules/hibernate/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-hibernate</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/indexing/pom.xml
----------------------------------------------------------------------
diff --git a/modules/indexing/pom.xml b/modules/indexing/pom.xml
index 18a3579..91811d2 100644
--- a/modules/indexing/pom.xml
+++ b/modules/indexing/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-indexing</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/jcl/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jcl/pom.xml b/modules/jcl/pom.xml
index 516df8a..d100d4a 100644
--- a/modules/jcl/pom.xml
+++ b/modules/jcl/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-jcl</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/jta/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jta/pom.xml b/modules/jta/pom.xml
index ca5ef52..d44f9a8 100644
--- a/modules/jta/pom.xml
+++ b/modules/jta/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-jta</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/log4j/pom.xml
----------------------------------------------------------------------
diff --git a/modules/log4j/pom.xml b/modules/log4j/pom.xml
index 533f592..7cb43cc 100644
--- a/modules/log4j/pom.xml
+++ b/modules/log4j/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-log4j</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/mesos/pom.xml
----------------------------------------------------------------------
diff --git a/modules/mesos/pom.xml b/modules/mesos/pom.xml
index 173fe7c..1c44422 100644
--- a/modules/mesos/pom.xml
+++ b/modules/mesos/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-mesos</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<properties>
<jetty.version>9.2.10.v20150310</jetty.version>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/rest-http/pom.xml
----------------------------------------------------------------------
diff --git a/modules/rest-http/pom.xml b/modules/rest-http/pom.xml
index 243ac06..686a3ce 100644
--- a/modules/rest-http/pom.xml
+++ b/modules/rest-http/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-rest-http</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/scalar-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/scalar-2.10/pom.xml b/modules/scalar-2.10/pom.xml
index 63bfd36..2ce2de1 100644
--- a/modules/scalar-2.10/pom.xml
+++ b/modules/scalar-2.10/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-scalar_2.10</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/scalar/pom.xml
----------------------------------------------------------------------
diff --git a/modules/scalar/pom.xml b/modules/scalar/pom.xml
index 3fb2470..5863f4a 100644
--- a/modules/scalar/pom.xml
+++ b/modules/scalar/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-scalar</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/schedule/pom.xml
----------------------------------------------------------------------
diff --git a/modules/schedule/pom.xml b/modules/schedule/pom.xml
index 049fe65..86d0ab6 100644
--- a/modules/schedule/pom.xml
+++ b/modules/schedule/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-schedule</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/schema-import/pom.xml
----------------------------------------------------------------------
diff --git a/modules/schema-import/pom.xml b/modules/schema-import/pom.xml
index 8523d34..59c5d63 100644
--- a/modules/schema-import/pom.xml
+++ b/modules/schema-import/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-schema-import</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/slf4j/pom.xml
----------------------------------------------------------------------
diff --git a/modules/slf4j/pom.xml b/modules/slf4j/pom.xml
index 5284182..90e7031 100644
--- a/modules/slf4j/pom.xml
+++ b/modules/slf4j/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-slf4j</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/spark-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spark-2.10/pom.xml b/modules/spark-2.10/pom.xml
index 46cc4e7..f664aa0 100644
--- a/modules/spark-2.10/pom.xml
+++ b/modules/spark-2.10/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-spark_2.10</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/spark/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spark/pom.xml b/modules/spark/pom.xml
index e62ca24..577ae57 100644
--- a/modules/spark/pom.xml
+++ b/modules/spark/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-spark</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/spring/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spring/pom.xml b/modules/spring/pom.xml
index d56cb2b..d43d337 100644
--- a/modules/spring/pom.xml
+++ b/modules/spring/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-spring</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/ssh/pom.xml
----------------------------------------------------------------------
diff --git a/modules/ssh/pom.xml b/modules/ssh/pom.xml
index d65d173..3e9ac77 100644
--- a/modules/ssh/pom.xml
+++ b/modules/ssh/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-ssh</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/tools/pom.xml
----------------------------------------------------------------------
diff --git a/modules/tools/pom.xml b/modules/tools/pom.xml
index 0bb221f..7b07260 100644
--- a/modules/tools/pom.xml
+++ b/modules/tools/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-tools</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/urideploy/pom.xml
----------------------------------------------------------------------
diff --git a/modules/urideploy/pom.xml b/modules/urideploy/pom.xml
index 70a23b0..5d7bf4c 100644
--- a/modules/urideploy/pom.xml
+++ b/modules/urideploy/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-urideploy</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/visor-console-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-console-2.10/pom.xml b/modules/visor-console-2.10/pom.xml
index bb7aefc..c3d9045 100644
--- a/modules/visor-console-2.10/pom.xml
+++ b/modules/visor-console-2.10/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-visor-console_2.10</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/visor-console/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-console/pom.xml b/modules/visor-console/pom.xml
index ef6abc0..f8627da 100644
--- a/modules/visor-console/pom.xml
+++ b/modules/visor-console/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-visor-console</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/visor-plugins/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-plugins/pom.xml b/modules/visor-plugins/pom.xml
index ef217ed..dd5cbe0 100644
--- a/modules/visor-plugins/pom.xml
+++ b/modules/visor-plugins/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-visor-plugins</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<!-- Ignite dependencies -->
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/web/pom.xml
----------------------------------------------------------------------
diff --git a/modules/web/pom.xml b/modules/web/pom.xml
index 6b69c63..4e8a50f 100644
--- a/modules/web/pom.xml
+++ b/modules/web/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-web</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/modules/yardstick/pom.xml
----------------------------------------------------------------------
diff --git a/modules/yardstick/pom.xml b/modules/yardstick/pom.xml
index 39c7f5a..84a8336 100644
--- a/modules/yardstick/pom.xml
+++ b/modules/yardstick/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-yardstick</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<properties>
<yardstick.version>0.7.0</yardstick.version>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/489ab0f1/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 68d610e..64f9e25 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,7 @@
<groupId>org.apache.ignite</groupId>
<artifactId>apache-ignite</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.4-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
[02/50] incubator-ignite git commit: Merge branch 'ignite-sprint-6'
of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-484-1
Posted by vo...@apache.org.
Merge branch 'ignite-sprint-6' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-484-1
# Conflicts:
# modules/core/src/main/java/org/apache/ignite/cache/query/ScanQuery.java
# modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8343058d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8343058d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8343058d
Branch: refs/heads/ignite-gg-10411
Commit: 8343058d5079344593af1dfdc04f004a9a02d843
Parents: 8e8433b f4b1123
Author: S.Vladykin <sv...@gridgain.com>
Authored: Tue Jun 16 13:52:51 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Tue Jun 16 13:52:51 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/cache/query/ScanQuery.java | 20 +-
.../apache/ignite/internal/IgniteKernal.java | 1 -
.../discovery/GridDiscoveryManager.java | 9 +-
.../processors/cache/GridCacheProcessor.java | 11 +-
.../dht/preloader/GridDhtPreloader.java | 2 +-
.../transactions/IgniteTxLocalAdapter.java | 6 +-
.../org/apache/ignite/spi/IgniteSpiAdapter.java | 28 +-
.../communication/tcp/TcpCommunicationSpi.java | 2 +-
.../ignite/spi/discovery/tcp/ClientImpl.java | 439 ++++++++++++-------
.../ignite/spi/discovery/tcp/ServerImpl.java | 221 ++++++----
.../spi/discovery/tcp/TcpDiscoveryImpl.java | 66 +++
.../ipfinder/TcpDiscoveryIpFinderAdapter.java | 34 +-
.../TcpDiscoveryMulticastIpFinder.java | 19 +-
.../messages/TcpDiscoveryAbstractMessage.java | 10 +-
.../cache/CacheClientStoreSelfTest.java | 228 ++++++++++
...acheReadOnlyTransactionalClientSelfTest.java | 327 --------------
.../distributed/IgniteCacheManyClientsTest.java | 142 +++++-
...CacheClientWriteBehindStoreAbstractTest.java | 104 +++++
...teCacheClientWriteBehindStoreAtomicTest.java | 38 ++
.../IgnteCacheClientWriteBehindStoreTxTest.java | 32 ++
.../tcp/TcpClientDiscoverySpiSelfTest.java | 73 ++-
.../testsuites/IgniteCacheTestSuite4.java | 4 +-
.../IgniteCacheWriteBehindTestSuite.java | 2 +
23 files changed, 1172 insertions(+), 646 deletions(-)
----------------------------------------------------------------------
[11/50] incubator-ignite git commit: ignite-484-1 - get rid of owning
future
Posted by vo...@apache.org.
ignite-484-1 - get rid of owning future
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/68c35e73
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/68c35e73
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/68c35e73
Branch: refs/heads/ignite-gg-10411
Commit: 68c35e734b3754460c4ad807e154ea94066600a0
Parents: 642f1c7
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jun 17 15:24:13 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jun 17 15:24:13 2015 +0300
----------------------------------------------------------------------
.../distributed/dht/GridDhtLocalPartition.java | 19 -------------------
1 file changed, 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/68c35e73/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
index 1392f5e..3a577a7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
@@ -70,10 +70,6 @@ public class GridDhtLocalPartition implements Comparable<GridDhtLocalPartition>,
@GridToStringExclude
private final GridFutureAdapter<?> rent;
- /** Rent future. */
- @GridToStringExclude
- private final GridFutureAdapter<?> own;
-
/** Entries map. */
private final ConcurrentMap<KeyCacheObject, GridDhtCacheEntry> map;
@@ -118,12 +114,6 @@ public class GridDhtLocalPartition implements Comparable<GridDhtLocalPartition>,
}
};
- own = new GridFutureAdapter<Object>() {
- @Override public String toString() {
- return "PartitionOwnFuture [part=" + GridDhtLocalPartition.this + ", map=" + map + ']';
- }
- };
-
map = new ConcurrentHashMap8<>(cctx.config().getStartSize() /
cctx.affinity().partitions());
@@ -426,8 +416,6 @@ public class GridDhtLocalPartition implements Comparable<GridDhtLocalPartition>,
// No need to keep history any more.
evictHist = null;
- own.onDone();
-
return true;
}
}
@@ -462,13 +450,6 @@ public class GridDhtLocalPartition implements Comparable<GridDhtLocalPartition>,
}
/**
- * @return The future which will be completed when partition will have state {@link GridDhtPartitionState#OWNING}.
- */
- public IgniteInternalFuture<?> owningFuture() {
- return own;
- }
-
- /**
* @param updateSeq Update sequence.
* @return Future for evict attempt.
*/
[50/50] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-sprint-7' into ignite-gg-10411
Posted by vo...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-7' into ignite-gg-10411
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/0759fc9e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/0759fc9e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/0759fc9e
Branch: refs/heads/ignite-gg-10411
Commit: 0759fc9ebf1ee6d3d773ad8381c0592768cab021
Parents: 28adb89 6974a8e
Author: ptupitsyn <pt...@gridgain.com>
Authored: Fri Jun 19 12:36:26 2015 +0300
Committer: ptupitsyn <pt...@gridgain.com>
Committed: Fri Jun 19 12:36:26 2015 +0300
----------------------------------------------------------------------
examples/pom.xml | 2 +-
modules/aop/pom.xml | 2 +-
modules/aws/pom.xml | 2 +-
.../s3/S3CheckpointManagerSelfTest.java | 2 +-
.../checkpoint/s3/S3CheckpointSpiSelfTest.java | 4 +-
.../s3/S3CheckpointSpiStartStopSelfTest.java | 2 +-
.../s3/S3SessionCheckpointSelfTest.java | 2 +-
.../s3/TcpDiscoveryS3IpFinderSelfTest.java | 2 +-
modules/clients/pom.xml | 2 +-
modules/cloud/pom.xml | 2 +-
modules/codegen/pom.xml | 2 +-
modules/core/pom.xml | 2 +-
.../affinity/AffinityTopologyVersion.java | 7 -
.../processors/cache/GridCacheAdapter.java | 4 +
.../processors/cache/GridCacheUtils.java | 9 +
.../processors/cache/IgniteCacheProxy.java | 12 +
.../distributed/dht/GridDhtLocalPartition.java | 56 +-
.../dht/GridDhtPartitionTopologyImpl.java | 4 +-
.../dht/GridDhtPartitionsReservation.java | 292 +++++++++
.../dht/GridDhtTransactionalCacheAdapter.java | 2 +-
.../cache/distributed/dht/GridReservable.java | 35 +
.../dht/preloader/GridDhtPartitionMap.java | 26 +-
.../cache/query/GridCacheQueryManager.java | 33 -
.../cache/query/GridCacheTwoStepQuery.java | 22 +-
.../cache/transactions/IgniteTxHandler.java | 2 +-
.../transactions/IgniteTxLocalAdapter.java | 12 +-
.../dr/IgniteDrDataStreamerCacheUpdater.java | 7 +-
.../processors/query/GridQueryIndexing.java | 14 +-
.../processors/query/GridQueryProcessor.java | 21 +-
.../messages/GridQueryNextPageResponse.java | 34 +-
.../h2/twostep/messages/GridQueryRequest.java | 111 +++-
.../processors/task/GridTaskProcessor.java | 23 +-
.../apache/ignite/internal/util/GridDebug.java | 19 +
.../communication/tcp/TcpCommunicationSpi.java | 42 +-
.../ignite/spi/discovery/tcp/ServerImpl.java | 35 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 42 +-
.../tcp/internal/TcpDiscoveryNode.java | 18 +
.../core/src/main/resources/ignite.properties | 2 +-
.../apache/ignite/internal/GridSelfTest.java | 20 +-
.../GridTaskFailoverAffinityRunTest.java | 170 +++++
.../CacheStoreUsageMultinodeAbstractTest.java | 305 +++++++++
...eUsageMultinodeDynamicStartAbstractTest.java | 169 +++++
...oreUsageMultinodeDynamicStartAtomicTest.java | 32 +
...heStoreUsageMultinodeDynamicStartTxTest.java | 32 +
...reUsageMultinodeStaticStartAbstractTest.java | 158 +++++
...toreUsageMultinodeStaticStartAtomicTest.java | 32 +
...cheStoreUsageMultinodeStaticStartTxTest.java | 32 +
.../cache/GridCacheAbstractFullApiSelfTest.java | 24 +-
.../IgniteCacheAbstractStopBusySelfTest.java | 30 +-
.../IgniteCacheAtomicStopBusySelfTest.java | 8 +-
.../IgniteCacheP2pUnmarshallingTxErrorTest.java | 19 +-
...gniteCacheTransactionalStopBusySelfTest.java | 8 +-
...ridCachePartitionNotLoadedEventSelfTest.java | 82 +++
.../distributed/IgniteCacheManyClientsTest.java | 1 +
.../DataStreamerMultiThreadedSelfTest.java | 3 +
.../junits/GridTestKernalContext.java | 2 +-
.../junits/common/GridCommonAbstractTest.java | 8 +-
.../testsuites/IgniteCacheTestSuite4.java | 4 +
.../testsuites/IgniteComputeGridTestSuite.java | 1 +
.../ignite/util/TestTcpCommunicationSpi.java | 21 +
modules/extdata/p2p/pom.xml | 2 +-
modules/extdata/uri/pom.xml | 2 +-
modules/gce/pom.xml | 2 +-
modules/geospatial/pom.xml | 2 +-
modules/hadoop/pom.xml | 2 +-
modules/hibernate/pom.xml | 2 +-
modules/indexing/pom.xml | 2 +-
.../processors/query/h2/IgniteH2Indexing.java | 79 ++-
.../query/h2/sql/GridSqlQuerySplitter.java | 49 +-
.../query/h2/twostep/GridMapQueryExecutor.java | 332 +++++++---
.../query/h2/twostep/GridMergeIndex.java | 17 +-
.../h2/twostep/GridMergeIndexUnsorted.java | 7 +-
.../h2/twostep/GridReduceQueryExecutor.java | 650 ++++++++++++++++---
.../query/h2/twostep/GridResultPage.java | 21 +-
.../cache/GridCacheCrossCacheQuerySelfTest.java | 3 +-
.../IgniteCacheQueryMultiThreadedSelfTest.java | 1 -
...lientQueryReplicatedNodeRestartSelfTest.java | 419 ++++++++++++
.../IgniteCacheQueryNodeRestartSelfTest.java | 36 +-
.../IgniteCacheQueryNodeRestartSelfTest2.java | 383 +++++++++++
.../IgniteCacheQuerySelfTestSuite.java | 2 +
modules/jcl/pom.xml | 2 +-
modules/jta/pom.xml | 2 +-
modules/log4j/pom.xml | 2 +-
modules/mesos/pom.xml | 2 +-
modules/rest-http/pom.xml | 2 +-
modules/scalar-2.10/pom.xml | 2 +-
modules/scalar/pom.xml | 2 +-
modules/schedule/pom.xml | 2 +-
modules/schema-import/pom.xml | 2 +-
modules/slf4j/pom.xml | 2 +-
modules/spark-2.10/pom.xml | 2 +-
modules/spark/pom.xml | 2 +-
modules/spring/pom.xml | 2 +-
modules/ssh/pom.xml | 2 +-
modules/tools/pom.xml | 2 +-
modules/urideploy/pom.xml | 2 +-
modules/visor-console-2.10/pom.xml | 2 +-
modules/visor-console/pom.xml | 2 +-
modules/visor-plugins/pom.xml | 2 +-
modules/web/pom.xml | 2 +-
modules/yardstick/pom.xml | 2 +-
pom.xml | 2 +-
102 files changed, 3694 insertions(+), 434 deletions(-)
----------------------------------------------------------------------
[37/50] incubator-ignite git commit: # ignite-sprint-6 disabled shmem
for test
Posted by vo...@apache.org.
# ignite-sprint-6 disabled shmem for test
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ca81476d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ca81476d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ca81476d
Branch: refs/heads/ignite-gg-10411
Commit: ca81476d1ab66773815c7e3f91d61ea5b0651bb9
Parents: b23ea74
Author: sboikov <sb...@gridgain.com>
Authored: Thu Jun 18 14:21:34 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Jun 18 14:21:34 2015 +0300
----------------------------------------------------------------------
.../datastreamer/DataStreamerMultiThreadedSelfTest.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ca81476d/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerMultiThreadedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerMultiThreadedSelfTest.java
index e0092d4..c37219a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerMultiThreadedSelfTest.java
@@ -22,6 +22,7 @@ import org.apache.ignite.configuration.*;
import org.apache.ignite.internal.*;
import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.communication.tcp.*;
import org.apache.ignite.spi.discovery.tcp.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
@@ -48,6 +49,8 @@ public class DataStreamerMultiThreadedSelfTest extends GridCommonAbstractTest {
@Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
IgniteConfiguration cfg = super.getConfiguration(gridName);
+ ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
+
TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
discoSpi.setIpFinder(IP_FINDER);
[24/50] incubator-ignite git commit: Merge branches 'ignite-484-1'
and 'ignite-sprint-6' of
https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-484-1
Posted by vo...@apache.org.
Merge branches 'ignite-484-1' and 'ignite-sprint-6' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-484-1
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/eebf9c1c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/eebf9c1c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/eebf9c1c
Branch: refs/heads/ignite-gg-10411
Commit: eebf9c1c7fa07b442e4a341ffa2b5ce2828032c4
Parents: ed43dfe fffc2ec
Author: S.Vladykin <sv...@gridgain.com>
Authored: Thu Jun 18 09:43:45 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Thu Jun 18 09:43:45 2015 +0300
----------------------------------------------------------------------
.../dht/GridDhtPartitionTopologyImpl.java | 4 +++-
.../IgniteCacheP2pUnmarshallingTxErrorTest.java | 19 ++++++++++---------
.../junits/common/GridCommonAbstractTest.java | 8 ++++++--
3 files changed, 19 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
[46/50] incubator-ignite git commit: Merge remote-tracking branch
'origin/ignite-sprint-6' into ignite-sprint-6
Posted by vo...@apache.org.
Merge remote-tracking branch 'origin/ignite-sprint-6' into ignite-sprint-6
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ad0a026f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ad0a026f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ad0a026f
Branch: refs/heads/ignite-gg-10411
Commit: ad0a026f480ff67025b39737c2e068b20035feb6
Parents: fc81bcf 8c404f7
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Thu Jun 18 15:54:59 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Thu Jun 18 15:54:59 2015 +0300
----------------------------------------------------------------------
.../communication/tcp/TcpCommunicationSpi.java | 38 ++++++++++----------
.../ignite/spi/discovery/tcp/ServerImpl.java | 21 +++++++----
.../spi/discovery/tcp/TcpDiscoverySpi.java | 9 ++++-
.../tcp/internal/TcpDiscoveryNode.java | 18 ++++++++++
.../apache/ignite/internal/GridSelfTest.java | 20 ++++++-----
5 files changed, 72 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad0a026f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad0a026f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
[48/50] incubator-ignite git commit: Merge branch 'ignite-sprint-6'
of https://git-wip-us.apache.org/repos/asf/incubator-ignite into
ignite-sprint-7
Posted by vo...@apache.org.
Merge branch 'ignite-sprint-6' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-sprint-7
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9458f125
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9458f125
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9458f125
Branch: refs/heads/ignite-gg-10411
Commit: 9458f12554579fd71a26f56d7bf191d0ec51173e
Parents: edc9a1c ad0a026
Author: AKuznetsov <ak...@gridgain.com>
Authored: Fri Jun 19 09:55:02 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Fri Jun 19 09:55:02 2015 +0700
----------------------------------------------------------------------
.../processors/cache/GridCacheUtils.java | 9 +++++
.../processors/cache/IgniteCacheProxy.java | 5 +++
.../processors/query/GridQueryProcessor.java | 7 ++++
.../communication/tcp/TcpCommunicationSpi.java | 42 ++++++++++----------
.../ignite/spi/discovery/tcp/ServerImpl.java | 35 ++++++++++++----
.../spi/discovery/tcp/TcpDiscoverySpi.java | 42 ++++++++++++++------
.../tcp/internal/TcpDiscoveryNode.java | 18 +++++++++
.../apache/ignite/internal/GridSelfTest.java | 20 ++++++----
.../DataStreamerMultiThreadedSelfTest.java | 3 ++
9 files changed, 132 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
[03/50] incubator-ignite git commit: ignite-1020 create
GridDhtTxLocal with storeEnabled=true
Posted by vo...@apache.org.
ignite-1020 create GridDhtTxLocal with storeEnabled=true
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/7fd14411
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/7fd14411
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/7fd14411
Branch: refs/heads/ignite-gg-10411
Commit: 7fd14411c36b6de7b79841c9af81506780279a10
Parents: e3750b7
Author: sboikov <sb...@gridgain.com>
Authored: Tue Jun 16 17:14:54 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Jun 16 17:14:54 2015 +0300
----------------------------------------------------------------------
.../cache/distributed/dht/GridDhtTransactionalCacheAdapter.java | 2 +-
.../internal/processors/cache/transactions/IgniteTxHandler.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7fd14411/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
index 703daf9..4f081bf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
@@ -859,7 +859,7 @@ public abstract class GridDhtTransactionalCacheAdapter<K, V> extends GridDhtCach
req.isolation(),
req.timeout(),
req.isInvalidate(),
- false,
+ true,
req.txSize(),
null,
req.subjectId(),
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7fd14411/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 01662ef..e481e25 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -325,7 +325,7 @@ public class IgniteTxHandler {
req.isolation(),
req.timeout(),
req.isInvalidate(),
- false,
+ true,
req.txSize(),
req.transactionNodes(),
req.subjectId(),
[34/50] incubator-ignite git commit: # minor
Posted by vo...@apache.org.
# minor
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/08d134dd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/08d134dd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/08d134dd
Branch: refs/heads/ignite-gg-10411
Commit: 08d134dd43f143ee8d01f6394de27426c64a96ea
Parents: d874b00
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Thu Jun 18 13:46:52 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Thu Jun 18 13:46:52 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/cache/GridCacheUtils.java | 9 +++++++++
1 file changed, 9 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/08d134dd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
index 3bd2a45..8c26046 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
@@ -391,6 +391,15 @@ public class GridCacheUtils {
}
/**
+ * Gets public cache name substituting null name by {@code 'default'}.
+ *
+ * @return Public cache name substituting null name by {@code 'default'}.
+ */
+ public static String namexx(@Nullable String name) {
+ return name == null ? "default" : name;
+ }
+
+ /**
* @return Partition to state transformer.
*/
@SuppressWarnings({"unchecked"})
[12/50] incubator-ignite git commit: # ignite-1020 do not write to
store for local store load
Posted by vo...@apache.org.
# ignite-1020 do not write to store for local store load
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/674072a3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/674072a3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/674072a3
Branch: refs/heads/ignite-gg-10411
Commit: 674072a336a2aa276373a5f6820a9e66df88ede8
Parents: e507f03
Author: sboikov <sb...@gridgain.com>
Authored: Wed Jun 17 15:31:57 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Jun 17 15:31:57 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/cache/GridCacheAdapter.java | 4 ++++
.../ignite/internal/processors/cache/IgniteCacheProxy.java | 7 +++++++
.../processors/dr/IgniteDrDataStreamerCacheUpdater.java | 7 ++++++-
3 files changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/674072a3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 2ca7687..7335d72 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -3305,6 +3305,8 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
DataStreamerImpl ldr = ctx.kernalContext().dataStream().dataStreamer(ctx.namex());
try {
+ ldr.skipStore(true);
+
ldr.receiver(new IgniteDrDataStreamerCacheUpdater());
LocalStoreLoadClosure c = new LocalStoreLoadClosure(p, ldr, plc);
@@ -3504,6 +3506,8 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
DataStreamerImpl ldr = ctx.kernalContext().dataStream().dataStreamer(ctx.namex());
try {
+ ldr.skipStore(true);
+
ldr.receiver(new IgniteDrDataStreamerCacheUpdater());
LocalStoreLoadClosure c = new LocalStoreLoadClosure(null, ldr, plc0);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/674072a3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
index 69ce7b0..0d70792 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
@@ -139,6 +139,13 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V
}
/**
+ * @return Operation context.
+ */
+ @Nullable public CacheOperationContext operationContext() {
+ return opCtx;
+ }
+
+ /**
* Gets cache proxy which does not acquire read lock on gateway enter, should be
* used only if grid read lock is externally acquired.
*
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/674072a3/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/IgniteDrDataStreamerCacheUpdater.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/IgniteDrDataStreamerCacheUpdater.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/IgniteDrDataStreamerCacheUpdater.java
index c3a8989..e5bbe39 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/IgniteDrDataStreamerCacheUpdater.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/IgniteDrDataStreamerCacheUpdater.java
@@ -46,7 +46,12 @@ public class IgniteDrDataStreamerCacheUpdater implements StreamReceiver<KeyCache
GridKernalContext ctx = ((IgniteKernal)cache0.unwrap(Ignite.class)).context();
IgniteLogger log = ctx.log(IgniteDrDataStreamerCacheUpdater.class);
- GridCacheAdapter cache = ctx.cache().internalCache(cacheName);
+ GridCacheAdapter internalCache = ctx.cache().internalCache(cacheName);
+
+ CacheOperationContext opCtx = ((IgniteCacheProxy)cache0).operationContext();
+
+ IgniteInternalCache cache =
+ opCtx != null ? new GridCacheProxyImpl(internalCache.context(), internalCache, opCtx) : internalCache;
assert !F.isEmpty(col);
[28/50] incubator-ignite git commit: # ignite-sprint-6 fixed test to
work in offheap mode
Posted by vo...@apache.org.
# ignite-sprint-6 fixed test to work in offheap mode
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/cc20ef6a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/cc20ef6a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/cc20ef6a
Branch: refs/heads/ignite-gg-10411
Commit: cc20ef6adce9bdeea19d37f5817c0693e380cfa5
Parents: de53189
Author: sboikov <sb...@gridgain.com>
Authored: Thu Jun 18 10:30:20 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Jun 18 10:30:20 2015 +0300
----------------------------------------------------------------------
.../cache/GridCacheAbstractFullApiSelfTest.java | 24 +++++++++++---------
1 file changed, 13 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cc20ef6a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
index 128d452..151c249 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
@@ -1020,25 +1020,27 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
throws Exception {
IgniteCache<String, Integer> cache = jcache();
+ final String key = primaryKeysForCache(cache, 1).get(0);
+
Transaction tx = txEnabled() ? ignite(0).transactions().txStart(concurrency, READ_COMMITTED) : null;
try {
if (startVal)
- cache.put("key", 2);
+ cache.put(key, 2);
else
- assertEquals(null, cache.get("key"));
+ assertEquals(null, cache.get(key));
- Integer expectedRes = startVal ? 2 : null;
+ Integer expRes = startVal ? 2 : null;
- assertEquals(String.valueOf(expectedRes), cache.invoke("key", INCR_PROCESSOR));
+ assertEquals(String.valueOf(expRes), cache.invoke(key, INCR_PROCESSOR));
- expectedRes = startVal ? 3 : 1;
+ expRes = startVal ? 3 : 1;
- assertEquals(String.valueOf(expectedRes), cache.invoke("key", INCR_PROCESSOR));
+ assertEquals(String.valueOf(expRes), cache.invoke(key, INCR_PROCESSOR));
- expectedRes++;
+ expRes++;
- assertEquals(String.valueOf(expectedRes), cache.invoke("key", INCR_PROCESSOR));
+ assertEquals(String.valueOf(expRes), cache.invoke(key, INCR_PROCESSOR));
if (tx != null)
tx.commit();
@@ -1050,11 +1052,11 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
Integer exp = (startVal ? 2 : 0) + 3;
- assertEquals(exp, cache.get("key"));
+ assertEquals(exp, cache.get(key));
for (int i = 0; i < gridCount(); i++) {
- if (ignite(i).affinity(null).isPrimaryOrBackup(grid(i).localNode(), "key"))
- assertEquals(exp, peek(jcache(i), "key"));
+ if (ignite(i).affinity(null).isPrimaryOrBackup(grid(i).localNode(), key))
+ assertEquals(exp, peek(jcache(i), key));
}
}
[45/50] incubator-ignite git commit: # ignite-sprint-7 do not run
TaskDiscoveryListener in discovery thread
Posted by vo...@apache.org.
# ignite-sprint-7 do not run TaskDiscoveryListener in discovery thread
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/044f17de
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/044f17de
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/044f17de
Branch: refs/heads/ignite-gg-10411
Commit: 044f17deae5a16c0d463633b75640d04a125f5d2
Parents: c6a0f24
Author: sboikov <sb...@gridgain.com>
Authored: Thu Jun 18 15:36:44 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Jun 18 15:36:44 2015 +0300
----------------------------------------------------------------------
.../processors/task/GridTaskProcessor.java | 22 ++-
.../GridTaskFailoverAffinityRunTest.java | 170 +++++++++++++++++++
.../testsuites/IgniteComputeGridTestSuite.java | 1 +
3 files changed, 184 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/044f17de/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
index 88713a1..bb9ff50 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
@@ -1171,17 +1171,21 @@ public class GridTaskProcessor extends GridProcessorAdapter {
@Override public void onEvent(Event evt) {
assert evt.type() == EVT_NODE_FAILED || evt.type() == EVT_NODE_LEFT;
- UUID nodeId = ((DiscoveryEvent)evt).eventNode().id();
+ final UUID nodeId = ((DiscoveryEvent)evt).eventNode().id();
- lock.readLock();
+ ctx.closure().runLocalSafe(new Runnable() {
+ @Override public void run() {
+ lock.readLock();
- try {
- for (GridTaskWorker<?, ?> task : tasks.values())
- task.onNodeLeft(nodeId);
- }
- finally {
- lock.readUnlock();
- }
+ try {
+ for (GridTaskWorker<?, ?> task : tasks.values())
+ task.onNodeLeft(nodeId);
+ }
+ finally {
+ lock.readUnlock();
+ }
+ }
+ }, false);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/044f17de/modules/core/src/test/java/org/apache/ignite/internal/GridTaskFailoverAffinityRunTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridTaskFailoverAffinityRunTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridTaskFailoverAffinityRunTest.java
new file mode 100644
index 0000000..7ddd966
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/GridTaskFailoverAffinityRunTest.java
@@ -0,0 +1,170 @@
+/*
+ * 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;
+
+import org.apache.ignite.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.lang.*;
+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.*;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+import static org.apache.ignite.cache.CacheMode.*;
+import static org.apache.ignite.cache.CacheRebalanceMode.*;
+
+/**
+ *
+ */
+public class GridTaskFailoverAffinityRunTest extends GridCommonAbstractTest {
+ /** */
+ private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+ /** */
+ private boolean clientMode;
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
+
+ boolean client = clientMode && gridName.equals(getTestGridName(0));
+
+ if (client) {
+ cfg.setClientMode(true);
+
+ ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
+ }
+
+ CacheConfiguration ccfg = new CacheConfiguration();
+
+ ccfg.setCacheMode(PARTITIONED);
+ ccfg.setBackups(1);
+ ccfg.setAtomicityMode(ATOMIC);
+ ccfg.setRebalanceMode(SYNC);
+
+ cfg.setCacheConfiguration(ccfg);
+
+ return cfg;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTest() throws Exception {
+ super.afterTest();
+
+ stopAllGrids();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testNodeRestart() throws Exception {
+ clientMode = false;
+
+ nodeRestart();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testNodeRestartClient() throws Exception {
+ clientMode = true;
+
+ nodeRestart();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ private void nodeRestart() throws Exception {
+ startGridsMultiThreaded(4);
+
+ assertEquals((Boolean)clientMode, grid(0).configuration().isClientMode());
+
+ IgniteCompute comp = grid(0).compute().withAsync();
+
+ final AtomicBoolean stop = new AtomicBoolean();
+
+ final AtomicInteger gridIdx = new AtomicInteger(1);
+
+ IgniteInternalFuture<?> fut = GridTestUtils.runMultiThreadedAsync(new Callable<Object>() {
+ @Override public Object call() throws Exception {
+ int grid = gridIdx.getAndIncrement();
+
+ while (!stop.get()) {
+ stopGrid(grid);
+
+ startGrid(grid);
+ }
+
+ return null;
+ }
+ }, 2, "restart-thread");
+
+ try {
+ long stopTime = System.currentTimeMillis() + 60_000;
+
+ while (System.currentTimeMillis() < stopTime) {
+ Collection<IgniteFuture<?>> futs = new ArrayList<>(1000);
+
+ for (int i = 0; i < 1000; i++) {
+ comp.affinityCall(null, i, new TestJob());
+
+ IgniteFuture<?> fut0 = comp.future();
+
+ assertNotNull(fut0);
+
+ futs.add(fut0);
+ }
+
+ for (IgniteFuture<?> fut0 : futs) {
+ try {
+ fut0.get();
+ }
+ catch (IgniteException ignore) {
+ // No-op.
+ }
+ }
+ }
+ }
+ finally {
+ stop.set(true);
+
+ fut.get();
+ }
+ }
+
+ /**
+ *
+ */
+ private static class TestJob implements IgniteCallable<Object> {
+ /** {@inheritDoc} */
+ @Override public Object call() throws Exception {
+ Thread.sleep(1000);
+
+ return null;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/044f17de/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteComputeGridTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteComputeGridTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteComputeGridTestSuite.java
index 82fc5e0..baf425c8 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteComputeGridTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteComputeGridTestSuite.java
@@ -93,6 +93,7 @@ public class IgniteComputeGridTestSuite {
suite.addTestSuite(GridMultinodeRedeployIsolatedModeSelfTest.class);
suite.addTestSuite(IgniteComputeEmptyClusterGroupTest.class);
suite.addTestSuite(IgniteComputeTopologyExceptionTest.class);
+ suite.addTestSuite(GridTaskFailoverAffinityRunTest.class);
return suite;
}
[23/50] incubator-ignite git commit: # ignite-sprint-6 more info in
assert
Posted by vo...@apache.org.
# ignite-sprint-6 more info in assert
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/fffc2ecc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/fffc2ecc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/fffc2ecc
Branch: refs/heads/ignite-gg-10411
Commit: fffc2ecc86628a9a25c6f855d89277d124711873
Parents: af829d0
Author: sboikov <sb...@gridgain.com>
Authored: Thu Jun 18 08:57:39 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Jun 18 08:57:39 2015 +0300
----------------------------------------------------------------------
.../dht/GridDhtPartitionTopologyImpl.java | 4 +++-
.../IgniteCacheP2pUnmarshallingTxErrorTest.java | 19 ++++++++++---------
.../junits/common/GridCommonAbstractTest.java | 8 ++++++--
3 files changed, 19 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fffc2ecc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
index 374ab87..de7f876 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
@@ -620,7 +620,9 @@ class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
lock.readLock().lock();
try {
- assert node2part != null && node2part.valid() : "Invalid node-to-partitions map [topVer=" + topVer +
+ assert node2part != null && node2part.valid() : "Invalid node-to-partitions map [topVer1=" + topVer +
+ ", topVer2=" + this.topVer +
+ ", cache=" + cctx.name() +
", node2part=" + node2part + ']';
Collection<ClusterNode> nodes = null;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fffc2ecc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingTxErrorTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingTxErrorTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingTxErrorTest.java
index 017f7db..356d67b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingTxErrorTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingTxErrorTest.java
@@ -26,11 +26,13 @@ import org.apache.ignite.transactions.*;
import javax.cache.*;
import java.io.*;
+import static org.apache.ignite.transactions.TransactionConcurrency.*;
+import static org.apache.ignite.transactions.TransactionIsolation.*;
+
/**
* Checks behavior on exception while unmarshalling key.
*/
public class IgniteCacheP2pUnmarshallingTxErrorTest extends IgniteCacheP2pUnmarshallingErrorTest {
-
/** {@inheritDoc} */
@Override protected CacheAtomicityMode atomicityMode() {
return CacheAtomicityMode.TRANSACTIONAL;
@@ -41,7 +43,7 @@ public class IgniteCacheP2pUnmarshallingTxErrorTest extends IgniteCacheP2pUnmars
IgniteConfiguration cfg = super.getConfiguration(gridName);
if (!gridName.endsWith("0"))
- cfg.getCacheConfiguration()[0].setRebalanceDelay(-1); //allows to check GridDhtLockRequest fail.
+ cfg.getCacheConfiguration()[0].setRebalanceDelay(-1); // Allows to check GridDhtLockRequest fail.
return cfg;
}
@@ -52,8 +54,7 @@ public class IgniteCacheP2pUnmarshallingTxErrorTest extends IgniteCacheP2pUnmars
protected void failOptimistic() {
IgniteCache<Object, Object> cache = jcache(0);
- try (Transaction tx = grid(0).transactions().txStart(TransactionConcurrency.OPTIMISTIC,
- TransactionIsolation.REPEATABLE_READ)) {
+ try (Transaction tx = grid(0).transactions().txStart(OPTIMISTIC, REPEATABLE_READ)) {
cache.put(new TestKey(String.valueOf(++key)), "");
@@ -65,7 +66,7 @@ public class IgniteCacheP2pUnmarshallingTxErrorTest extends IgniteCacheP2pUnmars
assert X.hasCause(e, IOException.class);
}
- assert readCnt.get() == 0; //ensure we have read count as expected.
+ assert readCnt.get() == 0; // Ensure we have read count as expected.
}
/**
@@ -74,8 +75,8 @@ public class IgniteCacheP2pUnmarshallingTxErrorTest extends IgniteCacheP2pUnmars
protected void failPessimictic() {
IgniteCache<Object, Object> cache = jcache(0);
- try (Transaction tx = grid(0).transactions().txStart(TransactionConcurrency.PESSIMISTIC,
- TransactionIsolation.REPEATABLE_READ)) {
+ try (Transaction tx = grid(0).transactions().txStart(PESSIMISTIC,
+ REPEATABLE_READ)) {
cache.put(new TestKey(String.valueOf(++key)), "");
@@ -85,7 +86,7 @@ public class IgniteCacheP2pUnmarshallingTxErrorTest extends IgniteCacheP2pUnmars
assert X.hasCause(e, IOException.class);
}
- assert readCnt.get() == 0; //ensure we have read count as expected.
+ assert readCnt.get() == 0; // Ensure we have read count as expected.
}
/** {@inheritDoc} */
@@ -108,7 +109,7 @@ public class IgniteCacheP2pUnmarshallingTxErrorTest extends IgniteCacheP2pUnmars
//GridDhtLockRequest unmarshalling failed test
readCnt.set(3);
- try (Transaction tx = grid(0).transactions().txStart(TransactionConcurrency.PESSIMISTIC, TransactionIsolation.REPEATABLE_READ)) {
+ try (Transaction tx = grid(0).transactions().txStart(PESSIMISTIC, REPEATABLE_READ)) {
jcache(0).put(new TestKey(String.valueOf(++key)), ""); //No failure at client side.
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fffc2ecc/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
index bc33746..9941ca8 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
@@ -379,8 +379,10 @@ public abstract class GridCommonAbstractTest extends GridAbstractTest {
int exp = affNodes.size();
- Collection<ClusterNode> owners = top.topologyVersion() == AffinityTopologyVersion.NONE ?
- Collections.<ClusterNode>emptyList() : top.nodes(p, AffinityTopologyVersion.NONE);
+ GridDhtTopologyFuture topFut = top.topologyVersionFuture();
+
+ Collection<ClusterNode> owners = (topFut != null && topFut.isDone()) ?
+ top.nodes(p, AffinityTopologyVersion.NONE) : Collections.<ClusterNode>emptyList();
int actual = owners.size();
@@ -390,6 +392,7 @@ public abstract class GridCommonAbstractTest extends GridAbstractTest {
", cache=" + cfg.getName() +
", cacheId=" + dht.context().cacheId() +
", topVer=" + top.topologyVersion() +
+ ", topFut=" + topFut +
", p=" + p +
", affNodesCnt=" + exp +
", ownersCnt=" + actual +
@@ -406,6 +409,7 @@ public abstract class GridCommonAbstractTest extends GridAbstractTest {
", cache=" + cfg.getName() +
", cacheId=" + dht.context().cacheId() +
", topVer=" + top.topologyVersion() +
+ ", topFut=" + topFut +
", p=" + p +
", affNodesCnt=" + exp +
", ownersCnt=" + actual +
[27/50] incubator-ignite git commit: Merge branches 'ignite-484-1'
and 'ignite-sprint-6' of
https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-sprint-6
Posted by vo...@apache.org.
Merge branches 'ignite-484-1' and 'ignite-sprint-6' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-sprint-6
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/de531896
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/de531896
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/de531896
Branch: refs/heads/ignite-gg-10411
Commit: de53189605c859a6eb9aa09c8181d5720c5dc28b
Parents: 4cc376b eebf9c1
Author: S.Vladykin <sv...@gridgain.com>
Authored: Thu Jun 18 09:51:50 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Thu Jun 18 09:51:50 2015 +0300
----------------------------------------------------------------------
.../affinity/AffinityTopologyVersion.java | 7 -
.../distributed/dht/GridDhtLocalPartition.java | 56 +-
.../dht/GridDhtPartitionsReservation.java | 292 +++++++++
.../cache/distributed/dht/GridReservable.java | 35 +
.../dht/preloader/GridDhtPartitionMap.java | 26 +-
.../cache/query/GridCacheQueryManager.java | 33 -
.../cache/query/GridCacheTwoStepQuery.java | 22 +-
.../processors/query/GridQueryIndexing.java | 14 +-
.../processors/query/GridQueryProcessor.java | 14 +-
.../messages/GridQueryNextPageResponse.java | 34 +-
.../h2/twostep/messages/GridQueryRequest.java | 111 +++-
.../apache/ignite/internal/util/GridDebug.java | 19 +
.../processors/query/h2/IgniteH2Indexing.java | 79 ++-
.../query/h2/sql/GridSqlQuerySplitter.java | 49 +-
.../query/h2/twostep/GridMapQueryExecutor.java | 332 +++++++---
.../query/h2/twostep/GridMergeIndex.java | 17 +-
.../h2/twostep/GridMergeIndexUnsorted.java | 7 +-
.../h2/twostep/GridReduceQueryExecutor.java | 650 ++++++++++++++++---
.../query/h2/twostep/GridResultPage.java | 21 +-
.../cache/GridCacheCrossCacheQuerySelfTest.java | 3 +-
.../IgniteCacheQueryMultiThreadedSelfTest.java | 1 -
...lientQueryReplicatedNodeRestartSelfTest.java | 419 ++++++++++++
.../IgniteCacheQueryNodeRestartSelfTest.java | 36 +-
.../IgniteCacheQueryNodeRestartSelfTest2.java | 383 +++++++++++
.../IgniteCacheQuerySelfTestSuite.java | 2 +
25 files changed, 2380 insertions(+), 282 deletions(-)
----------------------------------------------------------------------
[04/50] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-sprint-6' into ignite-1020
Posted by vo...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-6' into ignite-1020
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9a0e659a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9a0e659a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9a0e659a
Branch: refs/heads/ignite-gg-10411
Commit: 9a0e659a847ab3ec7c03443e2ada28aac51a26ea
Parents: 7fd1441 d1a2150
Author: sboikov <sb...@gridgain.com>
Authored: Wed Jun 17 10:25:34 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Jun 17 10:25:34 2015 +0300
----------------------------------------------------------------------
RELEASE_NOTES.txt | 2 +-
.../cache/store/jdbc/CacheJdbcBlobStore.java | 22 +-
.../store/jdbc/CacheJdbcBlobStoreFactory.java | 290 +++++++++++++++++++
.../cache/store/jdbc/CacheJdbcPojoStore.java | 6 +-
.../store/jdbc/CacheJdbcPojoStoreFactory.java | 148 ++++++++++
.../configuration/CacheConfiguration.java | 3 +-
.../internal/interop/InteropBootstrap.java | 3 +-
.../internal/interop/InteropIgnition.java | 5 +-
.../processors/cache/GridCacheProcessor.java | 23 +-
.../util/spring/IgniteSpringHelper.java | 10 +
.../SpringApplicationContextResource.java | 4 +-
.../apache/ignite/resources/SpringResource.java | 6 +-
modules/hibernate/pom.xml | 14 +
.../hibernate/CacheHibernateBlobStore.java | 87 +-----
.../CacheHibernateBlobStoreFactory.java | 235 +++++++++++++++
.../hibernate/src/test/config/factory-cache.xml | 59 ++++
.../src/test/config/factory-cache1.xml | 61 ++++
.../config/factory-incorrect-store-cache.xml | 56 ++++
.../CacheHibernateStoreFactorySelfTest.java | 273 +++++++++++++++++
.../testsuites/IgniteHibernateTestSuite.java | 2 +
modules/spring/pom.xml | 7 +
.../GridResourceSpringBeanInjector.java | 2 +-
.../util/spring/IgniteSpringHelperImpl.java | 17 ++
.../src/test/config/incorrect-store-cache.xml | 57 ++++
modules/spring/src/test/config/node.xml | 43 +++
modules/spring/src/test/config/node1.xml | 45 +++
.../test/config/pojo-incorrect-store-cache.xml | 56 ++++
modules/spring/src/test/config/store-cache.xml | 59 ++++
modules/spring/src/test/config/store-cache1.xml | 62 ++++
.../jdbc/CacheJdbcBlobStoreFactorySelfTest.java | 172 +++++++++++
.../jdbc/CacheJdbcPojoStoreFactorySelfTest.java | 193 ++++++++++++
.../testsuites/IgniteSpringTestSuite.java | 5 +
32 files changed, 1907 insertions(+), 120 deletions(-)
----------------------------------------------------------------------
[07/50] incubator-ignite git commit: Merge branches 'ignite-484-1'
and 'ignite-sprint-6' of
https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-484-1
Posted by vo...@apache.org.
Merge branches 'ignite-484-1' and 'ignite-sprint-6' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-484-1
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ca253a8a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ca253a8a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ca253a8a
Branch: refs/heads/ignite-gg-10411
Commit: ca253a8a845129ece37fca3a12c384d8b9ef3e76
Parents: 8343058 dc05e88
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jun 17 12:21:53 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jun 17 12:21:53 2015 +0300
----------------------------------------------------------------------
RELEASE_NOTES.txt | 2 +-
examples/pom.xml | 2 +-
modules/aop/pom.xml | 2 +-
modules/aws/pom.xml | 2 +-
modules/clients/pom.xml | 2 +-
modules/cloud/pom.xml | 2 +-
modules/codegen/pom.xml | 2 +-
modules/core/pom.xml | 2 +-
.../cache/store/jdbc/CacheJdbcBlobStore.java | 22 +-
.../store/jdbc/CacheJdbcBlobStoreFactory.java | 290 +++++++++++++++++++
.../cache/store/jdbc/CacheJdbcPojoStore.java | 6 +-
.../store/jdbc/CacheJdbcPojoStoreFactory.java | 148 ++++++++++
.../configuration/CacheConfiguration.java | 3 +-
.../internal/interop/InteropBootstrap.java | 3 +-
.../internal/interop/InteropIgnition.java | 5 +-
.../processors/cache/GridCacheProcessor.java | 23 +-
.../processors/query/GridQueryProcessor.java | 102 +++++--
.../util/spring/IgniteSpringHelper.java | 10 +
.../SpringApplicationContextResource.java | 4 +-
.../apache/ignite/resources/SpringResource.java | 6 +-
.../ignite/spi/discovery/tcp/ClientImpl.java | 87 ++++--
.../core/src/main/resources/ignite.properties | 2 +-
.../apache/ignite/internal/GridSelfTest.java | 12 +-
.../GridDiscoveryManagerAliveCacheSelfTest.java | 17 +-
.../GridCacheAbstractFailoverSelfTest.java | 2 +
...ridCacheMultinodeUpdateAbstractSelfTest.java | 9 +
.../cache/GridCacheVersionMultinodeTest.java | 8 +-
...CacheP2pUnmarshallingRebalanceErrorTest.java | 15 +-
.../IgniteCacheClientNodeConcurrentStart.java | 14 +-
.../distributed/IgniteCacheManyClientsTest.java | 69 ++++-
.../GridCachePartitionedTxSalvageSelfTest.java | 37 +--
.../junits/common/GridCommonAbstractTest.java | 11 +-
.../IgniteCacheFailoverTestSuite.java | 8 -
.../IgniteCacheFailoverTestSuite2.java | 47 +++
modules/extdata/p2p/pom.xml | 2 +-
modules/extdata/uri/pom.xml | 2 +-
modules/gce/pom.xml | 2 +-
modules/geospatial/pom.xml | 2 +-
modules/hadoop/pom.xml | 2 +-
modules/hibernate/pom.xml | 16 +-
.../hibernate/CacheHibernateBlobStore.java | 87 +-----
.../CacheHibernateBlobStoreFactory.java | 235 +++++++++++++++
.../hibernate/src/test/config/factory-cache.xml | 59 ++++
.../src/test/config/factory-cache1.xml | 61 ++++
.../config/factory-incorrect-store-cache.xml | 56 ++++
.../CacheHibernateStoreFactorySelfTest.java | 273 +++++++++++++++++
.../testsuites/IgniteHibernateTestSuite.java | 2 +
modules/indexing/pom.xml | 2 +-
.../CacheAbstractQueryMetricsSelfTest.java | 205 +++++++++++++
.../CachePartitionedQueryMetricsSelfTest.java | 32 ++
.../CacheReplicatedQueryMetricsSelfTest.java | 32 ++
.../cache/GridCacheQueryMetricsSelfTest.java | 206 -------------
.../query/h2/sql/BaseH2CompareQueryTest.java | 2 +-
.../IgniteCacheQuerySelfTestSuite.java | 4 +-
modules/jcl/pom.xml | 2 +-
modules/jta/pom.xml | 2 +-
modules/log4j/pom.xml | 2 +-
modules/mesos/pom.xml | 2 +-
modules/rest-http/pom.xml | 2 +-
modules/scalar-2.10/pom.xml | 2 +-
modules/scalar/pom.xml | 2 +-
modules/schedule/pom.xml | 2 +-
modules/schema-import/pom.xml | 2 +-
modules/slf4j/pom.xml | 2 +-
modules/spark-2.10/pom.xml | 2 +-
modules/spark/pom.xml | 2 +-
modules/spring/pom.xml | 9 +-
.../GridResourceSpringBeanInjector.java | 2 +-
.../util/spring/IgniteSpringHelperImpl.java | 17 ++
.../src/test/config/incorrect-store-cache.xml | 57 ++++
modules/spring/src/test/config/node.xml | 43 +++
modules/spring/src/test/config/node1.xml | 45 +++
.../test/config/pojo-incorrect-store-cache.xml | 56 ++++
modules/spring/src/test/config/store-cache.xml | 59 ++++
modules/spring/src/test/config/store-cache1.xml | 62 ++++
.../jdbc/CacheJdbcBlobStoreFactorySelfTest.java | 172 +++++++++++
.../jdbc/CacheJdbcPojoStoreFactorySelfTest.java | 193 ++++++++++++
.../testsuites/IgniteSpringTestSuite.java | 5 +
modules/ssh/pom.xml | 2 +-
modules/tools/pom.xml | 2 +-
modules/urideploy/pom.xml | 2 +-
modules/visor-console-2.10/pom.xml | 2 +-
modules/visor-console/pom.xml | 2 +-
modules/visor-plugins/pom.xml | 2 +-
modules/web/pom.xml | 2 +-
modules/yardstick/pom.xml | 2 +-
pom.xml | 2 +-
87 files changed, 2520 insertions(+), 500 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ca253a8a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index 174b7a0,718e6ba..4f2486b
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@@ -687,9 -716,16 +714,9 @@@ public class GridQueryProcessor extend
}
/**
- * @return Message factory for {@link GridIoManager}.
- */
- public MessageFactory messageFactory() {
- return idx == null ? null : idx.messageFactory();
- }
-
- /**
* Closeable iterator.
*/
- private static interface ClIter<X> extends AutoCloseable, Iterator<X> {
+ private interface ClIter<X> extends AutoCloseable, Iterator<X> {
// No-op.
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ca253a8a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
----------------------------------------------------------------------
[13/50] incubator-ignite git commit: ignite-484-1 - replicated cache
group reservation fix + drop reservations group for dead nodes
Posted by vo...@apache.org.
ignite-484-1 - replicated cache group reservation fix + drop reservations group for dead nodes
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/1fe215e2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/1fe215e2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/1fe215e2
Branch: refs/heads/ignite-gg-10411
Commit: 1fe215e2cc83954f25cc7c2f0974dcf312694eb8
Parents: 68c35e7
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jun 17 15:57:24 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jun 17 15:57:24 2015 +0300
----------------------------------------------------------------------
.../query/h2/twostep/GridMapQueryExecutor.java | 22 ++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fe215e2/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
index 42f01cb..aaf64ee 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
@@ -123,6 +123,18 @@ public class GridMapQueryExecutor {
}
}, EventType.EVT_NODE_FAILED, EventType.EVT_NODE_LEFT);
+ // Drop group reservations for dead caches.
+ ctx.event().addLocalEventListener(new GridLocalEventListener() {
+ @Override public void onEvent(Event evt) {
+ String cacheName = ((CacheEvent)evt).cacheName();
+
+ for (T2<String,AffinityTopologyVersion> grpKey : reservations.keySet()) {
+ if (F.eq(grpKey.get1(), cacheName))
+ reservations.remove(grpKey);
+ }
+ }
+ }, EventType.EVT_CACHE_STOPPED);
+
ctx.io().addMessageListener(GridTopic.TOPIC_QUERY, new GridMessageListener() {
@Override public void onMessage(UUID nodeId, Object msg) {
if (!busyLock.enterBusy())
@@ -244,7 +256,9 @@ public class GridMapQueryExecutor {
if (cctx.isLocal())
continue;
- final T2<String,AffinityTopologyVersion> grpKey = new T2<>(cctx.name(), topVer);
+ // For replicated cache topology version does not make sense.
+ final T2<String,AffinityTopologyVersion> grpKey =
+ new T2<>(cctx.name(), cctx.isReplicated() ? null : topVer);
GridReservable r = reservations.get(grpKey);
@@ -265,10 +279,10 @@ public class GridMapQueryExecutor {
// We don't need to reserve partitions because they will not be evicted in replicated caches.
if (part == null || part.state() != OWNING)
return false;
-
- // Mark that we checked this replicated cache.
- reservations.putIfAbsent(grpKey, ReplicatedReservation.INSTANCE);
}
+
+ // Mark that we checked this replicated cache.
+ reservations.putIfAbsent(grpKey, ReplicatedReservation.INSTANCE);
}
}
else { // Reserve primary partitions for partitioned cache (if no explicit given).
[26/50] incubator-ignite git commit: Merge remote-tracking branch
'origin/ignite-sprint-6' into ignite-sprint-6
Posted by vo...@apache.org.
Merge remote-tracking branch 'origin/ignite-sprint-6' into ignite-sprint-6
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/4cc376be
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/4cc376be
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/4cc376be
Branch: refs/heads/ignite-gg-10411
Commit: 4cc376bedd63aee6cb5de434c435b3384431ed63
Parents: fa6615a fffc2ec
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Thu Jun 18 09:45:26 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Thu Jun 18 09:45:26 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheAdapter.java | 4 +
.../processors/cache/IgniteCacheProxy.java | 7 +
.../dht/GridDhtPartitionTopologyImpl.java | 4 +-
.../dht/GridDhtTransactionalCacheAdapter.java | 2 +-
.../cache/transactions/IgniteTxHandler.java | 2 +-
.../transactions/IgniteTxLocalAdapter.java | 12 +-
.../dr/IgniteDrDataStreamerCacheUpdater.java | 7 +-
.../CacheStoreUsageMultinodeAbstractTest.java | 305 +++++++++++++++++++
...eUsageMultinodeDynamicStartAbstractTest.java | 169 ++++++++++
...oreUsageMultinodeDynamicStartAtomicTest.java | 32 ++
...heStoreUsageMultinodeDynamicStartTxTest.java | 32 ++
...reUsageMultinodeStaticStartAbstractTest.java | 158 ++++++++++
...toreUsageMultinodeStaticStartAtomicTest.java | 32 ++
...cheStoreUsageMultinodeStaticStartTxTest.java | 32 ++
.../IgniteCacheP2pUnmarshallingTxErrorTest.java | 19 +-
.../junits/common/GridCommonAbstractTest.java | 8 +-
.../testsuites/IgniteCacheTestSuite4.java | 4 +
17 files changed, 810 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
[36/50] incubator-ignite git commit: # ignite-1003 add
lastSuccessfulAddr for ping
Posted by vo...@apache.org.
# ignite-1003 add lastSuccessfulAddr for ping
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/b23f9300
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/b23f9300
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/b23f9300
Branch: refs/heads/ignite-gg-10411
Commit: b23f9300794c7e84dfc83c1b8e49de673fa354e1
Parents: d874b00
Author: sboikov <sb...@gridgain.com>
Authored: Thu Jun 18 13:52:45 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Jun 18 13:52:45 2015 +0300
----------------------------------------------------------------------
.../communication/tcp/TcpCommunicationSpi.java | 38 ++++++++++----------
.../ignite/spi/discovery/tcp/ServerImpl.java | 21 +++++++----
.../spi/discovery/tcp/TcpDiscoverySpi.java | 9 ++++-
.../tcp/internal/TcpDiscoveryNode.java | 18 ++++++++++
4 files changed, 60 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b23f9300/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index 9e38788..39f4eeb 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@ -267,23 +267,19 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
if (!isNodeStopping()) {
GridNioRecoveryDescriptor recoveryData = ses.recoveryDescriptor();
- if (!getSpiContext().tryFailNode(id)) {
- if (recoveryData != null) {
- if (recoveryData.nodeAlive(getSpiContext().node(id))) {
- if (!recoveryData.messagesFutures().isEmpty()) {
- if (log.isDebugEnabled())
- log.debug("Session was closed but there are unacknowledged messages, " +
- "will try to reconnect [rmtNode=" + recoveryData.node().id() + ']');
-
- commWorker.addReconnectRequest(recoveryData);
- }
+ if (recoveryData != null) {
+ if (recoveryData.nodeAlive(getSpiContext().node(id))) {
+ if (!recoveryData.messagesFutures().isEmpty()) {
+ if (log.isDebugEnabled())
+ log.debug("Session was closed but there are unacknowledged messages, " +
+ "will try to reconnect [rmtNode=" + recoveryData.node().id() + ']');
+
+ commWorker.addReconnectRequest(recoveryData);
}
- else
- recoveryData.onNodeLeft();
}
+ else
+ recoveryData.onNodeLeft();
}
- else
- recoveryData.onNodeLeft();
}
}
@@ -1884,18 +1880,20 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
"TCP communication addresses or mapped external addresses. Check configuration and make sure " +
"that you use the same communication SPI on all nodes. Remote node id: " + node.id());
- List<InetSocketAddress> addrs;
+ LinkedHashSet<InetSocketAddress> addrs;
// Try to connect first on bound addresses.
if (isRmtAddrsExist) {
- addrs = new ArrayList<>(U.toSocketAddresses(rmtAddrs0, rmtHostNames0, boundPort));
+ List<InetSocketAddress> addrs0 = new ArrayList<>(U.toSocketAddresses(rmtAddrs0, rmtHostNames0, boundPort));
boolean sameHost = U.sameMacs(getSpiContext().localNode(), node);
- Collections.sort(addrs, U.inetAddressesComparator(sameHost));
+ Collections.sort(addrs0, U.inetAddressesComparator(sameHost));
+
+ addrs = new LinkedHashSet<>(addrs0);
}
else
- addrs = new ArrayList<>();
+ addrs = new LinkedHashSet<>();
// Then on mapped external addresses.
if (isExtAddrsExist)
@@ -2610,7 +2608,9 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
private void processRecovery(GridNioRecoveryDescriptor recoveryDesc) {
ClusterNode node = recoveryDesc.node();
- if (clients.containsKey(node.id()) || !recoveryDesc.nodeAlive(getSpiContext().node(node.id())))
+ if (clients.containsKey(node.id()) ||
+ !recoveryDesc.nodeAlive(getSpiContext().node(node.id())) ||
+ !getSpiContext().pingNode(node.id()))
return;
try {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b23f9300/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index 63f165d..8a9553e 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -440,7 +440,12 @@ class ServerImpl extends TcpDiscoveryImpl {
// ID returned by the node should be the same as ID of the parameter for ping to succeed.
IgniteBiTuple<UUID, Boolean> t = pingNode(addr, clientNodeId);
- return node.id().equals(t.get1()) && (clientNodeId == null || t.get2());
+ boolean res = node.id().equals(t.get1()) && (clientNodeId == null || t.get2());
+
+ if (res)
+ node.lastSuccessfulAddress(addr);
+
+ return res;
}
catch (IgniteCheckedException e) {
if (log.isDebugEnabled())
@@ -458,8 +463,9 @@ class ServerImpl extends TcpDiscoveryImpl {
* Pings the node by its address to see if it's alive.
*
* @param addr Address of the node.
+ * @param clientNodeId Client node ID.
* @return ID of the remote node and "client exists" flag if node alive.
- * @throws IgniteSpiException If an error occurs.
+ * @throws IgniteCheckedException If an error occurs.
*/
private IgniteBiTuple<UUID, Boolean> pingNode(InetSocketAddress addr, @Nullable UUID clientNodeId)
throws IgniteCheckedException {
@@ -1589,8 +1595,7 @@ class ServerImpl extends TcpDiscoveryImpl {
regAddrs,
F.notContains(currAddrs),
new P1<InetSocketAddress>() {
- private final Map<InetSocketAddress, Boolean> pingResMap =
- new HashMap<>();
+ private final Map<InetSocketAddress, Boolean> pingResMap = new HashMap<>();
@Override public boolean apply(InetSocketAddress addr) {
Boolean res = pingResMap.get(addr);
@@ -2092,6 +2097,8 @@ class ServerImpl extends TcpDiscoveryImpl {
errs = null;
success = true;
+
+ next.lastSuccessfulAddress(addr);
}
}
catch (IOException | IgniteCheckedException e) {
@@ -2672,6 +2679,8 @@ class ServerImpl extends TcpDiscoveryImpl {
try {
sendMessageDirectly(msg, addr);
+ node.lastSuccessfulAddress(addr);
+
ex = null;
break;
@@ -4588,7 +4597,7 @@ class ServerImpl extends TcpDiscoveryImpl {
}
/**
- *
+ * @param res Ping result.
*/
public void pingResult(boolean res) {
GridFutureAdapter<Boolean> fut = pingFut.getAndSet(null);
@@ -4598,7 +4607,7 @@ class ServerImpl extends TcpDiscoveryImpl {
}
/**
- *
+ * @throws InterruptedException If interrupted.
*/
public boolean ping() throws InterruptedException {
if (spi.isNodeStopping0())
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b23f9300/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index e4ef744..baada21 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -892,7 +892,14 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
Collections.sort(addrs, U.inetAddressesComparator(sameHost));
- LinkedHashSet<InetSocketAddress> res = new LinkedHashSet<>(addrs);
+ LinkedHashSet<InetSocketAddress> res = new LinkedHashSet<>();
+
+ InetSocketAddress lastAddr = node.lastSuccessfulAddress();
+
+ if (lastAddr != null)
+ res.add(lastAddr);
+
+ res.addAll(addrs);
Collection<InetSocketAddress> extAddrs = node.attribute(createSpiAttributeName(ATTR_EXT_ADDRS));
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b23f9300/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
index cc61c9d..36ae39e 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
@@ -111,6 +111,10 @@ public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements Cluste
@GridToStringExclude
private UUID clientRouterNodeId;
+ /** */
+ @GridToStringExclude
+ private volatile transient InetSocketAddress lastSuccessfulAddr;
+
/**
* Public default no-arg constructor for {@link Externalizable} interface.
*/
@@ -152,6 +156,20 @@ public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements Cluste
sockAddrs = U.toSocketAddresses(this, discPort);
}
+ /**
+ * @return Last successfully connected address.
+ */
+ @Nullable public InetSocketAddress lastSuccessfulAddress() {
+ return lastSuccessfulAddr;
+ }
+
+ /**
+ * @param lastSuccessfulAddr Last successfully connected address.
+ */
+ public void lastSuccessfulAddress(InetSocketAddress lastSuccessfulAddr) {
+ this.lastSuccessfulAddr = lastSuccessfulAddr;
+ }
+
/** {@inheritDoc} */
@Override public UUID id() {
return id;
[22/50] incubator-ignite git commit: ignite-484-1 - relax test: 2
restarting nodes instead of 3
Posted by vo...@apache.org.
ignite-484-1 - relax test: 2 restarting nodes instead of 3
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ed43dfe1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ed43dfe1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ed43dfe1
Branch: refs/heads/ignite-gg-10411
Commit: ed43dfe1c7e9b7db3f6ef33a38dad9b28c41190c
Parents: e602ca0
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jun 17 20:33:54 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jun 17 20:33:54 2015 +0300
----------------------------------------------------------------------
.../near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed43dfe1/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java
index 3f23005..b868cfb 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java
@@ -194,7 +194,7 @@ public class IgniteCacheClientQueryReplicatedNodeRestartSelfTest extends GridCom
public void testRestarts() throws Exception {
int duration = 90 * 1000;
int qryThreadNum = 5;
- int restartThreadsNum = 3; // 3 of 4 data nodes
+ int restartThreadsNum = 2; // 2 of 4 data nodes
final int nodeLifeTime = 2 * 1000;
final int logFreq = 10;
[06/50] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-sprint-7' into ignite-1020
Posted by vo...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-7' into ignite-1020
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/e507f030
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/e507f030
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/e507f030
Branch: refs/heads/ignite-gg-10411
Commit: e507f030998c98851f97affa14667b64ebdb236e
Parents: a75b868 01eee2d
Author: sboikov <sb...@gridgain.com>
Authored: Wed Jun 17 12:10:41 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Jun 17 12:10:41 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/IgniteKernal.java | 13 +-----------
.../client/GridClientConfiguration.java | 4 ++--
.../GridClientOptimizedMarshaller.java | 21 ++++++++++++++++++++
.../impl/GridTcpRouterNioListenerAdapter.java | 2 +-
.../rest/protocols/tcp/GridTcpRestProtocol.java | 3 ++-
.../ignite/internal/util/IgniteUtils.java | 21 ++++++++++++++++++++
6 files changed, 48 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
[49/50] incubator-ignite git commit: # ignite-sprint-7
Posted by vo...@apache.org.
# ignite-sprint-7
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/6974a8e3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/6974a8e3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/6974a8e3
Branch: refs/heads/ignite-gg-10411
Commit: 6974a8e3d356a1e1b777064ae79cb0f67a50a077
Parents: 9458f12
Author: sboikov <sb...@gridgain.com>
Authored: Fri Jun 19 12:16:49 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Jun 19 12:16:49 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/processors/task/GridTaskProcessor.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6974a8e3/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
index bb9ff50..d59a51d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
@@ -1175,7 +1175,8 @@ public class GridTaskProcessor extends GridProcessorAdapter {
ctx.closure().runLocalSafe(new Runnable() {
@Override public void run() {
- lock.readLock();
+ if (!lock.tryReadLock())
+ return;
try {
for (GridTaskWorker<?, ?> task : tasks.values())
[20/50] incubator-ignite git commit: Merge branches 'ignite-484-1'
and 'ignite-sprint-6' of
https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-484-1
Posted by vo...@apache.org.
Merge branches 'ignite-484-1' and 'ignite-sprint-6' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-484-1
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/efb42447
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/efb42447
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/efb42447
Branch: refs/heads/ignite-gg-10411
Commit: efb4244779b94c9c9f35c63708e4a41da2430bce
Parents: 94060c9 4298238 af829d0
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jun 17 19:50:12 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jun 17 19:50:12 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheAdapter.java | 4 +
.../processors/cache/IgniteCacheProxy.java | 7 +
.../dht/GridDhtTransactionalCacheAdapter.java | 2 +-
.../cache/transactions/IgniteTxHandler.java | 2 +-
.../transactions/IgniteTxLocalAdapter.java | 12 +-
.../dr/IgniteDrDataStreamerCacheUpdater.java | 7 +-
.../CacheStoreUsageMultinodeAbstractTest.java | 305 +++++++++++++++++++
...eUsageMultinodeDynamicStartAbstractTest.java | 169 ++++++++++
...oreUsageMultinodeDynamicStartAtomicTest.java | 32 ++
...heStoreUsageMultinodeDynamicStartTxTest.java | 32 ++
...reUsageMultinodeStaticStartAbstractTest.java | 158 ++++++++++
...toreUsageMultinodeStaticStartAtomicTest.java | 32 ++
...cheStoreUsageMultinodeStaticStartTxTest.java | 32 ++
.../testsuites/IgniteCacheTestSuite4.java | 4 +
.../h2/twostep/GridReduceQueryExecutor.java | 3 +-
15 files changed, 793 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/efb42447/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
index 6635dde,6c407d9,11054b7..b956167
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
@@@@ -273,514 -273,477 -265,113 +273,515 @@@@ public class GridReduceQueryExecutor
}
/**
+ * @param r Query run.
+ * @param retryVer Retry version.
+ * @param nodeId Node ID.
+ */
+ private void retry(QueryRun r, AffinityTopologyVersion retryVer, UUID nodeId) {
+ r.state(retryVer, nodeId);
+ }
+
+ /**
+ * @param cctx Cache context for main space.
+ * @param extraSpaces Extra spaces.
+ * @return {@code true} If preloading is active.
+ */
+ private boolean isPreloadingActive(final GridCacheContext<?,?> cctx, List<String> extraSpaces) {
+ if (hasMovingPartitions(cctx))
+ return true;
+
+ if (extraSpaces != null) {
+ for (String extraSpace : extraSpaces) {
+ if (hasMovingPartitions(cacheContext(extraSpace)))
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * @return {@code true} If cache context
+ */
+ private boolean hasMovingPartitions(GridCacheContext<?,?> cctx) {
+ GridDhtPartitionFullMap fullMap = cctx.topology().partitionMap(false);
+
+ for (GridDhtPartitionMap map : fullMap.values()) {
+ if (map.hasMovingPartitions())
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * @param name Cache name.
+ * @return Cache context.
+ */
+ private GridCacheContext<?,?> cacheContext(String name) {
+ return ctx.cache().internalCache(name).context();
+ }
+
+ /**
+ * @param topVer Topology version.
+ * @param cctx Cache context for main space.
+ * @param extraSpaces Extra spaces.
+ * @return Data nodes or {@code null} if repartitioning started and we need to retry..
+ */
+ private Collection<ClusterNode> stableDataNodes(
+ AffinityTopologyVersion topVer,
+ final GridCacheContext<?,?> cctx,
+ List<String> extraSpaces
+ ) {
+ String space = cctx.name();
+
- Set<ClusterNode> nodes = new HashSet<>(ctx.discovery().cacheAffinityNodes(space, topVer));
++ Set<ClusterNode> nodes = new HashSet<>(dataNodes(space, topVer));
+
+ if (F.isEmpty(nodes))
+ throw new CacheException("No data nodes found for cache: " + space);
+
+ if (!F.isEmpty(extraSpaces)) {
+ for (String extraSpace : extraSpaces) {
+ GridCacheContext<?,?> extraCctx = cacheContext(extraSpace);
+
+ if (extraCctx.isLocal())
+ continue; // No consistency guaranties for local caches.
+
+ if (cctx.isReplicated() && !extraCctx.isReplicated())
+ throw new CacheException("Queries running on replicated cache should not contain JOINs " +
+ "with partitioned tables.");
+
- Collection<ClusterNode> extraNodes = ctx.discovery().cacheAffinityNodes(extraSpace, topVer);
++ Collection<ClusterNode> extraNodes = dataNodes(extraSpace, topVer);
+
+ if (F.isEmpty(extraNodes))
+ throw new CacheException("No data nodes found for cache: " + extraSpace);
+
+ if (cctx.isReplicated() && extraCctx.isReplicated()) {
+ nodes.retainAll(extraNodes);
+
+ if (nodes.isEmpty()) {
+ if (isPreloadingActive(cctx, extraSpaces))
+ return null; // Retry.
+ else
+ throw new CacheException("Caches '" + cctx.name() + "' and '" + extraSpace +
+ "' have distinct set of data nodes.");
+ }
+ }
+ else if (!cctx.isReplicated() && extraCctx.isReplicated()) {
+ if (!extraNodes.containsAll(nodes))
+ if (isPreloadingActive(cctx, extraSpaces))
+ return null; // Retry.
+ else
+ throw new CacheException("Caches '" + cctx.name() + "' and '" + extraSpace +
+ "' have distinct set of data nodes.");
+ }
+ else if (!cctx.isReplicated() && !extraCctx.isReplicated()) {
+ if (extraNodes.size() != nodes.size() || !nodes.containsAll(extraNodes))
+ if (isPreloadingActive(cctx, extraSpaces))
+ return null; // Retry.
+ else
+ throw new CacheException("Caches '" + cctx.name() + "' and '" + extraSpace +
+ "' have distinct set of data nodes.");
+ }
+ else
+ throw new IllegalStateException();
+ }
+ }
+
+ return nodes;
+ }
+
+ /**
* @param cctx Cache context.
* @param qry Query.
+ * @param keepPortable Keep portable.
* @return Cursor.
*/
public Iterator<List<?>> query(GridCacheContext<?,?> cctx, GridCacheTwoStepQuery qry, boolean keepPortable) {
- for (;;) {
- long qryReqId = reqIdGen.incrementAndGet();
++ for (int attempt = 0;; attempt++) {
++ if (attempt != 0) {
++ try {
++ Thread.sleep(attempt * 10); // Wait for exchange.
++ }
++ catch (InterruptedException e) {
++ Thread.currentThread().interrupt();
+
- QueryRun r = new QueryRun();
++ throw new CacheException("Query was interrupted.", e);
++ }
++ }
+
- r.pageSize = qry.pageSize() <= 0 ? GridCacheTwoStepQuery.DFLT_PAGE_SIZE : qry.pageSize();
+ long qryReqId = reqIdGen.incrementAndGet();
- r.tbls = new ArrayList<>(qry.mapQueries().size());
+ QueryRun r = new QueryRun();
- String space = cctx.name();
+ r.pageSize = qry.pageSize() <= 0 ? GridCacheTwoStepQuery.DFLT_PAGE_SIZE : qry.pageSize();
- r.conn = (JdbcConnection)h2.connectionForSpace(space);
+ r.tbls = new ArrayList<>(qry.mapQueries().size());
- // TODO Add topology version.
- ClusterGroup dataNodes = ctx.grid().cluster().forDataNodes(space);
+ String space = cctx.name();
- if (cctx.isReplicated() || qry.explain()) {
- assert qry.explain() || dataNodes.node(ctx.localNodeId()) == null : "We must be on a client node.";
+ r.conn = (JdbcConnection)h2.connectionForSpace(space);
- // Select random data node to run query on a replicated data or get EXPLAIN PLAN from a single node.
- dataNodes = dataNodes.forRandom();
- }
+ AffinityTopologyVersion topVer = h2.readyTopologyVersion();
- final Collection<ClusterNode> nodes = dataNodes.nodes();
+ List<String> extraSpaces = extraSpaces(space, qry.spaces());
- for (GridCacheSqlQuery mapQry : qry.mapQueries()) {
- GridMergeTable tbl;
+ Collection<ClusterNode> nodes;
+
+ // Explicit partition mapping for unstable topology.
+ Map<ClusterNode, IntArray> partsMap = null;
+
+ if (isPreloadingActive(cctx, extraSpaces)) {
+ if (cctx.isReplicated())
- nodes = replicatedDataNodes(cctx, extraSpaces);
++ nodes = replicatedUnstableDataNodes(cctx, extraSpaces);
+ else {
- partsMap = partitionLocations(cctx, extraSpaces);
++ partsMap = partitionedUnstableDataNodes(cctx, extraSpaces);
+
+ nodes = partsMap == null ? null : partsMap.keySet();
+ }
+ }
+ else
+ nodes = stableDataNodes(topVer, cctx, extraSpaces);
+
+ if (nodes == null)
+ continue; // Retry.
+
+ assert !nodes.isEmpty();
+
+ if (cctx.isReplicated() || qry.explain()) {
- assert qry.explain() || !nodes.contains(ctx.cluster().get().localNode()) : "We must be on a client node.";
+ + assert qry.explain() || !nodes.contains(ctx.cluster().get().localNode()) :
+ + "We must be on a client node.";
+
+ // Select random data node to run query on a replicated data or get EXPLAIN PLAN from a single node.
+ nodes = Collections.singleton(F.rand(nodes));
+ }
+
+ for (GridCacheSqlQuery mapQry : qry.mapQueries()) {
+ GridMergeTable tbl;
+
+ try {
+ tbl = createFunctionTable(r.conn, mapQry, qry.explain()); // createTable(r.conn, mapQry); TODO
+ }
+ catch (IgniteCheckedException e) {
+ throw new IgniteException(e);
+ }
+
+ GridMergeIndex idx = tbl.getScanIndex(null);
+
+ for (ClusterNode node : nodes)
+ idx.addSource(node.id());
+
+ r.tbls.add(tbl);
+
+ curFunTbl.set(tbl);
+ }
+
+ r.latch = new CountDownLatch(r.tbls.size() * nodes.size());
+
+ runs.put(qryReqId, r);
try {
- tbl = createFunctionTable(r.conn, mapQry, qry.explain()); // createTable(r.conn, mapQry); TODO
+ Collection<GridCacheSqlQuery> mapQrys = qry.mapQueries();
+
+ if (qry.explain()) {
+ mapQrys = new ArrayList<>(qry.mapQueries().size());
+
+ for (GridCacheSqlQuery mapQry : qry.mapQueries())
+ mapQrys.add(new GridCacheSqlQuery(mapQry.alias(), "EXPLAIN " + mapQry.query(), mapQry.parameters()));
+ }
+
+ if (nodes.size() != 1 || !F.first(nodes).isLocal()) { // Marshall params for remotes.
+ Marshaller m = ctx.config().getMarshaller();
+
+ for (GridCacheSqlQuery mapQry : mapQrys)
+ mapQry.marshallParams(m);
+ }
+
+ boolean retry = false;
+
+ if (send(nodes,
+ new GridQueryRequest(qryReqId, r.pageSize, space, mapQrys, topVer, extraSpaces, null), partsMap)) {
+ U.await(r.latch);
+
+ Object state = r.state.get();
+
+ if (state != null) {
+ if (state instanceof CacheException)
+ throw new CacheException("Failed to run map query remotely.", (CacheException)state);
+
+ if (state instanceof AffinityTopologyVersion) {
+ retry = true;
+
+ // If remote node asks us to retry then we have outdated full partition map.
+ h2.awaitForReadyTopologyVersion((AffinityTopologyVersion)state);
+ }
+ }
+ }
+ else // Send failed.
+ retry = true;
+
+ ResultSet res = null;
+
+ if (!retry) {
+ if (qry.explain())
+ return explainPlan(r.conn, space, qry);
+
+ GridCacheSqlQuery rdc = qry.reduceQuery();
+
+ res = h2.executeSqlQueryWithTimer(space, r.conn, rdc.query(), F.asList(rdc.parameters()));
+ }
+
+ for (GridMergeTable tbl : r.tbls) {
+ if (!tbl.getScanIndex(null).fetchedAll()) // We have to explicitly cancel queries on remote nodes.
+ send(nodes, new GridQueryCancelRequest(qryReqId), null);
+
+// dropTable(r.conn, tbl.getName()); TODO
+ }
+
+ if (retry) {
+ if (Thread.currentThread().isInterrupted())
+ throw new IgniteInterruptedCheckedException("Query was interrupted.");
+
+ continue;
+ }
+
+ return new GridQueryCacheObjectsIterator(new Iter(res), cctx, keepPortable);
}
- catch (IgniteCheckedException e) {
- throw new IgniteException(e);
+ catch (IgniteCheckedException | RuntimeException e) {
+ U.closeQuiet(r.conn);
+
- if (e instanceof CacheException)
- throw (CacheException)e;
-
+ throw new CacheException("Failed to run reduce query locally.", e);
+ }
+ finally {
+ if (!runs.remove(qryReqId, r))
+ U.warn(log, "Query run was already removed: " + qryReqId);
+
+ curFunTbl.remove();
}
+ }
+ }
+
+ /**
+ * Calculates data nodes for replicated caches on unstable topology.
+ *
+ * @param cctx Cache context for main space.
+ * @param extraSpaces Extra spaces.
+ * @return Collection of all data nodes owning all the caches or {@code null} for retry.
+ */
- private Collection<ClusterNode> replicatedDataNodes(final GridCacheContext<?,?> cctx, List<String> extraSpaces) {
++ private Collection<ClusterNode> replicatedUnstableDataNodes(final GridCacheContext<?,?> cctx,
++ List<String> extraSpaces) {
+ assert cctx.isReplicated() : cctx.name() + " must be replicated";
+
- Set<ClusterNode> nodes = owningReplicatedDataNodes(cctx);
++ Set<ClusterNode> nodes = replicatedUnstableDataNodes(cctx);
+
- GridMergeIndex idx = tbl.getScanIndex(null);
++ if (F.isEmpty(nodes))
++ return null; // Retry.
- for (ClusterNode node : nodes)
- idx.addSource(node.id());
+ if (!F.isEmpty(extraSpaces)) {
+ for (String extraSpace : extraSpaces) {
+ GridCacheContext<?,?> extraCctx = cacheContext(extraSpace);
- r.tbls.add(tbl);
+ if (extraCctx.isLocal())
+ continue;
- curFunTbl.set(tbl);
+ if (!extraCctx.isReplicated())
+ throw new CacheException("Queries running on replicated cache should not contain JOINs " +
+ "with partitioned tables.");
+
- nodes.retainAll(owningReplicatedDataNodes(extraCctx));
++ Set<ClusterNode> extraOwners = replicatedUnstableDataNodes(extraCctx);
++
++ if (F.isEmpty(extraOwners))
++ return null; // Retry.
++
++ nodes.retainAll(extraOwners);
+
+ if (nodes.isEmpty())
+ return null; // Retry.
+ }
}
- r.latch = new CountDownLatch(r.tbls.size() * nodes.size());
+ return nodes;
+ }
+
+ /**
++ * @param space Cache name.
++ * @param topVer Topology version.
++ * @return Collection of data nodes.
++ */
++ private Collection<ClusterNode> dataNodes(String space, AffinityTopologyVersion topVer) {
++ Collection<ClusterNode> res = ctx.discovery().cacheAffinityNodes(space, topVer);
+
- runs.put(qryReqId, r);
++ return res != null ? res : Collections.<ClusterNode>emptySet();
++ }
+
- try {
- Collection<GridCacheSqlQuery> mapQrys = qry.mapQueries();
++ /**
+ * Collects all the nodes owning all the partitions for the given replicated cache.
+ *
+ * @param cctx Cache context.
- * @return Owning nodes.
++ * @return Owning nodes or {@code null} if we can't find owners for some partitions.
+ */
- private Set<ClusterNode> owningReplicatedDataNodes(GridCacheContext<?,?> cctx) {
++ private Set<ClusterNode> replicatedUnstableDataNodes(GridCacheContext<?,?> cctx) {
+ assert cctx.isReplicated() : cctx.name() + " must be replicated";
+
+ String space = cctx.name();
+
- Set<ClusterNode> dataNodes = new HashSet<>(ctx.discovery().cacheAffinityNodes(space, NONE));
++ Set<ClusterNode> dataNodes = new HashSet<>(dataNodes(space, NONE));
+
+ if (dataNodes.isEmpty())
+ throw new CacheException("No data nodes found for cache '" + space + "'");
+
+ // Find all the nodes owning all the partitions for replicated cache.
- for (int p = 0, extraParts = cctx.affinity().partitions(); p < extraParts; p++) {
++ for (int p = 0, parts = cctx.affinity().partitions(); p < parts; p++) {
+ List<ClusterNode> owners = cctx.topology().owners(p);
+
- if (owners.isEmpty())
- throw new CacheException("No data nodes found for cache '" + space +
- "' for partition " + p);
++ if (F.isEmpty(owners))
++ return null; // Retry.
+
+ dataNodes.retainAll(owners);
+
+ if (dataNodes.isEmpty())
- throw new CacheException("No data nodes found for cache '" + space +
- "' owning all the partitions.");
++ return null; // Retry.
+ }
+
+ return dataNodes;
+ }
+
+ /**
+ * Calculates partition mapping for partitioned cache on unstable topology.
+ *
+ * @param cctx Cache context for main space.
+ * @param extraSpaces Extra spaces.
+ * @return Partition mapping or {@code null} if we can't calculate it due to repartitioning and we need to retry.
+ */
+ @SuppressWarnings("unchecked")
- private Map<ClusterNode, IntArray> partitionLocations(final GridCacheContext<?,?> cctx, List<String> extraSpaces) {
++ private Map<ClusterNode, IntArray> partitionedUnstableDataNodes(final GridCacheContext<?,?> cctx,
++ List<String> extraSpaces) {
+ assert !cctx.isReplicated() && !cctx.isLocal() : cctx.name() + " must be partitioned";
+
+ final int partsCnt = cctx.affinity().partitions();
+
+ if (extraSpaces != null) { // Check correct number of partitions for partitioned caches.
+ for (String extraSpace : extraSpaces) {
+ GridCacheContext<?,?> extraCctx = cacheContext(extraSpace);
- if (qry.explain()) {
- mapQrys = new ArrayList<>(qry.mapQueries().size());
+ if (extraCctx.isReplicated() || extraCctx.isLocal())
+ continue;
- for (GridCacheSqlQuery mapQry : qry.mapQueries())
- mapQrys.add(new GridCacheSqlQuery(mapQry.alias(), "EXPLAIN " + mapQry.query(), mapQry.parameters()));
+ int parts = extraCctx.affinity().partitions();
+
+ if (parts != partsCnt)
+ throw new CacheException("Number of partitions must be the same for correct collocation in " +
+ "caches " + cctx.name() + " and " + extraSpace + ".");
}
+ }
+
+ Set<ClusterNode>[] partLocs = new Set[partsCnt];
- if (nodes.size() != 1 || !F.first(nodes).isLocal()) { // Marshall params for remotes.
- Marshaller m = ctx.config().getMarshaller();
+ // Fill partition locations for main cache.
+ for (int p = 0, parts = cctx.affinity().partitions(); p < parts; p++) {
+ List<ClusterNode> owners = cctx.topology().owners(p);
- if (F.isEmpty(owners))
- for (GridCacheSqlQuery mapQry : mapQrys)
- mapQry.marshallParams(m);
++ if (F.isEmpty(owners)) {
++ if (!F.isEmpty(dataNodes(cctx.name(), NONE)))
++ return null; // Retry.
++
+ throw new CacheException("No data nodes found for cache '" + cctx.name() + "' for partition " + p);
+ }
- send(nodes, new GridQueryRequest(qryReqId, r.pageSize, space, mapQrys));
+ partLocs[p] = new HashSet<>(owners);
+ }
- r.latch.await();
+ if (extraSpaces != null) {
+ // Find owner intersections for each participating partitioned cache partition.
+ // We need this for logical collocation between different partitioned caches with the same affinity.
+ for (String extraSpace : extraSpaces) {
+ GridCacheContext<?,?> extraCctx = cacheContext(extraSpace);
- if (r.rmtErr != null)
- throw new CacheException("Failed to run map query remotely.", r.rmtErr);
+ if (extraCctx.isReplicated() || extraCctx.isLocal())
+ continue;
- if (qry.explain())
- return explainPlan(r.conn, space, qry);
+ for (int p = 0, parts = extraCctx.affinity().partitions(); p < parts; p++) {
+ List<ClusterNode> owners = extraCctx.topology().owners(p);
- if (F.isEmpty(owners))
- GridCacheSqlQuery rdc = qry.reduceQuery();
++ if (F.isEmpty(owners)) {
++ if (!F.isEmpty(dataNodes(extraSpace, NONE)))
++ return null; // Retry.
+
- final ResultSet res = h2.executeSqlQueryWithTimer(space, r.conn, rdc.query(), F.asList(rdc.parameters()));
+ throw new CacheException("No data nodes found for cache '" + extraSpace +
+ "' for partition " + p);
++ }
- for (GridMergeTable tbl : r.tbls) {
- if (!tbl.getScanIndex(null).fetchedAll()) // We have to explicitly cancel queries on remote nodes.
- send(nodes, new GridQueryCancelRequest(qryReqId));
+ if (partLocs[p] == null)
+ partLocs[p] = new HashSet<>(owners);
+ else {
+ partLocs[p].retainAll(owners); // Intersection of owners.
-// dropTable(r.conn, tbl.getName()); TODO
+ if (partLocs[p].isEmpty())
+ return null; // Intersection is empty -> retry.
+ }
+ }
}
- return new GridQueryCacheObjectsIterator(new Iter(res), cctx, keepPortable);
+ // Filter nodes where not all the replicated caches loaded.
+ for (String extraSpace : extraSpaces) {
+ GridCacheContext<?,?> extraCctx = cacheContext(extraSpace);
+
+ if (!extraCctx.isReplicated())
+ continue;
+
- Set<ClusterNode> dataNodes = owningReplicatedDataNodes(extraCctx);
++ Set<ClusterNode> dataNodes = replicatedUnstableDataNodes(extraCctx);
++
++ if (F.isEmpty(dataNodes))
++ return null; // Retry.
+
+ for (Set<ClusterNode> partLoc : partLocs) {
+ partLoc.retainAll(dataNodes);
+
+ if (partLoc.isEmpty())
+ return null; // Retry.
+ }
+ }
}
- catch (IgniteCheckedException | InterruptedException | RuntimeException e) {
- U.closeQuiet(r.conn);
- if (e instanceof CacheException)
- throw (CacheException)e;
+ // Collect the final partitions mapping.
+ Map<ClusterNode, IntArray> res = new HashMap<>();
+
+ // Here partitions in all IntArray's will be sorted in ascending order, this is important.
+ for (int p = 0; p < partLocs.length; p++) {
+ Set<ClusterNode> pl = partLocs[p];
- throw new CacheException("Failed to run reduce query locally.", e);
+ assert !F.isEmpty(pl) : pl;
+
+ ClusterNode n = pl.size() == 1 ? F.first(pl) : F.rand(pl);
+
+ IntArray parts = res.get(n);
+
+ if (parts == null)
+ res.put(n, parts = new IntArray());
+
+ parts.add(p);
}
- finally {
- if (!runs.remove(qryReqId, r))
- U.warn(log, "Query run was already removed: " + qryReqId);
- curFunTbl.remove();
+ return res;
+ }
+
+ /**
+ * @param mainSpace Main space.
+ * @param allSpaces All spaces.
+ * @return List of all extra spaces or {@code null} if none.
+ */
+ private List<String> extraSpaces(String mainSpace, Set<String> allSpaces) {
+ if (F.isEmpty(allSpaces) || (allSpaces.size() == 1 && allSpaces.contains(mainSpace)))
+ return null;
+
+ ArrayList<String> res = new ArrayList<>(allSpaces.size());
+
+ for (String space : allSpaces) {
+ if (!F.eq(space, mainSpace))
+ res.add(space);
}
+
+ return res;
}
/**
[38/50] incubator-ignite git commit: # changed defaults for discovery
Posted by vo...@apache.org.
# changed defaults for discovery
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/5011c2b5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/5011c2b5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/5011c2b5
Branch: refs/heads/ignite-gg-10411
Commit: 5011c2b5e9671ced95e21f122c2e5ef9102c19fe
Parents: b23ea74
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Thu Jun 18 14:50:43 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Thu Jun 18 14:50:43 2015 +0300
----------------------------------------------------------------------
.../communication/tcp/TcpCommunicationSpi.java | 6 ++--
.../spi/discovery/tcp/TcpDiscoverySpi.java | 32 +++++++++++++-------
2 files changed, 24 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5011c2b5/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index 9e38788..fc504f4 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@ -174,8 +174,8 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
/** Default socket send and receive buffer size. */
public static final int DFLT_SOCK_BUF_SIZE = 32 * 1024;
- /** Default connection timeout (value is <tt>1000</tt>ms). */
- public static final long DFLT_CONN_TIMEOUT = 1000;
+ /** Default connection timeout (value is <tt>5000</tt>ms). */
+ public static final long DFLT_CONN_TIMEOUT = 5000;
/** Default Maximum connection timeout (value is <tt>600,000</tt>ms). */
public static final long DFLT_MAX_CONN_TIMEOUT = 10 * 60 * 1000;
@@ -680,7 +680,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
/** Recovery and idle clients handler. */
private CommunicationWorker commWorker;
-
+
/** Shared memory accept worker. */
private ShmemAcceptWorker shmemAcceptWorker;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5011c2b5/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index e4ef744..9a26867 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -21,7 +21,6 @@ import org.apache.ignite.*;
import org.apache.ignite.cluster.*;
import org.apache.ignite.configuration.*;
import org.apache.ignite.internal.*;
-import org.apache.ignite.internal.util.*;
import org.apache.ignite.internal.util.io.*;
import org.apache.ignite.internal.util.tostring.*;
import org.apache.ignite.internal.util.typedef.*;
@@ -66,6 +65,17 @@ import java.util.concurrent.atomic.*;
* and then this info goes to coordinator. When coordinator processes join request
* and issues node added messages and all other nodes then receive info about new node.
* <h1 class="header">Configuration</h1>
+ * <h2 class="header">Important Notice</h2>
+ * Configuration defaults are chosen to make possible for discovery SPI to reliably work on
+ * most of hardware and virtual deployments, but this has made failure detection time worse.
+ * <p>
+ * For stable low-latency networks the following more aggressive settings are recommended
+ * (which allows failure detection time ~200ms):
+ * <ul>
+ * <li>Heartbeat frequency (see {@link #setHeartbeatFrequency(long)}) - 100ms</li>
+ * <li>Socket timeout (see {@link #setSocketTimeout(long)}) - 200ms</li>
+ * <li>Message acknowledgement timeout (see {@link #setAckTimeout(long)}) - 50ms</li>
+ * </ul>
* <h2 class="header">Mandatory</h2>
* There are no mandatory configuration parameters.
* <h2 class="header">Optional</h2>
@@ -164,23 +174,23 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
/** Default value for thread priority (value is <tt>10</tt>). */
public static final int DFLT_THREAD_PRI = 10;
- /** Default heartbeat messages issuing frequency (value is <tt>100ms</tt>). */
- public static final long DFLT_HEARTBEAT_FREQ = 100;
+ /** Default heartbeat messages issuing frequency (value is <tt>2000ms</tt>). */
+ public static final long DFLT_HEARTBEAT_FREQ = 2000;
/** Default size of topology snapshots history. */
public static final int DFLT_TOP_HISTORY_SIZE = 1000;
- /** Default socket operations timeout in milliseconds (value is <tt>200ms</tt>). */
- public static final long DFLT_SOCK_TIMEOUT = 200;
+ /** Default socket operations timeout in milliseconds (value is <tt>5000ms</tt>). */
+ public static final long DFLT_SOCK_TIMEOUT = 5000;
- /** Default timeout for receiving message acknowledgement in milliseconds (value is <tt>50ms</tt>). */
- public static final long DFLT_ACK_TIMEOUT = 50;
+ /** Default timeout for receiving message acknowledgement in milliseconds (value is <tt>5000ms</tt>). */
+ public static final long DFLT_ACK_TIMEOUT = 5000;
- /** Default socket operations timeout in milliseconds (value is <tt>700ms</tt>). */
- public static final long DFLT_SOCK_TIMEOUT_CLIENT = 700;
+ /** Default socket operations timeout in milliseconds (value is <tt>5000ms</tt>). */
+ public static final long DFLT_SOCK_TIMEOUT_CLIENT = 5000;
- /** Default timeout for receiving message acknowledgement in milliseconds (value is <tt>700ms</tt>). */
- public static final long DFLT_ACK_TIMEOUT_CLIENT = 700;
+ /** Default timeout for receiving message acknowledgement in milliseconds (value is <tt>5000ms</tt>). */
+ public static final long DFLT_ACK_TIMEOUT_CLIENT = 5000;
/** Default reconnect attempts count (value is <tt>10</tt>). */
public static final int DFLT_RECONNECT_CNT = 10;
[40/50] incubator-ignite git commit: # changed discovery error message
Posted by vo...@apache.org.
# changed discovery error message
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/31cf8027
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/31cf8027
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/31cf8027
Branch: refs/heads/ignite-gg-10411
Commit: 31cf8027216afca3d02461caa4f4245bdd8d0e73
Parents: cb862b6
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Thu Jun 18 14:56:12 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Thu Jun 18 14:56:12 2015 +0300
----------------------------------------------------------------------
.../org/apache/ignite/spi/discovery/tcp/ServerImpl.java | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/31cf8027/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index 63f165d..e9a949a 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -4103,8 +4103,14 @@ class ServerImpl extends TcpDiscoveryImpl {
if (U.isMacInvalidArgumentError(e))
LT.error(log, e, "Failed to initialize connection [sock=" + sock + "]\n\t" +
U.MAC_INVALID_ARG_MSG);
- else
- LT.error(log, e, "Failed to initialize connection [sock=" + sock + ']');
+ else {
+ U.error(
+ log,
+ "Failed to initialize connection (this can happen due to short time " +
+ "network problems and can be ignored if does not affect node discovery) " +
+ "[sock=" + sock + ']',
+ e);
+ }
}
onException("Caught exception on handshake [err=" + e + ", sock=" + sock + ']', e);
[42/50] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-1003' into ignite-sprint-6
Posted by vo...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-1003' into ignite-sprint-6
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/4d1fa723
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/4d1fa723
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/4d1fa723
Branch: refs/heads/ignite-gg-10411
Commit: 4d1fa7235c1381bacaaeaf458658675d2ba34923
Parents: 31cf802 b23f930
Author: sboikov <sb...@gridgain.com>
Authored: Thu Jun 18 15:15:49 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Jun 18 15:15:49 2015 +0300
----------------------------------------------------------------------
.../communication/tcp/TcpCommunicationSpi.java | 38 ++++++++++----------
.../ignite/spi/discovery/tcp/ServerImpl.java | 21 +++++++----
.../spi/discovery/tcp/TcpDiscoverySpi.java | 9 ++++-
.../tcp/internal/TcpDiscoveryNode.java | 18 ++++++++++
4 files changed, 60 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4d1fa723/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4d1fa723/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4d1fa723/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
[05/50] incubator-ignite git commit: # ignite-1020 properly skip
non-primary entries for store update , tests
Posted by vo...@apache.org.
# ignite-1020 properly skip non-primary entries for store update , tests
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/a75b8686
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/a75b8686
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/a75b8686
Branch: refs/heads/ignite-gg-10411
Commit: a75b868605f661a71ed96f17e9d36471ccbfcd13
Parents: 9a0e659
Author: sboikov <sb...@gridgain.com>
Authored: Wed Jun 17 11:25:23 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Jun 17 12:07:37 2015 +0300
----------------------------------------------------------------------
.../transactions/IgniteTxLocalAdapter.java | 12 +-
.../CacheStoreUsageMultinodeAbstractTest.java | 305 +++++++++++++++++++
...eUsageMultinodeDynamicStartAbstractTest.java | 169 ++++++++++
...oreUsageMultinodeDynamicStartAtomicTest.java | 32 ++
...heStoreUsageMultinodeDynamicStartTxTest.java | 32 ++
...reUsageMultinodeStaticStartAbstractTest.java | 158 ++++++++++
...toreUsageMultinodeStaticStartAtomicTest.java | 32 ++
...cheStoreUsageMultinodeStaticStartTxTest.java | 32 ++
.../testsuites/IgniteCacheTestSuite4.java | 4 +
9 files changed, 772 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a75b8686/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index bc6308b..7bc9042 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@ -500,12 +500,16 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
List<Object> rmvCol = null;
CacheStoreManager writeStore = null;
- boolean skipNear = near() && isWriteToStoreFromDht;
+ boolean skipNonPrimary = near() && isWriteToStoreFromDht;
for (IgniteTxEntry e : writeEntries) {
- boolean skip = (skipNear && e.cached().isNear()) ||
- e.skipStore() ||
- (e.context().store().isLocal() && !e.context().affinityNode());
+ boolean skip = e.skipStore();
+
+ if (!skip && skipNonPrimary) {
+ skip = e.cached().isNear() ||
+ e.cached().detached() ||
+ !e.context().affinity().primary(e.cached().partition(), topologyVersion()).isLocal();
+ }
if (skip)
continue;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a75b8686/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
new file mode 100644
index 0000000..79a0293
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
@@ -0,0 +1,305 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cache.*;
+import org.apache.ignite.cache.affinity.*;
+import org.apache.ignite.cache.store.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.processors.cache.store.*;
+import org.apache.ignite.internal.util.lang.*;
+import org.apache.ignite.resources.*;
+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 org.apache.ignite.transactions.*;
+import org.jetbrains.annotations.*;
+
+import javax.cache.*;
+import javax.cache.configuration.*;
+import javax.cache.integration.*;
+import java.util.*;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+import static org.apache.ignite.cache.CacheMode.*;
+import static org.apache.ignite.cache.CacheWriteSynchronizationMode.*;
+import static org.apache.ignite.internal.IgniteNodeAttributes.*;
+import static org.apache.ignite.transactions.TransactionIsolation.*;
+
+/**
+ *
+ */
+public abstract class CacheStoreUsageMultinodeAbstractTest extends GridCommonAbstractTest {
+ /** */
+ private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
+
+ /** */
+ protected boolean client;
+
+ /** */
+ protected boolean cache;
+
+ /** */
+ protected boolean cacheStore;
+
+ /** */
+ protected boolean locStore;
+
+ /** */
+ protected boolean writeBehind;
+
+ /** */
+ protected boolean nearCache;
+
+ /** */
+ protected static Map<String, List<Cache.Entry<?, ?>>> writeMap;
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ cfg.setClientMode(client);
+
+ ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
+
+ if (cache)
+ cfg.setCacheConfiguration(cacheConfiguration());
+
+ return cfg;
+ }
+
+ /**
+ * @return Cache configuration.
+ */
+ @SuppressWarnings("unchecked")
+ protected CacheConfiguration cacheConfiguration() {
+ CacheConfiguration ccfg = new CacheConfiguration();
+
+ ccfg.setCacheMode(PARTITIONED);
+ ccfg.setAtomicityMode(atomicityMode());
+ ccfg.setBackups(1);
+ ccfg.setWriteSynchronizationMode(FULL_SYNC);
+
+ if (cacheStore) {
+ if (writeBehind) {
+ ccfg.setWriteBehindEnabled(true);
+ ccfg.setWriteBehindFlushFrequency(100);
+ }
+
+ ccfg.setWriteThrough(true);
+
+ ccfg.setCacheStoreFactory(locStore ? new TestLocalStoreFactory() : new TestStoreFactory());
+ }
+
+ if (nearCache)
+ ccfg.setNearConfiguration(new NearCacheConfiguration());
+
+ return ccfg;
+ }
+
+ /**
+ * @return Cache atomicity mode.
+ */
+ protected abstract CacheAtomicityMode atomicityMode();
+
+ /** {@inheritDoc} */
+ @Override protected void beforeTest() throws Exception {
+ super.beforeTest();
+
+ writeMap = new HashMap<>();
+ }
+
+ /**
+ * @param clientStore {@code True} if store configured on client node.
+ * @throws Exception If failed.
+ */
+ protected void checkStoreUpdate(boolean clientStore) throws Exception {
+ Ignite client = grid(3);
+
+ assertTrue(client.configuration().isClientMode());
+
+ awaitPartitionMapExchange();
+
+ IgniteCache<Object, Object> cache0 = ignite(0).cache(null);
+ IgniteCache<Object, Object> cache1 = ignite(1).cache(null);
+ IgniteCache<Object, Object> clientCache = client.cache(null);
+
+ assertTrue(((IgniteCacheProxy)cache0).context().store().configured());
+ assertEquals(clientStore, ((IgniteCacheProxy) clientCache).context().store().configured());
+
+ List<TransactionConcurrency> tcList = new ArrayList<>();
+
+ tcList.add(null);
+
+ if (atomicityMode() == TRANSACTIONAL) {
+ tcList.add(TransactionConcurrency.OPTIMISTIC);
+ tcList.add(TransactionConcurrency.PESSIMISTIC);
+ }
+
+ log.info("Start test [atomicityMode=" + atomicityMode() +
+ ", locStore=" + locStore +
+ ", writeBehind=" + writeBehind +
+ ", nearCache=" + nearCache +
+ ", clientStore=" + clientStore + ']');
+
+ for (TransactionConcurrency tc : tcList) {
+ testStoreUpdate(cache0, primaryKey(cache0), tc);
+
+ testStoreUpdate(cache0, backupKey(cache0), tc);
+
+ testStoreUpdate(cache0, nearKey(cache0), tc);
+
+ testStoreUpdate(cache0, primaryKey(cache1), tc);
+
+ testStoreUpdate(clientCache, primaryKey(cache0), tc);
+
+ testStoreUpdate(clientCache, primaryKey(cache1), tc);
+ }
+ }
+
+ /**
+ * @param cache Cache.
+ * @param key Key.
+ * @param tc Transaction concurrency mode.
+ * @throws Exception If failed.
+ */
+ protected void testStoreUpdate(IgniteCache<Object, Object> cache,
+ Object key,
+ @Nullable TransactionConcurrency tc)
+ throws Exception
+ {
+ boolean storeOnPrimary = atomicityMode() == ATOMIC || locStore || writeBehind;
+
+ assertTrue(writeMap.isEmpty());
+
+ Ignite ignite = cache.unwrap(Ignite.class);
+
+ Affinity<Object> obj = ignite.affinity(cache.getName());
+
+ ClusterNode node = obj.mapKeyToNode(key);
+
+ assertNotNull(node);
+
+ String expNode = storeOnPrimary ? (String)node.attribute(ATTR_GRID_NAME) : ignite.name();
+
+ assertNotNull(expNode);
+
+ log.info("Put [node=" + ignite.name() +
+ ", key=" + key +
+ ", primary=" + node.attribute(ATTR_GRID_NAME) +
+ ", tx=" + tc +
+ ", nearCache=" + (cache.getConfiguration(CacheConfiguration.class).getNearConfiguration() != null) +
+ ", storeOnPrimary=" + storeOnPrimary + ']');
+
+ Transaction tx = tc != null ? ignite.transactions().txStart(tc, REPEATABLE_READ) : null;
+
+ cache.put(key, key);
+
+ if (tx != null)
+ tx.commit();
+
+ boolean wait = GridTestUtils.waitForCondition(new GridAbsPredicate() {
+ @Override
+ public boolean apply() {
+ return writeMap.size() > 0;
+ }
+ }, 1000);
+
+ assertTrue("Store is not updated", wait);
+
+ assertEquals("Write on wrong node: " + writeMap, 1, writeMap.size());
+
+ assertEquals(expNode, writeMap.keySet().iterator().next());
+
+ writeMap.clear();
+ }
+
+ /**
+ *
+ */
+ public static class TestStoreFactory implements Factory<CacheStore> {
+ /** {@inheritDoc} */
+ @Override public CacheStore create() {
+ return new TestStore();
+ }
+ }
+
+ /**
+ *
+ */
+ public static class TestLocalStoreFactory implements Factory<CacheStore> {
+ /** {@inheritDoc} */
+ @Override public CacheStore create() {
+ return new TestLocalStore();
+ }
+ }
+
+ /**
+ *
+ */
+ public static class TestStore extends CacheStoreAdapter<Object, Object> {
+ /** */
+ @IgniteInstanceResource
+ private Ignite ignite;
+
+ /** {@inheritDoc} */
+ @SuppressWarnings("SynchronizeOnNonFinalField")
+ @Override public void write(Cache.Entry<?, ?> entry) {
+ synchronized (writeMap) {
+ ignite.log().info("Write [node=" + ignite.name() + ", entry=" + entry + ']');
+
+ String name = ignite.name();
+
+ List<Cache.Entry<?, ?>> list = writeMap.get(name);
+
+ if (list == null) {
+ list = new ArrayList<>();
+
+ writeMap.put(name, list);
+ }
+
+ list.add(entry);
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override public Object load(Object key) throws CacheLoaderException {
+ throw new UnsupportedOperationException();
+ }
+
+ /** {@inheritDoc} */
+ @Override public void delete(Object key) {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ /**
+ *
+ */
+ @CacheLocalStore
+ public static class TestLocalStore extends TestStore {
+ /** {@inheritDoc} */
+ @Override public void delete(Object key) {
+ // No-op.
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a75b8686/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartAbstractTest.java
new file mode 100644
index 0000000..82667d9
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartAbstractTest.java
@@ -0,0 +1,169 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.configuration.*;
+
+/**
+ *
+ */
+public abstract class CacheStoreUsageMultinodeDynamicStartAbstractTest extends CacheStoreUsageMultinodeAbstractTest {
+ /** {@inheritDoc} */
+ @Override protected void beforeTestsStarted() throws Exception {
+ cache = false;
+
+ startGridsMultiThreaded(3);
+
+ client = true;
+
+ startGrid(3);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTestsStopped() throws Exception {
+ super.afterTestsStopped();
+
+ stopAllGrids();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testDynamicStart() throws Exception {
+ checkStoreWithDynamicStart(false);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testDynamicStartNearEnabled() throws Exception {
+ nearCache = true;
+
+ checkStoreWithDynamicStart(false);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testDynamicFromClientStart() throws Exception {
+ checkStoreWithDynamicStart(true);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testDynamicStartFromClientNearEnabled() throws Exception {
+ nearCache = true;
+
+ checkStoreWithDynamicStart(true);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testDynamicStartLocalStore() throws Exception {
+ locStore = true;
+
+ checkStoreWithDynamicStart(false);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testDynamicStartFromClientLocalStore() throws Exception {
+ locStore = true;
+
+ checkStoreWithDynamicStart(true);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testDynamicStartLocalStoreNearEnabled() throws Exception {
+ locStore = true;
+
+ nearCache = true;
+
+ checkStoreWithDynamicStart(false);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testDynamicStartWriteBehindStore() throws Exception {
+ writeBehind = true;
+
+ checkStoreWithDynamicStart(false);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testDynamicStartFromClientWriteBehindStore() throws Exception {
+ writeBehind = true;
+
+ checkStoreWithDynamicStart(true);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testDynamicStartWriteBehindStoreNearEnabled() throws Exception {
+ writeBehind = true;
+
+ nearCache = true;
+
+ checkStoreWithDynamicStart(false);
+ }
+
+ /**
+ * @param clientStart {@code True} if start cache from client node.
+ * @throws Exception If failed.
+ */
+ private void checkStoreWithDynamicStart(boolean clientStart) throws Exception {
+ cacheStore = true;
+
+ CacheConfiguration ccfg = cacheConfiguration();
+
+ assertNotNull(ccfg.getCacheStoreFactory());
+
+ Ignite srv = ignite(0);
+
+ Ignite client = ignite(3);
+
+ Ignite node = clientStart ? client : srv;
+
+ IgniteCache cache = nearCache ? node.createCache(ccfg, new NearCacheConfiguration()) : node.createCache(ccfg);
+
+ assertNotNull(cache);
+
+ try {
+ if (nearCache)
+ client.createNearCache(null, new NearCacheConfiguration<>());
+
+ checkStoreUpdate(true);
+ }
+ finally {
+ cache = srv.cache(null);
+
+ if (cache != null)
+ cache.close();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a75b8686/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartAtomicTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartAtomicTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartAtomicTest.java
new file mode 100644
index 0000000..884dedd
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartAtomicTest.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.cache.*;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+
+/**
+ *
+ */
+public class CacheStoreUsageMultinodeDynamicStartAtomicTest extends CacheStoreUsageMultinodeDynamicStartAbstractTest {
+ /** {@inheritDoc} */
+ @Override protected CacheAtomicityMode atomicityMode() {
+ return ATOMIC;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a75b8686/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartTxTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartTxTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartTxTest.java
new file mode 100644
index 0000000..825b450
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartTxTest.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.cache.*;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+
+/**
+ *
+ */
+public class CacheStoreUsageMultinodeDynamicStartTxTest extends CacheStoreUsageMultinodeDynamicStartAbstractTest {
+ /** {@inheritDoc} */
+ @Override protected CacheAtomicityMode atomicityMode() {
+ return TRANSACTIONAL;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a75b8686/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartAbstractTest.java
new file mode 100644
index 0000000..c00d003
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartAbstractTest.java
@@ -0,0 +1,158 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.transactions.*;
+
+import java.util.*;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+
+/**
+ *
+ */
+public abstract class CacheStoreUsageMultinodeStaticStartAbstractTest extends CacheStoreUsageMultinodeAbstractTest {
+ /** {@inheritDoc} */
+ @Override protected void afterTest() throws Exception {
+ super.afterTest();
+
+ stopAllGrids();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testStaticConfiguration() throws Exception {
+ checkStoreUpdateStaticConfig(true);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testStaticConfigurationNearEnabled() throws Exception {
+ nearCache = true;
+
+ checkStoreUpdateStaticConfig(true);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testStaticConfigurationLocalStore() throws Exception {
+ locStore = true;
+
+ checkStoreUpdateStaticConfig(true);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testStaticConfigurationLocalStoreNearEnabled() throws Exception {
+ locStore = true;
+
+ nearCache = true;
+
+ checkStoreUpdateStaticConfig(true);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testStaticConfigurationTxLocalStoreNoClientStore() throws Exception {
+ locStore = true;
+
+ checkStoreUpdateStaticConfig(false);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testStaticConfigurationTxLocalStoreNoClientStoreNearEnabled() throws Exception {
+ locStore = true;
+
+ nearCache = true;
+
+ checkStoreUpdateStaticConfig(false);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testStaticConfigurationTxWriteBehindStore() throws Exception {
+ writeBehind = true;
+
+ checkStoreUpdateStaticConfig(true);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testStaticConfigurationTxWriteBehindStoreNearEnabled() throws Exception {
+ writeBehind = true;
+
+ nearCache = true;
+
+ checkStoreUpdateStaticConfig(true);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testStaticConfigurationTxWriteBehindStoreNoClientStore() throws Exception {
+ writeBehind = true;
+
+ checkStoreUpdateStaticConfig(false);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testStaticConfigurationTxWriteBehindStoreNoClientStoreNearEnabled() throws Exception {
+ writeBehind = true;
+
+ nearCache = true;
+
+ checkStoreUpdateStaticConfig(false);
+ }
+
+ /**
+ * @param clientStore {@code True} if store should be configured on client node.
+ * @throws Exception If failed.
+ */
+ private void checkStoreUpdateStaticConfig(boolean clientStore) throws Exception {
+ try {
+ cache = true;
+
+ cacheStore = true;
+
+ startGridsMultiThreaded(3);
+
+ client = true;
+
+ cacheStore = clientStore;
+
+ startGrid(3);
+
+ checkStoreUpdate(clientStore);
+ }
+ finally {
+ stopAllGrids();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a75b8686/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartAtomicTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartAtomicTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartAtomicTest.java
new file mode 100644
index 0000000..6908aaa
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartAtomicTest.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.cache.*;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+
+/**
+ *
+ */
+public class CacheStoreUsageMultinodeStaticStartAtomicTest extends CacheStoreUsageMultinodeStaticStartAbstractTest {
+ /** {@inheritDoc} */
+ @Override protected CacheAtomicityMode atomicityMode() {
+ return ATOMIC;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a75b8686/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartTxTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartTxTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartTxTest.java
new file mode 100644
index 0000000..b42fd44
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartTxTest.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.cache.*;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+
+/**
+ *
+ */
+public class CacheStoreUsageMultinodeStaticStartTxTest extends CacheStoreUsageMultinodeStaticStartAbstractTest {
+ /** {@inheritDoc} */
+ @Override protected CacheAtomicityMode atomicityMode() {
+ return TRANSACTIONAL;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a75b8686/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
index d155330..6295a4d 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
@@ -135,6 +135,10 @@ public class IgniteCacheTestSuite4 extends TestSuite {
suite.addTestSuite(CacheJdbcStoreSessionListenerSelfTest.class);
suite.addTestSuite(CacheClientStoreSelfTest.class);
+ suite.addTestSuite(CacheStoreUsageMultinodeStaticStartAtomicTest.class);
+ suite.addTestSuite(CacheStoreUsageMultinodeStaticStartTxTest.class);
+ suite.addTestSuite(CacheStoreUsageMultinodeDynamicStartAtomicTest.class);
+ suite.addTestSuite(CacheStoreUsageMultinodeDynamicStartTxTest.class);
suite.addTestSuite(IgniteStartCacheInTransactionSelfTest.class);
suite.addTestSuite(IgniteStartCacheInTransactionAtomicSelfTest.class);
[33/50] incubator-ignite git commit: sprint-6 - ignite-indexing
module check
Posted by vo...@apache.org.
sprint-6 - ignite-indexing module check
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c1eee186
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c1eee186
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c1eee186
Branch: refs/heads/ignite-gg-10411
Commit: c1eee18615be56c7bb60d34614451612710b6cef
Parents: d874b00
Author: S.Vladykin <sv...@gridgain.com>
Authored: Thu Jun 18 13:39:19 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Thu Jun 18 13:39:19 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/cache/IgniteCacheProxy.java | 5 +++++
.../ignite/internal/processors/query/GridQueryProcessor.java | 7 +++++++
2 files changed, 12 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c1eee186/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
index 0d70792..48fd259 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
@@ -556,6 +556,11 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V
!(qry instanceof ContinuousQuery))
throw new CacheException("Indexing is disabled for cache: " + ctx.cache().name() +
". Use setIndexedTypes or setTypeMetadata methods on CacheConfiguration to enable.");
+
+ if (!ctx.kernalContext().query().moduleEnabled() &&
+ (qry instanceof SqlQuery || qry instanceof SqlFieldsQuery || qry instanceof TextQuery))
+ throw new CacheException("Failed to execute query. Add module 'ignite-indexing' to the classpath " +
+ "of all Ignite nodes.");
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c1eee186/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index 4f2486b..e080c6d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@ -107,6 +107,13 @@ public class GridQueryProcessor extends GridProcessorAdapter {
}
/**
+ * @return {@code true} If indexing module is in classpath and successfully initialized.
+ */
+ public boolean moduleEnabled() {
+ return idx != null;
+ }
+
+ /**
* @param ccfg Cache configuration.
* @throws IgniteCheckedException If failed.
*/
[08/50] incubator-ignite git commit: ignite-484-1 - minor
Posted by vo...@apache.org.
ignite-484-1 - minor
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c1fc7b5d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c1fc7b5d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c1fc7b5d
Branch: refs/heads/ignite-gg-10411
Commit: c1fc7b5d6d7deb895bdf13d3b7e199161d494277
Parents: ca253a8
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jun 17 13:44:36 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jun 17 13:44:36 2015 +0300
----------------------------------------------------------------------
.../distributed/dht/GridDhtLocalPartition.java | 8 +++-----
.../dht/GridDhtPartitionsReservation.java | 20 ++++++++++++++------
.../IgniteCacheQueryNodeRestartSelfTest2.java | 8 ++++++--
3 files changed, 23 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c1fc7b5d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
index 5938fc8..1392f5e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
@@ -505,14 +505,12 @@ public class GridDhtLocalPartition implements Comparable<GridDhtLocalPartition>,
* @return {@code true} If there is a group reservation.
*/
private boolean groupReserved() {
- boolean reserved = false;
-
for (GridDhtPartitionsReservation reservation : reservations) {
- if (!reservation.canEvict())
- reserved = true; // Calling all the reservations to allow them unregister themselves.
+ if (!reservation.invalidate())
+ return true; // Failed to invalidate reservation -> we are reserved.
}
- return reserved;
+ return false;
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c1fc7b5d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionsReservation.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionsReservation.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionsReservation.java
index a32946a..aced999 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionsReservation.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionsReservation.java
@@ -34,6 +34,13 @@ public class GridDhtPartitionsReservation implements GridReservable {
private static final GridDhtLocalPartition[] EMPTY = {};
/** */
+ private static final CI1<GridDhtPartitionsReservation> NO_OP = new CI1<GridDhtPartitionsReservation>() {
+ @Override public void apply(GridDhtPartitionsReservation gridDhtPartitionsReservation) {
+ throw new IllegalStateException();
+ }
+ };
+
+ /** */
private final Object appKey;
/** */
@@ -154,7 +161,7 @@ public class GridDhtPartitionsReservation implements GridReservable {
for (;;) {
int r = reservations.get();
- if (r == -1) // Invalidated by successful canEvict call.
+ if (r == -1) // Invalidated.
return false;
assert r >= 0 : r;
@@ -224,20 +231,21 @@ public class GridDhtPartitionsReservation implements GridReservable {
// Unpublish.
CI1<GridDhtPartitionsReservation> u = unpublish.get();
- if (u != null && unpublish.compareAndSet(u, null))
+ if (u != null && u != NO_OP && unpublish.compareAndSet(u, NO_OP))
u.apply(this);
}
/**
* Must be checked in {@link GridDhtLocalPartition#tryEvict(boolean)}.
- * If returns {@code true} then probably partition will be evicted (or at least cleared),
- * so this reservation object becomes invalid and must be dropped from the partition.
+ * If returns {@code true} this reservation object becomes invalid and partitions
+ * can be evicted or at least cleared.
* Also this means that after returning {@code true} here method {@link #reserve()} can not
* return {@code true} anymore.
*
- * @return {@code true} If this reservation is NOT reserved and partition CAN be evicted.
+ * @return {@code true} If this reservation was successfully invalidated because it was not
+ * reserved and partitions can be evicted.
*/
- public boolean canEvict() {
+ public boolean invalidate() {
assert parts.get() != null : "all parts must be reserved before registration";
int r = reservations.get();
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c1fc7b5d/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java
index d440b13..527dfea 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java
@@ -177,7 +177,7 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest
* @throws Exception If failed.
*/
public void testRestarts() throws Exception {
- int duration = 150 * 1000;
+ int duration = 90 * 1000;
int qryThreadNum = 4;
int restartThreadsNum = 2; // 4 + 2 = 6 nodes
final int nodeLifeTime = 2 * 1000;
@@ -197,6 +197,9 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest
final List<List<?>> rRes = grid(0).cache("co").query(new SqlFieldsQuery(REPLICATED_QRY)).getAll();
+ assertFalse(pRes.isEmpty());
+ assertFalse(rRes.isEmpty());
+
final AtomicInteger qryCnt = new AtomicInteger();
final AtomicBoolean qrysDone = new AtomicBoolean();
@@ -235,7 +238,8 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest
if (!(th instanceof CacheException))
continue;
- if (th.getMessage().startsWith("Failed to fetch data from node:")) {
+ if (th.getMessage() != null &&
+ th.getMessage().startsWith("Failed to fetch data from node:")) {
failedOnRemoteFetch = true;
break;
[10/50] incubator-ignite git commit: # i-484-1 review
Posted by vo...@apache.org.
# i-484-1 review
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/642f1c7a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/642f1c7a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/642f1c7a
Branch: refs/heads/ignite-gg-10411
Commit: 642f1c7a2786fd95a43d97cc5b0d955ad890f0c4
Parents: 0b8587b
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Wed Jun 17 15:14:16 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Wed Jun 17 15:14:16 2015 +0300
----------------------------------------------------------------------
.../dht/GridDhtPartitionsReservation.java | 3 +-
.../cache/query/GridCacheTwoStepQuery.java | 10 +++----
.../IgniteCacheQueryNodeRestartSelfTest.java | 3 +-
.../IgniteCacheQueryNodeRestartSelfTest2.java | 30 ++++++++++++++------
4 files changed, 30 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/642f1c7a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionsReservation.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionsReservation.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionsReservation.java
index aced999..207c7f5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionsReservation.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionsReservation.java
@@ -218,7 +218,8 @@ public class GridDhtPartitionsReservation implements GridReservable {
// Unregister from partitions.
if (!F.isEmpty(arr) && parts.compareAndSet(arr, EMPTY)) {
- // Reverse order makes sure that addReservation on the same topVer reservation will fail on the first partition.
+ // Reverse order makes sure that addReservation on the same topVer
+ // reservation will fail on the first partition.
for (int i = arr.length - 1; i >= 0; i--) {
GridDhtLocalPartition part = arr[i];
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/642f1c7a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheTwoStepQuery.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheTwoStepQuery.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheTwoStepQuery.java
index 1aa5890..1dacd10 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheTwoStepQuery.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheTwoStepQuery.java
@@ -117,11 +117,6 @@ public class GridCacheTwoStepQuery {
return mapQrys.values();
}
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(GridCacheTwoStepQuery.class, this);
- }
-
/**
* @return Spaces.
*/
@@ -135,4 +130,9 @@ public class GridCacheTwoStepQuery {
public void spaces(Set<String> spaces) {
this.spaces = spaces;
}
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(GridCacheTwoStepQuery.class, this);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/642f1c7a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest.java
index d729e4a..5c87603 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest.java
@@ -39,6 +39,7 @@ import java.util.concurrent.atomic.*;
import static org.apache.ignite.cache.CacheAtomicityMode.*;
import static org.apache.ignite.cache.CacheMode.*;
+import static org.apache.ignite.cache.CacheRebalanceMode.*;
/**
* Test for distributed queries with node restarts.
@@ -84,7 +85,7 @@ public class IgniteCacheQueryNodeRestartSelfTest extends GridCacheAbstractSelfTe
cc.setBackups(1);
cc.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
cc.setAtomicityMode(TRANSACTIONAL);
- cc.setRebalanceMode(CacheRebalanceMode.SYNC);
+ cc.setRebalanceMode(SYNC);
cc.setAffinity(new RendezvousAffinityFunction(false, 15));
cc.setIndexedTypes(
Integer.class, Integer.class
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/642f1c7a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java
index 527dfea..93831cc 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java
@@ -18,7 +18,6 @@
package org.apache.ignite.internal.processors.cache.distributed.near;
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.cache.query.*;
@@ -40,6 +39,8 @@ import java.util.concurrent.atomic.*;
import static org.apache.ignite.cache.CacheAtomicityMode.*;
import static org.apache.ignite.cache.CacheMode.*;
+import static org.apache.ignite.cache.CacheRebalanceMode.*;
+import static org.apache.ignite.cache.CacheWriteSynchronizationMode.*;
/**
* Test for distributed queries with node restarts.
@@ -95,9 +96,9 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest
cc.setName(name);
cc.setCacheMode(PARTITIONED);
cc.setBackups(2);
- cc.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
+ cc.setWriteSynchronizationMode(FULL_SYNC);
cc.setAtomicityMode(TRANSACTIONAL);
- cc.setRebalanceMode(CacheRebalanceMode.SYNC);
+ cc.setRebalanceMode(SYNC);
cc.setAffinity(new RendezvousAffinityFunction(false, 60));
if (name.equals("pe")) {
@@ -119,9 +120,9 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest
cc.setName(name);
cc.setCacheMode(REPLICATED);
- cc.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
+ cc.setWriteSynchronizationMode(FULL_SYNC);
cc.setAtomicityMode(TRANSACTIONAL);
- cc.setRebalanceMode(CacheRebalanceMode.SYNC);
+ cc.setRebalanceMode(SYNC);
cc.setAffinity(new RendezvousAffinityFunction(false, 50));
if (name.equals("co")) {
@@ -143,6 +144,9 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest
return c;
}
+ /**
+ *
+ */
private void fillCaches() {
IgniteCache<Integer, Company> co = grid(0).cache("co");
@@ -172,8 +176,6 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest
}
/**
- * JUnit.
- *
* @throws Exception If failed.
*/
public void testRestarts() throws Exception {
@@ -323,7 +325,9 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest
info("Queries stopped.");
}
- // Partitioned
+ /**
+ *
+ */
private static class Person implements Serializable {
@QuerySqlField(index = true)
int id;
@@ -333,6 +337,9 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest
}
}
+ /**
+ *
+ */
private static class Purchase implements Serializable {
@QuerySqlField(index = true)
int personId;
@@ -346,7 +353,9 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest
}
}
- // Replicated
+ /**
+ *
+ */
private static class Company implements Serializable {
@QuerySqlField(index = true)
int id;
@@ -356,6 +365,9 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest
}
}
+ /**
+ *
+ */
private static class Product implements Serializable {
@QuerySqlField(index = true)
int id;
[41/50] incubator-ignite git commit: # disco spi usability - doc and
warning messages on failure detection speed up
Posted by vo...@apache.org.
# disco spi usability - doc and warning messages on failure detection speed up
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/fc81bcfd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/fc81bcfd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/fc81bcfd
Branch: refs/heads/ignite-gg-10411
Commit: fc81bcfd0a4fd20e4322a060d7745754f14767e1
Parents: 31cf802
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Thu Jun 18 15:08:33 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Thu Jun 18 15:08:33 2015 +0300
----------------------------------------------------------------------
.../java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java | 4 ++++
.../org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java | 7 ++++---
2 files changed, 8 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fc81bcfd/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index e9a949a..f7b6de9 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -2320,6 +2320,10 @@ class ServerImpl extends TcpDiscoveryImpl {
for (TcpDiscoveryNode n : failedNodes)
msgWorker.addMessage(new TcpDiscoveryNodeFailedMessage(locNodeId, n.id(), n.internalOrder()));
+
+ LT.warn(log, null, "Local node has detected failed nodes and started cluster-wide procedure. " +
+ "To speed up failure detection please see 'Failure Detection' section under javadoc" +
+ "for 'TcpDiscoverySpi'");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fc81bcfd/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 9a26867..d7c33a5 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -64,9 +64,9 @@ import java.util.concurrent.atomic.*;
* {@link TcpDiscoveryIpFinder} about self start (stops when send succeeds)
* and then this info goes to coordinator. When coordinator processes join request
* and issues node added messages and all other nodes then receive info about new node.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Important Notice</h2>
- * Configuration defaults are chosen to make possible for discovery SPI to reliably work on
+ * <h1 class="header">Failure Detection</h1>
+ * Configuration defaults (see Configuration section below for details)
+ * are chosen to make possible for discovery SPI work reliably on
* most of hardware and virtual deployments, but this has made failure detection time worse.
* <p>
* For stable low-latency networks the following more aggressive settings are recommended
@@ -76,6 +76,7 @@ import java.util.concurrent.atomic.*;
* <li>Socket timeout (see {@link #setSocketTimeout(long)}) - 200ms</li>
* <li>Message acknowledgement timeout (see {@link #setAckTimeout(long)}) - 50ms</li>
* </ul>
+ * <h1 class="header">Configuration</h1>
* <h2 class="header">Mandatory</h2>
* There are no mandatory configuration parameters.
* <h2 class="header">Optional</h2>
[25/50] incubator-ignite git commit: Fixed test.
Posted by vo...@apache.org.
Fixed test.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/fa6615a8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/fa6615a8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/fa6615a8
Branch: refs/heads/ignite-gg-10411
Commit: fa6615a8665fb8296c63be3e719d6d186293ea0c
Parents: 5218210
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Thu Jun 18 09:44:45 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Thu Jun 18 09:44:45 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/testframework/junits/GridTestKernalContext.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fa6615a8/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestKernalContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestKernalContext.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestKernalContext.java
index 37948d9..24502da 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestKernalContext.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestKernalContext.java
@@ -46,7 +46,7 @@ public class GridTestKernalContext extends GridKernalContextImpl {
null,
null,
null,
- null);
+ U.allPluginProviders());
GridTestUtils.setFieldValue(grid(), "cfg", config());
[32/50] incubator-ignite git commit: Merge branch 'ignite-sprint-6'
into ignite-sprint-7
Posted by vo...@apache.org.
Merge branch 'ignite-sprint-6' into ignite-sprint-7
Conflicts:
examples/pom.xml
modules/aop/pom.xml
modules/aws/pom.xml
modules/clients/pom.xml
modules/cloud/pom.xml
modules/codegen/pom.xml
modules/core/pom.xml
modules/core/src/main/resources/ignite.properties
modules/extdata/p2p/pom.xml
modules/extdata/uri/pom.xml
modules/gce/pom.xml
modules/geospatial/pom.xml
modules/hadoop/pom.xml
modules/hibernate/pom.xml
modules/indexing/pom.xml
modules/jcl/pom.xml
modules/jta/pom.xml
modules/log4j/pom.xml
modules/mesos/pom.xml
modules/rest-http/pom.xml
modules/scalar-2.10/pom.xml
modules/scalar/pom.xml
modules/schedule/pom.xml
modules/schema-import/pom.xml
modules/slf4j/pom.xml
modules/spark-2.10/pom.xml
modules/spark/pom.xml
modules/spring/pom.xml
modules/ssh/pom.xml
modules/tools/pom.xml
modules/urideploy/pom.xml
modules/visor-console-2.10/pom.xml
modules/visor-console/pom.xml
modules/visor-plugins/pom.xml
modules/web/pom.xml
modules/yardstick/pom.xml
pom.xml
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c6a0f24a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c6a0f24a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c6a0f24a
Branch: refs/heads/ignite-gg-10411
Commit: c6a0f24adf62c58eb0b739183bbd8d572827ad14
Parents: 489ab0f d874b00
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Jun 18 11:21:44 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Jun 18 11:21:44 2015 +0300
----------------------------------------------------------------------
.../s3/S3CheckpointManagerSelfTest.java | 2 +-
.../checkpoint/s3/S3CheckpointSpiSelfTest.java | 4 +-
.../s3/S3CheckpointSpiStartStopSelfTest.java | 2 +-
.../s3/S3SessionCheckpointSelfTest.java | 2 +-
.../s3/TcpDiscoveryS3IpFinderSelfTest.java | 2 +-
.../client/GridClientConfiguration.java | 4 +-
.../affinity/AffinityTopologyVersion.java | 7 -
.../processors/cache/GridCacheAdapter.java | 4 +
.../processors/cache/IgniteCacheProxy.java | 7 +
.../distributed/dht/GridDhtLocalPartition.java | 56 +-
.../dht/GridDhtPartitionTopologyImpl.java | 4 +-
.../dht/GridDhtPartitionsReservation.java | 292 +++++++++
.../dht/GridDhtTransactionalCacheAdapter.java | 2 +-
.../cache/distributed/dht/GridReservable.java | 35 +
.../dht/preloader/GridDhtPartitionMap.java | 26 +-
.../cache/query/GridCacheQueryManager.java | 33 -
.../cache/query/GridCacheTwoStepQuery.java | 22 +-
.../cache/transactions/IgniteTxHandler.java | 2 +-
.../transactions/IgniteTxLocalAdapter.java | 12 +-
.../dr/IgniteDrDataStreamerCacheUpdater.java | 7 +-
.../processors/query/GridQueryIndexing.java | 14 +-
.../processors/query/GridQueryProcessor.java | 14 +-
.../messages/GridQueryNextPageResponse.java | 34 +-
.../h2/twostep/messages/GridQueryRequest.java | 111 +++-
.../apache/ignite/internal/util/GridDebug.java | 19 +
.../CacheStoreUsageMultinodeAbstractTest.java | 305 +++++++++
...eUsageMultinodeDynamicStartAbstractTest.java | 169 +++++
...oreUsageMultinodeDynamicStartAtomicTest.java | 32 +
...heStoreUsageMultinodeDynamicStartTxTest.java | 32 +
...reUsageMultinodeStaticStartAbstractTest.java | 158 +++++
...toreUsageMultinodeStaticStartAtomicTest.java | 32 +
...cheStoreUsageMultinodeStaticStartTxTest.java | 32 +
.../cache/GridCacheAbstractFullApiSelfTest.java | 24 +-
.../IgniteCacheAbstractStopBusySelfTest.java | 30 +-
.../IgniteCacheAtomicStopBusySelfTest.java | 8 +-
.../IgniteCacheP2pUnmarshallingTxErrorTest.java | 19 +-
...gniteCacheTransactionalStopBusySelfTest.java | 8 +-
.../junits/GridTestKernalContext.java | 2 +-
.../junits/common/GridCommonAbstractTest.java | 8 +-
.../testsuites/IgniteCacheTestSuite4.java | 4 +
.../processors/query/h2/IgniteH2Indexing.java | 79 ++-
.../query/h2/sql/GridSqlQuerySplitter.java | 49 +-
.../query/h2/twostep/GridMapQueryExecutor.java | 332 +++++++---
.../query/h2/twostep/GridMergeIndex.java | 17 +-
.../h2/twostep/GridMergeIndexUnsorted.java | 7 +-
.../h2/twostep/GridReduceQueryExecutor.java | 650 ++++++++++++++++---
.../query/h2/twostep/GridResultPage.java | 21 +-
.../cache/GridCacheCrossCacheQuerySelfTest.java | 3 +-
.../IgniteCacheQueryMultiThreadedSelfTest.java | 1 -
...lientQueryReplicatedNodeRestartSelfTest.java | 419 ++++++++++++
.../IgniteCacheQueryNodeRestartSelfTest.java | 36 +-
.../IgniteCacheQueryNodeRestartSelfTest2.java | 383 +++++++++++
.../IgniteCacheQuerySelfTestSuite.java | 2 +
53 files changed, 3238 insertions(+), 341 deletions(-)
----------------------------------------------------------------------
[29/50] incubator-ignite git commit: #Fixed aws tests. (Changed
bucket name)
Posted by vo...@apache.org.
#Fixed aws tests. (Changed bucket name)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/45939ace
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/45939ace
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/45939ace
Branch: refs/heads/ignite-gg-10411
Commit: 45939ace51cd081ac1c755ca0b6076a22f00cfb5
Parents: de53189
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Thu Jun 18 10:30:33 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Thu Jun 18 10:31:31 2015 +0300
----------------------------------------------------------------------
.../ignite/spi/checkpoint/s3/S3CheckpointManagerSelfTest.java | 2 +-
.../apache/ignite/spi/checkpoint/s3/S3CheckpointSpiSelfTest.java | 4 ++--
.../spi/checkpoint/s3/S3CheckpointSpiStartStopSelfTest.java | 2 +-
.../ignite/spi/checkpoint/s3/S3SessionCheckpointSelfTest.java | 2 +-
.../tcp/ipfinder/s3/TcpDiscoveryS3IpFinderSelfTest.java | 2 +-
5 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/45939ace/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointManagerSelfTest.java b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointManagerSelfTest.java
index a354e67..b01ba81 100644
--- a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointManagerSelfTest.java
+++ b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointManagerSelfTest.java
@@ -39,7 +39,7 @@ public class S3CheckpointManagerSelfTest extends GridCheckpointManagerAbstractSe
spi.setAwsCredentials(cred);
- spi.setBucketNameSuffix("test-bucket");
+ spi.setBucketNameSuffix("unit-test-bucket");
cfg.setCheckpointSpi(spi);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/45939ace/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiSelfTest.java b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiSelfTest.java
index 5cf0f2e..5894678 100644
--- a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiSelfTest.java
+++ b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiSelfTest.java
@@ -48,7 +48,7 @@ public class S3CheckpointSpiSelfTest extends GridSpiAbstractTest<S3CheckpointSpi
spi.setAwsCredentials(cred);
- spi.setBucketNameSuffix("test-bucket");
+ spi.setBucketNameSuffix("unit-test-bucket");
super.spiConfigure(spi);
}
@@ -62,7 +62,7 @@ public class S3CheckpointSpiSelfTest extends GridSpiAbstractTest<S3CheckpointSpi
AmazonS3 s3 = new AmazonS3Client(cred);
- String bucketName = S3CheckpointSpi.BUCKET_NAME_PREFIX + "test-bucket";
+ String bucketName = S3CheckpointSpi.BUCKET_NAME_PREFIX + "unit-test-bucket";
try {
ObjectListing list = s3.listObjects(bucketName);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/45939ace/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiStartStopSelfTest.java b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiStartStopSelfTest.java
index 7de2124..34f25ad 100644
--- a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiStartStopSelfTest.java
+++ b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiStartStopSelfTest.java
@@ -34,7 +34,7 @@ public class S3CheckpointSpiStartStopSelfTest extends GridSpiStartStopAbstractTe
spi.setAwsCredentials(cred);
- spi.setBucketNameSuffix("test-bucket");
+ spi.setBucketNameSuffix("unit-test-bucket");
super.spiConfigure(spi);
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/45939ace/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3SessionCheckpointSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3SessionCheckpointSelfTest.java b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3SessionCheckpointSelfTest.java
index 56f39de..c683cb3 100644
--- a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3SessionCheckpointSelfTest.java
+++ b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3SessionCheckpointSelfTest.java
@@ -39,7 +39,7 @@ public class S3SessionCheckpointSelfTest extends GridSessionCheckpointAbstractSe
spi.setAwsCredentials(cred);
- spi.setBucketNameSuffix("test-bucket");
+ spi.setBucketNameSuffix("unit-test-bucket");
cfg.setCheckpointSpi(spi);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/45939ace/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/TcpDiscoveryS3IpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/TcpDiscoveryS3IpFinderSelfTest.java b/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/TcpDiscoveryS3IpFinderSelfTest.java
index 709145b..8a7b528 100644
--- a/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/TcpDiscoveryS3IpFinderSelfTest.java
+++ b/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/TcpDiscoveryS3IpFinderSelfTest.java
@@ -51,7 +51,7 @@ public class TcpDiscoveryS3IpFinderSelfTest
IgniteS3TestSuite.getSecretKey()));
// Bucket name should be unique for the host to parallel test run on one bucket.
- finder.setBucketName("ip-finder-test-bucket-" + InetAddress.getLocalHost().getAddress()[3]);
+ finder.setBucketName("ip-finder-unit-test-bucket-" + InetAddress.getLocalHost().getAddress()[3]);
for (int i = 0; i < 5; i++) {
Collection<InetSocketAddress> addrs = finder.getRegisteredAddresses();
[43/50] incubator-ignite git commit: Fixed test.
Posted by vo...@apache.org.
Fixed test.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/4f3292d5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/4f3292d5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/4f3292d5
Branch: refs/heads/ignite-gg-10411
Commit: 4f3292d5d8b29c04fcc1bf1fa9b88e5f19ceddfe
Parents: d874b00
Author: nikolay tikhonov <nt...@gridgain.com>
Authored: Thu Jun 18 15:19:03 2015 +0300
Committer: nikolay tikhonov <nt...@gridgain.com>
Committed: Thu Jun 18 15:19:03 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/GridSelfTest.java | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f3292d5/modules/core/src/test/java/org/apache/ignite/internal/GridSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridSelfTest.java
index eccae34..2de04b0 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/GridSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/GridSelfTest.java
@@ -112,7 +112,9 @@ public class GridSelfTest extends GridProjectionAbstractTest {
*/
@SuppressWarnings({"TooBroadScope"})
public void testAsyncListen() throws Exception {
- final String msg = "HELLO!";
+ final String hello = "HELLO!";
+
+ final String bye = "BYE!";
final Ignite g = grid(0);
@@ -120,10 +122,12 @@ public class GridSelfTest extends GridProjectionAbstractTest {
g.message().remoteListen(null, new MessagingListenActor<String>() {
@Override protected void receive(UUID nodeId, String rcvMsg) throws Throwable {
- assertEquals(locNodeId, nodeId);
- assertEquals(msg, rcvMsg);
+ if (hello.equals(rcvMsg)) {
+ assertEquals(locNodeId, nodeId);
+ assertEquals(hello, rcvMsg);
- stop(rcvMsg);
+ stop(bye);
+ }
}
});
@@ -131,22 +135,22 @@ public class GridSelfTest extends GridProjectionAbstractTest {
g.message().localListen(null, new P2<UUID, String>() {
@Override public boolean apply(UUID nodeId, String msg) {
- if (!locNodeId.equals(nodeId))
+ if (msg.equals(bye))
cnt.incrementAndGet();
return true;
}
});
- g.message().send(null, msg);
+ g.message().send(null, hello);
GridTestUtils.waitForCondition(new GridAbsPredicate() {
@Override public boolean apply() {
- return cnt.get() == g.cluster().forRemotes().nodes().size();
+ return cnt.get() == g.cluster().nodes().size();
}
}, 5000);
- assertEquals(cnt.get(), g.cluster().forRemotes().nodes().size());
+ assertEquals(cnt.get(), g.cluster().nodes().size());
}
/**
[35/50] incubator-ignite git commit: Merge remote-tracking branch
'origin/ignite-sprint-6' into ignite-sprint-6
Posted by vo...@apache.org.
Merge remote-tracking branch 'origin/ignite-sprint-6' into ignite-sprint-6
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/b23ea747
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/b23ea747
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/b23ea747
Branch: refs/heads/ignite-gg-10411
Commit: b23ea747d9cf351f607d60f520781f5d46e98715
Parents: 08d134d c1eee18
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Thu Jun 18 13:47:19 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Thu Jun 18 13:47:19 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/cache/IgniteCacheProxy.java | 5 +++++
.../ignite/internal/processors/query/GridQueryProcessor.java | 7 +++++++
2 files changed, 12 insertions(+)
----------------------------------------------------------------------
[16/50] incubator-ignite git commit: ignite-484-1 - replicated client
cache test added
Posted by vo...@apache.org.
ignite-484-1 - replicated client cache test added
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/10febf28
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/10febf28
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/10febf28
Branch: refs/heads/ignite-gg-10411
Commit: 10febf28fdf3966ffcb369c5725792b604be6c18
Parents: 1fe215e
Author: S.Vladykin <sv...@gridgain.com>
Authored: Wed Jun 17 17:11:00 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Wed Jun 17 17:11:00 2015 +0300
----------------------------------------------------------------------
...lientQueryReplicatedNodeRestartSelfTest.java | 381 +++++++++++++++++++
.../IgniteCacheQuerySelfTestSuite.java | 1 +
2 files changed, 382 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/10febf28/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java
new file mode 100644
index 0000000..23f44c0
--- /dev/null
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java
@@ -0,0 +1,381 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed.near;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cache.affinity.*;
+import org.apache.ignite.cache.affinity.rendezvous.*;
+import org.apache.ignite.cache.query.*;
+import org.apache.ignite.cache.query.annotations.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.util.*;
+import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import javax.cache.*;
+import java.io.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+import static org.apache.ignite.cache.CacheMode.*;
+import static org.apache.ignite.cache.CacheRebalanceMode.*;
+import static org.apache.ignite.cache.CacheWriteSynchronizationMode.*;
+
+/**
+ * Test for distributed queries with replicated client cache and node restarts.
+ */
+public class IgniteCacheClientQueryReplicatedNodeRestartSelfTest extends GridCommonAbstractTest {
+ /** */
+ private static final String QRY = "select co.id, count(*) cnt\n" +
+ "from \"pe\".Person pe, \"pr\".Product pr, \"co\".Company co, \"pu\".Purchase pu\n" +
+ "where pe.id = pu.personId and pu.productId = pr.id and pr.companyId = co.id \n" +
+ "group by co.id order by cnt desc, co.id";
+
+ /** */
+ private static final P1<ClusterNode> DATA_NODES_FILTER = new P1<ClusterNode>() {
+ @Override public boolean apply(ClusterNode clusterNode) {
+ String gridName = clusterNode.attribute(IgniteNodeAttributes.ATTR_GRID_NAME);
+
+ return !gridName.endsWith(String.valueOf(GRID_CNT - 1)); // The last one is client only.
+ }
+ };
+
+ /** */
+ private static final int GRID_CNT = 5;
+
+ /** */
+ private static final int PERS_CNT = 600;
+
+ /** */
+ private static final int PURCHASE_CNT = 6000;
+
+ /** */
+ private static final int COMPANY_CNT = 25;
+
+ /** */
+ private static final int PRODUCT_CNT = 100;
+
+ /** */
+ private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ X.println("grid name: " + gridName);
+
+ IgniteConfiguration c = super.getConfiguration(gridName);
+
+ TcpDiscoverySpi disco = new TcpDiscoverySpi();
+
+ disco.setIpFinder(ipFinder);
+
+ c.setDiscoverySpi(disco);
+
+ int i = 0;
+
+ CacheConfiguration<?, ?>[] ccs = new CacheConfiguration[4];
+
+ for (String name : F.asList("co", "pr", "pe", "pu")) {
+ CacheConfiguration<?, ?> cc = defaultCacheConfiguration();
+
+ cc.setNodeFilter(DATA_NODES_FILTER);
+ cc.setName(name);
+ cc.setCacheMode(REPLICATED);
+ cc.setWriteSynchronizationMode(FULL_SYNC);
+ cc.setAtomicityMode(TRANSACTIONAL);
+ cc.setRebalanceMode(SYNC);
+ cc.setAffinity(new RendezvousAffinityFunction(false, 50));
+
+ switch (name) {
+ case "co":
+ cc.setIndexedTypes(
+ Integer.class, Company.class
+ );
+
+ break;
+
+ case "pr":
+ cc.setIndexedTypes(
+ Integer.class, Product.class
+ );
+
+ break;
+
+ case "pe":
+ cc.setIndexedTypes(
+ Integer.class, Person.class
+ );
+
+ break;
+
+ case "pu":
+ cc.setIndexedTypes(
+ AffinityKey.class, Purchase.class
+ );
+
+ break;
+ }
+
+ ccs[i++] = cc;
+ }
+
+ c.setCacheConfiguration(ccs);
+
+ return c;
+ }
+
+ /**
+ *
+ */
+ private void fillCaches() {
+ IgniteCache<Integer, Company> co = grid(0).cache("co");
+
+ for (int i = 0; i < COMPANY_CNT; i++)
+ co.put(i, new Company(i));
+
+ IgniteCache<Integer, Product> pr = grid(0).cache("pr");
+
+ Random rnd = new GridRandom();
+
+ for (int i = 0; i < PRODUCT_CNT; i++)
+ pr.put(i, new Product(i, rnd.nextInt(COMPANY_CNT)));
+
+ IgniteCache<Integer, Person> pe = grid(0).cache("pe");
+
+ for (int i = 0; i < PERS_CNT; i++)
+ pe.put(i, new Person(i));
+
+ IgniteCache<AffinityKey<Integer>, Purchase> pu = grid(0).cache("pu");
+
+ for (int i = 0; i < PURCHASE_CNT; i++) {
+ int persId = rnd.nextInt(PERS_CNT);
+ int prodId = rnd.nextInt(PRODUCT_CNT);
+
+ pu.put(new AffinityKey<>(i, persId), new Purchase(persId, prodId));
+ }
+ }
+
+ /**
+ * @param c Cache.
+ * @param client If it must be a client cache.
+ */
+ private void assertClient(IgniteCache<?,?> c, boolean client) {
+ assertTrue(((IgniteCacheProxy)c).context().affinityNode() == !client);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testRestarts() throws Exception {
+ int duration = 90 * 1000;
+ int qryThreadNum = 5;
+ int restartThreadsNum = 2; // 2 of 4 data nodes
+ final int nodeLifeTime = 2 * 1000;
+ final int logFreq = 10;
+
+ startGridsMultiThreaded(GRID_CNT);
+
+ final AtomicIntegerArray locks = new AtomicIntegerArray(GRID_CNT - 1); // The last is client only.
+
+ fillCaches();
+
+ final List<List<?>> pRes = grid(0).cache("pu").query(new SqlFieldsQuery(QRY)).getAll();
+
+ Thread.sleep(3000);
+
+ assertEquals(pRes, grid(0).cache("pu").query(new SqlFieldsQuery(QRY)).getAll());
+
+ assertFalse(pRes.isEmpty());
+
+ final AtomicInteger qryCnt = new AtomicInteger();
+ final AtomicBoolean qrysDone = new AtomicBoolean();
+
+ for (int i = 0; i < GRID_CNT - 1; i++) {
+ for (String cacheName : F.asList("co", "pr", "pe", "pu"))
+ assertClient(grid(i).cache(cacheName), false);
+ }
+
+ for (String cacheName : F.asList("co", "pr", "pe", "pu"))
+ assertClient(grid(GRID_CNT - 1).cache(cacheName), true);
+
+ final IgniteCache<?,?> clientCache = grid(GRID_CNT - 1).cache("pu");
+
+ IgniteInternalFuture<?> fut1 = multithreadedAsync(new CAX() {
+ @Override public void applyx() throws IgniteCheckedException {
+ GridRandom rnd = new GridRandom();
+
+ while (!qrysDone.get()) {
+ SqlFieldsQuery qry = new SqlFieldsQuery(QRY);
+
+ boolean smallPageSize = rnd.nextBoolean();
+
+ if (smallPageSize)
+ qry.setPageSize(3);
+
+ try {
+ assertEquals(pRes, clientCache.query(qry).getAll());
+ }
+ catch (CacheException e) {
+ assertTrue("On large page size must retry.", smallPageSize);
+
+ boolean failedOnRemoteFetch = false;
+
+ for (Throwable th = e; th != null; th = th.getCause()) {
+ if (!(th instanceof CacheException))
+ continue;
+
+ if (th.getMessage() != null &&
+ th.getMessage().startsWith("Failed to fetch data from node:")) {
+ failedOnRemoteFetch = true;
+
+ break;
+ }
+ }
+
+ if (!failedOnRemoteFetch) {
+ e.printStackTrace();
+
+ fail("Must fail inside of GridResultPage.fetchNextPage or subclass.");
+ }
+ }
+
+ int c = qryCnt.incrementAndGet();
+
+ if (c % logFreq == 0)
+ info("Executed queries: " + c);
+ }
+ }
+ }, qryThreadNum);
+
+ final AtomicInteger restartCnt = new AtomicInteger();
+
+ final AtomicBoolean restartsDone = new AtomicBoolean();
+
+ IgniteInternalFuture<?> fut2 = multithreadedAsync(new Callable<Object>() {
+ @SuppressWarnings({"BusyWait"})
+ @Override public Object call() throws Exception {
+ GridRandom rnd = new GridRandom();
+
+ while (!restartsDone.get()) {
+ int g;
+
+ do {
+ g = rnd.nextInt(locks.length());
+ }
+ while (!locks.compareAndSet(g, 0, -1));
+
+ stopGrid(g);
+
+ Thread.sleep(rnd.nextInt(nodeLifeTime));
+
+ startGrid(g);
+
+ Thread.sleep(rnd.nextInt(nodeLifeTime));
+
+ locks.set(g, 0);
+
+ int c = restartCnt.incrementAndGet();
+
+ if (c % logFreq == 0)
+ info("Node restarts: " + c);
+ }
+
+ return true;
+ }
+ }, restartThreadsNum);
+
+ Thread.sleep(duration);
+
+ info("Stopping..");
+
+ restartsDone.set(true);
+
+ fut2.get();
+
+ info("Restarts stopped.");
+
+ qrysDone.set(true);
+
+ fut1.get();
+
+ info("Queries stopped.");
+ }
+
+ /**
+ *
+ */
+ private static class Person implements Serializable {
+ @QuerySqlField(index = true)
+ int id;
+
+ Person(int id) {
+ this.id = id;
+ }
+ }
+
+ /**
+ *
+ */
+ private static class Purchase implements Serializable {
+ @QuerySqlField(index = true)
+ int personId;
+
+ @QuerySqlField(index = true)
+ int productId;
+
+ Purchase(int personId, int productId) {
+ this.personId = personId;
+ this.productId = productId;
+ }
+ }
+
+ /**
+ *
+ */
+ private static class Company implements Serializable {
+ @QuerySqlField(index = true)
+ int id;
+
+ Company(int id) {
+ this.id = id;
+ }
+ }
+
+ /**
+ *
+ */
+ private static class Product implements Serializable {
+ @QuerySqlField(index = true)
+ int id;
+
+ @QuerySqlField(index = true)
+ int companyId;
+
+ Product(int id, int companyId) {
+ this.id = id;
+ this.companyId = companyId;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/10febf28/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
index c5a2f15..dee3078 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite.java
@@ -67,6 +67,7 @@ public class IgniteCacheQuerySelfTestSuite extends TestSuite {
suite.addTestSuite(IgniteCacheOffheapTieredMultithreadedSelfTest.class);
suite.addTestSuite(IgniteCacheQueryNodeRestartSelfTest.class);
suite.addTestSuite(IgniteCacheQueryNodeRestartSelfTest2.class);
+ suite.addTestSuite(IgniteCacheClientQueryReplicatedNodeRestartSelfTest.class);
suite.addTestSuite(GridCacheReduceQueryMultithreadedSelfTest.class);
suite.addTestSuite(GridCacheCrossCacheQuerySelfTest.class);
suite.addTestSuite(GridCacheQuerySerializationSelfTest.class);
[30/50] incubator-ignite git commit: Merge remote-tracking branch
'origin/ignite-sprint-6' into ignite-sprint-6
Posted by vo...@apache.org.
Merge remote-tracking branch 'origin/ignite-sprint-6' into ignite-sprint-6
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/6c683c28
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/6c683c28
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/6c683c28
Branch: refs/heads/ignite-gg-10411
Commit: 6c683c28f5bde0cf22ac7482bc381c861a2c6a62
Parents: cc20ef6 45939ac
Author: sboikov <sb...@gridgain.com>
Authored: Thu Jun 18 10:36:28 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Jun 18 10:36:28 2015 +0300
----------------------------------------------------------------------
.../ignite/spi/checkpoint/s3/S3CheckpointManagerSelfTest.java | 2 +-
.../apache/ignite/spi/checkpoint/s3/S3CheckpointSpiSelfTest.java | 4 ++--
.../spi/checkpoint/s3/S3CheckpointSpiStartStopSelfTest.java | 2 +-
.../ignite/spi/checkpoint/s3/S3SessionCheckpointSelfTest.java | 2 +-
.../tcp/ipfinder/s3/TcpDiscoveryS3IpFinderSelfTest.java | 2 +-
5 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
[44/50] incubator-ignite git commit: Merge remote-tracking branch
'origin/ignite-sprint-6' into ignite-sprint-6
Posted by vo...@apache.org.
Merge remote-tracking branch 'origin/ignite-sprint-6' into ignite-sprint-6
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8c404f78
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8c404f78
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8c404f78
Branch: refs/heads/ignite-gg-10411
Commit: 8c404f78cc264ddf43c71904b9fbac40ce0ee418
Parents: 4f3292d 4d1fa72
Author: nikolay tikhonov <nt...@gridgain.com>
Authored: Thu Jun 18 15:19:58 2015 +0300
Committer: nikolay tikhonov <nt...@gridgain.com>
Committed: Thu Jun 18 15:19:58 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheUtils.java | 9 +++++
.../processors/cache/IgniteCacheProxy.java | 5 +++
.../processors/query/GridQueryProcessor.java | 7 ++++
.../communication/tcp/TcpCommunicationSpi.java | 42 ++++++++++----------
.../ignite/spi/discovery/tcp/ServerImpl.java | 31 +++++++++++----
.../spi/discovery/tcp/TcpDiscoverySpi.java | 41 +++++++++++++------
.../tcp/internal/TcpDiscoveryNode.java | 18 +++++++++
.../DataStreamerMultiThreadedSelfTest.java | 3 ++
8 files changed, 115 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
[14/50] incubator-ignite git commit: Added tests on
EVT_CACHE_REBALANCE_PART_DATA_LOST event.
Posted by vo...@apache.org.
Added tests on EVT_CACHE_REBALANCE_PART_DATA_LOST event.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8c2553ed
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8c2553ed
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8c2553ed
Branch: refs/heads/ignite-gg-10411
Commit: 8c2553eda7ea68498c1d0235060b20f31ef55c8a
Parents: 01eee2d
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Wed Jun 17 16:12:48 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Wed Jun 17 16:12:48 2015 +0300
----------------------------------------------------------------------
...ridCachePartitionNotLoadedEventSelfTest.java | 82 ++++++++++++++++++++
.../ignite/util/TestTcpCommunicationSpi.java | 21 +++++
2 files changed, 103 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c2553ed/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java
index 6da27d5..baa6d89 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionNotLoadedEventSelfTest.java
@@ -22,15 +22,19 @@ import org.apache.ignite.cache.*;
import org.apache.ignite.cache.affinity.*;
import org.apache.ignite.configuration.*;
import org.apache.ignite.events.*;
+import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.*;
import org.apache.ignite.lang.*;
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 org.apache.ignite.util.*;
import org.eclipse.jetty.util.*;
import java.util.*;
+import java.util.concurrent.*;
/**
*
@@ -150,6 +154,84 @@ public class GridCachePartitionNotLoadedEventSelfTest extends GridCommonAbstract
}
/**
+ * @throws Exception If failed.
+ */
+ public void testStableTopology() throws Exception {
+ backupCnt = 1;
+
+ startGrid(1);
+
+ awaitPartitionMapExchange();
+
+ startGrid(0);
+
+ PartitionNotFullyLoadedListener lsnr = new PartitionNotFullyLoadedListener();
+
+ grid(1).events().localListen(lsnr, EventType.EVT_CACHE_REBALANCE_PART_DATA_LOST);
+
+ IgniteCache<Integer, Integer> cache0 = jcache(0);
+
+ int key = primaryKey(cache0);
+
+ jcache(1).put(key, key);
+
+ assert cache0.containsKey(key);
+
+ TestTcpCommunicationSpi.stop(ignite(0));
+
+ stopGrid(0, true);
+
+ awaitPartitionMapExchange();
+
+ assert jcache(1).containsKey(key);
+
+ assert lsnr.lostParts.isEmpty();
+ }
+
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testMapPartitioned() throws Exception {
+ backupCnt = 0;
+
+ startGrid(0);
+
+ startGrid(1);
+
+ PartitionNotFullyLoadedListener lsnr = new PartitionNotFullyLoadedListener();
+
+ grid(1).events().localListen(lsnr, EventType.EVT_CACHE_REBALANCE_PART_DATA_LOST);
+
+ TestTcpCommunicationSpi.skipMsgType(ignite(0), GridDhtPartitionsFullMessage.class);
+
+ IgniteInternalFuture<Object> fut = GridTestUtils.runAsync(new Callable<Object>() {
+ @Override public Object call() throws Exception {
+ startGrid(2);
+
+ return null;
+ }
+ });
+
+ boolean timeout = false;
+
+ try {
+ fut.get(1, TimeUnit.SECONDS);
+ }
+ catch (IgniteFutureTimeoutCheckedException e) {
+ timeout = true;
+ }
+
+ assert timeout;
+
+ stopGrid(0, true);
+
+ awaitPartitionMapExchange();
+
+ assert !lsnr.lostParts.isEmpty();
+ }
+
+ /**
*
*/
private static class PartitionNotFullyLoadedListener implements IgnitePredicate<Event> {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c2553ed/modules/core/src/test/java/org/apache/ignite/util/TestTcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/util/TestTcpCommunicationSpi.java b/modules/core/src/test/java/org/apache/ignite/util/TestTcpCommunicationSpi.java
index ad2a262..6e4e50b 100644
--- a/modules/core/src/test/java/org/apache/ignite/util/TestTcpCommunicationSpi.java
+++ b/modules/core/src/test/java/org/apache/ignite/util/TestTcpCommunicationSpi.java
@@ -19,6 +19,7 @@ package org.apache.ignite.util;
import org.apache.ignite.*;
import org.apache.ignite.cluster.*;
+import org.apache.ignite.internal.managers.communication.*;
import org.apache.ignite.plugin.extensions.communication.*;
import org.apache.ignite.spi.*;
import org.apache.ignite.spi.communication.tcp.*;
@@ -30,11 +31,17 @@ public class TestTcpCommunicationSpi extends TcpCommunicationSpi {
/** */
private volatile boolean stopped;
+ /** */
+ private Class ignoreMsg;
+
/** {@inheritDoc} */
@Override public void sendMessage(final ClusterNode node, final Message msg) throws IgniteSpiException {
if (stopped)
return;
+ if (ignoreMsg != null && ((GridIoMessage)msg).message().getClass().equals(ignoreMsg))
+ return;
+
super.sendMessage(node, msg);
}
@@ -46,9 +53,23 @@ public class TestTcpCommunicationSpi extends TcpCommunicationSpi {
}
/**
+ *
+ */
+ public void stop(Class ignoreMsg) {
+ this.ignoreMsg = ignoreMsg;
+ }
+
+ /**
* Stop SPI, messages will not send anymore.
*/
public static void stop(Ignite ignite) {
((TestTcpCommunicationSpi)ignite.configuration().getCommunicationSpi()).stop();
}
+
+ /**
+ * Skip messages will not send anymore.
+ */
+ public static void skipMsgType(Ignite ignite, Class clazz) {
+ ((TestTcpCommunicationSpi)ignite.configuration().getCommunicationSpi()).stop(clazz);
+ }
}