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 2019/07/31 20:50:05 UTC

[ignite] 01/01: ignite-11704

This is an automated email from the ASF dual-hosted git repository.

sboikov pushed a commit to branch ignite-11704-1
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit 2394c5653782027ca9998a80a06942f9cf0b97b9
Author: sboikov <sb...@apache.org>
AuthorDate: Wed Jul 31 23:48:51 2019 +0300

    ignite-11704
---
 .../ignite/internal/processors/cache/CacheGroupContext.java       | 2 +-
 .../apache/ignite/internal/processors/cache/GridCacheContext.java | 8 ++++++--
 .../ignite/internal/processors/cache/GridCacheMapEntry.java       | 3 +++
 .../internal/processors/cache/IgniteCacheOffheapManagerImpl.java  | 2 ++
 .../cache/distributed/dht/topology/GridDhtLocalPartition.java     | 2 --
 5 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java
index 3a7a445..c2cba6b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java
@@ -1296,7 +1296,7 @@ public class CacheGroupContext {
      * @return {@code True} if need create temporary tombstones entries for removed data.
      */
     public boolean supportsTombstone() {
-        return !sharedGroup() && !hasAtomicCaches && !mvccEnabled && !isLocal();
+        return !mvccEnabled && !isLocal();
     }
 
     /**
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 959095c..4c51981 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
@@ -625,8 +625,12 @@ public class GridCacheContext<K, V> implements Externalizable {
     public void cache(GridCacheAdapter<K, V> cache) {
         this.cache = cache;
 
-        deferredDel = !grp.supportsTombstone() && (cache.isDht() || cache.isDhtAtomic() || cache.isColocated() ||
-            (cache.isNear() && cache.configuration().getAtomicityMode() == ATOMIC));
+        if (grp.supportsTombstone() && cache.configuration().getAtomicityMode() == TRANSACTIONAL)
+            deferredDel = false;
+        else {
+            deferredDel = (cache.isDht() || cache.isDhtAtomic() || cache.isColocated() ||
+                (cache.isNear() && cache.configuration().getAtomicityMode() == ATOMIC));
+        }
     }
 
     /**
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 1133085..db066b6 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
@@ -4505,6 +4505,9 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme
 
             CacheDataRow row = cctx.offheap().read(this);
 
+            if (cctx.offheap().isTombstone(row))
+                return;
+
             if (row != null && (filter == null || filter.apply(row)))
                 clo.apply(row);
         }
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
index 1f3a22d..9d15358 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
@@ -628,6 +628,8 @@ public class IgniteCacheOffheapManagerImpl implements IgniteCacheOffheapManager
         GridCacheVersion ver,
         GridDhtLocalPartition part) throws IgniteCheckedException {
         assert part != null;
+        assert !cctx.isNear();
+        assert !cctx.isLocal();
 
         dataStore(part).removeWithTombstone(cctx, key, ver, part);
     }
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/GridDhtLocalPartition.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/GridDhtLocalPartition.java
index d9b34c6..f098e99 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/GridDhtLocalPartition.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/GridDhtLocalPartition.java
@@ -1174,8 +1174,6 @@ public class GridDhtLocalPartition extends GridCacheConcurrentMapImpl implements
 
                             cached.removeTombstone(row.version());
 
-                            cached.touch();
-
                             break;
                         }
                         catch (GridCacheEntryRemovedException e) {