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/27 16:49:17 UTC
[26/38] incubator-ignite git commit: # ignite-23
# ignite-23
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8980b615
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8980b615
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8980b615
Branch: refs/heads/ignite-709_2
Commit: 8980b615587b6837f6bd3baab2ac13c07f3f09e0
Parents: 00eadd6
Author: sboikov <sb...@gridgain.com>
Authored: Mon May 25 16:26:53 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon May 25 17:04:08 2015 +0300
----------------------------------------------------------------------
.../cache/GridCacheSharedContext.java | 1 -
.../dht/atomic/GridNearAtomicUpdateFuture.java | 12 ++++--
.../colocated/GridDhtColocatedLockFuture.java | 16 ++------
.../GridDhtPartitionsExchangeFuture.java | 4 ++
...niteCacheClientNodeChangingTopologyTest.java | 12 +++++-
...teCacheClientNodePartitionsExchangeTest.java | 42 ++++++++++++++++++--
6 files changed, 63 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8980b615/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
index 3d70db7..4c08beb 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
@@ -415,7 +415,6 @@ public class GridCacheSharedContext<K, V> {
GridCompoundFuture f = new GridCompoundFuture();
f.add(mvcc().finishExplicitLocks(topVer));
- f.add(mvcc().finishLocks(topVer));
f.add(tm().finishTxs(topVer));
f.add(mvcc().finishAtomicUpdates(topVer));
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8980b615/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
index 64a4882..55cc027 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
@@ -128,6 +128,12 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
/** Fast map flag. */
private final boolean fastMap;
+ /** */
+ private boolean fastMapRemap;
+
+ /** */
+ private GridCacheVersion updVer;
+
/** Near cache flag. */
private final boolean nearEnabled;
@@ -143,9 +149,6 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
/** Skip store flag. */
private final boolean skipStore;
- /** */
- private boolean fastMapRemap;
-
/**
* @param cctx Cache context.
* @param cache Cache instance.
@@ -537,7 +540,8 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
CacheConfiguration ccfg = cctx.config();
// Assign version on near node in CLOCK ordering mode even if fastMap is false.
- GridCacheVersion updVer = ccfg.getAtomicWriteOrderMode() == CLOCK ? cctx.versions().next(topVer) : null;
+ if (updVer == null)
+ updVer = ccfg.getAtomicWriteOrderMode() == CLOCK ? cctx.versions().next(topVer) : null;
if (updVer != null && log.isDebugEnabled())
log.debug("Assigned fast-map version for update on near node: " + updVer);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8980b615/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
index cc8f064..5a4c91d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
@@ -341,25 +341,12 @@ public final class GridDhtColocatedLockFuture extends GridCompoundIdentityFuture
else if (log.isDebugEnabled())
log.debug("Transaction was not marked rollback-only while locks were not acquired: " + tx);
}
-
- for (KeyCacheObject key : GridDhtColocatedLockFuture.this.keys)
- cctx.mvcc().removeExplicitLock(threadId, key, lockVer);
}
cctx.mvcc().recheckPendingLocks();
}
/**
- *
- * @param dist {@code True} if need to distribute lock release.
- */
- private void onFailed(boolean dist) {
- undoLocks(dist, true);
-
- complete(false);
- }
-
- /**
* @param success Success flag.
*/
public void complete(boolean success) {
@@ -1376,6 +1363,9 @@ public final class GridDhtColocatedLockFuture extends GridCompoundIdentityFuture
private void remap() {
undoLocks(false, false);
+ for (KeyCacheObject key : GridDhtColocatedLockFuture.this.keys)
+ cctx.mvcc().removeExplicitLock(threadId, key, lockVer);
+
mapOnTopology(true);
onDone(true);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8980b615/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index af7fa5c..a4cdfcd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -507,6 +507,8 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
if (exchId.isLeft())
cctx.mvcc().removeExplicitNodeLocks(exchId.nodeId(), exchId.topologyVersion());
+ cctx.mvcc().finishLocks(exchId.topologyVersion()).get();
+
onDone(exchId.topologyVersion());
skipPreload = true;
@@ -692,6 +694,8 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
if (exchId.isLeft())
cctx.mvcc().removeExplicitNodeLocks(exchId.nodeId(), exchId.topologyVersion());
+ cctx.mvcc().finishLocks(exchId.topologyVersion()).get();
+
for (GridCacheContext cacheCtx : cctx.cacheContexts()) {
if (cacheCtx.isLocal())
continue;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8980b615/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
index 5a5a648..1de78aa 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
@@ -841,14 +841,22 @@ public class IgniteCacheClientNodeChangingTopologyTest extends GridCommonAbstrac
IgniteCache<Integer, Integer> cache2 = ignite2.cache(null);
- Lock lock2 = cache2.lock(0);
+ final Integer key = 0;
+
+ Lock lock2 = cache2.lock(key);
lock2.lock();
ignite2.close();
+ IgniteCache<Integer, Integer> cache0 = ignite0.cache(null);
+
+ assertFalse(cache0.isLocalLocked(key, false));
+
IgniteCache<Integer, Integer> cache1 = ignite1.cache(null);
+ assertFalse(cache1.isLocalLocked(key, false));
+
Lock lock1 = cache1.lock(0);
assertTrue(lock1.tryLock(5000, TimeUnit.MILLISECONDS));
@@ -1163,7 +1171,7 @@ public class IgniteCacheClientNodeChangingTopologyTest extends GridCommonAbstrac
}));
}
- long stopTime = System.currentTimeMillis() + 2 * 60_000;
+ long stopTime = System.currentTimeMillis() + 60_000;
while (System.currentTimeMillis() < stopTime) {
int idx = ThreadLocalRandom.current().nextInt(0, SRV_CNT);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8980b615/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodePartitionsExchangeTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodePartitionsExchangeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodePartitionsExchangeTest.java
index d680d26..726ff22 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodePartitionsExchangeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodePartitionsExchangeTest.java
@@ -26,6 +26,7 @@ import org.apache.ignite.configuration.*;
import org.apache.ignite.events.*;
import org.apache.ignite.internal.*;
import org.apache.ignite.internal.managers.communication.*;
+import org.apache.ignite.internal.managers.discovery.*;
import org.apache.ignite.internal.processors.affinity.*;
import org.apache.ignite.internal.processors.cache.*;
import org.apache.ignite.internal.processors.cache.distributed.dht.*;
@@ -428,14 +429,31 @@ public class IgniteCacheClientNodePartitionsExchangeTest extends GridCommonAbstr
* @throws Exception If failed.
*/
public void testClientOnlyCacheStart() throws Exception {
+ clientOnlyCacheStart(false);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testNearOnlyCacheStart() throws Exception {
+ clientOnlyCacheStart(true);
+ }
+
+ /**
+ * @param nearCache If {@code true} creates near cache on client.
+ * @throws Exception If failed.
+ */
+ public void clientOnlyCacheStart(boolean nearCache) throws Exception {
Ignite ignite0 = startGrid(0);
Ignite ignite1 = startGrid(1);
waitForTopologyUpdate(2, 2);
+ final String CACHE_NAME = "cache1";
+
CacheConfiguration ccfg = new CacheConfiguration();
- ccfg.setName("cache1");
+ ccfg.setName(CACHE_NAME);
ignite0.createCache(ccfg);
@@ -453,11 +471,17 @@ public class IgniteCacheClientNodePartitionsExchangeTest extends GridCommonAbstr
spi1.reset();
spi2.reset();
- assertNull(((IgniteKernal) ignite2).context().cache().context().cache().internalCache("cache1"));
+ assertNull(((IgniteKernal)ignite2).context().cache().context().cache().internalCache("cache1"));
+
+ if (nearCache)
+ ignite2.getOrCreateNearCache(CACHE_NAME, new NearCacheConfiguration<>());
+ else
+ ignite2.cache(CACHE_NAME);
- ignite2.cache("cache1");
+ GridCacheAdapter cache = ((IgniteKernal)ignite2).context().cache().context().cache().internalCache("cache1");
- assertNotNull(((IgniteKernal) ignite2).context().cache().context().cache().internalCache("cache1"));
+ assertNotNull(cache);
+ assertEquals(nearCache, cache.context().isNear());
assertEquals(0, spi0.partitionsSingleMessages());
assertEquals(0, spi0.partitionsFullMessages());
@@ -465,6 +489,16 @@ public class IgniteCacheClientNodePartitionsExchangeTest extends GridCommonAbstr
assertEquals(0, spi1.partitionsFullMessages());
assertEquals(0, spi2.partitionsSingleMessages());
assertEquals(0, spi2.partitionsFullMessages());
+
+ ClusterNode clientNode = ((IgniteKernal)ignite2).localNode();
+
+ for (Ignite ignite : Ignition.allGrids()) {
+ GridDiscoveryManager disco = ((IgniteKernal)ignite).context().discovery();
+
+ assertTrue(disco.cacheNode(clientNode, CACHE_NAME));
+ assertFalse(disco.cacheAffinityNode(clientNode, CACHE_NAME));
+ assertEquals(nearCache, disco.cacheNearNode(clientNode, CACHE_NAME));
+ }
}
/**