You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/05/18 11:31:13 UTC
[04/29] incubator-ignite git commit: # ignite-709_3 do not create
system caches on client nodes
# ignite-709_3 do not create system caches on client 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/7ed0ddf2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/7ed0ddf2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/7ed0ddf2
Branch: refs/heads/ignite-709_2
Commit: 7ed0ddf29fc9baae66ca2fb9e3be960e0b7e295b
Parents: 1ede1d0
Author: sboikov <sb...@gridgain.com>
Authored: Thu May 14 14:58:39 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu May 14 14:58:39 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheProcessor.java | 21 ++++-----
.../datastructures/DataStructuresProcessor.java | 10 ++++-
.../IgniteClientDataStructuresAbstractTest.java | 47 ++++++++++++++++++++
3 files changed, 67 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7ed0ddf2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index e63dd8b..8771515 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -736,13 +736,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
if (marshallerCache() == null) {
assert ctx.config().isClientMode() : "Marshaller cache is missed on server node.";
- DynamicCacheDescriptor desc = registeredCaches.get(CU.MARSH_CACHE_NAME);
-
- assert desc != null && desc.cacheConfiguration() != null && desc.cacheType().equals(CacheType.MARSHALLER);
-
- // On client node user near-only marshaller cache.
- IgniteInternalFuture<?> fut = dynamicStartCache(desc.cacheConfiguration(),
- CU.MARSH_CACHE_NAME, new NearCacheConfiguration(), desc.cacheType(), false);
+ // On client node use near-only marshaller cache.
+ IgniteInternalFuture<?> fut = startCacheAsync(CU.MARSH_CACHE_NAME, new NearCacheConfiguration(), false);
assert fut != null;
@@ -2554,7 +2549,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
if (internalCache(CU.UTILITY_CACHE_NAME) != null)
return new GridFinishedFuture<>();
- return startCacheAsync(CU.UTILITY_CACHE_NAME, true);
+ return startCacheAsync(CU.UTILITY_CACHE_NAME, null, true);
}
/**
@@ -2634,7 +2629,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
* @throws IgniteCheckedException If failed.
*/
private IgniteCache startJCache(String cacheName, boolean failIfNotStarted) throws IgniteCheckedException {
- IgniteInternalFuture<?> fut = startCacheAsync(cacheName, failIfNotStarted);
+ IgniteInternalFuture<?> fut = startCacheAsync(cacheName, null, failIfNotStarted);
if (fut != null) {
fut.get();
@@ -2654,11 +2649,15 @@ public class GridCacheProcessor extends GridProcessorAdapter {
/**
* @param cacheName Cache name.
+ * @param nearCfg Near cache configuration.
* @param failIfNotStarted If {@code true} throws {@link IllegalArgumentException} if cache is not started,
* otherwise returns {@code null} in this case.
* @return Future.
*/
- @Nullable private IgniteInternalFuture<?> startCacheAsync(String cacheName, boolean failIfNotStarted) {
+ @Nullable public IgniteInternalFuture<?> startCacheAsync(String cacheName,
+ @Nullable NearCacheConfiguration nearCfg,
+ boolean failIfNotStarted)
+ {
String masked = maskNull(cacheName);
DynamicCacheDescriptor desc = registeredCaches.get(masked);
@@ -2686,6 +2685,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
req.clientStartOnly(true);
+ req.nearCacheConfiguration(nearCfg);
+
return F.first(initiateCacheChanges(F.asList(req)));
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7ed0ddf2/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
index b8d5bef..0a90e32 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
@@ -123,7 +123,15 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
assert utilityCache != null;
if (atomicCfg != null) {
- IgniteInternalCache atomicsCache = ctx.cache().getOrStartCache(CU.ATOMICS_CACHE_NAME);
+ IgniteInternalCache atomicsCache = ctx.cache().internalCache(CU.ATOMICS_CACHE_NAME);
+
+ if (atomicsCache == null) {
+ assert ctx.config().isClientMode() : "Atomics cache is missed on server node.";
+
+ ctx.cache().startCacheAsync(CU.ATOMICS_CACHE_NAME, new NearCacheConfiguration(), true).get();
+
+ atomicsCache = ctx.cache().internalCache(CU.ATOMICS_CACHE_NAME);
+ }
assert atomicsCache != null;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7ed0ddf2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteClientDataStructuresAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteClientDataStructuresAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteClientDataStructuresAbstractTest.java
index 175c1e6..db16062 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteClientDataStructuresAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteClientDataStructuresAbstractTest.java
@@ -19,13 +19,17 @@ package org.apache.ignite.internal.processors.cache.datastructures;
import org.apache.ignite.*;
import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.*;
import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.spi.discovery.tcp.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.testframework.*;
import org.apache.ignite.testframework.junits.common.*;
import java.util.*;
+import java.util.concurrent.*;
/**
*
@@ -183,6 +187,49 @@ public abstract class IgniteClientDataStructuresAbstractTest extends GridCommonA
}
/**
+ * @throws Exception If failed.
+ */
+ public void testLatch() throws Exception {
+ Ignite clientNode = clientIgnite();
+
+ final Ignite srvNode = serverNode();
+
+ assertNull(clientNode.countDownLatch("latch1", 1, true, false));
+
+ try (IgniteCountDownLatch latch = clientNode.countDownLatch("latch1", 1, true, true)) {
+ assertNotNull(latch);
+
+ assertEquals(1, latch.count());
+
+ IgniteInternalFuture<?> fut = GridTestUtils.runAsync(new Callable<Object>() {
+ @Override public Object call() throws Exception {
+ U.sleep(1000);
+
+ IgniteCountDownLatch latch0 = srvNode.countDownLatch("latch1", 1, true, false);
+
+ assertEquals(1, latch0.count());
+
+ log.info("Count down latch.");
+
+ latch0.countDown();
+
+ assertEquals(0, latch0.count());
+
+ return null;
+ }
+ });
+
+ log.info("Await latch.");
+
+ assertTrue(latch.await(5000, TimeUnit.MILLISECONDS));
+
+ log.info("Finished wait.");
+
+ fut.get();
+ }
+ }
+
+ /**
* @return Client node.
*/
private Ignite clientIgnite() {