Repository: ignite Updated Branches: refs/heads/ignite-971 94f2362d5 -> 31cb7301b
ignite-971 Fix offheap to swap eviction. Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/31cb7301 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/31cb7301 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/31cb7301 Branch: refs/heads/ignite-971 Commit: 31cb7301b21437c37afecb0d6fbb7931ddd5a4b6 Parents: 94f2362 Author: sboikov <[email protected]> Authored: Thu Sep 10 12:01:09 2015 +0300 Committer: sboikov <[email protected]> Committed: Thu Sep 10 12:26:52 2015 +0300 ---------------------------------------------------------------------- .../internal/processors/cache/GridCacheMapEntry.java | 7 +++++++ .../internal/processors/cache/GridCacheSwapManager.java | 4 ++-- .../internal/util/offheap/GridOffHeapEvictListener.java | 2 +- .../internal/util/offheap/unsafe/GridUnsafeMap.java | 4 ++-- .../processors/cache/GridCacheMemoryModeSelfTest.java | 9 ++++++++- .../util/offheap/GridOffHeapMapAbstractSelfTest.java | 6 +++--- .../GridOffHeapPartitionedMapAbstractSelfTest.java | 10 +++++----- 7 files changed, 28 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/31cb7301/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 bdf6057..8305b66 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 @@ -3811,6 +3811,13 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme try { if (!hasReaders() && markObsolete0(obsoleteVer, false)) { if (!isStartVersion() && hasValueUnlocked()) { + if (cctx.offheapTiered() && hasOffHeapPointer()) { + if (cctx.swap().offheapEvictionEnabled()) + cctx.swap().enableOffheapEviction(key(), partition()); + + return null; + } + IgniteUuid valClsLdrId = null; IgniteUuid keyClsLdrId = null; http://git-wip-us.apache.org/repos/asf/ignite/blob/31cb7301/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 851c827..c4a14f1 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 @@ -211,7 +211,7 @@ public class GridCacheSwapManager extends GridCacheManagerAdapter { evicts.add(new IgniteBiTuple<>(kb, vb)); } - @Override public boolean removedEvicted() { + @Override public boolean removeEvicted() { return false; } }; @@ -222,7 +222,7 @@ public class GridCacheSwapManager extends GridCacheManagerAdapter { onOffheapEvict(); } - @Override public boolean removedEvicted() { + @Override public boolean removeEvicted() { return true; } }; http://git-wip-us.apache.org/repos/asf/ignite/blob/31cb7301/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/GridOffHeapEvictListener.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/GridOffHeapEvictListener.java b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/GridOffHeapEvictListener.java index 1219ae1..beafea4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/GridOffHeapEvictListener.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/GridOffHeapEvictListener.java @@ -34,5 +34,5 @@ public interface GridOffHeapEvictListener { /** * @return {@code True} if entry selected for eviction should be immediately removed. */ - public boolean removedEvicted(); + public boolean removeEvicted(); } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/31cb7301/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridUnsafeMap.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridUnsafeMap.java b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridUnsafeMap.java index d0435e4..359d36c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridUnsafeMap.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridUnsafeMap.java @@ -185,7 +185,7 @@ public class GridUnsafeMap implements GridOffHeapMap { } }; - rmvEvicted = evictLsnr == null || evictLsnr.removedEvicted(); + rmvEvicted = evictLsnr == null || evictLsnr.removeEvicted(); } /** @@ -232,7 +232,7 @@ public class GridUnsafeMap implements GridOffHeapMap { init(initCap, size); - rmvEvicted = evictLsnr == null || evictLsnr.removedEvicted(); + rmvEvicted = evictLsnr == null || evictLsnr.removeEvicted(); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/31cb7301/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMemoryModeSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMemoryModeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMemoryModeSelfTest.java index c5c1c39..2f6ee8f 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMemoryModeSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMemoryModeSelfTest.java @@ -232,9 +232,15 @@ public class GridCacheMemoryModeSelfTest extends GridCommonAbstractTest { //putAll doTest(cache, offheapSwap, offheapEmpty, swapEmpty, new CIX1<IgniteCache<String, Integer>>() { @Override public void applyx(IgniteCache<String, Integer> c) throws IgniteCheckedException { + putAll(c, 0, all / 2); + + putAll(c, all / 2 + 1, all - 1); + } + + private void putAll(IgniteCache<String, Integer> c, int k1, int k2) { Map<String, Integer> m = new HashMap<>(); - for (int i = 0; i < all; i++) + for (int i = k1; i <= k2; i++) m.put(valueOf(i), i); c.putAll(m); @@ -264,6 +270,7 @@ public class GridCacheMemoryModeSelfTest extends GridCommonAbstractTest { assertEquals(offheapSwap, c.localSize(CachePeekMode.OFFHEAP) + c.localSize(CachePeekMode.SWAP)); info("size: " + c.size()); + info("heap: " + c.localSize(CachePeekMode.ONHEAP)); info("offheap: " + c.localSize(CachePeekMode.OFFHEAP)); info("swap: " + c.localSize(CachePeekMode.SWAP)); http://git-wip-us.apache.org/repos/asf/ignite/blob/31cb7301/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/GridOffHeapMapAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/GridOffHeapMapAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/GridOffHeapMapAbstractSelfTest.java index d3241f2..4cda0c2 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/GridOffHeapMapAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/GridOffHeapMapAbstractSelfTest.java @@ -552,7 +552,7 @@ public abstract class GridOffHeapMapAbstractSelfTest extends GridCommonAbstractT evictCnt.incrementAndGet(); } - @Override public boolean removedEvicted() { + @Override public boolean removeEvicted() { return true; } }; @@ -592,7 +592,7 @@ public abstract class GridOffHeapMapAbstractSelfTest extends GridCommonAbstractT evictCnt.incrementAndGet(); } - @Override public boolean removedEvicted() { + @Override public boolean removeEvicted() { return true; } }; @@ -631,7 +631,7 @@ public abstract class GridOffHeapMapAbstractSelfTest extends GridCommonAbstractT evictCnt.incrementAndGet(); } - @Override public boolean removedEvicted() { + @Override public boolean removeEvicted() { return true; } }; http://git-wip-us.apache.org/repos/asf/ignite/blob/31cb7301/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/GridOffHeapPartitionedMapAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/GridOffHeapPartitionedMapAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/GridOffHeapPartitionedMapAbstractSelfTest.java index 032c98f..c40c10f 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/GridOffHeapPartitionedMapAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/util/offheap/GridOffHeapPartitionedMapAbstractSelfTest.java @@ -883,7 +883,7 @@ public abstract class GridOffHeapPartitionedMapAbstractSelfTest extends GridComm evictCnt.incrementAndGet(); } - @Override public boolean removedEvicted() { + @Override public boolean removeEvicted() { return true; } }; @@ -926,7 +926,7 @@ public abstract class GridOffHeapPartitionedMapAbstractSelfTest extends GridComm evictCnt.incrementAndGet(); } - @Override public boolean removedEvicted() { + @Override public boolean removeEvicted() { return true; } }; @@ -966,7 +966,7 @@ public abstract class GridOffHeapPartitionedMapAbstractSelfTest extends GridComm evictCnt.incrementAndGet(); } - @Override public boolean removedEvicted() { + @Override public boolean removeEvicted() { return true; } }; @@ -1022,7 +1022,7 @@ public abstract class GridOffHeapPartitionedMapAbstractSelfTest extends GridComm evicted.set(key); } - @Override public boolean removedEvicted() { + @Override public boolean removeEvicted() { return true; } }; @@ -1089,7 +1089,7 @@ public abstract class GridOffHeapPartitionedMapAbstractSelfTest extends GridComm evicted.set(key); } - @Override public boolean removedEvicted() { + @Override public boolean removeEvicted() { return true; } };
