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/08/11 19:36:10 UTC
[17/17] incubator-ignite git commit: ignite-1175 Entries are not
removed from GridDhtLocalPartition after IgniteCache.remove
ignite-1175 Entries are not removed from GridDhtLocalPartition after IgniteCache.remove
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/5479e912
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/5479e912
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/5479e912
Branch: refs/heads/ignite-1175
Commit: 5479e9128e223797a99b68b80d202f2f7a82a333
Parents: ae11e9b
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Fri Aug 7 18:44:57 2015 +0300
Committer: agura <ag...@gridgain.com>
Committed: Tue Aug 11 19:00:43 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheContext.java | 5 +++--
.../processors/cache/GridCacheMapEntry.java | 4 +++-
...cheDhtLocalPartitionAfterRemoveSelfTest.java | 21 +++++++++++++-------
.../cache/GridCacheAbstractFullApiSelfTest.java | 16 +++++++++++----
...heExpiredEntriesPreloadAbstractSelfTest.java | 3 ++-
...idCacheNearOnlyMultiNodeFullApiSelfTest.java | 10 ++++++----
.../testsuites/IgniteCacheTestSuite2.java | 1 +
7 files changed, 41 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5479e912/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
index 5f17746..6ac0bc1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
@@ -537,8 +537,9 @@ public class GridCacheContext<K, V> implements Externalizable {
* @return {@code True} if entries should not be deleted from cache immediately.
*/
public boolean deferredDelete(GridCacheAdapter<?, ?> cache) {
- return cache.isDht() || cache.isDhtAtomic() || cache.isColocated() ||
- (cache.isNear() && cache.configuration().getAtomicityMode() == ATOMIC);
+ return ((cache.isDht() || cache.isColocated()) &&
+ (cache.context().dr().receiveEnabled() || cache.context().store().isLocal())) ||
+ cache.isDhtAtomic() || (cache.isNear() && cache.configuration().getAtomicityMode() == ATOMIC);
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5479e912/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index f85a18b..0995191 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@ -1230,7 +1230,9 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme
if (writeThrough)
cctx.store().remove(tx, keyValue(false));
- if (!cctx.deferredDelete()) {
+ if (cctx.deferredDelete() && !detached() && !isInternal())
+ cctx.onDeferredDelete(this, newVer);
+ else {
boolean marked = false;
synchronized (this) {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5479e912/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheDhtLocalPartitionAfterRemoveSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheDhtLocalPartitionAfterRemoveSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheDhtLocalPartitionAfterRemoveSelfTest.java
index b04e41a..f04717d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheDhtLocalPartitionAfterRemoveSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheDhtLocalPartitionAfterRemoveSelfTest.java
@@ -27,6 +27,9 @@ import org.apache.ignite.testframework.junits.common.*;
* Test for remove operation.
*/
public class CacheDhtLocalPartitionAfterRemoveSelfTest extends GridCommonAbstractTest {
+ /** Grid count. */
+ private static final int GRID_CNT = 3;
+
/** {@inheritDoc} */
@Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
IgniteConfiguration cfg = super.getConfiguration(gridName);
@@ -44,7 +47,7 @@ public class CacheDhtLocalPartitionAfterRemoveSelfTest extends GridCommonAbstrac
/** {@inheritDoc} */
@Override protected void beforeTestsStarted() throws Exception {
- startGrids(1);
+ startGrids(GRID_CNT);
}
/** {@inheritDoc} */
@@ -66,15 +69,19 @@ public class CacheDhtLocalPartitionAfterRemoveSelfTest extends GridCommonAbstrac
assertEquals(0, cache.size());
- int size = 0;
+ for (int g = 0; g < GRID_CNT; g++) {
+ cache = grid(g).cache(null);
- for (GridDhtLocalPartition p : dht(cache).topology().localPartitions()) {
- int pSize = p.size();
+ int size = 0;
- size += pSize;
- }
+ for (GridDhtLocalPartition p : dht(cache).topology().localPartitions()) {
+ int pSize = p.size();
- System.out.println("All size: " + size);
+ size += pSize;
+ }
+
+ assertEquals(0, size);
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5479e912/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 fb004bf..30060e9 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
@@ -2318,8 +2318,12 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
cctx.cache().peekEx(key);
if (grid(idx).affinity(null).mapKeyToPrimaryAndBackups(key).contains(grid(idx).localNode())) {
- assertNotNull(entry);
- assertTrue(entry.deleted());
+ if (cctx.deferredDelete()) {
+ assertNotNull(entry);
+ assertTrue(entry.deleted());
+ }
+ else
+ assertNull(entry);
}
else
assertNull(entry);
@@ -3394,8 +3398,12 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
// Ensure that old TTL and expire time are not longer "visible".
entry = internalCache.peekEx(key);
- assertEquals(0, entry.ttl());
- assertEquals(0, entry.expireTime());
+ if (internalCache.context().deferredDelete()) {
+ assertEquals(0, entry.ttl());
+ assertEquals(0, entry.expireTime());
+ }
+ else
+ assertNull(entry);
// Ensure that next update will not pick old expire time.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5479e912/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheExpiredEntriesPreloadAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheExpiredEntriesPreloadAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheExpiredEntriesPreloadAbstractSelfTest.java
index ccc9b64..d8ce9cf 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheExpiredEntriesPreloadAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheExpiredEntriesPreloadAbstractSelfTest.java
@@ -105,7 +105,8 @@ public abstract class GridCacheExpiredEntriesPreloadAbstractSelfTest extends Gri
Collection<Event> evts = g1.events().localQuery(F.<Event>alwaysTrue(), EVT_CACHE_REBALANCE_OBJECT_LOADED);
- assertEquals("Expected all entries are preloaded.", KEYS_NUM, evts.size());
+ assertEquals("Expected all entries are preloaded.", cache1.context().deferredDelete() ? KEYS_NUM : 0,
+ evts.size());
boolean rmv = GridTestUtils.waitForCondition(new PAX() {
@Override public boolean applyx() {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5479e912/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyMultiNodeFullApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyMultiNodeFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyMultiNodeFullApiSelfTest.java
index f30ea71..80a2f76 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyMultiNodeFullApiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyMultiNodeFullApiSelfTest.java
@@ -412,10 +412,12 @@ public class GridCacheNearOnlyMultiNodeFullApiSelfTest extends GridCachePartitio
GridCacheEntryEx entry = dht.peekEx(key);
- assert entry != null;
-
- assertEquals(0, entry.ttl());
- assertEquals(0, entry.expireTime());
+ if (dht.context().deferredDelete()) {
+ assertEquals(0, entry.ttl());
+ assertEquals(0, entry.expireTime());
+ }
+ else
+ assertNull(entry);
}
// Ensure that next update will not pick old expire time.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5479e912/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
index 67e46f0..2efdb82 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
@@ -98,6 +98,7 @@ public class IgniteCacheTestSuite2 extends TestSuite {
suite.addTest(new TestSuite(GridCacheDhtPreloadPutGetSelfTest.class));
suite.addTest(new TestSuite(GridCacheDhtPreloadDisabledSelfTest.class));
suite.addTest(new TestSuite(GridCacheDhtPreloadMultiThreadedSelfTest.class));
+ suite.addTest(new TestSuite(CacheDhtLocalPartitionAfterRemoveSelfTest.class));
suite.addTest(new TestSuite(GridCacheColocatedPreloadRestartSelfTest.class));
suite.addTest(new TestSuite(GridCacheNearPreloadRestartSelfTest.class));
suite.addTest(new TestSuite(GridCacheDhtPreloadStartStopSelfTest.class));