Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 005FD18823 for ; Mon, 15 Feb 2016 13:35:26 +0000 (UTC) Received: (qmail 52064 invoked by uid 500); 15 Feb 2016 13:35:25 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 52018 invoked by uid 500); 15 Feb 2016 13:35:25 -0000 Mailing-List: contact commits-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list commits@ignite.apache.org Received: (qmail 52001 invoked by uid 99); 15 Feb 2016 13:35:25 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 15 Feb 2016 13:35:25 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id A0A51E0A42; Mon, 15 Feb 2016 13:35:25 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sboikov@apache.org To: commits@ignite.apache.org Date: Mon, 15 Feb 2016 13:35:25 -0000 Message-Id: <086261f99b964f1a8c9bd6354413fd47@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [01/18] ignite git commit: IGNITE-2509 - Fixed offheap metrics - Fixes #470. Repository: ignite Updated Branches: refs/heads/ignite-2604 9dc37255d -> 155af4982 IGNITE-2509 - Fixed offheap metrics - Fixes #470. Signed-off-by: Alexey Goncharuk Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/763bf578 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/763bf578 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/763bf578 Branch: refs/heads/ignite-2604 Commit: 763bf578e9f510e50bdfa6b9e51ea25348bfd2e9 Parents: 35b0e6b Author: vershov Authored: Fri Feb 12 12:51:50 2016 +0300 Committer: Alexey Goncharuk Committed: Fri Feb 12 12:51:50 2016 +0300 ---------------------------------------------------------------------- .../org/apache/ignite/cache/CacheMemoryMode.java | 2 ++ .../processors/cache/GridCacheAdapter.java | 7 +++++++ .../processors/cache/GridCacheSwapManager.java | 3 ++- .../internal/GridAffinityNoCacheSelfTest.java | 4 +++- .../GridCacheOffHeapValuesEvictionSelfTest.java | 17 +++++++++++++++-- 5 files changed, 29 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/763bf578/modules/core/src/main/java/org/apache/ignite/cache/CacheMemoryMode.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/CacheMemoryMode.java b/modules/core/src/main/java/org/apache/ignite/cache/CacheMemoryMode.java index a596824..0133327 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/CacheMemoryMode.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheMemoryMode.java @@ -56,6 +56,8 @@ public enum CacheMemoryMode { * Entry keys will be stored on heap memory, and values will be stored in offheap memory. Note * that in this mode entries can be evicted only to swap. The evictions will happen according * to configured {@link EvictionPolicy}. + *

+ * Size returned by {@link CachePeekMode#OFFHEAP} is always zero, for this mode. */ OFFHEAP_VALUES, } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/763bf578/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 84eb0b8..3fac207 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 @@ -54,6 +54,7 @@ import org.apache.ignite.IgniteLogger; import org.apache.ignite.IgniteSystemProperties; import org.apache.ignite.cache.CacheEntry; import org.apache.ignite.cache.CacheInterceptor; +import org.apache.ignite.cache.CacheMemoryMode; import org.apache.ignite.cache.CacheMetrics; import org.apache.ignite.cache.CachePeekMode; import org.apache.ignite.cache.affinity.Affinity; @@ -4121,6 +4122,12 @@ public abstract class GridCacheAdapter implements IgniteInternalCache affinity = grid.affinity(cacheName); assertTrue(affinity instanceof GridCacheAffinityImpl); http://git-wip-us.apache.org/repos/asf/ignite/blob/763bf578/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapValuesEvictionSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapValuesEvictionSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapValuesEvictionSelfTest.java index 9baab33..0efd89b 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapValuesEvictionSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapValuesEvictionSelfTest.java @@ -33,12 +33,18 @@ import org.apache.ignite.testframework.GridTestUtils; */ public class GridCacheOffHeapValuesEvictionSelfTest extends GridCacheAbstractSelfTest { + /** */ private static final int VAL_SIZE = 512 * 1024; // bytes + /** */ private static final int MAX_VALS_AMOUNT = 100; + /** */ private static final int MAX_MEMORY_SIZE = MAX_VALS_AMOUNT * VAL_SIZE; + /** */ private static final int VALS_AMOUNT = MAX_VALS_AMOUNT * 2; + /** */ private static final int THREAD_COUNT = 4; + /** {@inheritDoc} */ @Override protected int gridCount() { return 1; } @@ -46,7 +52,7 @@ public class GridCacheOffHeapValuesEvictionSelfTest extends GridCacheAbstractSel /** * @throws Exception If failed. */ - public void testPutOnHeap() throws Exception { + public void testPutValuesOffHeap() throws Exception { CacheConfiguration ccfg = cacheConfiguration(grid(0).name()); ccfg.setName("testPutOffHeapValues"); ccfg.setStatisticsEnabled(true); @@ -70,6 +76,10 @@ public class GridCacheOffHeapValuesEvictionSelfTest extends GridCacheAbstractSel assertTrue(MAX_VALS_AMOUNT >= cache.size(CachePeekMode.ONHEAP)); assertTrue(MAX_VALS_AMOUNT - 5 <= cache.size(CachePeekMode.ONHEAP)); assertEquals(cache.size(CachePeekMode.ALL) - cache.size(CachePeekMode.ONHEAP), cache.size(CachePeekMode.SWAP)); + + assertTrue((MAX_VALS_AMOUNT + 5) * VAL_SIZE > cache.metrics().getOffHeapAllocatedSize()); + assertTrue((MAX_VALS_AMOUNT - 5) * VAL_SIZE < cache.metrics().getOffHeapAllocatedSize()); + assertTrue(cache.metrics().getOffHeapAllocatedSize() >= cache.size(CachePeekMode.ONHEAP) * VAL_SIZE); } /** @@ -109,6 +119,7 @@ public class GridCacheOffHeapValuesEvictionSelfTest extends GridCacheAbstractSel assertTrue((MAX_VALS_AMOUNT + 5) * VAL_SIZE > cache.metrics().getOffHeapAllocatedSize()); assertTrue((MAX_VALS_AMOUNT - 5) * VAL_SIZE < cache.metrics().getOffHeapAllocatedSize()); + assertTrue(cache.metrics().getOffHeapAllocatedSize() >= cache.size(CachePeekMode.OFFHEAP) * VAL_SIZE); } /** @@ -146,12 +157,14 @@ public class GridCacheOffHeapValuesEvictionSelfTest extends GridCacheAbstractSel assertTrue((MAX_VALS_AMOUNT + 5) * VAL_SIZE > cache.metrics().getOffHeapAllocatedSize()); assertTrue((MAX_VALS_AMOUNT - 5) * VAL_SIZE < cache.metrics().getOffHeapAllocatedSize()); + assertTrue(cache.metrics().getOffHeapAllocatedSize() >= cache.size(CachePeekMode.OFFHEAP) * VAL_SIZE); } + /** Fill cache with values. */ private static void fillCache(final IgniteCache cache, long timeout) throws Exception{ final byte[] val = new byte[VAL_SIZE]; final AtomicInteger keyStart = new AtomicInteger(0); - final CountDownLatch latch = new CountDownLatch(4); + final CountDownLatch latch = new CountDownLatch(THREAD_COUNT); GridTestUtils.runMultiThreaded(new Callable() { @Override public Void call() throws Exception {