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;
             }
         };

Reply via email to