#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/010e6e5e Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/010e6e5e Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/010e6e5e Branch: refs/heads/ignite-286 Commit: 010e6e5e2c4d8333eea07a0983ec1a1946d2370a Parents: 24b3c47 Author: ivasilinets <ivasilin...@gridgain.com> Authored: Fri Apr 24 01:55:51 2015 +0300 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Fri Apr 24 01:55:51 2015 +0300 ---------------------------------------------------------------------- .../processors/cache/local/GridLocalCache.java | 7 +++++-- .../cache/local/atomic/GridLocalAtomicCache.java | 7 +++++-- .../cache/GridCacheAbstractFullApiSelfTest.java | 15 +++++++++++++-- 3 files changed, 23 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/010e6e5e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCache.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCache.java index e00687f..36824a0 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCache.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCache.java @@ -206,8 +206,11 @@ public class GridLocalCache<K, V> extends GridCacheAdapter<K, V> { @Override public void removeAll() throws IgniteCheckedException { Set<K> keys = new HashSet<>(); - for (Cache.Entry<K, V> e : localEntries(new CachePeekMode[]{CachePeekMode.ALL})) - keys.add(e.getKey()); + if (ctx.offheapTiered()) { + for (Iterator<KeyCacheObject> it = + ctx.swap().offHeapKeyIterator(true, true, AffinityTopologyVersion.NONE); it.hasNext(); ) + keys.add((K)it.next().value(ctx.cacheObjectContext(), false)); + } keys.addAll(keySet()); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/010e6e5e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java index bea86db..997485c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java @@ -393,8 +393,11 @@ public class GridLocalAtomicCache<K, V> extends GridCacheAdapter<K, V> { @Override public void removeAll() throws IgniteCheckedException { Set<K> keys = new HashSet<>(); - for (Cache.Entry<K, V> e : localEntries(new CachePeekMode[]{CachePeekMode.ALL})) - keys.add(e.getKey()); + if (ctx.offheapTiered()) { + for (Iterator<KeyCacheObject> it = + ctx.swap().offHeapKeyIterator(true, true, AffinityTopologyVersion.NONE); it.hasNext(); ) + keys.add((K)it.next().value(ctx.cacheObjectContext(), false)); + } keys.addAll(keySet()); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/010e6e5e/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 c497aaf..21e1e67 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 @@ -3650,7 +3650,7 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract */ private void checkRemovexInTx(TransactionConcurrency concurrency, TransactionIsolation isolation) throws Exception { if (txEnabled()) { - final int cnt = 10; + final int cnt = 1; CU.inTx(ignite(0), jcache(), concurrency, isolation, new CIX1<IgniteCache<String, Integer>>() { @Override public void applyx(IgniteCache<String, Integer> cache) { @@ -3668,10 +3668,21 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract CU.inTx(ignite(0), jcache(), concurrency, isolation, new CIX1<IgniteCache<String, Integer>>() { @Override public void applyx(IgniteCache<String, Integer> cache) { - for (int i = 0; i < cnt; i++) + for (int i = 0; i < cnt; i++) { + System.out.println("i " + i); assertTrue(cache.remove("key" + i)); + } + + } + }); + + CU.inTx(ignite(0), jcache(), concurrency, isolation, new CIX1<IgniteCache<String, Integer>>() { + @Override public void applyx(IgniteCache<String, Integer> cache) { + for (int i = 0; i < cnt; i++) + assertNull(cache.get("key" + i)); } }); + } }