This is an automated email from the ASF dual-hosted git repository. sboikov pushed a commit to branch ignite-11704 in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/ignite-11704 by this push: new 1da9dc3 ignite-11704 1da9dc3 is described below commit 1da9dc31b51718f595334a32e60e11f571676dd5 Author: sboikov <sboi...@apache.org> AuthorDate: Thu Aug 1 09:43:33 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) {