#ignite-286:wip.

Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/91d37635
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/91d37635
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/91d37635

Branch: refs/heads/ignite-286
Commit: 91d3763555581a92c4d40d5454e80416da92d5a9
Parents: d396fae
Author: ivasilinets <ivasilin...@gridgain.com>
Authored: Tue Apr 28 14:19:09 2015 +0300
Committer: ivasilinets <ivasilin...@gridgain.com>
Committed: Tue Apr 28 14:19:09 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheAdapter.java      |   7 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java | 120 +++++++++++++++++++
 ...edOffHeapTieredMultiNodeFullApiSelfTest.java |  48 +++++++-
 3 files changed, 171 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/91d37635/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 110da18..388f596 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -827,7 +827,12 @@ public abstract class GridCacheAdapter<K, V> implements 
IgniteInternalCache<K, V
      */
     public GridCacheEntryEx entryEx(KeyCacheObject key, 
AffinityTopologyVersion topVer) {
         GridCacheEntryEx e = entry0(key, topVer, true, false);
-
+        try {
+            e.unswap();
+        }
+        catch (IgniteCheckedException e1) {
+            e1.printStackTrace();
+        }
         assert e != null;
 
         return e;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/91d37635/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
index 70d8f9c..31c4534 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
@@ -4310,6 +4310,126 @@ public abstract class GridCacheAbstractFullApiSelfTest 
extends GridCacheAbstract
     /**
      * @throws Exception If failed.
      */
+    public void testPutRemoveWithSkipStore() throws Exception {
+        IgniteCache<String, Integer> cache = grid(0).cache(null);
+        IgniteCache<String, Integer> cacheSkipStore = cache.withSkipStore();
+
+        String key = "key_" + 4;
+
+        cache.put(key, 4);
+
+        for (int i = 0; i < gridCount(); ++i) {
+            System.out.println("!Grid " + i +
+                " is primary " + 
grid(0).affinity(null).isPrimary(grid(i).localNode(), key) +
+                " is backup " + 
grid(0).affinity(null).isBackup(grid(i).localNode(), key));
+            System.out.println("!On heap "  + 
grid(i).cache(null).withSkipStore().localPeek(key, ONHEAP_PEEK_MODES));
+            System.out.println("!Off heap "  + 
grid(i).cache(null).withSkipStore().localPeek(key, OFFHEAP));
+            System.out.println("!Swap " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.SWAP));
+            System.out.println("!Near " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.NEAR));
+            System.out.println("!Primary " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.PRIMARY));
+            System.out.println("!Backup " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.BACKUP));
+        }
+
+        for (int i = 0; i < gridCount(); ++i) {
+            System.out.println("1Grid " + i +
+                " is primary " + 
grid(0).affinity(null).isPrimary(grid(i).localNode(), key) +
+                " is backup " + 
grid(0).affinity(null).isBackup(grid(i).localNode(), key));
+            System.out.println("1On heap "  + 
grid(i).cache(null).localPeek(key, ONHEAP_PEEK_MODES));
+            System.out.println("1Off heap "  + 
grid(i).cache(null).localPeek(key, OFFHEAP));
+            System.out.println("1Swap " + grid(i).cache(null).localPeek(key, 
CachePeekMode.SWAP));
+            System.out.println("1Near " + grid(i).cache(null).localPeek(key, 
CachePeekMode.NEAR));
+            System.out.println("1Primary " + 
grid(i).cache(null).localPeek(key, CachePeekMode.PRIMARY));
+            System.out.println("1Backup " + grid(i).cache(null).localPeek(key, 
CachePeekMode.BACKUP));
+        }
+
+
+        assertEquals(4, cacheSkipStore.get(key).intValue());
+        assertEquals(4, cache.get(key).intValue());
+        assertEquals(4, map.get(key));
+        cacheSkipStore.remove(key);
+
+        for (int i = 0; i < gridCount(); ++i) {
+            System.out.println("!!Grid " + i +
+                " is primary " + 
grid(0).affinity(null).isPrimary(grid(i).localNode(), key) +
+                " is backup " + 
grid(0).affinity(null).isBackup(grid(i).localNode(), key));
+            System.out.println("!!On heap "  + 
grid(i).cache(null).withSkipStore().localPeek(key, ONHEAP_PEEK_MODES));
+            System.out.println("!!Off heap "  + 
grid(i).cache(null).withSkipStore().localPeek(key, OFFHEAP));
+            System.out.println("!!Swap " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.SWAP));
+            System.out.println("!!Near " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.NEAR));
+            System.out.println("!!Primary " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.PRIMARY));
+            System.out.println("!!Backup " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.BACKUP));
+        }
+
+        assertNull(cacheSkipStore.get(key));
+        assertEquals(4, cache.get(key).intValue());
+        assertEquals(4, map.get(key));
+
+        for (int i = 0; i < gridCount(); ++i) {
+            System.out.println("3Grid " + i +
+                " is primary " + 
grid(0).affinity(null).isPrimary(grid(i).localNode(), key) +
+                " is backup " + 
grid(0).affinity(null).isBackup(grid(i).localNode(), key));
+            System.out.println("3On heap "  + 
grid(i).cache(null).withSkipStore().localPeek(key, ONHEAP_PEEK_MODES));
+            System.out.println("3Off heap "  + 
grid(i).cache(null).withSkipStore().localPeek(key, OFFHEAP));
+            System.out.println("3Swap " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.SWAP));
+            System.out.println("3Near " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.NEAR));
+            System.out.println("3Primary " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.PRIMARY));
+            System.out.println("3Backup " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.BACKUP));
+        }
+
+        cacheSkipStore.put(key, 5);
+        for (int i = 0; i < gridCount(); ++i) {
+            System.out.println("!!!Grid " + i +
+                " is primary " + 
grid(0).affinity(null).isPrimary(grid(i).localNode(), key) +
+                " is backup " + 
grid(0).affinity(null).isBackup(grid(i).localNode(), key));
+            System.out.println("!!!On heap "  + 
grid(i).cache(null).withSkipStore().localPeek(key, ONHEAP_PEEK_MODES));
+            System.out.println("!!!Off heap "  + 
grid(i).cache(null).withSkipStore().localPeek(key, OFFHEAP));
+            System.out.println("!!!Swap " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.SWAP));
+            System.out.println("!!!Near " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.NEAR));
+            System.out.println("!!!Primary " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.PRIMARY));
+            System.out.println("!!!Backup " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.BACKUP));
+        }
+
+        assertEquals(5, cacheSkipStore.get(key).intValue());
+        assertEquals(5, cache.get(key).intValue());
+        assertEquals(4, map.get(key));
+
+        map.put(key, 6);
+
+        for (int i = 0; i < gridCount(); ++i) {
+            System.out.println("4Grid " + i +
+                " is primary " + 
grid(0).affinity(null).isPrimary(grid(i).localNode(), key) +
+                " is backup " + 
grid(0).affinity(null).isBackup(grid(i).localNode(), key));
+            System.out.println("4On heap "  + 
grid(i).cache(null).withSkipStore().localPeek(key, ONHEAP_PEEK_MODES));
+            System.out.println("4Off heap "  + 
grid(i).cache(null).withSkipStore().localPeek(key, OFFHEAP));
+            System.out.println("4Swap " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.SWAP));
+            System.out.println("4Near " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.NEAR));
+            System.out.println("4Primary " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.PRIMARY));
+            System.out.println("4Backup " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.BACKUP));
+        }
+
+
+        assertTrue(cacheSkipStore.remove(key));
+
+        for (int i = 0; i < gridCount(); ++i) {
+            System.out.println("Grid " + i +
+                " is primary " + 
grid(0).affinity(null).isPrimary(grid(i).localNode(), key) +
+                " is backup " + 
grid(0).affinity(null).isBackup(grid(i).localNode(), key));
+            System.out.println("On heap "  + 
grid(i).cache(null).withSkipStore().localPeek(key, ONHEAP_PEEK_MODES));
+            System.out.println("Off heap "  + 
grid(i).cache(null).withSkipStore().localPeek(key, OFFHEAP));
+            System.out.println("Swap " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.SWAP));
+            System.out.println("Near " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.NEAR));
+            System.out.println("Primary " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.PRIMARY));
+            System.out.println("Backup " + 
grid(i).cache(null).withSkipStore().localPeek(key, CachePeekMode.BACKUP));
+        }
+
+        assertNull(cacheSkipStore.get(key));
+        assertEquals(6, cache.get(key).intValue());
+        assertNotNull(map.get(key));
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
     public void testWithSkipStore() throws Exception {
         IgniteCache<String, Integer> cache = grid(0).cache(null);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/91d37635/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapTieredMultiNodeFullApiSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapTieredMultiNodeFullApiSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapTieredMultiNodeFullApiSelfTest.java
index cce39aa..1b6dd80 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapTieredMultiNodeFullApiSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOffHeapTieredMultiNodeFullApiSelfTest.java
@@ -17,7 +17,9 @@
 
 package org.apache.ignite.internal.processors.cache.distributed.near;
 
+import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
+import org.apache.ignite.configuration.*;
 
 import static org.apache.ignite.cache.CacheMemoryMode.*;
 
@@ -30,13 +32,53 @@ public class 
GridCachePartitionedOffHeapTieredMultiNodeFullApiSelfTest extends G
         return 4;
     }
 
