Repository: ignite Updated Branches: refs/heads/ignite-4932 8e6bdfb25 -> 5e9e146fb
ignite-4932 WIP Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5e9e146f Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5e9e146f Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5e9e146f Branch: refs/heads/ignite-4932 Commit: 5e9e146fb6469ba115c6bb4f14ce92b09b6ea3bb Parents: 8e6bdfb Author: sboikov <[email protected]> Authored: Fri Apr 14 13:50:09 2017 +0300 Committer: sboikov <[email protected]> Committed: Fri Apr 14 13:50:09 2017 +0300 ---------------------------------------------------------------------- .../processors/cache/GridCacheSwapManager.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/5e9e146f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java index 07edaff..67c00dc 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java @@ -25,6 +25,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.NoSuchElementException; import java.util.Set; @@ -162,6 +163,8 @@ public class GridCacheSwapManager extends GridCacheManagerAdapter { Collection<IgniteBiTuple<byte[], byte[]>> evicts = offheapEvicts.get(); if (evicts != null) { + List<GridCacheEntryEx> entries = null; + GridCacheVersion obsoleteVer = cctx.versions().next(); for (IgniteBiTuple<byte[], byte[]> t : evicts) { @@ -179,6 +182,12 @@ public class GridCacheSwapManager extends GridCacheManagerAdapter { try { if (entry.onOffheapEvict(vb, evictVer, obsoleteVer)) cctx.cache().removeEntry(entry); + else { + if (entries == null) + entries = new ArrayList<>(); + + entries.add(entry); + } break; } @@ -196,6 +205,11 @@ public class GridCacheSwapManager extends GridCacheManagerAdapter { } offheapEvicts.set(null); + + if (entries != null) { + for (int i = 0; i < entries.size(); i++) + cctx.evicts().touch(entries.get(i), AffinityTopologyVersion.NONE); + } } }