+    /** {@inheritDoc} *//*
+    @Override protected NearCacheConfiguration nearConfiguration() {
+        return null;
+    }*/
+
     /** {@inheritDoc} */
     @Override protected CacheMemoryMode memoryMode() {
         return OFFHEAP_TIERED;
     }
 
-    /** {@inheritDoc} */
-    @Override protected boolean nearEnabled() {
-        return false;
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPut() throws Exception {
+        IgniteCache cache = grid(0).cache(null);
+
+        for (int i = 4; i < 5; ++i) {
+            String key = "key_" + 1;
+            System.out.println("key = " + key);
+
+            cache.put(key, i);
+
+            for (int j = 0; j < gridCount(); ++j) {
+                boolean isPrimary = 
grid(0).affinity(null).isPrimary(grid(j).localNode(), key);
+
+                boolean isBackup = 
grid(0).affinity(null).isBackup(grid(j).localNode(), key);
+
+                System.out.println("Grid " + j + ", primary=" + isPrimary + ", 
backup=" + isBackup);
+
+                if (isPrimary) {
+                    
assertNull(grid(j).cache(null).withSkipStore().localPeek(key, 
CachePeekMode.ONHEAP));
+                    
assertNotNull(grid(j).cache(null).withSkipStore().localPeek(key, 
CachePeekMode.OFFHEAP));
+                    
assertNull(grid(j).cache(null).withSkipStore().localPeek(key, 
CachePeekMode.SWAP));
+                    
assertNull(grid(j).cache(null).withSkipStore().localPeek(key, 
CachePeekMode.NEAR));
+                    
assertNotNull(grid(j).cache(null).withSkipStore().localPeek(key, 
CachePeekMode.PRIMARY));
+                    
assertNull(grid(j).cache(null).withSkipStore().localPeek(key, 
CachePeekMode.BACKUP));
+                }
+
+                if (isBackup) {
+                    
assertNull(grid(j).cache(null).withSkipStore().localPeek(key, 
CachePeekMode.ONHEAP));
+                    
assertNotNull(grid(j).cache(null).withSkipStore().localPeek(key, 
CachePeekMode.OFFHEAP));
+                    
assertNull(grid(j).cache(null).withSkipStore().localPeek(key, 
CachePeekMode.SWAP));
+                    
assertNull(grid(j).cache(null).withSkipStore().localPeek(key, 
CachePeekMode.NEAR));
+                    
assertNull(grid(j).cache(null).withSkipStore().localPeek(key, 
CachePeekMode.PRIMARY));
+                    
assertNotNull(grid(j).cache(null).withSkipStore().localPeek(key, 
CachePeekMode.BACKUP));
+                }
+            }
+        }
     }
 }

Reply via email to